【问题标题】:user-kernel address division用户内核地址划分
【发布时间】:2010-05-11 08:25:21
【问题描述】:

在 ARM linux 中,用户内核虚拟地址范围以 3:1 的比例划分。

但在 MIPS linux 中,这通常是 2:2

有人知道造成这种设计差异的原因是什么吗?

我有一个模糊的想法,这与以下事实有关.

【问题讨论】:

    标签: linux-kernel kernel paging arm mips


    【解决方案1】:

    这是 MIPS 32 位架构的限制。大多数 MIPS CPU 上的用户模式限制为 2GB。

    在用户模式下只能访问较低的 2GB 虚拟地址 (0x0000_00000 to 0x7fff_ffff)。这部分地址空间称为kusegKuseg 地址由 TLB 翻译。 TLB 重新填充是否在软件中完成是无关紧要的。

    内核位于从0x8000_0000 to 9fff_ffff 扩展的 512MB 虚拟空间中。这部分地址空间称为kseg0。 TLB 不翻译 Kseg0 地址。这些地址通过删除 MSB 进行转换(即虚拟地址范围 0x8000_0000-9fff_ffff 硬连线到物理地址范围0x0000_0000-0x1fff_0000

    有关详细信息,请参阅 MIPS 手册。

    【讨论】:

      猜你喜欢
      • 2016-06-02
      • 2018-04-23
      • 2019-07-03
      • 2012-02-01
      • 2012-06-13
      • 2011-06-30
      • 1970-01-01
      • 2018-02-23
      • 1970-01-01
      相关资源
      最近更新 更多