2011-02-26 111 views
0

我有幾個關於linux內核內存頁面寫保護的問題。Linux內核代碼空間寫保護

  1. 我怎麼能計算出,如果內核 代碼(文本段)是寫 保護與否。我可以看看 /proc/<process-id>/map以查看各種進程的內存映射。 但不知道在哪裏尋找 內核代碼的內存映射。

  2. 如果內核代碼段是寫 保護,那麼是否有可能 代碼段的網頁是 任何其他內核 級代碼覆蓋。換句話說, 是否在文本段頁面上進行寫保護 僅針對用戶空間提供保護 代碼將寫入該文件段,還是將其保留在 內核空間代碼中。

感謝

回答

1
  1. 代碼在內核中運行具有當前地址空間的頁表的直接訪問,因此它可以通過檢查這些檢查寫訪問。可能有幫助您進行檢查的功能,但我不太熟悉mm代碼以指出它們。有更容易的方法嗎?我不確定。

  2. 內核文本不能從用戶空間寫入。該文本可以另外受到保護,防止從內核代碼寫入(我認爲這就是你正在談論的內容)。這只是防止錯誤的基本保護。內核代碼,如果真的想要,可以通過直接修改頁面表來禁用該保護。