它们是操作系统运行的两种状态,在PSW(程序状态寄存器)中有一个二进制位控制这两种模式
1. 内核态
- 当CPU运行在内核态时,程序可以访问所有的指令集,操作所有的硬件设备,也可以将自己从一个程序切换到另一个程序
2. 用户态
- 当CPU运行在用户态时,程序只能执行非特权指令,访问受限的内存,无法操作硬件设备
3. 如何由用户态切换到内核态
- 通过系统调用,在CPU中的实现是陷入指令。(中断和异常其实都是发生了系统调用)
4. 用户态和核心态的目的
- 处于一些安全的考虑,防止用户进程随意操作内核空间导致系统奔溃。
5. 内核空间和用户空间
- 每一个进程都会有一个0~4G的逻辑内存地址空间,
- 0~3G是用户空间,进程私有
- 3~4G为内核空间,进程共享,但是进程不能直接访问。
- 只有CPU进入内核态才能访问内核空间