我感兴趣的是,从汇编的角度来看,linux是如何在保护模式下运行的。当涉及到将i386:0x86_64机器的cpu置于保护模式时,使用哪些寄存器和中断?我知道内存管理是如何工作的,当我看着c语言的函数源码时,比如mmap和me,然而是什么阻止了我接管汇编呢?我在哪里可以获得更多关于这方面的信息?
发布于 2012-04-17 07:40:34
我相信您正在寻找arch/x86/mm/ -- arch/x86/mm/init.c为正确的体系结构(ia32或AMD64)设置页表,并考虑可用的处理器特性(PSE、PGE等)。
发布于 2012-04-17 08:02:44
值得强调的是:这是处理器的一个功能。Linux告诉处理器要保护什么,然后由处理器来完成。
关于系统调用接口,回顾一下在C库有mmap之前的http://stromberg.dnsalias.org/~strombrg/pbmonherc.html,但在Linux内核有mmap之后。请参阅mmap.c文件。
https://stackoverflow.com/questions/10183110
复制相似问题