Ø 用户态:能使用的资源较少,但是对于安全性、可靠性要求较低,程序的编写和维护也较为简单。比如:文件系统—用户的数据;用户应用程序;
Ø 内核态:访问的资源多,但是可靠性、安全性要求很高,维护管理都比较复杂;比如:CPU管理和内存管理(从安全的角度考虑);诊断、测试程序(因为需要访问计算机的所有资源);IO管理(要访问各种设备和底层数据结构);文件系统---本身的数据管理,宏数据结构的管理;
所谓用户态、内核态,其实是处理器的一种状态,取决于CPU状态字内的一个字位;
那如何对不同类的程序进行控制呢?
用户态程序发出的指令,会通过内存地址映射,控制这个地址翻译过程,就控制了对资源的访问;
内核态程序,不经过该内存地址映射模块,所以可以直接访问所有的资源。