目录
目录README.md

Formal Verification of Memory Allocator in Hvisor

Proof Target: bitmap-allocator, which is a Bitmap-based allocator employs a multi-level bitmap structure to achieve efficient management of large-scale memory space.

Introduction

Why Memory Allocation Matters

In a Type-I Hypervisor, the memory allocator is responsible for assigning non-overlapping physical page ranges to different VMs. It collaborates with the page table to achieve strong isolation and verifiable security:

  • Disjointness: At any time, allocated intervals must be non-overlapping.
  • Availability: If there exists a sufficiently large contiguous free region, the allocator must be able to locate and return it.
  • Reclaimability: Once released, an interval must return to the free set.
  • Hierarchy Consistency: The parent-level bitmap must correspond exactly to the views of its child allocators.

The page table enforces access control, while the allocator ensures non-overlapping intervals and resource scheduling. Together, they form the foundation of memory isolation in virtual machines, as shown in the following figure.

BitMap-Allocator Structure

The following figure illustrates the tree-like structure of bitmap-allocator. It’s each layer manages an address space 16 times larger than the next layer below it.

Proof Architecture

We divide the verification into three layers:

  • The first layer includes several non-standard library functions that are invoked.
  • The second layer is BitAlloc16, which serves as the leaf-node layer.
  • The third layer is BitAllocCascade16, forming a complete 16-ary tree.
关于
4.2 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

©Copyright 2023 CCF 开源发展委员会
Powered by Trustie& IntelliDE 京ICP备13000930号