linux是如何保护内存的?
Posted
技术标签:
【中文标题】linux是如何保护内存的?【英文标题】:How does linux protect memory? 【发布时间】:2012-04-28 07:31:09 【问题描述】:我感兴趣的是从汇编的角度来看 linux 如何在保护模式下运行。在将 cpu 置于 i386:0x86_64 机器的保护模式时,使用了哪些寄存器和中断?当我查看诸如 mmap 和 mprotect 之类的函数的 c 源时,我了解内存管理是如何工作的,但是是什么让我无法接管汇编?我在哪里可以获得更多信息?
【问题讨论】:
【参考方案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。
【讨论】:
以上是关于linux是如何保护内存的?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Linux 上超过 64 位 LuaJIT 的 1gb 内存限制?