用户态和内核态程序运行在用户空间还是内核空间。
以32位操作系统为例,在每个进程中,都有自己独立的地址空间,总共的虚拟地址空间也就是4G
操作系统将高地址的1G,0xC0000000到0xFFFFFFFF供给内核使用,低位3G分配给用户来使用。
低位3G是私有的,这个空间其他进程是不可见的,因为谁也不知道该进程的地址真正被映射到哪了
而高位1G则是大家共有的,这1G存放的是系统比较重要的资源,所以需要由内核来统一管理,因而
所需要的运行级别特高0,而普通进程执行的级别为3.
当程序执行系统调用,中断,异常的时候,这些需要进行有用户态到内核态的转换,来去访问一些
无法访问的资源。
unix-c-用户态和内核态的区别
Title:unix-c-用户态和内核态的区别
Author:Jin Feng
Created:2016-10-03, 23:43:29
Updated:2016-10-04, 16:44:53
Full URL:http://0x00000000.cn/2016/10/03/unix-c-用户态和内核态的区别/
License: "CC BY-NC-SA 4.0" Keep Link & Author if Distribute.