As described herein, the distributed hyper-kernel runs below a conventional operating system (i.e., the operating system runs in a virtual machine built by a cooperating set of hyper-kernels), so there is a place to optimize this initialization without modifying the operating system, namely the virtual machine. Further, as described herein, while the operating system relies on a first level of dynamic address translation, the hyper-kernel makes use of a second level of dynamic address translation provided on modern microprocessors with hardware support for virtualization. This second level may be used to help speed up the initialization process.
Dynamic Address Translation
Additional details regarding dynamic address translation are described. Virtualization may be supported in hardware. Described below is an example process of an application accessing memory. An application typically references memory in a virtual address space. When a virtual address is referenced by a processor running the application, the processor translates that virtual address to a physical address by consulting a page table that maps application virtual addresses to physical addresses. Page tables are maintained by an operating system. An operating system running on a virtual machine is referred to herein as a guest operating system, and the page tables the guest manages become what is referred to herein as first-level page tables.