作者:过去无法回去 | 来源:互联网 | 2023-08-08 21:24
以32位linux系统为例:虚拟地址的空间为4G,前3G给了应用层,后1G给了内核层,那么我有个疑问,为什么不把前1G给内核层,后3G给应用层?我自己推测的可能有这
以32位linux系统为例:
虚拟地址的空间为4G,前3G给了应用层,后1G给了内核层,那么我有个疑问,为什么不把前1G给内核层,后3G给应用层?
我自己推测的可能有这么几种情况:
- 第一个设计的人这么写了,约定俗成,就延续了下来。
- 为了让应用程序使用的地址从开始,给应用层程序一种假象。
- 应用层使用虚拟地址的时候不需要增加偏移,可直接使用,提高效率。
- 虚拟地址映射到物理地址的时候,这样分配方法效率高(此种方法是我的一种猜测,我也不知道为什么)
请linux大牛们给出一些解答,谢谢!