国产操作系统:应用软件兼容运行的一个方案
作者: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