文献标识码: A
DOI: 10.19358/j.issn.2096-5133.2020.09.006
引用格式: 鲁振,胡坚升,李名扬. 一种多架构应用软件开发及运行方法研究与实现[J].信息技术与网络安全,2020,39(9):28-33.
1 背景介绍
1.1 现状分析
近年来,以自主CPU+OS为核心的国产基础软硬件生态体系不断发展和完善,但仍存在一些短板和弱项,比如基础软件方面,操作系统多是基于开源的Linux系统,经常会导致软件开发与运行存在运行依赖库不规范、应用软件版本混乱、冲突等问题。基于系统开发和运行的实践,当前国产基础软件生态体系主要存在以下四个方面的问题。
(1)开发严重碎片化。Linux上存在太多的开发库,国产操作系统缺少一套类似微软.NET框架的统一开发解决方案,开发者难以选择最佳的开发语言、开发库和开发环境,比如对C/C++而言,主流的用户界面(UI)程序开发有Gtk、Qt、WxWidget三种,同时Gtk本身又有Gtk2和Gtk3系列[1],Qt有Qt4和Qt5区分。Linux应用软件开发者需要一套开发和运行的行业标准,解决开发框架选择难、开发文档少或无、开发库版本多、开发接口不统一等问题。
(2)权限控制机制存在安全隐患。主流的国产操作系统使用基于用户角色的权限控制机制,应用一般具备诸如访问用户文件[2]、访问其他应用数据[3]、使用网络和外部设备[4]等权限。虽然大多数的Linux发行版(典型的如Debian、Ubuntu、Redhat、Centos)都提供自身的软件包维护机制,用户往往也使用值得信赖的源下载应用,但病毒往往也会利用应用程序这条路径植入传播。用户对一些程序的非法操作往往会导致严重的安全问题,给自身带来极大的困扰。例如用户使用的应用程序需要访问网络时,有可能会从不安全的站点下载恶意程序,执行一些非法操作,如盗取用户的敏感信息,干扰用户的日常工作、数据安全和个人隐私等,用户需要一种有效的保护计算机安全的方法,比如利用沙箱技术给应用程序提供隔离的运行空间。
(3)跨架构应用移植不统一。应用软件可移植性越来越受到关注,诸如Java、Python等语言都提供一套虚拟机用于屏蔽底层处理器和操作系统差异[5],但是对于C/C++等平台相关编程语言,目前缺少一种跨架构的可移植开发运行解决方案[6]。
(4)应用软件版本混乱。主流的国产操作系统发行版都使用类似RPM、DPKG等打包系统构建,最大的特点是上游开发者和下游软件包维护者(打包者)明显地区分开。上游应用开发者编写代码,下游发行者获取并将其转化(编译、编写规则并重新打包)为RPM或DEB包;最后安装到本地系统中。这种场景在一定程度上解决了包的风险问题,因为软件包维护者往往会选择值得信赖和功能可靠的应用,但是也难以避免地暴露一些问题,上游应用开发者往往希望更高的发布速度,而事实上完全依赖下游发行者打包开发的应用,下游发行者决定具体的调度、申明、打包、提供支持等规则。应用本身的实际测试变得十分困难,因为最终用户往往可能使用不同的包版本,应用在某个发行版的某个版本下的测试,无法确定应用在其他发行版和其他版本的任意组合下都能正常运行;要测试应用在某个发行版的某个版本下的运行,开发者往往需要安装该发行版的版本环境,并编译运行该应用,这将是一项繁杂的工作。
本文详细内容请下载:http://www.chinaaet.com/resource/share/2000003090
作者信息:
鲁 振,胡坚升,李名扬
(中软信息系统工程有限公司,北京102209)