2010-05-22 94 views
5

我想知道内核程序员如何看待内存vs用户模式程序员。我也想知道内核编程和用户模式编程之间的一些差异。内核和用户模式编程有什么区别?

+1

您提出问题,但最后不要接受正确的答案... – 2010-05-22 06:29:30

回答

6

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

内核编程允许您在没有任何限制的情况下对系统进行低级任务编程。硬件驱动程序例如不能在用户模式下编程,因为它们需要直接访问硬件来执行I/O,映射内存区域等。

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

根据操作系统的不同,这种区别可能会有所不同。 KM/UM在DOS中是无稽之谈,允许程序自由访问系统资源(至少在8086/88实模式下 - DOS扩展器不是这种情况)。

-2

完美的答案见杰夫斯文章选择答案。简而言之,根据我有限的知识,在内核模式下,您正在读/写字节到设备的物理地址,如VGA卡。但是,在用户模式下,您正在写入文件,即UNIX中的操作系统。

相关问题