我想知道内核程序员如何看待内存vs用户模式程序员。我也想知道内核编程和用户模式编程之间的一些差异。内核和用户模式编程有什么区别?
5
A
回答
6
用户模式编程是指在操作系统内核的保护,监视和抽象机制下进行编程。例如:在用户模式下,您无法写入磁盘扇区,因为它们在文件系统API下“隐藏”。您不能写入物理内存地址,因为内核控制着虚拟内存和物理内存之间的转换,尽管您可以根据自己的需要预留内存。此外,尽管您可以进入低级别(汇编),但不能执行具有特权的指令,例如,试图混淆处理器高速缓存,TBL和MMU。
内核编程允许您在没有任何限制的情况下对系统进行低级任务编程。硬件驱动程序例如不能在用户模式下编程,因为它们需要直接访问硬件来执行I/O,映射内存区域等。
当然,你不能认为内核模式是“限制较少”,而是去开发KM中的应用程序。由于需要与用户模式下运行的用户进行交互的库,许多用于应用程序编程的系统工具在KM下不可用。另外,这些用户模式库不会链接到内核模块。
根据操作系统的不同,这种区别可能会有所不同。 KM/UM在DOS中是无稽之谈,允许程序自由访问系统资源(至少在8086/88实模式下 - DOS扩展器不是这种情况)。
2
-2
完美的答案见杰夫斯文章选择答案。简而言之,根据我有限的知识,在内核模式下,您正在读/写字节到设备的物理地址,如VGA卡。但是,在用户模式下,您正在写入文件,即UNIX中的操作系统。
相关问题
- 1. 操作系统中的用户模式和内核模式有什么区别?
- 2. 内核线程和用户线程有什么区别?
- 3. 声明式编程和命令式编程有什么区别?
- 4. 用户模式和内核模式在可用机器指令总数方面有什么区别?
- 5. Linux内核模块中module_init和init_module有什么区别?
- 6. 特权模式,内核模式和超级用户模式之间的区别
- 7. 并行和多核编程有什么区别?
- 8. 内核和程序对象有什么区别?
- 9. DAO和DP模式有什么区别?
- 10. “::”和“sys”模式有什么区别?
- 11. Oracle和Microsoft模式有什么区别?
- 12. Factory和Strategy模式有什么区别?
- 13. 编译debug =“false”和发布模式有什么区别?
- 14. 命令式和面向对象编程有什么区别?
- 15. 在Linux内核中,有什么区别__raw_readl/__ raw_writel和readl/writel?
- 16. 操作系统和内核有什么区别?
- 17. 用户线程(OS Windows)的内核模式堆栈是什么?
- 18. IE11兼容模式和IE10兼容模式有什么区别
- 19. 设计模式和架构模式有什么区别?
- 20. 睡眠模式和深度睡眠模式有什么区别?
- 21. 开发模式和生产模式有什么区别?
- 22. Builder模式和Flyweight模式有什么区别?
- 23. 类库和.NET核心类库模板有什么区别?
- 24. ASP.net实例模式有什么区别?
- 25. 调试和编译有什么区别?
- 26. 自我和窗户有什么区别?
- 27. 内核模式和用户模式驱动程序
- 28. a = b = c和编程分别赋值有什么区别?
- 29. ASP和SaaS模型有什么区别?
- 30. MVC模式中的模型和实体有什么区别?
您提出问题,但最后不要接受正确的答案... – 2010-05-22 06:29:30