为什么常识

内核模式的地址位宽和用户模式的地址位宽有什么相互约束?

生活词典 changshi.cidiancn.com

阅读: 225

内核模式的地址位宽和用户模式的地址位宽有什么相互约束?虽然 Mac- 内核可以以 32 位模式启动,但是雪豹上的内建程序大多数是运行在 - 位下模式的。为什么 32 位内核模式可以执行 - 位程序呢(或者这两者本就没有关系,是我想的太多?),内核模式的地址位宽和用户模式的地址位宽之间有什么联系?1 个答案

答案 1:

那我就推荐我的这篇 blog :tec-ingular.net/...简言之。内核的地址空间和 user process 的地址空间是可以完全独立的。常见的操作系统让内核与 current user process 共享地址空间其实是一个 perfor-nce -ack 。这个 -ack 久而久之成了人们下意识认为的『必需』。正是这个所谓的 -ack ,让 32 位的内核只能管理 32 位程序。其实,如果采用了这个 -ack ,- 位内核也只能管理 - 位 user process 。但是为什么 Windows 和 Linux 的 - 位内核都能管理 32 位 user process 呢?因为 x86 有一个特别的 -ack ,在 - 位地址空间的下 4G 可以运行 32 位 user process 。注意这个 -ack 是 x86 特有的。正是常见 OS 的 perfor-nce -ack 加上 x86 的 32 位兼容 -ack ,让人们认为 wider bitwidt- 的内核可以管理 narrowerbitwidt-的 user process 。其实不然。如果有了第一个 -ack 没有第二个,那么只要bitwidt- 不同的内核和 user process 就无法一起工作。而没有了第一个 -ack ,第二个 -ack 也就失去了价值。(绕口令我容易吗?)Mac- 没有 perfor-nce -ack ,它的内核地址空间和 user process 完全分离。

分享常识给亲友.

下一篇:精算师考试的具体流程是什么? 下一篇 【方向键 ( → )下一篇】

上一篇:国内有哪些长跑比赛(类似马拉松),是非专业选手可以报名的? 上一篇 【方向键 ( ← )上一篇】