Ответ 1
Я думаю, Minix был создан в значительной степени для этой цели.
Удачи!
Какую лучшую операционную систему нужно изучать, чтобы написать свою собственную операционную систему x86 с нуля?
Я думаю, Minix был создан в значительной степени для этой цели.
Удачи!
Возможно, будет сложно понять источник для всей ОС сразу. tutorials в osdev.org есть несколько Образцы кода "голые кости", чтобы вы начали.
Для моего класса ОС в колледже мы использовали Nachos OS Project и реализовали это. Я сделал версию на С++, но я думаю, что есть и порт Java. Я помню, что это было очень интересно и многому научилось, хотя это была большая работа.
Я только что написал свою версию ядра x86 с нуля! (для моего проект класса ОС), и это был опыт, о котором я не мог описать. Вы можете найти ценные ресурсы по ссылке выше.
Честно говоря, вам, вероятно, не стоит начинать с архитектуры x86 или даже с операционными системами, но, возможно, что-то вроде 8-битного стартового набора, как базовый Fox11 набора для разработки. В колледже я написал свою первую (и единственную) ОС в сборке для процессора M68HC11 (тот, что в комплекте).
Если вы действительно хотите создать свою собственную ОС с нуля, у вас впереди долгий путь.
Все зависит от того, как вы хотите, чтобы ваша операционная система функционировала, если вы хотите, чтобы микроядро вам нужно было изучать Minix 3, или если вы хотите, чтобы монолитное ядро, текущее ядро Linux - это хорошее место для начала (HINT: look в arch/x86/boot, там есть очень интересный код). Однако я лично считаю, что вы должны прочитать руководства Intel и AMD, а затем немного почитать на форумах и вики osdev.org. У них есть много кода для изучения и, как правило, полезны для новичков.
Я думаю, что лучший способ прочитать много разных источников операционной системы, безусловно, osdev barebone tutorials, рекомендации по исследованию ОС и документацию на вашем целевом оборудовании.
Я лично порекомендую посмотреть на ядро фисташки l4-ka, написанное в довольно чертовски хорошо С++. Есть также несколько небольших проектов, которые, безусловно, стоит проверить, например, jimix или родословная.
Лучше всего придерживаться форумов osdev и wiki - там уже много информации, см. http://forum.osdev.org и http://wiki.osdev.org
Я прочитал эту статью некоторое время назад. Вам это может показаться интересным. Этот парень написал MINIX в тот же день для самой цели обучения концепциям ОС. Поэтому, вероятно, это была бы хорошая простая ОС для изучения. http://www.cs.vu.nl/~ast/brown/
Однако, как упоминал Мартин и Кори, это большой кусок, чтобы пережевывать.
Нет смысла изучать устаревшую ОС, которая в значительной степени относится к текущей ОС, поскольку они, как правило, имеют долгую жизнь. Взгляните на некоторые свежие идеи (хотя они основаны на проверенных и достоверных), например Singularity