01 请你说一说用户态和内核态区别
- 为了区分不同的程序的不同权限,人们发明了
内核态
和用户态
的概念。 - 用户态和内核态是操作系统的两种运行级别,两者最大的区别就是特权级不同。用户态拥有最低的特权级,内核态拥有较高的特权级。 运行在用户态的程序不能直接访问操作系统内核数据结构和程序。
- 内核态和用户态之间的转换方式主要包括:系统调用,异常和中断。
02 操作系统为什么要分内核态和用户态
- 为了安全性。在cpu的一些指令中,有的指令如果用错,将会导致整个系统崩溃。分了内核态和用户态后,当用户需要操作这些指令时候,内核为其提供了API,可以通过系统调用陷入内核,让内核去执行这些操作。
03 内核态和用户态
内核态
就是拥有资源多的状态,或者说访问资源多的状态,称为特权态
。用户态
就是非特权态
,在此种状态下访问的资源将受到限制。- 如果一个程序运行在特权态,则该程序就可以访问计算机的任何资源,即它的资源访问不受限制。如果一个程序运行在用户态