Skip to content

参考:OS 组件、内核类型与系统调用速查

基于通用操作系统概念 · 核于 2026-08

速查

  • OS 定义:管理硬件与软件资源的系统软件,资源管理者 + 扩展机。
  • 四大功能:进程管理(CPU)、内存管理(RAM)、文件系统(磁盘)、设备管理(IO)+ 安全保护。
  • 内核架构:单体(Linux,全在内核,高性能)、微内核(QNX/MINIX,最小内核+用户态服务,安全但 IPC 慢)、混合(Windows/macOS,折中)。
  • 用户态 vs 内核态:Ring 0 内核全权限 / Ring 3 用户受限,跨越需 syscall 或中断。
  • 系统调用:trap 类异常,用户态请求内核服务的受控入口;有上下文切换开销(KPTI 后约 500ns-数μs)。
  • 中断(外部异步)vs 异常(内部同步):中断=硬件信号(时钟/IO),异常=指令引发(缺页/syscall/除零)。
  • POSIX:可移植 OS 接口标准,Linux/macOS/Unix 遵循。
  • OS 类型:分时(日常)、实时(车机)、批处理(历史)、移动、嵌入式。

一、OS 四大资源管理组件

组件管什么核心机制对应章节
进程管理CPU进程/线程、调度(FCFS/RR/优先级)、上下文切换进程与线程基础、CPU 调度
内存管理RAM分页、分段、虚拟内存、页面置换内存管理基础、虚拟内存
文件系统磁盘inode、目录、文件分配、VFS文件系统
设备管理IO中断/DMA、驱动、缓冲、Spooling设备与 I/O 管理
安全保护隔离特权级、访问控制、地址空间隔离操作系统安全

二、内核架构对比

维度单体内核微内核混合内核
代表Linux、BSDMINIX、QNX、L4Windows NT、macOS XNU
服务位置全在内核态最小集在内核,其余用户态服务核心在内核,部分用户态
通信函数调用IPC 消息传递函数调用为主 + 部分 IPC
性能IPC 开销大近单体
可靠性驱动 bug 崩内核服务崩可重启折中
适用通用服务器/桌面安全关键/实时桌面/移动

三、中断与异常速查

类型来源同步/异步举例处理后
硬中断(INTR)外部硬件异步时钟、键盘、磁盘 IO返回原指令下一条
不可屏蔽(NMI)硬件故障异步内存校验错、看门狗通常 panic
Fault当前指令同步缺页、除零重新执行该指令
Trap当前指令同步syscall、断点执行下一条
Abort硬件/严重错同步机器检查、双重 fault终止进程

四、常见 POSIX 系统调用

类别调用
进程控制fork exec exit wait kill getpid
文件open read write close lseek stat dup pipe
设备ioctl
信息getpid time uname gettimeofday
通信pipe shmget shmat msgsnd socket connect bind
内存mmap munmap brk sbrk

五、易错点清单

  • "系统调用就是函数调用":错。syscall 有 trap + 上下文切换开销,普通函数调用没有。stdio 的 fread 是用户态缓冲库函数,read 才是 syscall。
  • "中断和异常是一回事":错。中断外部异步(硬件),异常内部同步(指令引发)。
  • "内核态比用户态快":错。内核态本身不代表快,反而 syscall 切换有开销。内核态只是权限高。
  • "微内核一定比单体内核慢":现代 L4 微内核通过优化 IPC 已接近单体性能,不能一概而论。
  • "Linux 是微内核":错。Linux 是单体内核 + LKM 模块(模块仍在内核态)。
  • "KPTI 不影响性能":错。KPTI(Meltdown 缓解)让 syscall 多切换一次页表,syscall 开销增加 5-30%。
  • "所有异常都终止进程":错。缺页 fault 处理后重新执行指令,不终止;只有 abort 类才终止。
  • "中断处理程序可以睡眠":错。硬中断在中断上下文,不可睡眠(无进程上下文,无法调度);下半部 workqueue 才可。

六、进阶方向(链接其他叶)

权威链接