1. linux将虚拟地址空间划分为两部分,内核空间和用户空间。
一般32位处理器,虚拟内存大小= 2的32次方 B = 4GB.
现在的64位处理器可以支持 虚拟内存 = 2的64次方 B = 16GB.
用户空间地址范围 0 --- TASK_SIZE.
内核空间地址范围 TASK_SIZE --- 4GB/16GB。
一般32位处理器 TASK_SIZE = 3G,这个比较常见。
2. 每个用户进程都有自己的虚拟地址空间,各个系统进程的用户控件是完全彼此独立的。
而虚拟地址空间顶部的内核空间却只有一个,这就涉及到系统权限的概念了。
linux使用了2种特权级别:核心态 和 用户态。
系统调用可以从用户态切换到核心态。
异步硬件中断也可以使内核激活,然后在中断上下文中运行核心态。
3. 页表: 用来将虚拟地址空间映射到物理地址空间的数据结构。