paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Modal Abstractions for Virtualizing Memory Addresses

虚拟化内存地址的模态抽象
OOPSLA 9(OOPSLA2)2025匹配度 3/10 · 论文属于形式化验证/定理证明方向,研究多地址空间 x86-64 虚拟内存管理代码在 Rocq 中的验证,提出模态断言与虚拟 points-to。它与用户核心关注的 LLM/Agent 改进静态分析或形式化验证、浮点程序分析、贝叶斯程序分析均无直接交叉,也未涉及 LLM/Agent、工业落地或新 benchmark,因此只能算相关背景。引用 1 inbox
Ismail Kuru, Colin S. Gordon
crossref: 2026-09-10

AI 速览

一句话:提出模态断言 [r]P 与虚拟 points-to 断言,在 Rocq 中验证多地址空间 x86-64 虚拟内存管理代码。

虚拟内存管理(VMM)是 OS 内核关键部分,但验证困难:页表通过写入内存更新,而所用地址本身虚拟化。已有工作要么只处理单地址空间,要么信任大量汇编。本文提出模态抽象 [r]P,表示断言 P 在根为 r 的地址空间中成立,使不同地址空间能相互引用,从而完整验证操作多地址空间的指令序列。作者还定义虚拟 points-to 断言,按页表根模拟硬件地址转换,并处理其对地址空间的隐式依赖。论文用困难 VMM 代码片段展示该方法能处理先前工作无法覆盖的示例,包括随指令序列切换地址空间进行推理。结果在 Rocq 中形式化为类 RISC 的 x86-64 汇编片段。

问题
如何验证操作多个虚拟地址空间的 VMM 汇编代码?现有方法只支持单地址空间,或需信任大量汇编代码。
方法
引入模态断言 [r]P 和虚拟 points-to 断言,按页表根定义地址转换,并在 Rocq 中形式化类 RISC 的 x86-64 汇编片段。
评估
通过若干困难的 VMM 代码片段(包括切换地址空间的指令序列)演示方法可处理先前工作无法覆盖的例子,全部在 Rocq 中机器验证。
原文摘要(Abstract)

Virtual memory management (VMM) code is a critical piece of general-purpose OS kernels, but verification of this functionality is challenging due to the complexity of the hardware interface (the page tables are updated via writes to those memory locations, using addresses which are themselves virtualized). Prior work on verification of VMM code has either only handled a single address space, or trusted significant pieces of assembly code. In this paper, we introduce a modal abstraction to describe the truth of assertions relative to a specific virtual address space: [r]P indicating that P holds in the virtual address space rooted at r. Such modal assertions allow different address spaces to refer to each other, enabling complete verification of instruction sequences manipulating multiple address spaces. Using them effectively requires working with other assertions, such as points-to assertions about memory contents — which implicitly depend on the address space they are used in. We therefore define virtual points-to assertions to definitionally mimic hardware address translation, relative to a page table root. We demonstrate our approach with challenging fragments of VMM code showing that our approach handles examples beyond what prior work can address, including reasoning about a sequence of instructions as it changes address spaces. Our results are formalized for a RISC-like fragment of x86-64 assembly in Rocq.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot2986,
  title = {Modal Abstractions for Virtualizing Memory Addresses},
  author = {Ismail Kuru and Colin S. Gordon},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {9},
  number = {OOPSLA2},
  year = {2025},
  doi = {10.1145/3763134}
}