- 论坛徽章:
- 0
|
还有一个地方需要明确的定义. 你所针对的CPU 到底是什么类型的. 比如INTEL 32 BIT, 64 BIT? 有没有PAE?
假设最简单的情况, INTEL 32 BIT CPU, NO PAE. 那么即使你使用了分段,每个都弄成4G大小.他们最后都只能映射到 相同的 4G的 线性地址空间. 具体看这个帖子里的 11 楼.
http://linux.chinaunix.net/bbs/thread-1137218-2-2.html
在这种情况下,根本就没有 4G-8G这么一段线性地址可以给你用. 因为CPU 硬件就不支持.
假设CPU 开启了PAE功能,那么它最大支持64G的线性地址空间. 在这种情况下,你"也许"可以把PROCESS 0的代码段映射到0-4G. 数据段映射到4-8G. 那么一个PROCESS 就占用了 8G. 也就是说你的系统最多能同时跑的PROCESS = 64/8=8 个. 如果你自己设计OS, 不在乎这些,那么也许可以这样实现. 但是对于LINUX来说, 同时支持的PROCESS 肯定要远远大于8, 所以它不会这么用分段机制.
建议你好好读读INTEL CPU 手册. 先把硬件搞清楚. |
|