在32位Linux中,用戶空間爲3G,內核空間爲1G。從理論上講,內核和用戶可以佔用4G地址空間,當他們訪問地址時,他們可以通過他們的頁表訪問。 是可行的或爲什麼它無法執行?爲什麼OS地址空間必須拆分用戶空間和內核空間?
2
A
回答
2
它大大簡化了內核與用戶共享地址空間。考慮一個系統調用,它希望將調用者提供的數據複製到內核緩衝區中。如果他們每一個都有自己的頁表,它必須切換從呼叫者的緩衝區中讀取一個字並將其寫入到內核緩衝區之間的頁表:
while (i < caller_buffer_length) {
switch_to_user_pt();
register = caller_buffer[i];
switch_to_kernel_pt();
kernel_buffer[i] = register;
i++;
}
如果他們在相同的地址空間,它可以簡單地使用memcpy()
。
相關問題
- 1. linux內核和用戶地址空間
- 2. Linux內核空間和用戶空間
- 3. 從內核空間傳遞地址到用戶空間
- 4. 內存分配內核空間和用戶空間進程
- 5. 處理虛擬地址空間和內核地址空間?怎麼樣?
- 6. 內核空間和用戶空間的時間差
- 7. 用戶空間和內核空間崩潰之間的區別
- 8. linux內核的內核地址空間的佈局是什麼?
- 9. 爲什麼內核說在進程地址空間?
- 10. 在用戶空間和內核空間上執行進程
- 11. Netlink用戶空間和內核空間通信
- 12. Linux用戶空間和內核空間調度
- 13. 在內核空間和用戶空間中工作
- 14. 內核空間和用戶空間佈局
- 15. 4GB(VM)地址空間如何使用,而交換臺從/到用戶空間到內核空間
- 16. 爲什麼我必須將空名稱空間傳遞給XPathNavigator.GetAttribute?
- 17. 內存映射文件被裝入用戶態地址空間或進程內核地址空間?
- 18. Linux ioctl命令在用戶空間和內核空間之間變化
- 19. copy_from_user()在用戶空間或內核空間運行?
- 20. 從插座讀而不從內核空間到用戶空間
- 21. 如何回調從用戶空間保持到內核空間
- 22. 從用戶級空間訪問內核空間中的變量
- 23. 將用戶空間代碼移植到內核空間
- 24. 從內核空間繞過數據包到用戶空間
- 25. 如何從用戶空間訪問內核空間?
- 26. 從內核空間訪問用戶空間 - get_user_pages
- 27. 從內核空間執行用戶空間函數
- 28. 將數據從內核空間複製到用戶空間
- 29. 從用戶空間到內核空間的memcpy
- 30. 用戶空間vs內核空間驅動程序
StackOverflow不適用於有關計算機體系結構和操作系統設計的一般問題。這是針對實際的編程問題。 – Barmar 2014-10-11 03:25:28