在计算机技术发展的早期,应用软件的开发和运行受限于特定的软硬件环境。随着软硬件技术的更新发展,一些软硬件慢慢退出历史的舞台,被技术上更成熟、更可靠的软硬件所取代。从软件使用者的角度来说,应用软件在使用多年后,用户已经习惯了应用软件的界面及操作,而新的软硬件环境不仅要有利于提高应用软件的运行性能,还要能为使用者提供更好的用户体验。要在升级软硬件环境的同时,不影响用户的使用习惯。如此,应用软件便面临移植到不同的软硬件环境上的需求。从软件提供商的角度来说,所开发的应用软件能否适应新的、更多的软硬件环境,从一定程度上决定了软件竞争力以及市场占有率,因此对软件提供商而言,同样也有将应用软件移植到不同的软硬件环境上的需求。
通常情况下,软件移植意味着软件不加任何改变或通过转换(手动或由计算机自动进行)由一台计算机转移到另一台具有不同处理器或操作系统的计算机上顺利运行,并且功能与转移前保持一致[1]。
国外对软件移植的研究始于20 世纪70年代[2],此时硬件技术开始进入飞速发展期,将应用软件转移到不同的硬件环境下运行的需求推动了这一时期软件移植技术的研究,有代表性的是1972年IBM提出的VM/370[3],它是最早的系统虚拟机。20 世纪90年代初,微软公司发布Windows3.0[4],其基于窗口、按钮、图标和鼠标的图形界面(GUI)与之前的产品相比,技术上取得了巨大突破,获得了广大用户的肯定,PC机开始正式进入了所谓的图形用户界面时代,将命令行模式下的应用程序移植到界面环境,成为众多用户和软件开发商的迫切需求。与此同时,20 世纪60年代末诞生的Unix操作系统以及随后出现的类Unix操作系统经过三十多年的发展和完善,逐渐登上主流操作系统的舞台,与微软Windows同为通用计算机上广泛使用的操作系统。这就对Windows上应用软件能同时支持在Unix操作系统以及类Unix操作系统上正常运行提出了需求,这一需求进一步推动了软件移植技术的研究。(www.xing528.com)
国内在软件移植这一领域的探索相对比较晚,主要推动力源于对信息产业的自主、安全和可控的要求。2012年6 月国务院印发的23 号文件(《关于大力推进信息化发展和切实保障信息安全的若干建议》)[5]指出,核心技术受制于人是我国信息化建设和信息安全保障中一个亟待解决的问题。实现信息产业的自主、安全、可控是信息化工作中的重中之重,是实现信息安全的基础所在。2008年10月21日,微软公司对盗版Windows和Office用户进行“黑屏”警告性提示[6]。这一看似打击盗版的行为,实际上却说明用户已经丧失了对自己计算机的控制权。在此之前,我国在信息领域的状况是,操作系统等基础软硬件几乎完全依赖国外进口,国防、金融等关键领域也大量应用国外软件,“黑屏”事件的发生暴露了我国信息安全所存在的巨大隐患,敲响了中国信息安全的警钟,也将国家对信息安全的重视推上了一个新的高度。同时这一事件也将国产基础软硬件推到了中国信息安全“顶梁柱”的位置上。近年来,国家出台了一系列倾向性政策支持和扶持国产基础软硬件,同时也通过“核高基”等国家重大科技专项来提供强有力的技术和资金上的支持。在利好条件下,国产基础软硬件得以向着良好的态势迅速发展,其整体技术基本上可以满足国内信息化建设的需求,然而,目前应用范围相对有限,究其原因有两点,其一是因为用户多年使用主流操作系统(例如Windows操作系统)以及主流操作系统上所提供的软件资源(例如Office办公套件)而养成的操作习惯一时难以改变,这就给国产基础软件迅速建立大规模用户群带来阻碍。而国产操作系统一旦受到制约,就会极大影响到国产基础软件的生态产业链的形成,压缩中间件、数据库、办公套件等其他基础软件的发展空间。其二,由于国防、金融等关键领域的信息系统大量采用国外产品,其对运行所需的软硬件环境有一定的要求,不能很好地运行于国产基础软硬件之上。于是如何将已有应用软件向国产基础软硬件环境上移植,成为推动国产基础软硬件快速发展的一个重要课题。
目前跨平台应用软件移植可采取的技术有代码重构(Refactoring)、跨平台编译、高级语言的互译、软件虚拟机和API仿真等。其中代码重构作为一种有效的、受控的清理代码的技术[7],旨在通过对待移植应用软件进行分析和修改,使修改后的应用软件不仅能够运行于目标平台,还能使其行为与移植前无二。它能很好地解决应用软件对软硬件环境的依赖问题,是软件跨平台移植方案中较为彻底的方法,也是实际工程项目中主要采用的方法。在代码重构的方法中,常常使用的是直接在应用软件的源代码上进行修改使之适应新的平台,或是通过将一种语言实现的源码转换成另一种平台无关的语言(如Java语言、C#语言等)从而使软件具有可移植性,再者就是在目标平台上照着原有的逻辑功能重新实现应用软件。然而不论采用哪一种方法,都离不开对应用软件源代码的分析和修改。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。