С изучения архитектуры, принципов работы и ассемблера процессора для которого вы хотите написать гипервизор, а так же всей его платформы. Аналогично и для той платформы, в рамках которой вы его хотите его написать. Ну и дальше всё стандартно, как при разработке любого ПО:
- Формулируете вашу задачу в виде какого-то текстового/графического описания
- Формулируете ТЗ с конкретными требованиями, ограничениями и всем прочим
- На основе ТЗ разрабатываете ЧТЗ (Частное ТЗ) со всеми полными деталями, описаниями всех действий, событий, взаимодействий и прочее
- Используя ЧТЗ подготавливаете проект - архитектура, инструменты, системы, подсистемы и прочее с полным описанием, декомпозированными элементами вниз до самых простых и прочее
- Берём проект и по шагам его реализовываем
- Profit
В качестве примера реализации смотрите в исходники и документацию
virtualbox или
xen.