0
A
回答
4
內核和用戶空間應用程序具有不同的地址空間,因此複製到用戶空間需要更改地址空間。每個進程都有自己的(用戶)地址空間。
另外,複製到用戶空間時,內核不應該崩潰,所以copy_to_user
函數可能會檢查目標地址是否有效(也許該地址應該從分區空間中分頁)。
瞭解更多關於linux kernel,syscalls,processes,address space ...
4
如果給定的內核中只有一個架構編寫的,這可能是也可能不是一個合理的選擇。
有很多,可能每個架構有所不同,因此需要某種多態操作的考慮...
保護...內核可能有太多或太少的訪問權限,無論是這樣可以在給定的目標需要額外的代碼
地址空間...用戶空間和內核空間可以重疊,所以特定目標的解決方案或臨時地圖將需要
頁故障管理...訪問用戶空間可能會出現故障,這需要避免或允許。限制對特定地點的訪問可以進行額外設置或確定故障原因。
相關問題
- 1. 如何發送動態數組到copy_to_user(內核模塊)
- 2. 如何使用'copy_to_user'?
- 3. 在內核級函數上使用LD_PRELOAD
- 4. 在CUDA內核中使用虛函數
- 5. Linux內核模塊copy_to_user不能正常工作
- 6. 爲什麼箭頭函數在體內接受函數調用?
- 7. 爲什麼close函數在Linux內核的`struct file_operations`中被稱爲release?
- 8. CUDA內核函數
- 9. 爲什麼Pylint不像內置函數?
- 10. Frenzapp使用什麼「內核級C函數」來檢測運行iOS進程?
- 11. 你會爲內核模塊寫什麼?
- 12. 爲什麼我不能在內部函數中使用「this」?
- 13. 爲什麼我不能使用內建函數來重載subsref?
- 14. 爲什麼void以這種方式使用內聯函數?
- 15. 爲什麼foldr使用輔助函數?
- 16. 爲什麼在函數中使用* let *?
- 17. 爲什麼使用'which()'函數更快?
- 18. 爲什麼你不能用科學記數法在內核
- 19. 爲什麼SIMD指令不在內核中使用?
- 20. 爲什麼建立和使用內核模塊需要depmod?
- 21. 爲什麼使用libusb需要卸載內核驅動程序?
- 22. 爲什麼__exit在內核模塊編程中使用?
- 23. 爲什麼內核代碼不能使用紅色區域
- 24. 爲什麼多個內核使用順序算法?
- 25. 爲什麼我的Perl腳本不使用全部CPU內核?
- 26. find_get_pid()內核函數的錯誤值是什麼?
- 27. 什麼Linux內核的C函數表()出現「need_resched」平均
- 28. 爲什麼MSBuild只使用一個內核,而VS.NET使用同一個.sln上的所有可用內核?
- 29. 爲什麼內聯函數不能查看內部作用域?
- 30. 什麼數據結構使用128MB的1GB Linux內核空間?