4.《深入理解Linux内核》(2007) 作者:Daniel P.Bovet

文章访问量:

P73 线性地址空间

进程的线性地址空间分成两部分:

  • 从0x00000000到0xbfffffff的线性地址,无论进程运行在用户态还是内核态都可以寻址。
  • 从0xc0000000到0xfffffff的线性地址,只有内核态的进程才能寻址。

当进程运行在用户态时,它产生的线性地址小于0xc0000000;当进程运行在内核态时,它执行内核代码,所产生的地址大于等于0xc0000000。但是,在某些情况下,内核为了检索或存放数据必须访问用户态线性地址空间。

Windows也是分为用户空间和系统空间。用户空间分配给不同的进程,系统空间分配给各种驱动。msdn上说32位windows的用户空间最大是0x7ffeffff,系统空间则是0x8000000~0xfffffff。
当然,肯定有人会想0x7fff0000~0x7fffffff这64KB的空间去哪了。关于0x7fff0000~0x7fffffff更详细的内容可参考本站文章:Windows冷知识:0x7ffeffff~0x7fffffff

Subscribe
提醒
0 评论
Inline Feedbacks
View all comments
0
在此留下你的评论x