向前兼容與向後兼容

向前兼容與向後兼容

來自專欄 精通比特幣

我們經常在軟體和硬體領域聽到兼容性這個詞,兼容性還經常被加上向前、前後、向上、向下這樣的前綴,一不留神就弄得暈頭轉向。

兼容性(compatibility)是指硬體之間、軟體之間或是軟硬體組合系統之間的相互協調工作的程度。

  • 向前兼容(Forward Compatibility):指老的版本的軟/硬體可以使用新版本的軟/硬體產生的數據。Forward」一詞在這裡有「未來」的意思,我認為翻譯成「向未來」更加形象一些,不知是哪位先人翻譯成了「向前」,很多時候漢語中這個「向前」是指「從前」還是「之後」是有歧義的。
  • 向上兼容(Upward Compatibility):與向前兼容相同。
  • 向後兼容(Backward Compatibility):指新的版本的軟/硬體可以使用老版本的軟/硬體產生的數據。
  • 向下兼容(Downward Compatibility):與向後兼容相同。

舉幾個例子:

  • Intel的x86指令集CPU是向後兼容的,因為新款CPU依然可以運行老版本的軟體。Intel保證老版本CPU有的指令集新版本一定還保留著,這種只增加不刪除的策略,保證了我們換CPU時,不需要更換很多軟體。
  • Windows操作系統是向後兼容的,大部分針對Windows 7開發的軟體依然可以很好的運行在Windows 10下。Windows通過保證系統API的穩定不變,只增加不刪除的策略,保證了老系統上開發的軟體可以很容易的在新系統上運行。
  • CD光碟是向前兼容的,CD光碟既可以被老舊的CD光碟機讀取,也可以被新的DVD光碟機讀取。
  • 立體聲FM廣播是向前兼容,它既可以被單聲道的老式收音機播放,但沒有立體聲效果,也可以被新式的立體聲收音機播放,具有立體聲效果。
  • 用於設計網頁的HTML語言是向前兼容的,當瀏覽器遇到新版本的HTML語言時,可以簡單的忽略不支持的標籤,仍然可以正常顯示。
  • 比特幣區塊鏈系統是向前兼容的,老版本的節點依然可以驗證新版本產生的區塊,這也是比特幣區塊鏈不會產生永久分叉的基礎。

參考資料:

Forward_compatibility

Backward_compatibility

向前兼容和向後兼容

推薦閱讀:

TAG:軟體兼容 | 計算機 | 計算機科學 |