文章目录
一、简介
现在操作系统都采用虚拟寻址(有很多好处,比如扩大逻辑内存(通过动态链接),给用户统一的编址模型,安全保护等),即处理器先产生一个虚拟地址,通过地址翻译成物理地址(内存的地址),再通过总线的传递,最后处理器拿到某个物理地址返回的字节。
对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。操作系统的核心是内核,其独立于普通的应用程序,拥有高于普通进程的权限,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。操心系统将虚拟空间划分为两部分,一部分为内核空间,一部分为用户空间。针对linux操作系统而言,将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为内核空间,而将较低的3G字节(从虚拟地址0x00000000到0xBFFFFFFF),供各个进程使用,称为用户空间。为了保证用户进程不能直接操作内核(kernel),保证内核的安全,内存访问的相关硬件在程序执行期间会进行访问控制( Access Control),使得用户空间的程序不能直接读写内核空间的内存。
补充:地址空间就是一个非负整数地址的有序集合。如{0,1,2…}。
二、定义
用户进程和系统进程的所有数据都在内存中。
1. 用户空间
用户