【问题标题】:How does linux protect memory?linux是如何保护内存的?
【发布时间】:2012-04-28 07:31:09
【问题描述】:

我感兴趣的是从汇编的角度来看 linux 如何在保护模式下运行。在将 cpu 置于 i386:0x86_64 机器的保护模式时,使用了哪些寄存器和中断?当我查看诸如 mmap 和 mprotect 之类的函数的 c 源时,我了解内存管理是如何工作的,但是是什么让我无法接管汇编?我在哪里可以获得更多信息?

【问题讨论】:

    标签: linux memory-management assembly linux-kernel kernel


    【解决方案1】:

    我相信您正在寻找 arch/x86/mm/ -- arch/x86/mm/init.c 为正确的架构(ia32 或 AMD64)设置页表并考虑可用的处理器功能(PSE、PGE 等)。

    【讨论】:

      【解决方案2】:

      需要强调的是:这是处理器的功能。 Linux 告诉处理器要保护什么,而处理器会这样做。

      AFA 系统调用接口,看看http://stromberg.dnsalias.org/~strombrg/pbmonherc.html 在C 库有mmap 之前,但在Linux 内核有mmap 之后。请参阅文件 mmap.c。

      【讨论】:

        猜你喜欢
        • 2012-06-23
        • 1970-01-01
        • 1970-01-01
        • 2014-07-17
        • 1970-01-01
        • 2017-12-26
        • 1970-01-01
        • 1970-01-01
        • 2012-05-11
        相关资源
        最近更新 更多