一、CPU的双重面孔:用户态与内核态
1. 权限等级的本质
现代CPU通过特权级(Ring)机制管理用户态与内核态的权限:
- Ring 0(内核态):具有最高权限,能够直接操作硬件、访问所有内存资源
- Ring 3(用户态):权限受限,只能访问用户空间内存,无法直接操作硬件
这里可以类比为银行:普通客户只能在营业大厅(用户态)办理常规业务,通过柜台(系统调用)与银行职员(内核态)进行互动。银行职员持有万能钥匙,能够进入金库(内核),执行高级操作(如资源分配和硬件访问)
2. 状态切换的硬件机制
用户态与内核态的切换是通过特殊指令完成的,CPU会根据不同情况切换状态:
- 用户→内核:通过中断(
int 0x80
)或系统调用指令(如syscall
)触发 - 内核→用户:使用
iret
指令将CPU从内核态切换回用户态,恢复到之前的执行状态
示例:用户态程序通过系统调用请求退出
// 用户态程序发起系统调用
mov $1, %eax // 系统调用号1(exit)
mov $0, %ebx // 退出码
int $0x80 // 触发软中断
二、进程:动态的生命周期
1. 进程的本质特征
进程是程序的执行实例,具备以下特征:
- 动态性:进程不是静态的程序,而是正在执行的程序实例
- 瞬时性:每个进程的生命周期从几毫秒到几年不等
- 独立性