[發(fā)明專利]一種評估Linux應用程序與操作系統(tǒng)兼容性的方法有效
| 申請?zhí)枺?/td> | 202110040663.6 | 申請日: | 2021-01-13 |
| 公開(公告)號: | CN112835788B | 公開(公告)日: | 2023-10-27 |
| 發(fā)明(設計)人: | 史長亭;法洪強;李晉 | 申請(專利權)人: | 哈爾濱工程大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 150001 黑龍江省哈爾濱市南崗區(qū)*** | 國省代碼: | 黑龍江;23 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 評估 linux 應用程序 操作 系統(tǒng)兼容性 方法 | ||
本發(fā)明屬于軟件可靠性技術領域,具體涉及一種評估Linux應用程序與操作系統(tǒng)兼容性的方法。本發(fā)明通過將操作系統(tǒng)中提供的動態(tài)鏈接庫、接口和應用程序?qū)ν庵苯右蕾嚭烷g接依賴的動態(tài)鏈接庫、接口進行對比,得到二者的靜態(tài)二進制兼容性結(jié)果,實現(xiàn)了Linux應用程序在不同發(fā)行版操作系統(tǒng)運行兼容性問題的檢測。本發(fā)明可以檢測到應用程序?qū)Σ僮飨到y(tǒng)的直接依賴,并基于一種遞歸策略實現(xiàn)檢測應用程序的間接依賴。本發(fā)明根據(jù)應用程序?qū)ν庖蕾嚭筒僮飨到y(tǒng)提供的資源的匹配程度進行了有效的兼容性分級評估,幫助開發(fā)者清晰的了解應用程序與操作系統(tǒng)的兼容程度。
技術領域
本發(fā)明屬于軟件可靠性技術領域,具體涉及一種評估Linux應用程序與操作系統(tǒng)兼容性的方法。
背景技術
當前最為流行的計算機操作系統(tǒng)主要有Windows,MacOS和Linux,其中Windows操作系統(tǒng)和MacOS操作系統(tǒng)屬于閉源操作系統(tǒng),而Linux屬于開源操作系統(tǒng)。在兼容性工作方面,微軟公司在Windows上投入了大量的人力和財力來保證用戶應用程序在多個版本的操作系統(tǒng)之間實現(xiàn)兼容,其采取的措施主要有:一方面保證暴露給應用程序的API的穩(wěn)定性,一方面新版本系統(tǒng)繼承舊版本系統(tǒng)的共享庫打包到鏡像中,再者,64位操作系統(tǒng)為了兼容32位應用程序還在系統(tǒng)中增加了32位系統(tǒng)文件;但是,在MacOS操作系統(tǒng)和Linux操作系統(tǒng)上,應用程序與操作系統(tǒng)之間的兼容性可能沒有那么好。
在Linux操作系統(tǒng)上,如果需要安裝一個應用程序,一些情況下更多會需要應用程序開發(fā)者或者使用者來保證與操作系統(tǒng)的兼容。由于Linux內(nèi)核是開源的,任何人都能得到Linux內(nèi)核源代碼,這也導致了基于Linux內(nèi)核開發(fā)的操作系統(tǒng)發(fā)行版非常多,常見的就有Ubuntu、CentOS、ArchLinux等,所以,Linux發(fā)行版不可能像Windows一樣把各個版本的共享庫都打包到鏡像中。一種解決方案就是每個Linux發(fā)行版都有自己的包管理器和軟件源。但是并不是每種軟件源都包含所有的應用依賴文件,并且一些環(huán)境下(如某些涉密專用機等)是無法聯(lián)網(wǎng)下載依賴的,所以如果想要應用程序跨Linux發(fā)行版運行,還是可能會出現(xiàn)一些兼容性問題。對于開發(fā)人員來說一種可行的方法就是在打包應用程序的同時將應用依賴的動態(tài)鏈接庫打包。
針對Linux應用程序與操作系統(tǒng)兼容性檢測的問題,Linux基金會發(fā)布了LinuxStandard Base(LSB)標準以達到應用程序的二進制規(guī)范,并且開發(fā)了linux-app-checker用來檢測應用程序是否和某一特定Linux發(fā)行版兼容。但是針對兼容性檢測的問題,linux-app-checker只能對幾種Linux發(fā)行版進行兼容性檢測,能夠得到應用程序的外部依賴庫、外部依賴函數(shù)等結(jié)果,但是因為其是使用給定的LSB接口集進行數(shù)據(jù)對比得到的結(jié)果,也可以說得到的是應用程序是否符合LSB規(guī)范,而許多進行過定制的或者裁剪過的操作系統(tǒng)則不適用,并且該工具的檢測結(jié)果只是應用程序的直接外部依賴,不能保證得到應用程序的所有依賴。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種評估Linux應用程序與操作系統(tǒng)兼容性的方法。
本發(fā)明的目的通過如下技術方案來實現(xiàn):包括以下步驟:
步驟1:對操作系統(tǒng)進行掃描,掃描路徑選擇“/”,得到操作系統(tǒng)在掃描路徑“/”下的動態(tài)鏈接庫集L;解析掃描路徑“/”下的所有ELF文件,得到操作系統(tǒng)的接口集I;將操作系統(tǒng)在掃描路徑“/”下的動態(tài)鏈接庫集L和接口集I寫入MySQL數(shù)據(jù)庫;
步驟2:對操作系統(tǒng)進行掃描,掃描路徑選擇”/usr/lib”和”/lib”,得到操作系統(tǒng)在默認動態(tài)鏈接庫掃描路徑”/usr/lib”和”/lib”下的動態(tài)鏈接庫集SL;解析掃描路徑”/usr/lib”和”/lib”下的所有ELF文件,得到操作系統(tǒng)在默認動態(tài)鏈接庫掃描路徑”/usr/lib”和”/lib”下的接口集SI;將操作系統(tǒng)在默認動態(tài)鏈接庫掃描路徑”/usr/lib”和”/lib”下的動態(tài)鏈接庫集SL和接口集SI寫入MySQL數(shù)據(jù)庫;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于哈爾濱工程大學,未經(jīng)哈爾濱工程大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110040663.6/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





