向後移植
向後移植是一種對現有软件進行更改(修補程式)的動作,其將較新版本的改變部份移植到舊版軟體上。它構成了软件开发过程中的軟體維護步驟,通常用於修復舊版軟體中的安全性錯誤。
概述
向後移植最簡單也最常見的情況是,在新版軟體中有一個已經被修復的安全性漏洞,而舊版軟體也存在這個漏洞。下面是一個簡化過的例子:
- 軟體v2.0版有一個已被修復的计算机安全隐患,只要將字串 'is_unsecured' 更換成 'is_secured' 就可以修復。
- 同樣的安全漏洞也存在軟體v1.0版中,雖然是基於較新版本的代碼庫,但該字串仍為 'is_unsecured'。
做出這些修改修復軟體v2.0版,並更改使其可以應用在軟體v1.0版上,此即稱為向後移植[1]。
在現實生活中,這些改變可能非常容易(只需要更改幾行源代码),也可能需要大規模的修改(修改分佈在許多檔案中的源代码)。在後面這一種情況下,向後移植可能會繁瑣且效率不彰,所以通常只在軟體的舊版本比新版本更加的被需要的情況下才會發生(例如,新版本可能仍有穩定性問題存在時)[2]。
步驟
向後移植大致可分為以下這幾個步驟:[1]
- 找出舊版軟體需要利用向後移植修復的問題
- 找出修復(通常是最近的)這個問題的源代码更動
- 在舊版代碼的基礎上進行適應性修改(正確的向後移植)
- 一或多層次的质量控制 - 測試產出的版本是否保持了先前的功能並正確實作了新的功能。
通常來說,多個此類型的修改都會集合成修補程式套裝。
向後移植可以由核心软件设计师提供。因為向後移植需要軟體原始碼的訪問權,這是閉源軟體向後移植的唯一方法-向後移植通常伴隨著二进制文件的升級。而开源软件的部份,向後移植有時候會由Linux发行版做出,然候送到上游(就是提交到受影響的軟體的核心開發人員)[2]。
範例
在Windows XP的Service Pack 3釋出時,許多Windows Vista的特性被向後移植到Windows XP上,讓許多最低要求是Windows Vista的應用程式(多數是遊戲)得以在Windows XP SP3上執行[3]。
參考資料
- ^ 1.0 1.1 Backporting Security Fixes. 紅帽公司. [2013-10-24]. (原始内容存档于2013-10-29).
- ^ 2.0 2.1 Staying close to upstream projects. Fedora. [2013-10-24]. (原始内容存档于2011-08-05).
- ^ Donald Melanson. Microsoft backports Vista features for new Windows XP SP3 beta. engadget.com. 2007-10-09 [2013-10-24]. (原始内容存档于2019-05-02).