模块

没有模块,内核就没有多大用处。
模块有效地打开与硬件通信所需的驱动程序,而不会消耗所有系统内存。
模块还向内核添加功能,例如与外围设备通信、管理文件系统、安全性等。
使用以下命令在内核中列出、添加和删除模块:

  • lsmod 列出所有当前加载的内核模块。
  • insmod 将内核模块加载到正在运行的内核中。
  • rmmod 从正在运行的内核中卸载模块。

在一些简单命令的帮助下,Linux 内核可以非常灵活。

当前内核

Linux 内核经常更新,但并非所有 Linux 发行版都包含最新内核。

我们可以从 kernel.org 免费下载不同版本的 Linux 内核并自行编译。

编译 Linux 内核的任务最好留给那些真正知道自己在做什么的人。
错误编译的内核可能导致系统无法启动。
因此,除非我们准备好深入研究在此级别上编译代码的挑战性任务,否则请使用随我们选择的发行版发布和更新的默认内核。

内核在哪里?

如果我们打开终端窗口并执行命令 ls /boot ,我们将看到一个名为 vmlinuz-VERSION 的文件(其中 VERSION 是版本名称或者编号)。
vmlinuz 文件是实际的可引导 Linux 内核,z 表示内核是压缩的——所以我们用 vmlinuz 代替了 vmlinux。

在该 /boot 目录中是其他重要的内核文件,例如 initrd.img-VERSION、system.map-VERSION 和 config-VERSION(其中 VERSION 是名称或者版本号)。
这些其他文件用于以下目的:

  • initrd :用作提取和执行实际内核文件的小型 内存 磁盘。
  • system.map :在内核加载之前用于内存管理。
  • config :指示内核加载哪些选项和模块。

模式

在我们解释内核是什么之前,理解用户模式和内核模式这两个术语很重要。
用户模式是在执行代码时无法直接访问硬件或者参考内存。
要访问硬件和内存,在用户模式下运行的代码必须将指令委托给系统应用程序编程接口。
内核模式是指在执行代码时可以不受限制地访问所有硬件——它是为操作系统最受信任的功能保留的。

什么是内核?

每个操作系统都有一个内核。
Windows、macOS、iOS、Android、Chrome OS 和 Linux 都有一个低级系统,负责将所有应用程序与计算机的物理硬件连接起来。

没有内核,任何应用程序都无法使用物理计算机; Firefox、Chrome、LibreOffice 或者 Outlook 等应用程序将无法运行。
内核还负责允许进程使用所谓的进程间通信来交换信息。

有(一般来说)三种类型的内核:

  • 单片内核:这些内核包括 CPU、内存、IPC、设备驱动程序、文件系统管理和系统服务器调用。

它还负责将可用的系统内存移交给应用程序。这些类型的内核通常更擅长访问硬件和多任务处理。

  • 微内核:微内核采用极简主义的方法,只管理 CPU、内存和 IPC。
  • 混合内核:混合内核能够决定在用户模式或者内核模式下运行什么。虽然这提供了两全其美的方法,但它需要硬件制造商提供更多的东西来创建驱动程序,以便在运行的代码和硬件之间建立接口。

Linux 使用开源的单体内核,而 macOS 和 Windows 都使用混合内核。
Linux 内核由 Linus Torvalds 于 1991 年构思。
直到今天,Torvalds 仍然是 Linux 内核的主要开发人员,而来自世界各地的开发人员为 Linux 内核做出了贡献。
事实上,据估计,自 2005 年开始跟踪以来,来自 1,000 多家的近 10,000 名开发人员为 Linux 内核做出了贡献。

内核充当硬件和软件之间的交通警察

对于普通用户和非铁杆粉丝来说,Linux 是一个操作系统。

然而,对于纯粹主义者来说,Linux 的名称是为驱动操作系统的内核保留的。

什么是 Linux 内核?
日期:2020-07-15 11:16:30 来源:oir作者:oir