我對用戶空間和內核空間有點困惑。 Linux或內核空間中a.out的4 GB虛擬內存中包含的內核空間是不同的,並且不包含在該4 GB內存空間中。另外,爲操作系統保留的4 GB虛擬內存的一部分包括內核或內核空間。請你糾正我,如果我的所有上述概念是錯誤的a.out內核空間
回答
這一切都取決於操作系統。
大多數操作系統劃分了4GB的空間像2/2或3/1,因爲它可以更容易從用戶模式切換到內核模式,不需要頁表切換時被重新映射。
但是,Linux甚至允許4GB用戶空間和4GB內核空間。但是,正如你可以想象的那樣,每次需要切換到內核模式時都需要重新映射完整的內存,這會產生一些開銷。
雖然它在你的內存空間,OS不允許從用戶模式代碼訪問內核空間。這種訪問控制是可能的,因爲頁表中的特權位。
所有這些都需要從用戶空間到內核實際上是一個int 80h
通話。該調用將調用轉移到內核的中斷處理程序,並使內核和用戶空間都可訪問。
+1。但是,自從Pentium Pro發佈以來,Linux也支持PAE,其中內核可以處理高達64千兆字節的內存。 – 2012-01-17 16:20:12
不,PAE內核不直接尋址超過4Gb。它只是管理地圖,以便使用64Gb。 – 2012-01-17 16:29:04
好的,這意味着是的,內核空間包含在4GB的可尋址虛擬內存中。我爲這個答案+1了,雖然它沒有觸及有關操作系統內存空間問題的部分...... – Romain 2012-01-17 13:57:15
- 1. Linux內核空間和用戶空間
- 2. 取在內核空間
- 3. Linux內核:從內核空間調用用戶空間的回調函數
- 4. 內存分配內核空間和用戶空間進程
- 5. 內核空間和用戶空間的時間差
- 6. 用戶空間和內核空間崩潰之間的區別
- 7. a.out?
- 8. 內核如何檢測內核空間段錯誤?
- 9. 在內核空間如何訪問內核參數
- 10. linux內核的內核地址空間的佈局是什麼?
- 11. 在linux內核(內核空間)中檢索會話Id
- 12. 在內核空間的動態分配
- 13. 如何從內核空間獲取sockfd?
- 14. 在內核空間調用NtQuerySystemInformation
- 15. 從內核空間配置串口
- 16. 從LKM /內核空間啓動Android Activity
- 17. 內核空間中的信號處理
- 18. 內核空間中的優先級
- 19. 從內核空間寫入文件
- 20. 在Linux內核空間執行程序
- 21. bsd內核用戶空間事件kqueue
- 22. 用內核觸發用戶空間
- 23. 發送SKB從內核空間傳輸
- 24. linux內核和用戶地址空間
- 25. 從內核空間進行GPIO訪問
- 26. 從內核空間關閉(嵌入)linux
- 27. Linux內核代碼空間寫保護
- 28. 來自內核空間的IOCTL
- 29. 從內核空間執行ioctl
- 30. 關於內核空間的問題
我最近讀了關於Linux中的內存管理,發現這個博客http://duartes.org/gustavo/blog/post/anatomy-of-a-program-in-memory非常有幫助 – 2012-01-17 14:05:51
我不確定「a。 「與」有什麼關係? – 2012-01-17 16:20:52