为什么在内核模式下运行的所有代码共享一个虚拟地址空间 [英] Why All code that runs in kernel mode shares a single virtual address space

查看:174
本文介绍了为什么在内核模式下运行的所有代码共享一个虚拟地址空间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

基于MSDN文章

在内核模式下运行的所有代码共享一个虚拟地址空间。这意味着内核模式驱动程序不会与其他驱动程序和操作系统本身隔离。如果内核模式驱动程序意外写入错误的虚拟地址,则属于操作系统或其他驱动程序的数据可能会受到危害。如果内核模式驱动程序崩溃,整个操作系统崩溃。

原因是什么?

为什么操作系统没有隔离进程内核 - 模式?

Based on MSDN article
All code that runs in kernel mode shares a single virtual address space. This means that a kernel-mode driver is not isolated from other drivers and the operating system itself. If a kernel-mode driver accidentally writes to the wrong virtual address, data that belongs to the operating system or another driver could be compromised. If a kernel-mode driver crashes, the entire operating system crashes.
what is reason??
why OS don''t Isolated Process in kernel-mode?

推荐答案

因为 Windows 内核(例如, Linux one)是 monolithic 。但是,有其他选择,例如 Minix (参见维基百科的微内核) [ ^ ],Windows有微内核还是单片内核? [ ^ ] )。

后一页给出了一个理由:表现。
Because Windows kernel (like, for instance, Linux one) is monolithic. There are alternatives, however, like Minix (see Microkernel at Wikipedia[^], "Does Windows have a Microkernel or Monolithic kernel?"[^]).
The latter page gives you also a reason: performance.


这篇关于为什么在内核模式下运行的所有代码共享一个虚拟地址空间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