Answers:
首先,我们常常忘记了最初为我们提供“内核”一词的隐喻。隐喻是操作系统是种子或坚果。种子的“内核”是操作系统的核心,为应用程序提供操作系统服务,而应用程序则被用户从外部看到的种子的“外壳”所包围。
有些人想把“内核”(甚至是“壳”)束缚得比这更具体。但是实际上,整个操作系统之间存在很多差异。最重要的是,这些变体构成了一个“外壳”(范围从Solaris sh
到Netware的控制台命令解释器,再到OS / 2的Workplace Shell和Windows NT的Explorer),但是从一个操作系统到另一个操作系统,也有很多差异。什么是和不是“内核”的一部分(例如,可能包括或可能不包括磁盘I / O)。最好记住这些术语是隐喻。
还有其他术语。在IBM大型机术语中,种子/坚果隐喻中的“内核”称为控制程序。其他名称包括主管,监视器,核心人员和执行人员。核心是另一个相当明显的生物学隐喻。另一个名字也很有趣。Harvey M. Deitel在他的操作系统中称控制程序为核,并说
核通常代表通常认为是整个操作系统的代码的一小部分。
单词“ nucleus”来自拉丁语nucleus,表示坚果的核(参见Latin nux,意思是“ nut”)。因此,即使将控制程序称为“核心”,实际上也使这个操作系统像螺母一样。这是一个比喻,不仅用于操作系统。例如,如果您熟悉化学,就会知道原子核被壳中的电子包围。
假名人new123456
在下面写的内容举例说明了由于忘记这些隐喻的起源而导致的错误,以至于人们将整个部分误认为一部分,而将内核误认为整个操作系统。成为“用户区”程序不会使外壳更像是操作系统的外部,也不会使外壳更不像包围内核的那样。而且,它不是一个仅适用于DOS的思想,不适用于版本7以后的Unix,但这个思想在Unix世界中已经广泛流行和流行。
(具有讽刺意味的是,new123456
它误认为是DOS主义。内核/外壳隐喻对于DOS来说早在DOS时就很陌生了,它偏爱于CP / M中的命令处理器和类似命令。就像之前的CP / M一样,MS-DOS被划分了进入基本的磁盘操作系统(BDOS),基本的输入输出系统(BIOS-不是系统固件,请注意),命令处理器和内务处理实用程序,实际上是通过这种方式将代码打包成文件。例如,实际上,内核/外壳隐喻如何无法真正覆盖或完全匹配许多操作系统中的实际划分。)
new123456
忘记了Deitel写的关于核是整个操作系统一部分的东西。操作系统既是内核又是外壳程序。 毕竟就是隐喻。 Deitel也不是一个人。从1980年代开始,有大量的Unix书籍解释了Unix-as-a-a-nut的隐喻。我推荐Urban和Tiemann的“ 24小时自学FreeBSD”(SAMS,ISBN 9780672324246),原因很简单,在第54页上,它有一个图表说明了种子的操作系统隐喻,并且-令人惊讶地-是其中之一。很少有书籍这样做。
名称“核”可能是较旧的名称;肯定早于Unix,而后者更倾向于内核/外壳术语,而今天(可能在很大程度上要归功于Unix)在Unix / Linux中更为流行。以下是艾伦·肖(Alan C. Shaw)1974年出版的《操作系统的逻辑设计》(Prentice-Hall,ISBN 9780135401125)中的内容:
系统的永久驻留在主存储器中的那部分在历史上一直被称为核。原子核通常由最少的一组原语和过程组成,用于管理过程,资源和输入输出。肖也有一个图表。☺
@
在提及我的用户名时,请在某处,以便将其发布到我的响应队列中。
操作系统的其他部分包括与内核交互的驱动程序,还有多层帮助程序,用于处理用户界面,网络以及位于内核与实际应用程序之间的OS的其他核心部分。
举个例子,我已经展示了OS X的结构,如您所见,在内核(浅蓝色)之上,您需要先放置几层“核心”功能,系统工具,服务和API(应用程序编程接口)甚至进入GUI,这是您在实际应用程序中通常使用的GUI。
大多数操作系统具有相似的结构,但是在内核实际有多少方面存在很大的差异。请参阅Wikipedia上有关微内核的文章,以进行比较。
编辑-回答您的评论(我的评论有点长)
您可以仅引导linux内核,但是您将无法真正实现很大的成就,因为所有这些帮助程序都提供了您看到和使用的所有界面。
一旦启动了内核(并初始化了硬件),它将尝试移交给提供启动服务功能的GNU / Linux操作系统的其他部分(例如UDEV,其中填充/dev
了原始设备接口,以便程序使用诸如硬盘驱动器和串行端口等)以及用于设置网络的程序(dhcpcd)和API(例如X.org),以便应用程序能够通过诸如GNOME或KDE的窗口管理器显示窗口和图标。
但是,是的,您可以简单地引导内核本身,它会坐在那里并显示“我已经引导,现在呢?”。提示。