【问题标题】:Does linux kernel assume that it is located at a particular physical address?linux内核是否假设它位于特定的物理地址?
【发布时间】:2015-12-18 11:41:35
【问题描述】:

引导加载程序可以将内核放置在内存中的任意物理地址吗? linux内核是否假设它已被放置在特定地址?

例如,在 Sparc 中,内核 _start 符号位于虚拟地址=0xf0004000,通常位于物理地址=0x00004000。 引导加载程序能否将内核放置在任意物理地址,例如 0x10004000,前提是它在引导加载程序的页表中正确映射?如果不是,内核架构的假定物理位置是否特定于?

【问题讨论】:

    标签: linux-kernel sparc


    【解决方案1】:

    内核确实希望位于特定位置。该位置是特定于架构的。你可以reconfigure and recompile内核来调整这个。

    实际上我最近正在研究 x86/x86_64,即well documented。我希望在那里找到 Sparc 文档,尽管它并没有对我产生影响。不过,可以在here 找到一些信息。

    相关位似乎是:

    加载的引导扇区是您在 /boot/first.b 中找到的 你的 Linux-Sparc 系统,只有 512 字节。它被加载到 地址 0x4000 并且它的作用是从磁盘 /boot/second.b 和 将其置于地址 0x280000(2.5 兆);地址已选择 因为 Sparc 规范规定至少 3 兆字节 的 RAM 在启动时映射。

    【讨论】:

      【解决方案2】:

      现在,即将发布的 Linux 内核版本正在进行一些更改,以使其可配置以将内核映像放置在任何地方。

      最新信息可以在内核邮件列表中找到。

      类似的讨论是here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-26
        • 1970-01-01
        • 2016-10-29
        • 2019-12-06
        • 2014-04-27
        • 1970-01-01
        相关资源
        最近更新 更多