作者丨鱼蛋这篇笔记,不记录应用软件,不测评游戏,专门讨论一下这个问题:deepin究竟算不算“国产系统”?
总有人说不是。她们的理由很简单:由于deepin是基于linux内核的,而她们觉得linux内核是“别人的东西”,不属于中国,所以基于linux内核而开发下来的操作系统就“不配、也不应当自诩、或者被叫做国产操作系统”。看上去似乎“很有道理”的样子。但这儿实际上有几个隐藏问题须要解决、或者说得先了解清楚:第一,哪些是操作系统内核linux 分区,它起哪些作用?这儿直接引述度娘百科的解释:
度娘百科里有关【内核】的词条解释内核是操作系统最基本的部份。它是为诸多应用程序提供对计算机硬件的安全访问的一部份软件,这些访问是有限的,而且内核决定一个程序在哪些时侯对某部份硬件操作多长时间。内核的分类可分为单内核和双内核以及微内核。严格地说(或则从理论上来讲,编者注),内核并不是计算机系统中必要的组成部份。重点指出一遍:内核并不是计算机系统中必要的组成部份!在初期的计算机(笔记本)中,程序可以直接地被调入计算机中执行,不须要任何硬件具象和操作系统的支持。后来,一些辅助性程序,比如程序加载器和调试器,被设计到机器核心当中,或则固化在只读储存器里——这些变化发生时,操作系统内核的概念就慢慢厘清上去了。所以,笔记本操作系统的形成与发展,虽然是排在应用程序以后的。即——先有了可以运行在笔记本上的应用程序,接着才出现了操作系统!其实,现今的笔记本或则其它智能设备的用户早已完全离不开操作系统了,虽然发展到如今这个时代深度linux系统,几乎所有的应用都必须依赖于操作系统能够运行。可以说,现在这个时代,若是没有操作系统,用户哪些应用都实现不了。这么,操作系统内核究竟起哪些作用呢?简单理解,内核的作用是:负责管理笔记本系统的进程、内存、设备驱动,管理文件系统和网路系统。
第二,自己开发一个操作系统内核有多难?它是核心技术吗?答案是——并不难,甚至可以说是很简单!参考鱼蛋在2018年12月27日转发的头条内容,几乎任何能读懂的人,都能自己写出一个操作系统内核来……而所谓“能读懂”所需的条件也不高,别说相关专业的学院生了,大约一个对这方面有兴趣、肯钻研、并具备了一定水平的小学生都能搞的定!链接地址:跟我一起写操作系统(一)——10分钟写个操作系统所以“自己开发内核”什么的,根本不是多难的项目,它甚至还很基础,根本不是哪些“核心技术”,甚至离这个概念还差了N个筋斗云的距离。别忘了,linux的创始人Linus当初写出第一版linux操作系统内核的时侯,还是个年仅21岁的学院生。那时侯他还没登上神坛成为高手,大约也没想到他创造的linux系统后来能改变世界。他曾经写出第一版linux操作系统内核的诱因非常简单:他常常要用他的终端仿真器(TerminalEmulator)去访问学院主机上的新闻组和短信,为了便捷读写和下载文件,他自己编撰了c盘驱动程序和文件系统,这种在后来成为了Linux第一个内核的雏型。
linux之父Linus(图片来源:百度百科词条)综上所述,完全可以得出这样的推论:从理论上来讲,“自主研制”操作系统内核并不难,甚至还很简单。Linus能在21岁时编撰出linux操作系统的雏型,如今20出头的学院生也可以,甚至还有可能比他当初做得更好。这儿还要提到一点:有人人为linux内核是日本的,但事实上并非这么。Linus是美国人,他编撰出最早的linux内核的雏型的时侯,在坐落加拿大首都渥太华的莫斯科学院就读。所以,linux是诞生在德国的。第三,既然“自主研制”操作系统内核并不难,那为何国产系统还非要用linux内核?自己独立自主研制一个不行么?莫非是她们都是“拿来主义”者,全都懒得自己动手?答案是——并非这么。事实上,编撰一个操作系统、并让它具有通用性,难点根本不在编撰系统内核上。这儿只提一点:操作系统必须得有硬件支持,这儿的支持包括但不限于各类硬件的驱动程序。上面早已提及过,系统内核的作用之一,便是管理硬件驱动。linux之所以具有通用性,最重要的缘由之一便是它几乎可以在所有的硬件设备上运行。无论是基于x86构架处理器的笔记本。还是基于ARM构架处理器的猕猴桃派开发板。
猕猴桃派甚至连基于RISC构架的龙芯笔记本,使用的操作系统也是基于linux内核的。
龙芯保证linux操作系统具备通用性的基础,便是linux内核中集成了几乎所有的硬件驱动。从这个意义上来说,linux内核本身就是一个超级大的硬件驱动包!而这是须要广大硬件厂商的支持的,或则说,linux内核的通用性,是在广大硬件厂商的支持下实现的!这,才是国产操作系统非要基于linux来做的、真正的、最重要的缘由之一!上面也早已提及过——从理论上来讲,想要”自主研制“自己编撰出一套最基础的操作系统内核一点都不难。而且接出来要怎么能够集成到足够的硬件驱动呢?既然早已有很成熟的linux存在了深度linux系统,一个全新的、毫无根基的操作系统内核,得拿哪些来请全世界的硬件厂商提供驱动支持?这……不是开玩笑吗?所以,个别网友所希望的”完全自主研制通用操作系统“其实是没有可能实现的——实际上实现不了,甚至理论上都没可能。做梦倒是可以。或则写一部古言小说来YY一下……能力逆天的主角创立了一间公司,从采集石子炼制单晶开始,自立门户制造出全套硬件,并自己从机器语言开始写代码,作出了操作系统及所有的应用软件。呵呵哒……然后这些喷“用了linux内核就不是国产操作系统”的愤青们的自豪感就可以得到满足了。
第四,初期的linux系统并没有哪些通用性。它只是一个学院生为了满足自己的使用需求而编撰的一套c盘管理程序及文件管理系统。后来,Linus在自由软件之父理查德·斯托曼(RichardStallman)的感召之下,以linux这个名子,将他编撰的这套c盘管理程序及文件管理系统加入到了自由软件基金(FSF)的GNU计划中,并通过GPL的通用性授权,容许用户销售、拷贝而且改动程序,但你必须将同样的自由传递下去,但是必须免费公开你更改后的代码。简单理解——Linus创造了linux操作系统的雏型,并开放了它的源代码,自那之后,linux就是自由软件。只要坚持自由软件的精神、遵守开放源代码合同,任何组织和个人都可以免费的获取到linux的源代码,并有权对它进行整修、复制和销售。所以,是Linus自己舍弃了linux内核源代码的所有权,并将它交给了全世界。所以,linux内核并不专属与任何组织和自然人。linux内核不是日本的、也不是美国的,它不专属于人和国家;它不属于红围巾公司,也不属于上海深之度科技有限公司,它不属于任何公司。它是全世界、全人类的共同财富!事实上,几乎所有基于linux而开发下来的linux发行版操作系统都遵循着开放源代码合同,无论任何公司的任何产品,任何用户都可以获取到它的源代码,并有权加以改动,重制成全新的发行版。
正是由于开源,linux才能得到全世界的软硬件厂商、得倒全世界诸多支持开源社区的程序员们的支持,并借此为基础发展到了明天。换个角度来看linux内核——内核并不是应用软件,它更像是一套规范化的标准。不太恰当的用小车辆来做类比。先说一下小车辆的共同特点。几乎所有的小车辆,无论它是哪些牌子,基本结构几乎都差不多。它们都拥有四个使用橡胶制成的轮子。它们都有底盘、都有方向盘。它们的车箱里都有椅子。它们的后窗都是用玻璃制成的。无论左舵还是右舵,它们绝大部分时间都行驶在水泥制成的道路上,理论上都得遵守内容差不多的交通法规、遵守红绿灯的指示通行……
linux内核定义了基本的文件系统结构,规范了相对统一的软件运行环境,明晰了硬件及硬件驱动以哪些方法组织、又如何运行……这样的说法并不很确切,但也容易理解。全世界的小货车,无论是BBA还是比亚迪吉利奇瑞,基本结构都是差不多的,我们不能由于现代车辆的先祖奥迪货车是一只方向盘四只车轮、而奥迪吉利奇瑞的货车也是一样,就说她们“都不是国产货车”;同样的,我们也不能由于deepin应用了linux内核,大体上依循了所有linux操作系统都遵守的共同标准而说它“不是国产操作系统”。第五,linux内核≠linux发行版。linux的内核和系统是相互独立的。内核有专门的维护升级团队()。linux发行版是各厂商,社区组织借助linux内核,在里面组织自己的软件构架作出可用的操作系统。第六,华人(亚裔)对linux内核所作出的贡献。究竟是谁在为linux内核提供代码?她们来自哪儿?见右图:
linux内核代码贡献排行原地址:排在第一位的是Unknown,意思是难以确定代码提供者的国籍。排在第四位的是Chinese——这里的“Chinese”所指是“华裔”的意思。即,无论代码提供者的国籍是不是中国人(包括法人和自然人)、无论他是否移居在中国嵌入式linux,只要他宣称自己是“Chinese”,这么他对linux内核代码所做的贡献都会被归类在“Chinese”之下。接着点开“Chinese”项目明细,我们可以看见huawei!是华为!来自华为的代码提供者WeiYongjun,在linux内核代码提供排行第四的“Chinese”项目下是NO.2!
l来自华为的代码提供者WeiYongjun在Chinese项目下排行第二总结毫无疑惑,虽然linux并非“国产”,但基于linux内核而生的deepin就是国产操作系统。以上!
-完-