2011-02-26 204 views
0

我有几个关于linux内核内存页面写保护的问题。Linux内核代码空间写保护

  1. 我怎么能计算出,如果内核 代码(文本段)是写 保护与否。我可以看看 /proc/<process-id>/map以查看各种进程的内存映射。 但不知道在哪里寻找 内核代码的内存映射。

  2. 如果内核代码段是写 保护,那么是否有可能 代码段的网页是 任何其他内核 级代码覆盖。换句话说, 是否在文本段页面上进行写保护 仅针对用户空间提供保护 代码将写入该文件段,还是将其保留在 内核空间代码中。

感谢

回答

1
  1. 代码在内核中运行具有当前地址空间的页表的直接访问,因此它可以通过检查这些检查写访问。可能有帮助您进行检查的功能,但我不太熟悉mm代码以指出它们。有更容易的方法吗?我不确定。

  2. 内核文本不能从用户空间写入。该文本可以另外受到保护,防止从内核代码写入(我认为这就是你正在谈论的内容)。这只是防止错误的基本保护。内核代码,如果真的想要,可以通过直接修改页面表来禁用该保护。