当前位置: 技术问答>linux和unix
为什么进程的线性地址空间需要分配
来源: 互联网 发布时间:2017-02-17
本文导语: 本帖最后由 zxqatqd 于 2012-01-15 22:56:36 编辑 看《深入理解Linux内核》一直有一个困惑,为什么每个进程都有自己独立的页目录和页表集,每个进程都有0-3G的线性地址空间,为什么每个进程的线性地址空间不直接从0开始...
理解错误的话,请大家指正。
|
lz头脑还是清晰的,分得清物理地址和虚拟地址
进程可用虚拟地址从0开始,运行时就不能检测到空指针读错误了。大多数的os都是这样设计的,就为了及时检测空指针错误。
居然是坟贴
进程可用虚拟地址从0开始,运行时就不能检测到空指针读错误了。大多数的os都是这样设计的,就为了及时检测空指针错误。
居然是坟贴
|
我不知道是不是跟内核栈有关啊.
|
进程是个独立运行的程序体,如果不分配独立的内存空间,那就无法避免使用冲突。
显然不能允许一个进程随机的改掉另一个进程的数据,因此,分配独立的内存是必须的。
物理地址的0单元只有一个,不能同时分配给多个进程使用啊。
显然不能允许一个进程随机的改掉另一个进程的数据,因此,分配独立的内存是必须的。
物理地址的0单元只有一个,不能同时分配给多个进程使用啊。
|
没看过内核,不知道具体是咋分配的;
是不是每个进程的物理地址空间不是从0开始的;但是进程内映射的地址空间是从0开始的吧?要不怎么好管理呢。
是不是每个进程的物理地址空间不是从0开始的;但是进程内映射的地址空间是从0开始的吧?要不怎么好管理呢。
|
一块内存条,都是base=0 ,limit = 4G ,那不就乱套了,所以要映射,全部在主内存映射
|
进程都是虚拟映射到物理内存吧