“deepin”到底算不算是国产操作系统?

这篇笔记,不记录应用软件,不测评游戏,专门讨论一下这个问题:deepin到底算不算“国产系统”?

总有人说不是。他们的理由很简单:因为 deepin 是基于 linux 内核的,而他们认为 linux 内核是“别人的东西”,不属于中国,所以基于 linux 内核而开发出来的操作系统就“不配、也不应该自称、或者被称作国产操作系统”。看起来好像“很有道理”的样子。但这里实际上有几个隐藏问题需要解决、或者说得先了解清楚:

第一,什么是操作系统内核,它起什么作用?

这里直接援引度娘百科的解释:

度娘百科里有关【内核】的词条解释

内核是操作系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。内核的分类可分为单内核和双内核以及微内核。严格地说(或者从理论上来讲,编者注),内核并不是计算机系统中必要的组成部分。

重点强调一遍:内核并不是计算机系统中必要的组成部分!

在早期的计算机(电脑)中,程序可以直接地被调入计算机中执行,不需要任何硬件抽象和操作系统的支持。后来,一些辅助性程序,例如程序加载器和调试器,被设计到机器核心当中,或者固化在只读存储器里——这些变化发生时,操作系统内核的概念就渐渐明晰起来了。

所以,电脑操作系统的产生与发展,其实是排在应用程序之后的。

即——先有了可以运行在电脑上的应用程序,接着才出现了操作系统!

当然,现在的电脑或者其它智能设备的用户已经完全离不开操作系统了,毕竟发展到现在这个时代,几乎所有的应用都必须依赖于操作系统才能运行。可以说,如今这个时代,若是没有操作系统,用户什么应用都实现不了。

那么,操作系统内核到底起什么作用呢?

简单理解,内核的作用是:负责管理电脑系统的进程、内存、设备驱动,管理文件系统和网络系统。

第二,自己开发一个操作系统内核有多难?它是核心技术吗?

答案是——并不难,甚至可以说是很简单!

“自己开发内核”什么的,根本不是多难的项目,它甚至还很基础,根本不是什么“核心技术”,甚至离这个概念还差了N个筋斗云的距离。

别忘了,linux 的创始人 Linus 当年写出第一版 linux 操作系统内核的时候,还是个年仅21岁的大学生。那时候他还没登上神坛成为大神,大概也没想到他创造的 linux 系统后来能改变世界。

他当初写出第一版 linux 操作系统内核的原因十分简单:他经常要用他的终端仿真器(Terminal Emulator)去访问大学主机上的新闻组和邮件,为了方便读写和下载文件,他自己编写了磁盘驱动程序和文件系统,这些在后来成为了 Linux 第一个内核的雏形。

linux之父Linus(图片来源:百度百科词条)

综上所述,完全可以得出这样的结论:从理论上来讲,“自主研发”操作系统内核并不难,甚至还很简单。Linus 能在21岁时编写出 linux 操作系统的雏形,现在20出头的大学生也可以,甚至还有可能比他当年做得更好。

这里还要提及一点:有人人为 linux 内核是美国的,但事实上并非如此。Linus 是芬兰人,他编写出最早的 linux 内核的雏形的时候,在位于芬兰首都赫尔辛基的赫尔辛基大学就读。所以,linux 是诞生在 芬兰的。

第三,既然“自主研发”操作系统内核并不难,那为什么国产系统还非要用 linux 内核?

自己独立自主研发一个不行么?难道是他们都是“拿来主义”者,全都懒得自己动手?答案是——并非如此。事实上,编写一个操作系统、并让它具有通用性,难点根本不在编写系统内核上。这里只提一点:操作系统必须得有硬件支持,这里的支持包括但不限于各种硬件的驱动程序。

前面已经提到过,系统内核的作用之一,便是管理硬件驱动。linux 之所以具有通用性,最重要的原因之一便是它几乎可以在所有的硬件设备上运行。无论是基于 x86 架构处理器的电脑。还是基于 ARM 架构处理器的树莓派开发板。

树莓派

甚至连基于 RISC 架构的龙芯电脑,使用的操作系统也是基于 linux 内核的。

龙芯

保证 linux 操作系统具备通用性的基础,便是 linux 内核中集成了几乎所有的硬件驱动。从这个意义上来说,linux 内核本身就是一个超级大的硬件驱动包!

而这是需要广大硬件厂商的支持的,或者说,linux 内核的通用性,是在广大硬件厂商的支持下实现的!这,才是国产操作系统非要基于 linux 来做的、真正的、最重要的原因之一!前面也已经提到过——从理论上来讲,想要”自主研发“自己编写出一套最基础的操作系统内核一点都不难。

可是接下来要如何才能集成到足够的硬件驱动呢?既然已经有很成熟的 linux 存在了,一个全新的、毫无根基的操作系统内核,得拿什么来请全世界的硬件厂商提供驱动支持?这……不是开玩笑吗?

