2010-05-22 100 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中的操作系統。

相關問題