2012-07-22 98 views

回答

4

內核和用戶空間應用程序具有不同的地址空間,因此複製到用戶空間需要更改地址空間。每個進程都有自己的(用戶)地址空間。

另外,複製到用戶空間時,內核不應該崩潰,所以copy_to_user函數可能會檢查目標地址是否有效(也許該地址應該從分區空間中分頁)。

瞭解更多關於linux kernelsyscallsprocessesaddress space ...

4

如果給定的內核中只有一個架構編寫的,這可能是也可能不是一個合理的選擇。

有很多,可能每個架構有所不同,因此需要某種多態操作的考慮...

  • 保護...內核可能有太多或太少的訪問權限,無論是這樣可以在給定的目標需要額外的代碼

  • 地址空間...用戶空間和內核空間可以重疊,所以特定目標的解決方案或臨時地圖將需要

  • 頁故障管理...訪問用戶空間可能會出現故障,這需要避免或允許。限制對特定地點的訪問可以進行額外設置或確定故障原因。

相關問題