我想知道內核程序員如何看待內存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