《电子技术应用》
您所在的位置:首页 > 其他 > 设计应用 > 一种多架构应用软件开发及运行方法研究与实现
一种多架构应用软件开发及运行方法研究与实现
2020年信息技术与网络安全第9期
鲁 振,胡坚升,李名扬
中软信息系统工程有限公司,北京102209
摘要: 对国产基础软件运行环境及运行依赖库进行了研究,提出了一种多架构应用软件开发及运行方法,并在FT1500A、X86(CPU)与麒麟(OS)相组合的两类架构环境上实现了该方法。运行结果表明,该方法能够提供良好的多架构应用软件开发及运行服务,为国产基础软硬件生态的软硬件适配、整体解决方案提供技术支撑。
中图分类号: TP311
文献标识码: A
DOI: 10.19358/j.issn.2096-5133.2020.09.006
引用格式: 鲁振,胡坚升,李名扬. 一种多架构应用软件开发及运行方法研究与实现[J].信息技术与网络安全,2020,39(9):28-33.
Research and implementation of a multi-architecture application software development and operation method
Lu Zhen,Hu Jiansheng,Li Mingyang
CS&S Information System Engineering Co.,Ltd.,Beijing 102209,China
Abstract: This paper studied the running environment and running dependency library based on the domestic basic software ecosystem, and proposed a multi architecture application software development and a running method. The running method has been implemented on FT1500A and X86(CPU)+Kylin(OS) architecture environments. The running results show that the method can provide good services for multi architecture software development and operation, and can provide technical support for the software and hardware adaptation and solid foundation for domestic basic software and hardware ecology.
Key words : multi-CPU architecture;application software development;ecosystem;core operating framework;sandbox

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)

此内容为AET网站原创,未经授权禁止转载。