• 简单了解一下国产操作系统


    7月11日,微软声称监测到「中国黑客入侵美国多个组织和机构,并获得其中25个组织的多个邮件账号的权限」,这篇文章中并没有列出切实的证据,且仅仅是用一篇博客文章的形式发布在微软网站上,但是还是被美国各大媒体大肆渲染。这已经不是微软第一次做这种事了,近两三年微软在操作这类题目上颇为积极,而作为最早参与美国「棱镜门」的公司之一,微软这些操作多少有点「贼喊捉贼」的味道。另外,关注Linux的人应该都知道,Red Hat、SUSE、Ubuntu开发商Canonical这3家主要的Linux发行版公司,先后都停止对俄罗斯企业的业务支持。

    上述两件事,涉及微软公司、Linux发行版公司,使得「操作系统自主性」也成为国内经常讨论的题目。而官方媒体在2023年7月5日,也透过新闻联播宣传「我国首个开源计算机桌面操作系统」openKylin 1.0的发布,因此我想简单梳理一下市面上的操作系统的前世今生,以及我国操作系统的现状,内容比较多,如有纰漏,还请多多包涵,hope you find it informative!


    术语表、缩写表
    GNU(读音/gə-nu:/): 「GNU's Not Unix」的缩写,是Richard Stallman在1983年发起的项目,目标是开发一个类Unix操作系统,但是完全由自由软件组成。
    GNOME(读音/gə-noʊm/或/noʊm/): GNU项目中开发的图形界面,GNOME是许多Linux发行版的默认图形界面(如Ubuntu),类似的图形界面还有KDE Plasma等。
    GPL: GNU General Public License,是一种软件授权许可,使用此许可的软件,允许用户自由使用、修改、发行,但该软件及其修改后的衍生品,需要维持使用GPL授权许可,开放源码,即所谓的「GPL传染性」。
    Linux Kernel: Linux操作系统内核,注意Linux内核不是操作系统,而只是操作系统的一部分,可以认为是操作系统的底层。
    Linux Distro/Distribution: Linux发行版,即「Linux内核+软件集合」组成的一个功能完备可用的操作系统。
    POSIX(读音/pɑːzɪks/): 「Portable Operating System Interface of UNIX」的缩写,即「可移植操作系统接口」,这是一个规范,对不同操作系统的各种接口的名称、参数进行约定。
    BSD: 「Berkeley Software Distribution」的缩写,是源于加州大学伯克利分校的一类Unix操作系统的分支。


    名人堂
    Ken Thompson: Unix操作系统开发的「带头人」。
    Dennis Ritchie: C语言之父,也参与了Unix操作系统的开发。
    Richard Stallman: GNU项目的发起人。
    Linus Torvalds: Linux内核开发者。


    DOS|Windows极简史
    个人电脑发展的早期,主流的操作系统是DRI公司在1974年发布的CP/M,在1980年,IBM和DRI讨论为Intel 8086处理器开发16位版的CP/M,但两个公司未能达成一致。而微软这时通过收购SCP公司,获得了一个基于Intel 8086的16位操作系统,叫做QDOS(Quick and Dirty Operating System)。

    1981年左右,基于QDOS,微软为IBM开发了PC-DOS操作系统,为非IBM的公司开发了MS-DOS,并最终使得MS-DOS成为了个人电脑的标准操作系统,原来的CP/M则逐渐消亡。MS-DOS持续演进了多个版本,直至Windows出现。

    Windows最开始是微软为MS-DOS构建一个图形界面,1995年,随着Windows 95的发布,MS-DOS作为操作系统的时代结束了,个人电脑的操作系统进入了Windows时代。在这之后,Windows也演进了多个版本,直到现在的Windows 11。


    Unix极简史
    与上述的个人电脑不同,聚焦于多用户、多任务的大型机和服务器,则发展出了另外一套操作系统。1970年,AT&T贝尔实验室的Ken Thompson、Dennis Ritchie等人,开发了Unix操作系统,并随后使用C语言对其进行了重写,这使得Unix在不同硬件之间的可迁移性大大提高(C语言比汇编语言有更好的迁移性,因为汇编语言需要直接操纵硬件,因此与底层硬件直接相关,迁移性不太好),逐渐成为主流的服务器操作系统。

    商业方面,不同公司的定制开发导致Unix出现了数个分支,如HP-UX, IBM's AIX, Sun's Solaris等。学术方面,随着加州大学伯克利分校的参与,出现了著名的BSD(Berkeley Software Distribution)分支,并随后出现了数个开源的变种,包括FreeBSD、OpenBSD、NetBSD、DragonFly BSD。苹果公司的MacOS就是基于FreeBSD和另外一个Unix分支NextStep。


    GNU/Linux极简史
    (为了便于理解,大家可以将后续提到的操作系统「内核」简单理解为操作系统的底层部分)

    在Unix流行的岁月里,有一个颇具理想主义色彩的代码人Richard Stallman,在1983年开始了GNU项目(「GNU's Not Unix」的缩写),目标是开发一个完全由自由软件组成类Unix操作系统。项目包括一个操作系统内核(GNU Hurd)和应用程序。Hurd内核的开发进展缓慢,不过,由于系统调用接口是预定义好的,GNU项目的许多应用程序倒是进展颇快,许多著名的应用程序都是出自GNU项目,如GCC, Bash, make, tar, GNOME等,还有像ls, cp, mv, cat, grep等常见命令,也出自GNU Core Utilities。

    GNU项目在后面的几年时间里,处于无核可用的尴尬状况,不过,随着Linus Torvalds在1991年发布了Linux内核,由于Linux内核的设计充分考虑了对Unix的兼容,而GNU项目中的应用程序大部分也都兼容Unix(基于POSIX标准),这就使得二者可以很好的兼容,于是人们开始使用「Linux内核+GNU应用程序」的组合。

    为了帮助普通用户获得一个到手就可用的操作系统,而无需去编译数十个不同的应用程序,于是,有一些社区或者公司将「Linux内核+应用程序」作为一个整体提供给用户,这就是所谓的「Linux发行版」,不同的社区或者公司可能会对内核做不同程度的修改,或者提供不同的应用程序的组合,因此,也就有了不同的发行版(据说已经出现超过600个发行版)。

    常见的社区发行版有:Ubuntu、Fedora、CentOS、Debian。常见的商业发行版有:RHEL、SUSE,这些公司主要是通过提供支持服务,来获得用户的付费订阅。

    目前,Linux内核的开发由「Linux内核社区」来维护。这个社区并包括了成千上万的开发者和贡献者。近几年,华为公司在Linux内核上的贡献相当显著。这个我们可遇通过Linux Weekly News网站查看贡献排名。另外,华为等中国公司也是Linux基金会成员。

     


    GPL许可
    GNU项目下的应用程序,以及Linux内核都采用了GPL(GNU General Public License)的授权许可。GPL许可的初衷是鼓励大家开源,根据GPL,任何人/公司都有权使用、修改、分发Linux内核的源代码,如果你分发了基于GPL许可的软件,那么你的软件也必须使用GPL许可并开放源码,这就是所谓「GPL传染性」。GPL这种许可,也在一定程度上契合Richard Stallman或者说GNU的理想主义色彩——希望建立一个自由开源软件的世界。

    需要补充的是,在「Linux内核+应用程序」这种模式中,虽然Linux内核本身是基于GPL许可的,但是并不意味着这些应用程序也会被「传染」而必须使用GPL,这一点我们看Android系统就知道了,Android内核是基于Linux内核进行修改的,因此Android内核也必须使用GPL许可,这没有疑问,但是Android系统中的许多应用程序并不使用GPL,而多是使用Apache许可,这是因为,这些应用程序和内核之间是一个松散的组合,它们与操作系统之间只是一种接口调用关系,而不构成一个整体或衍生品,因此不受内核GPL的约束。


    完全自研,还是基于Linux内核?
    基于Linux内核开发操作系统,并没有什么不好,更谈不上「污点」,很多公司比如谷歌和苹果都是这么做的。在目前的状况下,我个人偏向这个路线的,理由一:相比完全自研,难度要低、周期要短、生态要好;理由二:基于Linux内核进行开发,只要不违反GPL,在许可和法律层面并没有风险。

    肯定很多人会说虽然没有法律风险,但美国有出口管制EAR啊。首先,目前的EAR对使用这些公开发布的开源软件基本上没有影响(除了某些特殊的加密算法程序)。其次,就目前的态势,漂亮国要制裁国内操作系统产商的话,直接祭出万能的「国家安全」就行了,哪用得着「你使用了有美国人参与研发的Linux内核」这样的蹩脚理由。所以,美国的管制/制裁不需要考虑,或者说考虑了也没用。

    虽然我支持基于Linux内核开发操作系统,但是我不建议基于商业公司维护的发行版做开发,而是要创建自己的根社区(即直接基于Linux Vanilla内核构建,不依赖上游发行版)。俄乌冲突后,SUSE、RedHat、Ubuntu开发商Canonical,这三家公司先后宣布对俄罗斯企业停止支持,这就是前车之鉴。

    其次,我觉得「国产操作系统」这种说法不太准确,会导致不必要的争议,尤其是现在的网络舆论环境。说「国产Linux操作系统」、「国产Linux发行版」好一点。

    最后,我也要纠正很多常见的喷子言论,并不是所有基于Linux内核的操作系统都是「套壳」,Android系统就是基于Linux内核,你会说它是套壳吗?实际上,基于Linux内核,仍然可以进行各种深度定制(比如增强安全性和稳定性、优化对国产CPU等硬件的适配等等)。对所有国内Linux操作系统统一扣「套壳」的帽子,只会暴露你的无知。



    国产操作系统
    麒麟系列:
    1. 银河麒麟:2004年,由国防科技大学主导推出,早期基于FreeBSD,后来转向Linux内核,不过由于宣传上的一些说法,银河麒麟当时也存在不少争议,这个就不细说了。
    2. 中标麒麟:2010年,银河麒麟和中标Linux合并,开发中标麒麟操作系统。
    3. 天津麒麟:2014年,天津麒麟成立,国防科技大学将「麒麟」、「银河麒麟」、「KYLIN」等商标及相关知识产权授予了天津麒麟。
    4. 麒麟软件:2019年,天津麒麟和中标麒麟合并,成立麒麟软件(KylinSoft)有限公司,共同维护开发银河麒麟、中标麒麟两个操作系统。
    5. 优麒麟(Ubuntu Kylin):2013年创立,是工信部、国防科技大学和Ubuntu系统开发商Canonical合作的产物,可以看做是Ubuntu系统的中文定制发行版。
    6. 开放麒麟(openKylin):麒麟操作系统的社区开源版,在2023年7月份发布openKylin 1.0的时候,官方的说法是「我国首个开源计算机桌面操作系统」,这个宣传我持保留意见,由于它带的是有Ubuntu标记的GCC 9.3,有一些人认为它是基于Ubuntu,因此不能被称为根社区。

    Deepin系列:
    1. Deepin:武汉深之度开发,如果从最早的Hiwix版本算起,已经有接近20年的历史了。Deepin是国内Linux爱好者们最喜欢的中国发行版。最早基于Ubuntu,后来转向基于Debian,2022年宣布脱离Debian,构建自己的根社区。根据Deepini官方的说法,Deepin操作系统持续更新超过200次,全球下载超过8000万,海外用户超过300万,并基于Deepin衍生出UbuntuDDE、Manjaro deepin等多个发行版本。
    2. 统信UOS:是2019年由中国电子集团、武汉深之度等共同打造的Linux的操作系统,可以认为是Deepin的下游发行版。

    OpenAnolis(龙蜥)
    OpenAnolis是由阿里公司赞助的开源Linux发行版,是以云端场景为主的服务器操作系统,100%兼容CentOS 8软件生态。具有广泛的CPU支持,包括中国自制芯片。同时提供CentOS系统到Anolis OS迁移工具。自CentOS 8在2021年底停止服务之后,包括阿里在内的多家企业,转向使用OpenAnolis,据称,到2022年5月24日,整体装机量已达130多万

    openEuler(欧拉)
    华为最早在2010年开始推出EulerOS操作系统,到了2019年,华为创建openEuler开源社区,并将EulerOS相关的能力贡献到openEuler社区,2021年,推出openEuler操作系统,这是一个面向服务器的Linux发行版。openEuler同样支持包括国产芯片在内的多种CPU。作为服务器操作系统,根据赛迪《中国服务器操作系统市场研究报告》,2021年在政府行业,以及民生相关的运营商行业、金融、能源等行业,openEuler的装机量都位居前两名,例如政府行业装机量中,openEuler占比35.2%,位居第一。


    最后
    整体来说,目前国产Linux操作系统目前处于「可用」状态(非「好用」),这些操作系统有别于国外发行版的核心特点是对国产CPU(海思、飞腾、兆芯、龙芯、海光及申威等)的支持和优化、安全性增强(毕竟信创的背景之一就是「棱镜门」事件)、对国内常用软件的优化支持等。虽然在个人用户中普及率还很低,但在党政机关和8大民生行业(金融、电信、石油、电力、交通、航空航天、医院、教育)中,已经有比较高的普及率,尤其在党政核心部门,基本上已经100%换装国产Linux操作系统;在服务器操作系统市场,国产Linux操作系统市场份额上升显著,尤其在党政机关和重点民生行业,预计市占率超过20%。

    最后,文章侧重在桌面操作系统,移动端例如Android、iOS、以及国内的鸿蒙等,有机会再单独将。

    (欢迎扫描上图二维码关注公众号,可自动获得ChatGPT访问地址(本人自己搭建的跳板,可免费使用))

  • 相关阅读:
    Qlib股票数据获取与查看(Qlib学习1)
    8/14 思维+经典dp基础+tarjan算法
    Docker安装MySql教程步骤
    RGD环肽:环六肽c(GRGDSP),CAS号: 135432-37-0
    【CGRect Objective-C语言】
    iOS 嵌套 view 传值到 controller 的一种可行方案
    Day24-事务和数据库连接池
    龟速乘【模板】
    java-net-php-python-jspm餐饮管理系统演示录像2019计算机毕业设计程序
    使用百度EasyDL实现钢筋计数
  • 原文地址:https://www.cnblogs.com/morvenhuang/p/17592832.html