Что вам нужно сделать, это дизайн операционной системы. Даже если, например, вы решите, что это должна быть UNIX-подобная система, еще предстоит принять много решений. Насколько похожа на UNIX? Какие части UNIX вам нравятся, и какие, по вашему мнению, нуждаются в улучшении?
Если вы не настроены на то, чтобы он был похож на UNIX, у вас возникнет еще больше вопросов: должны ли процессы образовывать дерево или они «плоские»? Какие виды межпроцессного взаимодействия вы хотите поддерживать? Вы хотите, чтобы он был многопользовательским, или просто многозадачным (или, возможно, однозадачным)? Вы хотите, чтобы это была система реального времени? Какую степень изоляции вы хотите обеспечить между задачами? Где вы хотите, чтобы он падал в масштабе монолитного или микроядерного? В какой степени (если есть) вы хотите, чтобы он поддерживал распределенную работу?
Я бы вообще советовал против изучения ядра Linux для вашего вдохновения. Это не против самого ядра Linux, но простой факт, что Linux предназначен в первую очередь для производственного использования, а не для обучения. Он имеет множество оптимизаций, хаков обратной совместимости и т. Д., Которые чрезвычайно полезны для производства, но скорее отвлекают, чем обучают.
Если вам удастся найти его, копия книги Льва ( «Комментарии Льва о 6-й редакции UNIX , с исходным кодом » Джона Лайонса) будет гораздо более простой отправной точкой. 6-е издание UNIX было все еще небольшим и достаточно простым, чтобы читать и понимать довольно быстро, не будучи слишком упрощенной игрушечной системой.
Если вы планируете нацеливаться на x86 (по крайней мере, в первую очередь), вы также можете взглянуть на MMURTL V 1.0 от Richard Burgess. Это представляет собой систему для x86, которая использует аппаратное обеспечение x86 гораздо больше, чем изначально предполагали разработчики ЦП, - что большинство реальных систем избегает переносимости на другие ЦП. Как вы можете догадаться, это имеет тенденцию быть гораздо более ориентированным на аппаратное обеспечение. Печатные копии кажутся дорогими и трудно найти, но вы можете скачать текст и код бесплатно.
К счастью, есть еще немало возможностей - например , Эндрю Таненбаум и Альберт Вудхалл: разработка и внедрение операционной системы .