Я думал о создании операционной системы, и теперь я полагаюсь на ваш совет о том, с чего начать.
Ты серьезно? Я имею в виду, что существует множество фанатских операционных систем, но это тяжелая и тяжелая работа!
Для начала операционная система должна иметь, по крайней мере:
A Загрузчик: чтобы вставить ядро в ОЗУ, подготовьте TLB и сделайте несколько служебных операций
Ядро: ядро является наиболее важной частью операционной системы и управляет такими важными аспектами, как как отображение физической / виртуальной памяти между программами, многозадачность, планирование ввода / вывода, IPC, мьютексы и так далее. В зависимости от ОС, существует несколько философий (монолитная, как архитектура Linux; гибридная, как архитектура OS X; или микроядро, как незаконченный Херд). В зависимости от этого, именно код ядра или код пользователя управляет каждым отдельным аспектом системы.
Пользовательские приложения, которые дадут пользователю некоторое взаимодействие с машиной.
В мире GNU / Linux и BSD у нас есть несколько из них, например:
Загрузчики: GRUB2, GRUB, LILO, ISOLINUX ...
Ядра: Linux, kFreeBSD ...
Пользовательские приложения: GNU [или] BSD Coreutils, Bash, Xorg и многие другие:)
В любом случае, если это ваш вопрос, вот ваш ответ, и для получения дополнительной информации, их много на как начать думать о проектных решениях по каждому аспекту в следующей вики: http://wiki.osdev.org/Main_Page
Там много информации о том, как работают загрузчики, как программировать без использования металлов, таких как stdio.h и много полезной информации.