文獻標識碼: A
DOI: 10.19358/j.issn.2096-5133.2020.09.006
引用格式: 魯振,胡堅升,李名揚. 一種多架構應用軟件開發(fā)及運行方法研究與實現(xiàn)[J].信息技術與網(wǎng)絡安全,2020,39(9):28-33.
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)