Давай начнем!
C Язык и x86 Ассамблея
Конечно, вам нужен только простой сборку. Что касается языка C , вам не нужно много знаний, чтобы понять процесс от исходных файлов до исполняемых файлов.
Основные команды linux
В простом компиляции ядра мы использовали некоторые инструменты под linux , такие как nasm , и, конечно, в windows также есть их, включая gcc . Но процесс компиляции выполняется в виртуальной машине linux .
Какие инструменты мы будем использовать?
Notepad++ , sublime и т. Д., Самый простой блокнот - это в порядке.sublime может отображаться в 16 форме, а виртуальная машина также имеет инструменты, которые помогут нам разобраться.linux , мы используем Ubuntu i386 здесь. Нужно установить инструменты nasm , vim , gcc , readelf и т. Д.Конечно, вам не нужно беспокоиться. При использовании этих инструментов или материалов в статье будут гиперссылки, вы можете загрузить и просмотреть их. В то же время, в Интернете также есть много информации для вас, чтобы прочитать.
Какой последний результат?
Наконец, конечно, это не очень полная операционная система. Это больше похоже на исследование и понимание OS , а также взаимосвязь между языком C и сборкой, и, наконец, это понимание того, как с ним связаны аппаратное и программное обеспечение.
В 7 частях мы завершили только включение и включение, загружая основной загрузочный сектор, а затем загружаем больше информации в память. Наконец, мы просто осознали запись из реального режима в защищенный режим. Это все, но прототип операционной системы примерно одинаковы.
На протяжении всего процесса мы ссылались на некоторые видео и электронные учебники
[1] " 30 -дневная домашняя операционная система"
[2] «Реализация операционной системы Oranges »
[3] 51CTO
и т. д.
Основной ссылкой являются электронные книги [2] . Содержание в [1] более полное, и конечный результат более полный.
Исходные файлы и заметки загружаются в GitHub вместе. Если у вас есть какие -либо вопросы, вы также можете связаться со мной по адресу [email protected] . Каждая папка является независимой структурой, и скомпилированные двоичные файлы не загружаются, но исходный код и инструменты загружаются.