《電子技術應用》
您所在的位置:首頁 > 其他 > 設計應用 > 一種多架構應用軟件開發(fā)及運行方法研究與實現(xiàn)
一種多架構應用軟件開發(fā)及運行方法研究與實現(xiàn)
2020年信息技術與網(wǎng)絡安全第9期
魯 振,胡堅升,李名揚
中軟信息系統(tǒng)工程有限公司,北京102209
摘要: 對國產(chǎn)基礎軟件運行環(huán)境及運行依賴庫進行了研究,提出了一種多架構應用軟件開發(fā)及運行方法,并在FT1500A、X86(CPU)與麒麟(OS)相組合的兩類架構環(huán)境上實現(xiàn)了該方法。運行結果表明,該方法能夠提供良好的多架構應用軟件開發(fā)及運行服務,為國產(chǎn)基礎軟硬件生態(tài)的軟硬件適配、整體解決方案提供技術支撐。
中圖分類號: TP311
文獻標識碼: A
DOI: 10.19358/j.issn.2096-5133.2020.09.006
引用格式: 魯振,胡堅升,李名揚. 一種多架構應用軟件開發(fā)及運行方法研究與實現(xiàn)[J].信息技術與網(wǎng)絡安全,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 現(xiàn)狀分析

    近年來,以自主CPU+OS為核心的國產(chǎn)基礎軟硬件生態(tài)體系不斷發(fā)展和完善,但仍存在一些短板和弱項,比如基礎軟件方面,操作系統(tǒng)多是基于開源的Linux系統(tǒng),經(jīng)常會導致軟件開發(fā)與運行存在運行依賴庫不規(guī)范、應用軟件版本混亂、沖突等問題?;谙到y(tǒng)開發(fā)和運行的實踐,當前國產(chǎn)基礎軟件生態(tài)體系主要存在以下四個方面的問題。

    (1)開發(fā)嚴重碎片化。Linux上存在太多的開發(fā)庫,國產(chǎn)操作系統(tǒng)缺少一套類似微軟.NET框架的統(tǒng)一開發(fā)解決方案,開發(fā)者難以選擇最佳的開發(fā)語言、開發(fā)庫和開發(fā)環(huán)境,比如對C/C++而言,主流的用戶界面(UI)程序開發(fā)有Gtk、Qt、WxWidget三種,同時Gtk本身又有Gtk2和Gtk3系列[1],Qt有Qt4和Qt5區(qū)分。Linux應用軟件開發(fā)者需要一套開發(fā)和運行的行業(yè)標準,解決開發(fā)框架選擇難、開發(fā)文檔少或無、開發(fā)庫版本多、開發(fā)接口不統(tǒng)一等問題。

    (2)權限控制機制存在安全隱患。主流的國產(chǎn)操作系統(tǒng)使用基于用戶角色的權限控制機制,應用一般具備諸如訪問用戶文件[2]、訪問其他應用數(shù)據(jù)[3]、使用網(wǎng)絡和外部設備[4]等權限。雖然大多數(shù)的Linux發(fā)行版(典型的如Debian、Ubuntu、Redhat、Centos)都提供自身的軟件包維護機制,用戶往往也使用值得信賴的源下載應用,但病毒往往也會利用應用程序這條路徑植入傳播。用戶對一些程序的非法操作往往會導致嚴重的安全問題,給自身帶來極大的困擾。例如用戶使用的應用程序需要訪問網(wǎng)絡時,有可能會從不安全的站點下載惡意程序,執(zhí)行一些非法操作,如盜取用戶的敏感信息,干擾用戶的日常工作、數(shù)據(jù)安全和個人隱私等,用戶需要一種有效的保護計算機安全的方法,比如利用沙箱技術給應用程序提供隔離的運行空間。

    (3)跨架構應用移植不統(tǒng)一。應用軟件可移植性越來越受到關注,諸如Java、Python等語言都提供一套虛擬機用于屏蔽底層處理器和操作系統(tǒng)差異[5],但是對于C/C++等平臺相關編程語言,目前缺少一種跨架構的可移植開發(fā)運行解決方案[6]。

    (4)應用軟件版本混亂。主流的國產(chǎn)操作系統(tǒng)發(fā)行版都使用類似RPM、DPKG等打包系統(tǒng)構建,最大的特點是上游開發(fā)者和下游軟件包維護者(打包者)明顯地區(qū)分開。上游應用開發(fā)者編寫代碼,下游發(fā)行者獲取并將其轉化(編譯、編寫規(guī)則并重新打包)為RPM或DEB包;最后安裝到本地系統(tǒng)中。這種場景在一定程度上解決了包的風險問題,因為軟件包維護者往往會選擇值得信賴和功能可靠的應用,但是也難以避免地暴露一些問題,上游應用開發(fā)者往往希望更高的發(fā)布速度,而事實上完全依賴下游發(fā)行者打包開發(fā)的應用,下游發(fā)行者決定具體的調度、申明、打包、提供支持等規(guī)則。應用本身的實際測試變得十分困難,因為最終用戶往往可能使用不同的包版本,應用在某個發(fā)行版的某個版本下的測試,無法確定應用在其他發(fā)行版和其他版本的任意組合下都能正常運行;要測試應用在某個發(fā)行版的某個版本下的運行,開發(fā)者往往需要安裝該發(fā)行版的版本環(huán)境,并編譯運行該應用,這將是一項繁雜的工作。




本文詳細內容請下載:http://ihrv.cn/resource/share/2000003090




作者信息:

魯  振,胡堅升,李名揚

(中軟信息系統(tǒng)工程有限公司,北京102209)

此內容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。