Linux、内核与发行版:区别在哪?
本文由Jzwalliser原创,发布在CSDN平台上,遵循CC 4.0 BY-NC-SA协议。
因此,若需转载/引用本文,请注明作者并附原文链接,不得用于商业用途。
违者必究,谢谢配合。
个人主页:blog.csdn.net/jzwalliser
初来乍到的新手们大概都会像我一样,被Linux及一大堆派生名词搅得头晕脑胀。所以这回,就来“扫扫盲”,解析一下几个新名词:Linux、GNU/Linux和发行版。
Linux
严格地来说,Linux并不是一个操作系统,而是一个内核。
神马?不是很多书、文章上都说“Linux操作系统”吗?
别急,听我慢慢说。
之前看到一篇文章,里面在解释Linux时,将其比作了发动机——这个比喻很贴切,所以,我也将围绕着这个类比来展开话题。
发动机……相信大家都很熟悉吧。没有它,就不会有汽车、公交车、火车乃至飞机(要是有什么地方说得不严谨别喷我,我这只是个类比;还有我知道飞机上那东西叫“引擎”,但为了方便,这里还是称其为“发动机”)。
所以说,发动机就是这些交通工具的内核。
同理,对于操作系统来说,它们也有自己的内核。而对于前面提到的“Linux操作系统”,如Debian、Ubuntu、Fedora等等的来说,它们的内核就是“Linux”。
而发动机也有很多类型,比如L型、V型、H型的等等等等,它们分别装配在了不同的车子上,有着不同的工作方式、性能指标。
而在操作系统的世界里,内核也有很多,包括NT、Mach、Linux、SunOS、XNU等等。其中,NT是Windows的专属内核,Mach 和XNU是MacOS使用的内核,SunOS是Solaris独家的;而Linux内核,则存在于每一个Linux操作系统中。
Windows的NT内核是闭源的(除了内部人员,其他人看不到代码),而Linux内核则开源,任何人都可以在网上找到它的代码。这样有什么好处呢?世界各地的人都可以审查、改进它,使Linux内核越来越完善。而且,Linux内核代码可以下载后自由修改,修改完的结果还可以发布出去给别人使用。于是就有了各种不同的Linux操作系统,用于不同的用途:嵌入式、移动电话、个人计算机、服务器、超级计算机等。
有点感觉了吧?所以说,Linux,严格意义上指的是内核而不是操作系统,它负责管理硬件、进程和内存等系统资源。
顺便给大家贴个漫画,这幅图描绘了Linux内核的场景,个人感觉还是很有意思的:
图片来自Turnoff,CC 4.0 BY-NC-SA
GNU/Linux
接下来,聊聊GNU/Linux。
前面提到Linux其实就是一个内核。然而,内核是无法直接操作的。就像你能驾驶一辆车子,但不可能驾驶着一个发动机吧?
于是,GNU闪亮登场(实际上,GNU比Linux诞生更早——但这不是讨论的重点)。
还是回到那个发动机的类比:有了发动机,那就需要制作汽车的重要部件,包括方向盘、刹车、油门等一系列用于控制汽车的组件。
而GNU就负责这个。有了它,就终于有了现在很多Linux操作系统的雏形。它就像是用户和内核之间的翻译官:用户输入命令,GNU组建负责把指令翻译给内核,然后由内核负责执行(当然,这里刻意简化了很多细节,方便理解)。
所以说,Linux的操作系统其实叫“GNU/Linux”——它强调 Linux 系统由 Linux 内核和 GNU 项目工具共同构成。
插个题外话:你们知道GNU的全称是什么吗?
答:GNU is not UNIX。
是的,我没打错,“GNU”里面的“G”其实代表“GNU”……这是个递归缩写。类似的还有XNU(X is not Unix)、WINE(WINE is not an Emulator)。
发行版
终于,有了发动机、方向盘等控制组件,就有了汽车的骨架。
然而,这一切仍然不太够。骨架有了,确实是可以开了,但是为了驾驶员的舒适以及一些其他目的,车子里面还得有沙发、空调、各种仪表盘吧。
但是,这些东西该怎么搞,不同人有不同的想法。
比如,对于仪表盘的设计,人们展开了激烈的辩论。
“仪表盘应该用机械仪表。”
“不行,应该用显示屏,这样可以在上面同时显示速度、加速度、电量等信息,不比你那破仪表盘更实用?”
“拉倒吧,我觉得应该搞个大音响,实时播报当前速度、加速度、油量等,这样仪表盘都省了,岂不是很酷?”
……
大家对于汽车的细节构造有着不同的见解。但都是文明人,总不能打起来吧?
于是有了不同的发行版。
有着相同想法的人,聚集到了一起,一起制作它们理想的汽车。
同样,在Linux社区,有着不同观点的人们开发出了不同的发行版。比较出名的有Debian、Ubuntu、Fedora、OpenSUSE、Arch、Manjaro、Deepin、Zorin OS……这些发行版都已经是很完整的操作系统了。不同发行版有着不同的功能,服务于不同的人群。
而这些发行版中,依然可以分出类别:
Debian系:Debian、Ubuntu、Deepin、Zorin OS、Kali等
Fedora系:Fedora、Redhat、openSUSE、CentOS等
Arch系:Arch、Manjaro等
其它:Alpine、Slackware、Gentoo等
其中,Debian、Fedora和Arch可以说是“子孙满堂”了,因为有大量的发行版是基于它们的。
什么意思呢?因为Linux内核本身开源,而且使用了……GPL协议,这就要求使用了Linux内核的Linux发行版也必须开源(你既然用了我的代码,制作了自己的发行版,那你也必须像我一样,把你的代码开源出来。什么,不想贡献你的代码?那有本事就不要用我Linux内核)。就拿Ubuntu来说:Ubuntu的开发者看到了Debian发行版的代码,深感其优雅,于是决定,在Debian代码的基础上,开发出新的发行版。而Debian、Fedora、Arch这三个发行版是“被借鉴”得最多的,当然就“子孙满堂”了啦。
总结:发行版是基于 Linux 内核的完整操作系统,如 Ubuntu、Fedora、Arch等。
结尾
好啦,到此文完。你有什么想说的吗?欢迎评论!下期再见~
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)