用戶內存和內核內存在Linux內核(內核空間安全性)方面有什麼區別?如何從用戶空間訪問內核空間?
我可以從用戶空間在內核地址空間中寫入什麼不同的方式?
我知道的一種方法是通過系統調用。我們可以使用多個系統調用,但最後他們都是系統調用。即使在系統調用中,我們也會將數據發送到內核空間,在那裏它(驅動程序或相應模塊)調用像copy_from_user()這樣的函數將數據從用戶空間複製到內核空間。這裏我們完全沒有寫入地址空間。我們只是傳遞一個包含需要複製到內核緩衝區的數據的用戶指針。
我的問題是有什麼辦法可以訪問存在於內核空間中的物理地址並對其執行操作?
二,除了系統調用,還有其他的方式可以從用戶應用程序寫入內核空間嗎?
我提到這個link從stackoverflow。但我認爲我的問題沒有在那裏回答,而是從不同的角度來看。因此我想問一個不同的問題。
請分享您的知識... 謝謝。
首先了解x86分頁如何工作:https://stackoverflow.com/questions/18431261/how-does-x86-paging-work,這將有所幫助。 – 2017-05-31 13:14:25
另請參閱[如何在不崩潰Linux內核的情況下訪問mmaped/dev/mem?](https://stackoverflow.com/q/11891979/608639),[/ dev/mem的mmap失敗且參數無效,但地址爲頁面對齊](https://stackoverflow.com/q/39134990/608639)和[如何從用戶空間訪問內核空間?](https://stackoverflow.com/q/9662193/608639) – jww 2017-07-11 03:24:06
您可能想要閱讀[vDSO](https://en.wikipedia.org/wiki/VDSO)。 – 2018-02-13 12:51:04