跳转到内容

向后移植

本页使用了标题或全文手工转换
维基百科,自由的百科全书

向后移植是一种对现有软件进行更改(修补程式)的动作,其将较新版本的改变部份移植到旧版软体上。它构成了软件开发过程中的软体维护步骤,通常用于修复旧版软体中的安全性错误

概述

[编辑]

向后移植最简单也最常见的情况是,在新版软体中有一个已经被修复的安全性漏洞,而旧版软体也存在这个漏洞。下面是一个简化过的例子:

  • 软体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. ^ 1.0 1.1 Backporting Security Fixes. 红帽公司. [2013-10-24]. (原始内容存档于2013-10-29). 
  2. ^ 2.0 2.1 Staying close to upstream projects. Fedora. [2013-10-24]. (原始内容存档于2011-08-05). 
  3. ^ Donald Melanson. Microsoft backports Vista features for new Windows XP SP3 beta. engadget.com. 2007-10-09 [2013-10-24]. (原始内容存档于2019-05-02).