本章给出的移植方法是通过对源代码进行修改来达到应用软件跨平台移植的目的。
(1)与基于内核修改的软件移植技术的比较
相较于基于内核修改的软件移植技术而言,对源代码进行修改的适应性更好,且安全性更优。适应性更好是因为基于内核修改的软件移植技术只适用于通用开源的操作系统,不适合于闭源的商业化操作系统。例如Windows操作系统,由于它的代码是不公开的,因此对它的修改几乎是不可能的,同时由于它是一种商业化产品,在没有微软的许可下,这种做法也是不允许的。安全性上更优是因为,针对特定的应用软件移植对目标平台的操作系统内核进行修改后,难以保证不会影响到该操作系统上其他应用软件的正常运行,而修改待移植应用软件的源代码是不会影响到其他应用软件的运行;同时,对操作系统内核进行修改后,测试工作是繁杂的,不仅要测试操作系统内部各模块之间的交互,还要测试操作系统与外部应用软件及硬件等的交互。而对源代码的修改所要做的测试就相对简单许多,待移植的应用软件在移植前已经被测试过,对代码修改时,只需要对修改的部分进行测试,测试修改的部分与修改前是否功能一致,外部行为一致,以及测试目标平台是否能对修改后的代码提供支持。
(2)与基于中间层的移植技术的比较
相较于基于中间层的移植技术而言,虽然对源码的修改导致工作量增加了,但是移植后的应用软件不会受限于中间层的功能与性能,其中功能受限是因为应用软件的所能实现的功能只能是中间层所能支撑的功能的子集;性能受限是因为由于中间层的增加而导致对资源需求的增加,操作运行时间的延长,对应用软件运行时性能的影响取决于中间层本身性能的好坏。(www.xing528.com)
(3)与基于代码重构的软件移植技术的比较
相较于基于代码重构的软件移植技术中的基于代码总体重构的方法而言,由于总体重构方法的本质是在目标平台采用新的工具依据待移植应用系统的逻辑重新开发,因此仅仅对源码中不兼容的地方进行修改的方法显然在工作量、复杂度、风险以及成本等各方面都要更占优势。
相较于基于代码重构的软件移植技术中的基于语言转换的方法而言,虽然有工具可以辅助转换的过程,但是修改源代码的方法在可控性上表现更好。这是因为语言转换后所得到的源代码的质量取决于转换工具的转换能力,转换后的源代码往往仍然需要再进行手工修改,还要重新进行彻底的测试。
相较于基于代码重构的软件移植技术中的基于源代码修改的方法而言,本章所给出的方法是对传统源代码修改方法的改进。本章所给出的方法,由于基于语义,因此在对源代码中需要修改部分的定位上更高效且更准确;由于提供了两种显示的修改的方案,因此对源代码的修改更为灵活;由于模型的通用性,因此本章所给出的移植方法并不局限于Windows平台和Linux平台,更具备普适性。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。