内核 Kernels – 操作系统的心脏

任何在操作系统中使用技术的人都在使用内核,尽管经常没有意识到这一点。 内核在每台计算机中组织进程和数据,它是操作系统的核心和软硬件之间的接口。 这意味着内核一直在使用,并且是操作系统的关键组件。

内核不仅是系统的核心,也是控制所有处理器和内存访问的程序。 它负责最重要的驱动程序并可以直接访问硬件。 它是硬件和软件之间交互的基础,并尽可能有效地管理它们的资源。下面大眼仔旭就带领大家一起了解什么是内核(Kernels )。

什么是内核?

内核是操作系统的核心,控制着硬件的所有重要功能:Linux、macOS 和 Windows、智能手机、服务器和虚拟化(如 KVM)以及所有其他类型的计算机都是如此。

内核的结构

内核始终以相同的方式构建,并由多个层组成:
1、最深层是与硬件(处理器、内存和设备)的接口,例如管理网络控制器和 PCI Express 控制器。
2、最重要的是内存管理,这需要分配内存,包括虚拟主内存。
3、然后是进程管理(调度程序),它负责时间管理并使多任务处理成为可能。
4、下一层包含设备管理。
5、最高层是文件系统。 这就是将进程分配给内存或硬盘驱动器的地方。

进程

内核是所有层的核心,从系统硬件到应用软件。 它的工作在用户访问开始的地方结束:在图形用户界面 (GUI)。 因此,内核与外壳(即用户界面)相邻。 您可以将内核想象为种子或核,将壳想象为核周围的果实。

什么是计算机程序中的内核?

在这种情况下,内核就像上校一样:它们都传递命令。 程序向内核发送“系统调用”,例如在写入文件时。 内核精通 CPU 的指令集,然后将系统调用转换为机器语言并将其转发给 CPU。 所有这一切通常发生在后台,用户不会注意到。

内核的任务是什么?

内核的主要任务是多任务。 这需要跟上时间限制并保持对其他应用程序和扩展的开放。

对于每个规则,在像操作系统这样精益、运行良好的系统中都有例外。 这就是为什么在涉及系统软件、库和应用软件时,内核只是充当中间人的原因。 在 Linux 中,图形界面独立于内核。

注意
在多用户系统中,内核还监视对文件和硬件组件的访问权限。 任务管理器在任何给定时间显示这些内容。 如果用户完成了一个进程,任务管理器会向内核提供停止进程并释放用于它的内存的指令。

当计算机启动时,内核是第一个加载到内存中的东西。 这发生在一个受保护的区域,即引导加载程序,因此内核不能被更改或删除。

之后,内核初始化连接的设备并启动第一个进程。 加载系统服务,启动或停止其他进程,启动用户程序和内存分配。

内核如何工作?

这个问题最好通过反击来回答:内核不是什么? 内核不是处理器的核心,而是操作系统的核心。 内核也不是 API 或框架。

多内核操作系统可以使用多核处理器的各种内核,例如独立 CPU 的网络。 这是如何运作的? 它归结为内核的特殊结构,它由一系列不同的组件组成:

由于内核的最低层是面向机器的,它可以直接与硬件、处理器和内存通信。 内核的功能在其五层之间有所不同,从处理器管理到设备管理。 最高层不能访问机器,而是负责与软件接口。
应用程序在操作系统中与内核分开运行,仅利用其功能。 没有内核,程序和硬件之间的通信将是不可能的。
由于多任务内核,多个进程可以同时运行。 但通常情况下,CPU 一次只能处理一个动作——除非您使用的是多核系统。 进程的快速变化给人以多任务处理的印象是由调度程序处理的。

从这些组件遵循内核的四个功能:

1、内存管理:调节不同地方使用的内存量。
2、进程管理:确定 CPU 可以使用哪些进程,以及它们使用的时间和时间。
3、设备驱动程序:硬件和进程之间的中介。
4、系统调用和安全:从进程接收服务请求。

如果实现得当,内核的功能对用户是不可见的。 内核在它自己的设置内核空间中工作。 另一方面,文件、程序、游戏、浏览器以及用户看到的一切都位于用户空间中。 这两者之间的交互使用系统调用接口(SCI)。

操作系统中的内核

要理解内核在操作系统中的作用,可以把计算机想象成三个层次:

1、硬件:系统的基础,由内存、处理器和输入输出设备组成。 CPU 对内存进行读写操作和计算。
2、内核:操作系统与 CPU 接触的核心。
3、用户进程:内核管理的所有正在运行的进程。 内核使进程和服务器之间的通信成为可能,也称为进程间通信 (IPC)。

系统中的代码有两种模式:内核模式和用户模式。内核模式下的代码可以无限制地访问硬件,而用户模式下的访问仅限于 SCI。如果用户模式出现错误,则不会发生太多事情。内核将进行干预并修复任何潜在的损坏。另一方面,内核崩溃会导致整个系统崩溃。但是,由于采取了适当的安全措施,这不太可能。

存在什么样的内核?

前面描述的一种内核是多任务内核,它描述了在一个内核上同时运行的多个进程。如果您为其添加访问管理,您将拥有一个多用户系统,多个用户可以同时在该系统上工作。内核负责身份验证,因为它可以分配或分离被调用的进程。

什么是开源内核?

Linux 在其内核上维护着一个综合档案。 Apple 已发布其所有操作系统的内核类型以供开源访问。 Microsoft 还为 Linux 的 Windows 子系统使用了 Linux 内核。

注意
很容易忘记不同的内核类型。 Linux 系统和 Android 设备使用 Linux 内核。 Windows 使用 NT 内核,各种子系统都利用它。 Apple 使用 XNU 内核。

三种类型的内核

有多种类型的内核可用于不同的操作系统和终端设备。它们可以分为三组:

单片内核:用于各种任务的大型内核。它负责内存和进程管理以及进程之间的通信,并提供驱动程序和硬件支持的功能。这是 Linux、OS X 和 Windows 等操作系统中的内核。
微内核:微内核特意做得很小,这样错误和崩溃就不会影响整个操作系统。为了确保它仍然可以实现与大型内核相同的功能,它被组织成几个模块。 OS X 组件 Mach 是唯一一个不错的例子,因为到目前为止还没有任何带有微内核的操作系统。
混合内核:微内核和单体的组合。大内核更紧凑,可以分解成模块。可以动态附加更多内核部分。它们部分被 Linux 和 OS X 使用。

原创文章,作者:506227337,如若转载,请注明出处:https://blog.ytso.com/214228.html

(0)
上一篇 2021年12月20日
下一篇 2021年12月20日

相关推荐

发表回复

登录后才能评论