您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
gnu是什么意思 网络gnu是什么意思
内核,系统,操作系统gnu是什么意思 网络gnu是什么意思
发布时间:2016-12-08加入收藏来源:互联网点击:
很多朋友想了解关于gnu是什么意思的一些资料信息,下面是小编整理的与gnu是什么意思相关的内容分享给大家,一起来看看吧。
之前华为发布鸿蒙系统,引发了大家的广泛热议,也重新引起了一阵讨论操作系统的热潮。不过其实我发现很多朋友对操作系统内核这个概念还是不太了解,所以本文就为大家简单科普一下操作系统内核的一些知识,帮助大家了解这个操作系统领域的概念。
内核是什么操作系统的内核(英文名kernel)是操作系统最重要的一个部分,同时也是最底层的一个部分。它是沟通计算机硬件和软件之间的桥梁。一方面,内核直接和硬件底层打交道,任务调度、访问内存和其他硬件、读写文件等最底层操作都由内核完成,另外一方面它将一些重要功能开放为系统调用,供操作系统上层调用使用。
如果要打个比方的话,内核对于操作系统来说,应该就像汽车的轮子一样,支撑着所有底层功能的运行。内核神奇吗?不,其实内核一点也不神奇,它严格来说也就是一个程序而已,只不过这个程序有点特殊,直接负责和硬件打交道而已。
按照设计架构来分类的话,内核可以分成宏内核和微内核两大类。
宏内核就是一个大的内核,内核的所有功能全部包括进去,这样做会导致一个问题,那就是一旦内核某个部分出现问题,内核整个就会崩溃。但是这样做也有好处,那就是因为所有东西都在一个内核,没有模块间通讯和用户态切换的问题,因此宏内核的能很不错。Linux内核就是一个典型的宏内核。
与此对应的就是微内核,微内核的设计理念就是模块化,将不同的功能模块放到不同的进程中去运行。这样做的好处就是内核每个模块单独设计编码,某个模块出现问题,整个内核同样可以运行。不过微内核同样也有问题,因为不同的功能放到了不同的模块中,模块间的通讯反倒成了一个大问题。
所以又有了混合内核的概念,就是按照微内核的理念来设计,但是把一些常用的功能放到内核态以减少用户态和内核态切换的问题。Windows的NT内核就是混合内核。
操作系统历史那么可能有朋友要问了,既然内核看起来并不特殊,那么到目前为止为什么世界上只有几家有自己的内核呢?其实这种观点是错误的,如果研究过操作系统内核的历史,就会发现其实这个世界上有很多不同的操作系统内核,当然广泛使用的确实就那几家的。
首先我们要从Unix系统说起,Unix系统是AT&T公司的贝尔实验室研究开发的一款多任务多用户的操作系统。可能有朋友就会有疑问了,AT&T不是美国一家网络运营商嘛,没错,但是当年AT&T风头最盛的时候,科研实力可能比现在苹果微软谷歌加起来还厉害。
AT&T的贝尔实验室更是全世界科研人员心目中的圣地。你可能没听说过贝尔实验室,但是贝尔实验室发明的东西你肯定了解。晶体管、Unix操作系统、C语言这些全部都是贝尔实验室发明的。如果要打个比方的话,AT&T就是科研界的少林寺,而贝尔实验室就是达摩院。
好了,我们再说回到Unix系统,这个操作系统可以说是意义重大,对后来的Windows系统、macOS、linux系统都有深远的影响。甚至后面还出现了一个叫做POSIX的系统标准,凡是符合这个标准的系统,都是兼容Unix系统的。为了一个系统专门出了一个标准,可见这个系统的影响力有多广了。
首先咱们来谈谈现在广泛使用的linux内核,它的创始人林纳斯当初还是一个买不起Unix系统的学生,所以萌生了开发一个开源免费、完全兼容Unix的内核的想法。在开源社区的共同努力下,linux内核最终成功了,它成为了现在使用设备最多的内核,也是开源世界最成功的的开源产品没有之一。而Linux内核从出生到现在都有一点从未改变, 那就是完全兼容Unix。计算机专业的学生会学一门课《Unix操作系统》,学习这门课的时候你可以完全用Linux系统替代学习,完全没有压力。
然后再来聊聊苹果,苹果的所有系统产品macOS、iOS、watchOS、tvOS、iPadOS全部都基于苹果开发的类Unix操作系统Darwin(没错,Unix又在这里出现了)。而Darwin所用的内核叫做XNU(全名是X Is Not Unix),虽然名字说自己不是Unix,但是其实XNU也兼容了Unix的大部分功能。所以很多Linux下的工具,放到macOS中也一样可以用,因为它们本来就是师从同门嘛。
最后再来说说我们最常用的Windows操作系统,可能很多人都想不到它和Unix的关系。Windows系统的内核叫做NT,你可以用下面的命令来查看一下当前系统的NT内核版本。而在当年Windows系统发布的时候,微软就在NT内核中添加了POSIX子系统,可见微软的野心有多大了。
wmic os get version当然更加有趣的是后来微软在Win10系统中添加了WSL也就是Linux子系统,直接允许用户运行Linux程序。甚至现在即将发布的Win11还打算更进一步,通过安卓子系统来支持运行安卓程序。我只能说不愧是微软,一出手就是不一样。
说到这里我又想起来一个系统FreeBSD,它也是Unix的分支之一。Unix系统因为影响力太大,有多个不同的版本,其中一个知名的版本就是由加州伯克利大学开发的。后面这个版本就发展为了开源免费的FreeBSD,所以其实有人就说其实FreeBSD才是Unix系统的“正统续作”。FreeBSD现在其实也有很多地方在用,我们熟知的PS3、PS4主机,其实用的就是FreeBSD的系统。
除了这些大公司以外还有没有别的内核了呢?还是有很多的,虽然这些内核没有广泛使用,但是它们在自己的领域里同样发光发热,只是不出名而已。例如小米去年推出了自己的嵌入式开发平台Vela,而Vela基于的Nuttx操作系统,用的就是一个实时操作系统内核。
当然,现在其实就算是Linux内核也有很多版本,足以应付各种设备。而现在使用最广的安卓系统,用的正是Linux内核。因为Linux内核是开源软件,开源免费不受制裁,同时还有世界上最大的生态,因此是各种硬件厂商的首选。
Linux和安卓知乎现在很火的一个话题就是鸿蒙和安卓了。要讨论这个问题,首先我们就要搞明白安卓和Linux的关系。
其实严格说来Linux这个名字指的就是Linux内核,也就是上面讨论过的那个东西。而那些Linux操作系统,严格的名称应该叫做Linux发行版。而Linux发行版又是什么呢?其实就是Linux内核,再加上外围的GNU软件组成的。所以大家可以发现很多Linux系统都叫自己GNU/Linux。
那这个GNU又是个什么东西呢?可以说,GNU和Linux内核一样,是一项伟大的发明。GNU是自由软件基金会开发的一个类Unix系统(没错,还是那个Unix),目标就是成为一个完全开源免费的系统,让全世界的用户受益。自打GNU的目标提出以后,就收到了世界上很多程序员的欢迎,大家一起努力,将大量Unix软件移植过来,开发出了开源版实现,除了内核。
其实当初GNU那帮人也想自己实现一个微内核,可惜的是微内核虽然在理论上有诸多好处,但是工程上实现起来却不容易。所以虽然当时大部分外围的软件都有了,但是唯独缺了内核这一块。不过那个时候恰好林纳斯做了Linux内核,同样符合GNU开源免费的目标,两者一拍即合,形成了现在这个世界上最大的开源操作系统。从这个意义上说,这个世界上所有的Linux发行版,都可以称作是GNU/Linux的套壳。
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |