- 内核作为必要的中间层,协调物理硬件和软件应用程序之间的通信。
- 其整体式架构能够高效管理进程、内存和设备,同时还支持外部模块以增加灵活性。
- 内核管理在服务器环境中至关重要,它可以通过调整特定参数来优化性能。
如果你曾经好奇点击图标或在终端运行命令时究竟发生了什么,简而言之,幕后有一位“指挥者”在不知疲倦地工作。这个组件被称为Linux 内核,它本质上是操作系统的核心;正是这套基础软件确保了计算机硬件和你使用的程序能够相互通信,而不会造成混乱。
需要澄清的是,当人们说他们使用“Linux”时,严格来说指的是Linux内核本身,因为我们通常安装的是像Ubuntu、Debian或AlmaLinux这样的发行版。这些发行版实际上就是Linux内核加上一系列工具、图形界面和应用程序,使系统能够被任何人使用,而内核本身仍然位于核心,在后台默默地管理着系统资源。
内核究竟是如何工作的?

内核扮演着非常严格的中间人或守门人的角色。任何应用程序都无权直接访问硬件;如果浏览器想要使用网卡或游戏需要GPU算力,它们必须正式地向内核提出请求。内核会分析请求,并决定哪些进程可以获得访问权限、分配多少CPU时间以及多少内存,从而防止一个进程覆盖另一个进程的内存并导致系统崩溃。
想象一下,你同时打开了十个程序。内核就像裁判一样,以惊人的速度分配处理器资源,使所有操作看起来都并行运行。此外,它还通过一个名为 VFS(虚拟文件系统)的层来管理存储,该层会将读写请求翻译成你硬盘驱动器所支持的特定语言。
内核管理的主任务
为了理解它的用途,有必要了解该软件在机器日常运行中承担的职责:
- 过程控制: 它负责创建、执行和关闭流程。一个有趣的细节是,它会优先处理具有以下特征的流程: UID 0(root 用户)允许他们绕过其他用户必须遵守的某些限制。
- 内存管理: 决定每个应用程序分配哪块内存,以及何时使用交换空间。 SWAP这可以通过使用以下参数进行调整:
vm.swappiness决定系统在将数据移动到磁盘时采取的激进程度,即 如何优化内存 高效的。 - 与硬件交互: 它使用驱动程序与物理组件通信。因此,该软件无需确切知道您使用的是哪个品牌的网卡,因为内核会提供相关信息。 通用抽象层.
- 安全和权限: 它会不断监控谁有权访问哪个文件,并应用 Unix 系统典型的所有权层次结构。
关于整体式设计的争论

Linux 内核被称为单内核,这并非意味着它结构僵化,而是指它将内存、进程和文件管理集成到一个非常接近硬件的单一模块中。这种设计的最大优势在于其卓越的性能,因为它无需在不同的组件之间跳转来执行任务,从而节省时间。
然而,为了避免系统过于僵化,Linux 使用了内核模块。这些模块就像插件一样,可以热加载和卸载。因此,如果您连接了一个新设备,系统可以加载必要的驱动程序,而无需重启计算机或从头开始重新编译整个内核。
维护、版本和优化

知道你正在运行哪个内核版本非常简单。你只需要输入 uname -r 在主机上查看确切版本,或者 uname -a 如果你想要 完整信息包包括系统架构。版本号通常采用四位数字方案,其中第三位数字表示新增功能,最后一位数字通常指…… bug修复 或者虫子。
当我们谈到服务器,尤其是在云环境中,内核就显得至关重要。例如,在KVM虚拟化中,每个VPS服务器都有自己独立的内核,这确保了即使节点上的其他机器发生故障,您的服务器也不会受到影响,并且您可以根据需要更新内核而不会影响其他任何服务器。
对于追求极致性能的用户来说,内核调优是一个不错的选择。它通过优化 Linux 内核,并巧妙地修改网络或文件系统等子系统的配置来降低延迟,从而优化处理海量数据的应用程序,例如金融交易或高并发社交网络中的应用程序,方法是调整VFS 缓存压力等参数。
内核安装和更新

虽然我们大多数人使用发行版自带的包管理器(例如 apt 在Ubuntu或 dnf (在 RHEL 中),可以从以下位置下载源代码: kernel.org手动编译和安装。这在需要进行非常具体优化的高级用户中很常见。
关键在于内核是系统中唯一不支持热插拔的组件。即使您今天安装了更新,系统仍会继续使用旧版本,直到您重启计算机,届时引导加载程序才会加载新的引导文件。
最终,这个组件堪称杰作,它确保硬件和软件和谐共存,管理从 RAM 到 root 权限的一切,并且凭借其模块化单体架构和针对极高性能任务进行调整的能力,使系统高效运行。
