Читаешь много книг про работу процессора в защищенном режиме, про организацию памяти, про многозадачность. Потом читаешь много книг про работу с внешними устройствами, прерывания, DMA, шины, про организщацию работы всего этого паралельно и без затупов. Потом пытаешься написать ядро, которое будет хотя бы просто запускаться на голом железе и инициализировать минимально необходимый набор оборудования, чтобы сказать "Hello world!" в текстовом режиме.
Теперь у тебя есть минимально работающее ядро. Можешь пробовать начать обвешивать его функционалом, чтобы оно могло запускать другие процессы, распределять память между ними, транслировать физические адреса в виртуальные, обеспечивать конкурентный доступ к оборудованию через интерфейсы ядра. Корректно эти процессы запускать, завершать и следить, чтобы один не мог испортить память другого.
Ну вот и получилось что-то похожее на минимальную ОС.
Если тебе нужен свой дистрибутив типа Windows 10 Ultra Pro Vasya Pupkin MeG4][4x0r Edition, то можешь погуглить про системы развертывания ОС. Там в комплекте идут средства для подготовки дистрибутива с нужными настройками.