内核和用户模式编程有什么区别?

mou*_*sey 5 c operating-system

我想知道内核程序员如何看待内存与用户模式程序员.我还想知道内核编程和用户模式编程之间的一些区别.

Her*_*nán 6

用户模式编程是指在操作系统内核的保护,监督和抽象机制下进行编程.例如:在用户模式下,您无法写入磁盘扇区,因为它们在文件系统API下"隐藏​​".您无法写入物理内存地址,因为内核可以控制虚拟和物理内存之间的转换,尽管您可以根据自己的需要保留内存.此外,尽管您可以进入低级别(汇编),但您无法执行特权指令,例如,尝试弄乱处理器缓存,TBL和MMU.

内核编程允许您对系统进行编程以实现低级别的职责,而不受任何限制.例如,硬件驱动程序无法在用户模式下编程,因为它们需要直接访问硬件来执行I/O,映射内存区域等.

当然,你不能认为内核模式是"受限制较少",而是去开发KM中的应用程序.用于应用程序编程的许多系统工具在KM下不可用,因为与用户交互所需的库在用户模式中运行.此外,这些用户模式库不会链接到内核模块.

根据操作系统,可以或多或少地定义这种区别.KM/UM在DOS中是无稽之谈,允许程序自由访问系统资源(至少在8086/88实模式下 - DOS扩展器不是这种情况).