图片无法显示,请右键点击新窗口打开图片

BiscuitOS 内存管理之分页大专题订阅入口

目录
  • PAGE_UFFD_WP 原理

  • PAGE_UFFD_WP 的应用

  • PAGE_UFFD_WP 使用场景

图片无法显示,请右键点击新窗口打开图片


PAGE_UFFD_WP 原理

图片无法显示,请右键点击新窗口打开图片

在 Linux 页表里存在这样一个标志位 PAGE_UFFD_WP, 它是一个相对较新的页表标志位,它与 userfaultfd 功能有关。Userfaultfd 是 Linux 内核中的一个功能,允许用户空间程序处理某些类型的页错误,这是通过创建一个文件描述符并使用它来接收关于页错误的事件来完成的. PAGE_UFFD_WP 标志位是用于实现用户空间页错误处理的写保护机制。当一个页面被这个标志位标记时,任何试图对该页面进行写操作的用户空间进程都会触发缺页(PageFault),内核不会立即处理这个写操作,而是通过 userfaultfd 机制通知用户空间的处理程序.

图片无法显示,请右键点击新窗口打开图片

PAGE_UFFD_WP 标志位可能在不同的硬件架构的位置不同,但 Linux 为了屏蔽硬件差异,统一使用 _PAGE_UFFD_WP 标志位表示. 例如在 X86/I386 中 PAGE_UFFD_WP 位于页表的 BIT10.

图片无法显示,请右键点击新窗口打开图片

图片无法显示,请右键点击新窗口打开图片

BiscuitOS 内存管理之分页大专题订阅入口

图片无法显示,请右键点击新窗口打开图片