作者:IT圈黎俊杰
在信创的春风下,做为IT基础软件三驾马车之一的操作系统,自然是国产化替代的重点,再加上一直以来被大家当成”免费RedHat Enterprise Linux“的CentOS因被redhat收购,并宣布于2021年12月31日起在停止维护CentOS Linux 8、 2024年6月30日开始停止维护CentOS Linux7事件后,使得操作系统国产化替代一度成为信创工作中的焦点需求。
有句话叫“核弹研发难度远不如操作系统”,可见造操作系统是何等的不容易。那么,以当前国际Linux操作系统生态以及我国在操作系统方面的研发模式,自主品牌发行版Linux操作系统的自主可控性到底是怎么样的呢?
一、全球操作系统技术塑源与演进路线
先对全球主流操作系统的诞生、技术来源与演进路线进行分析,下面是笔者分析绘制的示意图:
Unix和MS-DOS,可以说是操作系统的开山鼻祖,是IT界操作系统的基础。
笔者当年就是从MS-DOS开始学习计算机技术的,回想起当时学习MS-DOS时,全靠一张软盘,老师给一张母盘,同学们拿着它,你复制来我复制去,插进386电脑的软驱里,咔滋咔滋直作响,就像老牛拉破车一样,直到一行闪烁的光标出现,开启了我们的计算机学习之路。
为了感谢教我们MS-DOS入门的老师们,以及回忆我们一起在咸宁教育学院寒窗苦读的同学们,在此秀一张我们毕业后聚会的师生照吧。
上面有我们亲爱的叶老师(女,前一排左四,棕色上衣)和尹老师(男,前一排左五)。真是名师出高徒,同学们有的成为了企业老板、有的当上了企业高管与中层干部、还有好多同学当上了公务员和人民教师,感谢老师的辛勤培养。
言归正传,因为国产操作系统基本都是基于Linux开发,属于类Unix系,所以本文不讨论MS-DOS和Windows部分。
Unix系统的精华在于它的框架,每一个程序员都可以在其他人的基础上继续工作。1956年,Unix所属的AT&T公司被美国联邦政府要求只能提供电信业务,所以AT&T公司对计算机业务不再热衷了,而Unix也就不再受到公司的资助,Unix已经演变成为一个无所有权的操作系统。到了二十世纪七十年代末期,AT&T公司突然认识到Unix还有一定的商业价值,因此他们就利用1956年的一项软件著作权声明想要把Unix声明成为自己的商业机密。从1979年的Unix第七个版本开始,Unix的许可协议不再允许大学里使用Unix源代码开设课程。而Vrije大学的计算机教授Andrew Tanenbaum说:“这不是个问题。”在1987年他编写了一个Unix的克隆版,并在他的课堂中使用它。在70年代,Bill Joy只是位加州大学伯克利分校的一位毕业生,他当时正从事程序员的工作,一次他从贝尔实验室收到一份Unix的拷贝,他发现这是一个很好的平台,可以运行他的Pascal编译器和文本编辑器,而后来他和他的同学们又编写了Unix的另外一个重要的分支,被称作Berkeley Software Distribution (BSD) Unix。随着时代的发展,Unix已被发展出多个分支,而BSD也再次被发展出Solaris(商业版本)和freeBSD(开源版本)两个分支。
1983年,Richard Stallman(rms)发起意在为所有软件用户能够自由控制自己的计算而构建一款由大家共同努力开发而成,并且和Unix100%兼容的自由软件操作系统,取名为GNU(GNU's not unix),意思是“GNU不是UNIX”。设计时它有自己的内核叫 Hurd,并且开发很多软件包,包括以用户为导向的应用程序、实用程序、工具、应用库、游戏等,但很遣憾的是,它的内核一直未开发出来。
1991年,芬兰赫尔辛基大学计算机系研究生LinusTorvalds(林纳斯·托瓦兹)因使用的Minix系统只能用于教学和价格让其望而却步,于是决定参考Unix开发一套自己的操作系统,1991年2月4日,Linux内核系统0.00版诞生。
好了,GNU有着丰富的应用程序,但是无内核或是内核还不好用;Linux有着优质的内核,但是无应用程序。
“天仙配”开始了,就有了很多公司或组织,将GNU丰富的应用程序和Linux的强劲内核相结合,再加上自己的产品研发整合,形成了可用的操作系统,进行发行上市,fedora、openSUSE、debian等操作系统就此诞生了,称为GNU/Linux,这些属于世界第一梯队主流的Linux操作系统。
出于商业的目的,让自己的操作系统开发变得更简单,借助巨人的肩膀,基于第一梯队fedora、openSUSE、debian等操作系统之上,再二次开发的redhat Linux、CentOS、SUSE、ubuntu等都相继发行了。
android是个个例,因为公司技术能力强劲的原因吧,它完全独立基于Linux内核开发,并没有使用GNU的软件产品,所以目前所有Linux系操作系统中,只有它不是GNU/Linux。
上面说的是全球的操作系统技术溯源及演进路线,对于发展中的国产操作系统的技术来源,本文不做描述。
二、主流国产操作系统有哪些
有人说“国产的操作系统比用户都多”。主流国产操作系统主要有三大类,第一大类是由开源社区维护的开源类操作系统,第二大类是商业公司发行的商业操作系统,第三大类是商业公司发布的开源操作系统。
(一)国内开源社区维护的开源操作系统
国内开源社区维护的开源操作系统主要有三个,分别是如下:
(1)华为公司主导的OpenEuler(欧拉)操作系统,由OpenEuler开源社区维护;
(2)阿里公司主导的AnolisOS(龙蜥)操作系统,由OpenAnolis开源社区维护;
(3)腾讯公司主导的OpenCloudOS操作系统,无中文名,由OpenCloudOS开源社区维护。
国内操作系统开源社区都是近几年才开始建立,主导社区的公司在开源操作系统产品本身方面无商业利益,生态也在快速的完善,已有逐渐发展成为部分国产商业操作系统、企业自用操作系统的上游技术源头的趋势,既有用它做国产服务器操作系统的,也有用它做国产PC桌面与移动平板操作系统的。
(二)商业公司发行的商业操作系统
国产商业操作系统,主要有麒麟家族系列(银河麒麟、中标麒麟、优麒麟、麒麟信安)、统信、红旗、中兴新支点、中科方德、凝思、起点、深度等。这些操作系统有些品牌既发行有服务器类操作系统,也发布有PC桌面与移动平板操作系统。
(三)国内商业公司发布的开源操作系统
这类产品由于没有生态支持,所以用户非常非常少,几乎为被忽略的状态。
三、主流国产操作系统技术路线
你要是问国产操作系统厂家,他的操作系统是基于国外产品二次开发的还是自主研发的,可能大部分厂家都会告诉你”他是100%自研的“,还有一些厂家会告诉你”他是直接在Linux内核基础之上自主开发的“。这么说的,都是骗子。
当前国产操作系统的技术路线基本可分成四条,分别如下:
第一条路线:做L1级产品,由国内厂商支持的开源社区,参与Linux内核代码贡献,再使用成熟的Linux内核+GNU+社区共研应用,形成的发行版操作系统,如华为的OpenEuler(欧拉)等。
第二条路线:做L2级产品,在国外L1级(fedora、debian等)如和国内L1级(如OpenEuler等)产品的基础之上,再二次开发,同时自己也参与Linux内核和上游产品的代码贡献,而形成的发行版操作系统。国内采用这条路线的操作系统会越来越多。
第三条路线:做L3级产品,在国外L2级(如CentOS stream、openSUSE等)和国内L2级(不方便写出名称)产品的基础之上,再二次开发,同时自己也参与Linux内核和上游产品的代码贡献,而形成的发行版操作系统。国内有一部分产品采用这条路线,既有商业操作系统,也有开源操作系统。
有个别国产开源操作系统,它自身基于国外L2级开源操作系统二次开发而来的,却又再次开源出来给国产商业操作系统做发行版或某些企业做内部使用版的操作系统。这叫“只有想不到的,没有做不到的”。
第四条路线:做L4级产品,基于国内开源操作系统版本之上,再来做自己的商业发行版或企业内部使用版。
您用的国产操作系统属于上面第几条路线制造出来的产品,请您擦亮眼晴哦。
四、主流国产操作系统的安全可控性
国产操作系统根据技术来源选用策略的不同,当前主要有下面四部分中的两到四部分的程序和代码来自全球,分别为:
1、Linux内核代码:Linux内核代码来自以美国为首的全球贡献者,开源,基于它开发的产品也必须继续开源;
2、GNU应用代码:GNU代码也一样来自以美国为首的全球贡献者,开源,基于它开发的产品也必须继续开源;
3、XWindowSystem接口与图形化应用代码:如果要想使用图形化应用,还需要用到同样由美国为首的组织与公司主导的XWindowSystem图形化接口与KDE、Gnome等图形化应用软件及相关代码;
4、国外L1或L2级开源操作系统代码:国外L1或L2级开源操作系统的自研代码,如fedora、CentOS stream、openSUSE、debian、ubuntu等;
国产操作系统除了使用上述最少二到四部分的全球代码外,还有自己研发的代码,综合得出产品的自主率与安全可控性。
五、国产操作系统有必要继续吗
当前没有任何一款国产操作系统做到了100%代码自主率是个不争的事实,但即便这样,笔者个人认为国产操作系统的研发还是非常有必要继续下去的,原因如下:
1、从Linux内核级提升安全性:当前如果完全自主研发操作系统内核,国内还不具备这样的实力,即便研发,也有可能会跟GNU研发内核一样重蹈覆辙。而国产厂商与个人通过积极参与Linux内核的开发贡献,使得中国在Linux内核中的代码贡献比重越来越大,对我国来说使用Linux操作系统的安全性就越来越高。
2、提升国产操作系统自主级别:通过操作系统应用功能的开发,一部分有实力的企业或社区组织,逐渐由基于国外的L1级发行版开源操作系统二次开发成自己的操作系统,提升为直接基于Linux内核+GNU开发,使得自己的产品晋级为L1级或基于国产L1级产品研发的L2级产品,大幅提升国产操作系统的自主率与安全可靠性。
3、减少GNU进一步提升自主率:企业或社区组织,在能力达到一定程度后,要尽量减少对GNU组件的使用,甚至完全不使用GNU,采用只基于Linux内核,完全自主开发应用,而发行的操作系统,如Android系统。国内操作系统厂商或开源社区还需要较长的时间积累与技术沉淀。
4、为自主操作系统内核而努力:在足够的时间沉淀与技术积累之后,国内企业或社区组织能够完全自主研发一种新型的操作系统内核,并基于自主的内核开发出发行版操作系统、建立起完善的生态。
希望我国通过信创工作,能够培训出一批高技术能力的企业和社区组织,实现国产操作系统的高度自主率,甚至打造出完全国产的操作系统内核(要防止“换皮内核”),把我国建设成全球信息技术能力大国强国。
坚持原创发表,如发现有不妥与不正确之处,欢迎指正。IT圈黎俊杰虚心向大家学习!