Operating Systems: From 0 to 1 — учимся писать ОС по-настоящему

26 Mar, 2024

Репозиторий давно не обновлялся

Последнее обновление было 2 года назад.

Когда в последний раз вы задумывались, как на самом деле работает ваш компьютер? Не просто "нажимаете кнопку — получаете результат", а что происходит на уровне процессора, памяти и аппаратных прерываний? Проект os01 — это не очередной учебник по операционным системам, а полноценный практикум для тех, кто хочет понять компьютер до самых его основ.

Почему этот проект особенный

Большинство материалов по операционным системам учат теории, но не дают реальных навыков работы с "железом". Автор os01 пошел другим путем:

  • Обучение через практику — вы будете писать код, читая документацию к процессору, как это делают профессиональные разработчики ОС
  • От простого к сложному — от базовых концепций электричества до управления процессами через TSS
  • Работа с первичными источниками — Intel Manual становится вашим основным справочником

"Вы даете человеку рыбу — и кормите его на день. Вы учите его ловить рыбу — и даете ему занятие на всю жизнь."

Эта философия пронизывает всю книгу. Вместо готовых решений — инструменты для самостоятельного изучения.

Что вы освоите

  1. Работа с аппаратным обеспечением

    • Чтение и применение спецификаций Intel
    • Написание кода без стандартной библиотеки
    • Отладка на голом железе с QEMU и gdb
  2. Глубокое понимание x86 архитектуры

    • Ассемблер не как абстракция, а как инструмент управления процессором
    • Организация памяти и работа с прерываниями
  3. Полный цикл создания ОС

    • От загрузчика до планировщика процессов
    • Реализация драйверов для базового ввода-вывода

Для кого это подойдет

  • Любознательные разработчики, которые хотят выйти за рамки высокоуровневых языков
  • Студенты компьютерных специальностей, ищущие практическое применение теории
  • Системные программисты, желающие углубить понимание аппаратного уровня

Как устроено обучение

Книга разделена на три части:

  1. Фундамент (8 завершенных глав):

    • Основы электричества и компьютерной архитектуры
    • x86 ассемблер через призму Intel Manual
    • Создание исполняемых файлов для bare metal
  2. Практикум (в разработке):

    • Реализация компонентов ОС как учебные задания
    • Работа с прерываниями и управление процессами
  3. Дальнейшее развитие:

    • Переход к изучению Linux Kernel
    • Работа с OSDev Wiki как следующая ступень

Реальный пример из книги

В главе 4 автор показывает, как использовать Intel Manual Volume 2 для написания ассемблерного кода. Вместо сухого перечисления инструкций — методика работы с технической документацией.

; Пример работы с портами ввода-вывода
mov dx, 0x3F8   ; адрес COM-порта
in al, dx       ; чтение байта
out dx, al      ; запись байта

Начальные требования

  • Базовые знания C (указатели, структуры, работа с памятью)
  • Опыт работы в Linux командной строке
  • Элементарные понятия об электричестве (можно изучить параллельно)

Почему стоит попробовать

После прохождения первых двух частей вы:

  • Научитесь читать и понимать техническую документацию производителей
  • Сможете отлаживать код без помощи Google
  • Поймете, как на самом деле работают высокоуровневые абстракции

Проект активно развивается — уже сейчас доступно 8 глав готового материала с практическими заданиями. Для тех, кто хочет заглянуть под капот современного компьютера, это один из лучших способов сделать это самостоятельно.

Скачать книгу | Пример реализации ОС