-
答案 1:
那我就推荐我的这篇 blog :techsingular.net/...简言之。内核的地址空间和 user process 的地址空间是可以完全独立的。常见的操作系统让内核与 current user process 共享地址空间其实是一个 performance hack 。这个 hack 久而久之成了人们下意识认为的『必需』。正是这个所谓的 hack ,让 32 位的内核只能管理 32 位程序。其实,如果采用了这个 hack ,64 位内核也只能管理 64 位 user process 。但是为什么 Windows 和 Linux 的 64 位内核都能管理 32 位 user process 呢?因为 x86 有一个特别的 hack ,在 64 位地址空间的下 4G 可以运行 32 位 user process 。注意这个 hack 是 x86 特有的。正是常见 OS 的 performance hack 加上 x86 的 32 位兼容 hack ,让人们认为 wider bitwidth 的内核可以管理 narrowerbitwidth的 user process 。其实不然。如果有了第一个 hack 没有第二个,那么只要bitwidth 不同的内核和 user process 就无法一起工作。而没有了第一个 hack ,第二个 hack 也就失去了价值。(绕口令我容易吗?)Mach 没有 performance hack ,它的内核地址空间和 user process 完全分离。
内核模式的地址位宽和用户模式的地址位宽有什么相互约束?
2012-01-19 19:57:21 来源: 点击:
相关热词搜索:
上一篇:使用 Android 机器人形象做非商业短片是否侵权?
下一篇:鼠标点击之后再发展能是什么技术呢?