Writing a Hypervisor in 1k Lines
Я написал учебник по созданию гипервизора с нуля за 1 000 строк кода: 1000hv.seiya.me. Это тип-1 гипервизор для 64-битного RISC-V с расширением H в QEMU. Подойдёт тем, кто уже прошёл OS in 1 000 Lines.
Код на стабильном Rust — без nightly. Сообщество Rust наконец-то добавило всё необходимое, включая inline-assembly.
Идея книги: гипервизор — это «обработчик событий»:
const vcpu = new VirtualCPU(memory);
while (true) {
try { vcpu.resume(); }
catch (e) { handle(e); } // MMIO, прерывания…
}
Он запускает гостевую ОС, перехватывает выходы из VM и возвращается. Это позволяет строить не только классические ОС, но и безопасные среды вроде gVisor или Hyperlight.
Книга уже доступна онлайн. Приятного кодинга!