内核概述
100%

内核 · 第 1 课

内核概述

学习 Linux 内核如何协调硬件、资源、隔离机制和用户空间请求。

Linux 是操作系统内核:负责管理处理器、内存、设备、进程和通用资源抽象的特权软件。一个完整的 Linux 系统还包括用户空间库、实用工具、服务、shell、图形软件以及发行版策略。

硬件资源

处理器执行指令,内存保存活动状态,控制器则连接存储、网络、显示器、输入设备和其他外设。硬件提供的是与架构和设备相关的机制,而不是可供每个应用程序安全使用的统一接口。

内核通过架构代码和设备驱动程序初始化并控制这些资源。它在不同工作负载之间实施访问边界,同时处理中断、DMA 协调、定时器和电源管理事件。

在 Linux 上,通常由哪一层协调设备驱动程序和硬件中断?

内核职责

主要职责包括:

  • 在 CPU 上调度可运行线程
  • 创建并隔离虚拟地址空间
  • 实施进程凭据、权限和安全策略
  • 提供文件系统、网络、IPC 和设备接口
  • 处理信号、定时器和进程生命周期
  • 分配、统计并回收资源

Linux 通常被称为单体内核,因为核心服务和许多驱动程序都在同一个特权内核地址空间中执行。它同时也支持模块化:受支持的组件可以作为内核模块加载和卸载。特权内核代码中的缺陷可能危及整个系统,因此内核更新和模块来源对安全至关重要。

内核调度器管理什么?

用户空间

用户空间包含普通进程:init 和服务、命令行工具、语言运行时、数据库、shell 以及桌面应用程序。硬件特权机制会阻止这些程序直接执行许多敏感指令或访问任意内核内存。

进程通过系统调用请求内核工作,并与文件描述符、套接字、设备节点、procfs、sysfs、netlink 和内存映射等公开接口交互。库通常会将这些接口封装成更高层的 API。

用户空间中的 root 按照策略拥有很高的授权,但通常仍在处理器的用户模式中执行。用户身份和 CPU 特权模式是两个不同的概念。

普通的 root 用户应用程序会在内核模式下执行全部指令吗?

边界与抽象

内核向外提供虚拟进程、文件、套接字和地址空间,而不是直接暴露原始物理设备。这些抽象有助于隔离和可移植性,但本身并不是完美的安全边界。命名空间、cgroup、能力、安全模块、seccomp 和虚拟化提供了专门的附加控制。

排查问题时,应判断行为归哪一层所有:应用程序、库、系统调用接口、文件系统、驱动程序、内核子系统、固件还是硬件。使用来自错误层面的证据,可能导致错误的修复方案。

什么是系统调用?

课程已完成

你已完成 内核概述

现在,你可以把内核置于物理资源与相互隔离的用户空间进程之间来理解。

  • 理解驱动程序和架构代码与硬件控制的关系。

  • 识别调度、内存、安全、文件系统和网络方面的职责。

  • 将 root 凭据与处理器内核模式视为不同概念。

  • 在受控的运行时接口处定位用户空间与内核的交互。

保存学习进度

创建免费账户即可保存本课进度,并在任意设备上继续学习。

创建免费账户
下一节
返回 内核