國產操作系統:應用軟件兼容運行的一個方案
作者:admin 日期:2023-09-08 瀏覽: 次
國產操作系統:應用軟件兼容運行的一個方案
先是一句話的方案:對應用軟件開發商,在其發布安裝包時,嚴格約束其“依賴”的填寫內容。(一個例子,比如:應用軟件開發商在發布deb安裝包時,嚴格約束安裝包內control | depends字段的填寫內容。)這是可以做到的,也很容易,盡管我們強調了“嚴格約束”。如下示意圖。

以麒麟軟件有限公司的銀河麒麟桌面系統為例,在銀河麒麟V4操作系統上開發、安裝的應用軟件(包),無法直接在銀河麒麟V10操作系統上安裝,或者在銀河麒麟V10操作系統上可以安裝但卻又無法運行,這些是困擾客戶、終端用戶的一個長久問題,直接導致了這樣的邏輯和場景出現:應用軟件包沒有變化,它在V4操作系統上能夠安裝、運行,但卻不能運行在V10操作系統上;因為是操作系統升級了,所以,這事兒,是操作系統的問題,必需要由操作系統廠商來解決。這種“兼容性”問題,直接導致了近幾年國產操作系統廠商的持續現狀是:無論“應用軟件”有何安裝、運行甚至功能使用性問題,操作系統廠商都“躺槍”與之有關聯,百口莫辯且只能硬著頭皮參與、盲解。改變現狀與更好發展,是操作系統廠商一直想解決應用軟件兼容性問題的直接目標。改變現狀,是解決應用軟件兼容運行的短期目標。這是由于,從理論上,我們已經證明了,操作系統的向后兼容是持續可行的;在實踐上,當前以及可見的未來,操作系統即便持續升級,但只要在根源上向后兼容,應用軟件的兼容運行也就可以一直落實的。更好發展,是解決應用軟件兼容運行的長期目標。它自身又有帶著更長遠的兩個目標:一方面,更好發展,國產操作系統廠商才能繼續活下去;另一方面,更好發展、改進操作系統,才能不斷保障終端用戶的“安全好用”體驗。根源上來說,與其他類操作系統類似,影響兼容性的運行庫文件——即GNU/Linux各發行版的C庫,也是一貫向后兼容的(這也是CentOS停服為什么對國內相關生態沒有致命性影響:現象上看,迄今也沒有聽到過原CentOS上的應用完全不能在新操作系統上運行的案例)。從實際開發情況上,關于應用兼容性問題,在國內外頭部的應用開發商那里,基本上也不是一件大事兒的:一方面,廠商們過去使用的免費的ubuntu等發行版,也一直是有新版本出現的,但大家的應用軟件,都是“自發式”的與新版本的操作系統做適配;另一方面,相比較應用軟件自身業務的實現,兼容運行的技術解決難度以及工作量占比,幾乎不值一提。舉一撥常見應用軟件的例子:VS Code、WPS、QT、Chrome、firefox……它們的某個安裝包,都能若干不同版本的操作系統上運行、安裝。另外一些常見的頭部應用,兼容性差一些的原因,也主要是由于應用開發商不想干(盡管只是需要工作量)。以國產操作系統廠商麒麟軟件有限公司的銀河麒麟桌面操作系統為例,我們對同一安裝包代表的應用軟件,在前者的不同版本上,能夠安裝、運行的方案,做以下的說明。1、操作系統廠商嚴格的落實庫包分級表中,標識為1級的庫包的向后兼容性(應該在不同大版本上,也能持續的做兼容);2、操作系統廠商提供必要的工具,一方面,輔助應用軟件開發商對應用軟件進行打包(debian/deb包);另外一方面,此工具內置對deb包的“control | depends字段”填寫內容的校驗,嚴格限制其填寫內容,必需為已經明確的1級庫包列表中的項;3、應用軟件開發商遵守操作系統廠商發布已久的《銀河麒麟桌面操作系統V10-DEB包打包規范》(http://eco.kylinos.cn/home/plugs/download/id/60713.html ),使用操作系統提供的debian/deb包打包工具,或者嚴格遵守只在deb包的“control | depends字段”填寫1級庫包列表中的項,來生成應用軟件安裝包。對應用軟件需要依賴的其余庫,參考前述打包規范3.2.3節的說明,進行相關庫文件的歸集(這也是個常見和通行的操作)。經由以上的步驟,基本可實現同一應用軟件包,在不同版本操作系統上的安裝、運行。其效果,是對標“CentOS停服事件”的應用軟件遷移結果的。盡管本文里的方案,從發展上,是一種短期方案,但目前采用這種方案,是可以達到操作系統廠商、應用軟件開發商、客戶、用戶等多方共贏的,除了為操作系統廠商提供了明確方案、留出時間實現長期方案外,對其他方,也是有可見的收益的。利益/價值:兼容運行的不友好體驗,通常都發生在終端用戶可見的debian/Ubuntu/U系桌面系統上,應用軟件開發商的盈利規模,依然是與軟件產品使用用戶數量對應的。為了使得用戶能“好用”應用軟件,應用開發商已經做了很多提升易用性的工作,所以,再加一種明確能夠提升軟件運行兼容性的手段到其軟件產品上,使用戶在更加新的版本的操作系統上安裝其應用軟件后,依然能平滑的使用,是大概率能獲取更多存量用戶的肯定和由存量用戶的“好評推薦”來獲得新增用戶的。技術力:對標windows、android、ios下的應用軟件開發,在相關的軟件下載平臺上,頭部或主要的應用軟件開發商,其開發的應用,在“應用(運行)平臺”欄里,通常列舉了眾多版本,以表示其具有很好的兼容運行能力,如果行業性的應用軟件開發商,也能讓用戶有類似的使用體驗,其技術力的認可度,也會提升。一直以來,客戶方(比如,負責制定相關標準的監管機構、一些集成硬軟件的集成商、企業客戶的采購部門等)都希望能夠推行一套明確的標準/規則等,來提升其采購的不同版本的操作系統、應用軟件之間的兼容性。現在,在本文里,我們有了。這是顯而易見的:用戶可以將同一軟件安裝包,在不同版本的操作系統上安裝、運行。1、關于《銀河麒麟桌面操作系統V10-DEB包打包規范》的理解。通過閱讀在麒麟軟件有限公司官網發布的《銀河麒麟桌面操作系統V10-DEB包打包規范》(http://eco.kylinos.cn/home/plugs/download/id/60713.html ),我們會看到,其目前主要是聚焦在如何打包、以及一定程度的對應用開發商的應用軟件做“應用軟件”式的建議(即不應該干涉系統。然而這類建議,在當前情況下,因為一些顯而易見的原因,根源性上確實也只能建議),它現在沒有考慮徹底解決或者大范圍的解決“兼容性”:就是那個V4上的應用,如何不需要改動、就能放在V10上運行的向后兼容問題;但好的一點是,現在有了這個打包規范,而且與debian的打包規范(詳見:https://www.debian.org/doc/manuals/maint-guide/ ),確實是有區別的;所以,我們有了“如何實施”節里的關于依賴限制的步驟。2、兼容運行通常都發生在終端用戶可見的U系桌面系統上,仍然是之前的觀點,由持續建立屏蔽上游的中間層,來提升終端用戶的“好用”感受,是除本文方案之外的更應該堅持的長期工作。1、麒麟軟件有限公司:www.kylinos.cn2、銀河麒麟操作系統的下載:https://blog.csdn.net/duck251/article/details/1104221423、操作系統的向后兼容話題:https://mp.weixin.qq.com/s/QOFSbt5fzSH5r4IpJ0BgJg