剖析Linux操作系统技术构成与发行本质
Posted 踩点
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剖析Linux操作系统技术构成与发行本质相关的知识,希望对你有一定的参考价值。
作者:IT圈黎俊杰
一、Linux与Linux操作系统的区别
在剖析Linux操作系统技术构成与发行本质前,我们先要清楚Linux和Linux操作系统的区别。
平时,我们将Linux和Linux操作系统很容易混为一谈,但其实,它们是可以有区别的,区别如下:
(1)Linux:Linux®已由LinusTorvalds注册为商标,所以只会有一个Linux,它是一个内核系统,通常我们把它当成一类Unix操作系统的统称,严格来说,它是指由Linus内核。
(2)Linux操作系统:它通常是指基于Linux内核二次开发出来的操作系统,它不能叫Linux,因为Linux是内核,所以它只能再取一个名字,如Redhat Linux,Redhat是一个公司名称,并被注册成商标,Redhat Linux就是指Redhat公司基于Linux内核开发出来,使用Redhat商标而发行的操作系统。
二、Linux操作系统的技术构成
Linux操作系统=Linux内核+应用程序
Linux内核:只有一个,LinusTorvalds作为创始人与拥有商标权,代码全部开源,交由Linux基金会负责维护管理,基金会Kernel SIG项目成员均可以贡献代码、提交合并请求,全球所有人都可以下载(会不会受政府出口管制和贸易法规限制、代码作者的特定限制在此不论)、学习和使用,但使用它时需要遵特对应的开源协议。
应用程序:是指基于Linux内核之上,开发的应用软件,通过调用内核接口,达到驱动硬件工作的向用户提供人机对话应用的各类程序,包含图形化软件等,操作系统厂家干的主要是这个工作,当然还包括对接硬件厂商将驱动程序进行可合并进内核的代码开发,并提交内核合并需求。
三、支持Linux发行版的巨人肩膀
这里说的支持Linux发行版的巨人,是指GNU。
GNU 于1983年由Richard Stallman(rms)发起,意在为所有软件用户能够自由控制自己的计算而构建一款由大家共同努力开发而成的操作系统。
GNU的全称为GNU's not unix,意思是“GNU不是UNIX”,GNU计划,又称革奴计划,是FSF的主要项目。GNU的目标是提供一个和Unix兼容的100% 自由软件的操作系统。GNU由自由软件基金会支持,这也是由rms创建的倡导自由软件理念的非盈利组织。
GNU类Unix操作系统是由一系列应用程序、系统库和开发工具构成的软件集合,例如:Emacs 编辑软件、gcc 编译软件、bash 命令解释程序和编程语言,以及gawk (GNU’s awk) 等程序库和工具,非常强大,质量也很好,甚至许多Unix操作系统上都安装了许多GNU软件,但是GNU自己的内核Hurd一直在开发中。
庆幸的是,我们不用再等 Hurd 内核了,因为到了1991年,有了Linux内核的发布,并在网上广泛流传。当 Linus Torvalds 在 1992 年使 Linux 成了自由软件,它填补了 GNU 系统的一个重要空白。人们可以把 Linux 和 GNU 系统结合起来 组成一个完整的自由系统:“一个带有 Linux 的 GNU 系统”。换句话说,就是 GNU/Linux系统。
虽然在2001年开始GNU的Hurd内核可以稳定工作,但是离能够被人们正常使用还有很长的路要走,所以完全属于GNU的完整操作系统并没有流行起来。
四、巨人肩膀上的Linux发行版操作系统
内核是操作系统的基本部分,但是只能在完整的操作系统框架下才能发挥作用。
如果基于Linux内核完全独立自主开发完整的操作系统,难度是巨大的,有句话说“核弹研发难度远不如操作系统”。
事实上,在有Linux内核和GNU操作系统的时代,一般是Linux内核和GNU操作系统一起使用,整个系统基本上就是Linux内核加上GNU,叫做GNU/Linux。
GNU/Linux操作系统以GPL协议开放,无疑成了众多操作系统开发者的曙光,那就是基于Linux内核,站在GNU巨人的肩膀上,二次开发发行版操作系统。事实上,现在在运行的 linux 实际上都是 GNU/linux 的发行版,被叫做“Linux”的发行版实际上是GNU/Linux发行版。
即便使用Linux内核+GNU能够组织成发行版,但实际上,要把它们组合到一起并不是一个简单的工作。有些 GNU 部件需要作大量的修改才能适应 Linux。把系统集成到一个完整的发行版本中、使之“能够直接安装并工作”也是一项艰巨的工作,同时,发行版操作系统还会加入很多自主研发的应用产品加入Linux操作系统中,Linux操作系统研发是一项伟大的工作。
列几个大家常用的命令,来更加简单的理解一下GNU所提供的能力吧:
grep
gzip
tar
make
......
这些在Linux操作系统运维过程中高频率使用的工具命令,都是来自于GNU。
(1)属于GNU/Linux的发行版操作系统点点名看:
fefora、Redhat、CentOS、OpenSUSE、SUSE、Debian、Ubuntu等。
--国产操作系统就不在此点名了,真要点名可能都会在此列(经笔者测试过的都是GNU/Linux)。
(2)基于Linux内核开发,完全没有使用GNU的操作系统:
android 比较特殊,其基于linux内核,而又没有使用GNU的套件,所以Andriod并不属于GNU/linux,可以说Android 是linux发行版,但是又不是GNU/linux分支。
扫码关注IT圈黎俊杰公众号,一起探讨IT技术人生!
坚持原创发表,如发现有不妥与不正确之处,欢迎指正。IT圈黎俊杰虚心向大家学习!
以上是关于剖析Linux操作系统技术构成与发行本质的主要内容,如果未能解决你的问题,请参考以下文章