Низкоуровневый «горячий» сброс

После получения нужной начальной информации, следует инициировать некое начальное известное состояние.

reset.cpp

А именно:

  • подготовить страничную сегментацию;
  • настроить сегментные регистры и управляющие регистры;
  • перейти в новое окружение с новым стеком;

В отличие от официальной документации по страничной сегментации процессоров типа x86, в коде используется понимание страницы как страницы книги, то есть каталог страниц — книга (book), а указатель каталога — полка (rack).

Размер страницы для операционной системы был выбран равным 2МБ вместо 4КБ с целью уменьшения вложенности. Принципиально ничего не мешает использовать иерархию: страница (4КБ) — книга (2МБ) — полка (1ГБ).