Это может быть напрасно, поскольку я знаю, что написание операционной системы невыносимо сложно (особенно для него самого).
-
Я не ожидаю построить следующий Linux или Windows.
-
Я знаю, что это будет ужасно, глючит и не сработает, но это нормально.
Я хочу написать все сам, в сборке, C и (некоторые) C++.
Это будущий проект, так как в данный момент я занят другими делами и у меня нет времени сразу, но я подумал, что сейчас спрошу, так что, возможно, я смогу получить много ответов на это, и это может создать и стать полезным ресурсом для такого подхода (все остальное, что я видел, включало сборку minix, использование существующего загрузчика, создание его в виртуальной программе загрузки и т.д.).
Я хочу настроить один из моих старых настольных компьютеров с монитором, клавиатурой и мышью и начать работать на чистом жестком диске.
Я хочу научиться писать свой собственный загрузчик (я нашел много ресурсов по этому поводу, но для полноты, пожалуйста, добавьте еще несколько хороших), мой собственный драйвер USB (если это необходимо), драйвер CD (если это необходимо) ) и т.д. Все, с нуля.
-
Как поместить код на компьютер? Что лучше сделать с дискетой? Может ли большинство компьютеров делать это с флешки?
-
Какие драйверы мне нужны, и можете ли вы предложить какие-либо ссылки на их создание?
-
После последовательности загрузки - что тогда? Как попасть в защищенный режим и т.д.
-
Как мне управлять памятью без помощи операционной системы? Я просто использую любые адреса, которые я хочу? Нет необходимости инициализации?
-
Что я, несомненно, столкнусь с тем, что смущает меня?
-
Как сделать из нее либо командную строку O/S, либо графическую?
-
На чем построена графическая операционная система? Например, как бы я сделал что-то вроде командной строки с шрифтом и картинкой вверху?
-
Где я могу прочитать о настройке многозадачной среды? (то есть, имея две графически похожие командные строки, идущие рядом).
-
Как бы я настроить своего рода систему управления окнами? Как отобразить графику на экране после настройки простой многозадачности?
Поверьте мне, я понимаю, что это очень сложный проект, и я, вероятно, никогда не смогу завершить его или написать что-либо о нем для какого-либо использования.
Я не упомянул множество других вещей, если вы о них думаете, не стесняйтесь добавлять их тоже.
Пожалуйста, поставьте одну "тему" за ответ - например, драйверы USB, а затем, возможно, список ресурсов, на которые нужно обратить внимание и т.д.
Также, пожалуйста, не предлагайте компоновку другого O/S или уже существующего кода. Я знаю, что прочитаю много ранее существовавшего кода (например, ядро Linux или примеры ресурсов, существующие драйверы и т.д.), Но в конечном итоге я хочу написать все сам. Я знаю, что должен опираться на что-то другое, и на SO есть много других вопросов, которые я могу прочитать, если передумаю и пойду по этому пути. Но это все о том, чтобы делать все с нуля.
Любые предложения о том, как сделать это графическим? Разные режимы видео и как с ними работать и т.д?