我想知道内核程序员如何看待内存与用户模式程序员。我还想知道内核编程和用户模式编程之间的一些区别。
答案 0 :(得分:6)
用户模式编程是指在操作系统内核的保护,监督和抽象机制下进行编程。例如:在用户模式下,您无法写入磁盘扇区,因为它们在文件系统API下“隐藏”。您无法写入物理内存地址,因为内核可以控制虚拟和物理内存之间的转换,尽管您可以根据自己的需要保留内存。此外,尽管您可以进入低级别(汇编),但您无法执行特权指令,例如,尝试弄乱处理器缓存,TBL和MMU。
内核编程允许您对系统进行低级别任务编程而不受任何限制。例如,硬件驱动程序无法在用户模式下编程,因为它们需要直接访问硬件来执行I / O,映射内存区域等。
当然你不能认为内核模式是“受限制较少”,而是去开发KM中的应用程序。在KM下,许多用于应用程序编程的系统工具都不可用,因为与用户交互所需的库在usermode中运行。此外,这些用户模式库不会链接到内核模块。
根据操作系统的不同,可能或多或少地定义了这种区别。 KM / UM在DOS中是无稽之谈,允许程序自由访问系统资源(至少在8086/88实模式下 - DOS扩展器不是这种情况)。
答案 1 :(得分:2)
答案 2 :(得分:-2)
选择完美答案作为答案。简而言之,根据我的有限知识,在内核模式下,您正在读取/写入像VGA卡这样的设备的物理地址。但是,在用户模式下,您正在写入一个文件,即,如果UNIX中的操作系统是。