0
所以前一段時間我正在研究內核開發,沒有什麼真正的認爲我會放棄它,但它讓我想到了一個問題。內核如何防止直接內存/硬件訪問通過非高級處理
什麼能夠防止劫持內核的非高級進程?我的意思是,認爲自己該怎麼做,它的接縫很簡單,就像發送相同的ahci硬件調用一樣,內核會在硬盤上執行寫操作,而不需要任何內核來調用文件系統。
所以前一段時間我正在研究內核開發,沒有什麼真正的認爲我會放棄它,但它讓我想到了一個問題。內核如何防止直接內存/硬件訪問通過非高級處理
什麼能夠防止劫持內核的非高級進程?我的意思是,認爲自己該怎麼做,它的接縫很簡單,就像發送相同的ahci硬件調用一樣,內核會在硬盤上執行寫操作,而不需要任何內核來調用文件系統。
它不是內核,而是硬件本身,它提供了這樣的保護(內核使用使用)。
閱讀CPU modes,protection rings,process isolation,virtual address space,MMU,trusted computing base。
在Linux上,內核代碼應該是可信的(所以它的任何錯誤都可能會破壞任何東西)。所以儘量避免寫它。
瞭解更多關於computer architectures和instruction set architectures(例如x86,RISC-V,...)
然後讀Operating Systems : Three Easy Pieces(免費下載的)。
哈哈「儘可能避免寫它」......我只是把它寫成愛好。如果我認爲自己能做出能夠生產的東西,那我就會瘋了。 –