所以,某些网友所希望的”完全自主研发通用操作系统“其实是没有可能实现的——实际上实现不了,甚至理论上都没可能。

做梦倒是可以。或者写一部爽文小说来YY一下……能力逆天的主角成立了一间公司,从采集沙子炼制单晶硅开始,自立门户制造出全套硬件,并自己从机器语言开始写代码,做出了操作系统及所有的应用软件。呵呵哒……然后那些喷“用了 linux 内核就不是国产操作系统”的喷子们的自豪感就可以得到满足了。

第四,早期的 linux 系统并没有什么通用性。

它只是一个大学生为了满足自己的使用需求而编写的一套磁盘管理程序及文件管理系统。

后来,Linus 在自由软件之父理查德·斯托曼(Richard Stallman)的感召之下,以 linux 这个名字,将他编写的这套磁盘管理程序及文件管理系统加入到了自由软件基金( FSF)的 GNU 计划中,并通过 GPL 的通用性授权,允许用户销售、拷贝并且改动程序,但你必须将同样的自由传递下去,而且必须免费公开你修改后的代码。

简单理解——Linus 创造了 linux 操作系统的雏形,并开放了它的源代码,自那以后,linux 就是自由软件。

只要坚持自由软件的精神、遵守开放源代码协议,任何组织和个人都可以免费的获取到 linux 的源代码,并有权对它进行改造、复制和销售。所以,是 Linus 自己放弃了 linux 内核源代码的所有权,并将它交给了全世界。所以,linux 内核并不专属与任何组织和自然人。

linux 内核不是美国的、也不是芬兰的,它不专属于人和国家;它不属于红帽子公司,也不属于武汉深之度科技有限公司,它不属于任何公司。

它是全世界、全人类的共同财富!事实上,几乎所有基于 linux 而开发出来的 linux 发行版操作系统都遵守着开放源代码协议,无论任何公司的任何产品,任何用户都可以获取到它的源代码,并有权加以改动,重制成全新的发行版。正是因为开源,linux 才会得到全世界的软硬件厂商、得倒全世界众多支持开源社区的程序员们的支持,并以此为基础发展到了今天。

换个角度来看 linux 内核——内核并不是应用软件,它更像是一套规范化的标准。不太恰当的用小汽车来做类比。先说一下小汽车的共同特征。

几乎所有的小汽车,无论它是什么牌子,基本结构几乎都差不多。它们都拥有四个使用橡胶制成的轮子。它们都有发动机、都有方向盘。它们的车厢里都有沙发。它们的车窗都是用玻璃制成的。无论左舵还是右舵,它们绝大部分时间都行驶在水泥制成的公路上,理论上都得遵循内容差不多的交通法规、遵守红绿灯的指示通行……

linux 内核定义了基本的文件系统结构,规范了相对统一的软件运行环境,明确了硬件及硬件驱动以什么方式组织、又怎样运行……这样的说法并不很准确,但也容易理解。

全世界的小轿车,无论是BBA还是奇瑞吉利比亚迪,基本结构都是差不多的,我们不能因为现代汽车的始祖奔驰轿车是一只方向盘四只车轮、而奇瑞吉利比亚迪的轿车也是一样,就说他们“都不是国产轿车”;同样的,我们也不能因为 deepin 应用了 linux 内核,大体上遵循了所有 linux 操作系统都遵循的共同标准而说它“不是国产操作系统”。

第五,linux 内核≠linux 发行版。

linux 的内核和系统是互相独立的。内核有专门的维护升级团队(www.kernel.org)。linux 发行版是各厂商,社区组织利用 linux 内核,在上面组织自己的软件架构做出可用的操作系统。

第六,华人(华裔)对 linux 内核所做出的贡献。

到底是谁在为 linux内核提供代码?他们来自哪里?见下图:

linux 内核代码贡献排名

原地址:https://www.remword.com/kps_result/all_whole_country.html排在第一位的是 Unknown,意思是无法确定代码提供者的国籍。排在第四位的是 Chinese——这里的“Chinese”所指是“华裔”的意思。

即,无论代码提供者的国籍是不是中国人(包括法人和自然人)、无论他是否定居在中国,只要他声称自己是“Chinese ”,那么他对 linux 内核代码所做的贡献就会被归类在“Chinese ”之下。

接着点开“Chinese”项目明细,我们可以看到 huawei !是华为!来自华为的代码提供者 Wei Yongjun,在 linux 内核代码提供排名第四的“Chinese”项目下是NO.2!

l来自华为的代码提供者 Wei Yongjun 在Chinese项目下排名第二

总结

毫无疑问,尽管 linux 并非“国产”,但基于linux 内核而生的 deepin 就是国产操作系统。

作者:鱼丸