摘要: Windows的内核还有个明显的不同,就是其内核的相当一部分页面是可倒换的。内存管理即虚存技术的重要内容之一是物理页面的倒换,就是可以将已经有映射但是暂时不受到访问的页面倒换到外存中去,到实际受到访问时再倒换进来,使外存成为内存的扩充。但是,在Linux中,属于内核的页面无论是用于代码还是数据(用于文件内容缓存的除外),是不受倒换的。这一方面是为了简化内核的设计和实现,一方面也是因为觉得价值不大,因为内核毕竟是全局的,所有进程都公用同一个系统空间,即使要倒换也油水不大。但是,Windows的内核却不同,其相当一部分页面是可倒换的。究其原因,另一方面可能是来自VMS的影响,另一方面也可以从Win 阅读全文
posted @ 2012-07-26 17:55 友学友 阅读(1241) 评论(0) 推荐(0) 编辑
摘要: 共享的内核空间:用户空间是各个进程隔离的,但是内核空间是共享的。就是说,每个进程看到的高2GB空间范围内的数据,都应该是一样的。如果成功修改了高2GB范围内的代码,让硬盘驱动返回失败,那么所有进程都无法读取硬盘。内核空间是受到硬件保护的,比如X86下R0层的代码才可以访问内核空间。普通应用程序编译后都允许在Ring3层,R3层代码要调用R0层功能,一般都通过OS提供的一个入口(该入口中调用sysenter指令)来实现。所以编写的内核模块,是运行在内核空间中,称为OS的一个模块,最终被所有需要该模块提供功能的应用程序或OS本身调用。内核模块位于内核空间,而内核空间又被所有进程共享。因此,内核模块 阅读全文
posted @ 2012-07-26 17:29 友学友 阅读(499) 评论(0) 推荐(0) 编辑