Пишем свою операционную систему с нуля обзор легендарного туториала с GitHub

04 Feb, 2026
30,590
🔱 3,552
👥 795

Задумывались ли вы когда-нибудь, что на самом деле происходит в те несколько секунд между нажатием кнопки питания на компьютере и появлением логотипа вашей операционной системы? Это не магия, а четкая последовательность низкоуровневых команд, и, что самое интересное, вы можете написать ее сами.

Сегодня мы заглянем в репозиторий os-tutorial от Карлоса Феноллозы — проект, который стал для многих разработчиков первым шагом в мир создания операционных систем. Несмотря на то, что автор честно предупреждает о его возрасте, этот туториал до сих пор остается одной из лучших отправных точек для тех, кто хочет понять, как все устроено «под капотом».

Что это за проект и кому он будет полезен?

Представьте, что вы хотите научиться строить автомобили. Один путь — взять готовый двигатель и часами изучать его схему. Другой — собрать простенький двигатель внутреннего сгорания с нуля, своими руками. os-tutorial — это как раз второй подход.

Автор создал его из-за разочарования в классическом университетском образовании. Там часто дают сложные концепции вроде семафоров или управления памятью, но упускают самое начало: как написать свой собственный загрузочный сектор? Как заставить процессор перейти в защищенный режим?

Этот репозиторий — не готовая ОС, а пошаговое руководство. Оно идеально подойдет:

Реклама
  • Начинающим системным программистам, которые хотят увидеть теорию в действии.
  • Опытным разработчикам, которым любопытно заглянуть на уровень ниже привычных фреймворков.
  • Студентам, которые находят университетские курсы слишком сухими и теоретизированными.

Главная философия проекта — минимум теории, максимум практики. Автор прямо говорит: «Google — ваш лектор по теории». Здесь вас не будут грузить длинными объяснениями, а сразу бросят в бой, снабдив хорошо прокомментированным кодом.

Как устроен процесс обучения?

Весь туториал разбит на небольшие уроки, каждый в своей папке. Вы начинаете с 01-boot-sector и двигаетесь последовательно. Такой подход превращает пугающую задачу «написать ОС» в серию маленьких, вполне достижимых целей. Каждый урок занимает от 5 до 15 минут.

Структура каждого шага проста и эффективна:

  1. Открываете README в папке урока. В нем кратко описаны цели и концепции, с которыми нужно быть знакомым. Не знаете чего-то? Самое время погуглить.
  2. (Опционально) Пробуете написать код сами. После прочтения README у вас уже есть понимание задачи.
  3. Изучаете файлы с кодом. Они очень подробно прокомментированы, так что вопросов «а что делает эта строчка?» почти не возникает.
  4. (Опционально, но рекомендуется) Экспериментируете. Лучший способ что-то понять — это попытаться это сломать. Меняйте команды, смотрите на результат.

Такой интерактивный подход гораздо увлекательнее, чем чтение толстых книг. Вы сразу видите плоды своих трудов: вот ваш текст выводится на экран напрямую из загрузчика, вот вы переключаетесь из 16-битного в 32-битный режим, а вот уже пишете первые функции на C, которые вызываются из ассемблерного кода.

Что вы успеете сделать?

Автор проведет вас по самым первым и важным этапам создания операционной системы. На данный момент в туториале реализованы следующие шаги:

  • Загрузка с нуля, без GRUB. Вы напишете свой собственный загрузочный сектор — те самые 512 байт, которые BIOS загружает в память.
  • Переход в 32-битный режим. Почувствуйте себя настоящим хакером, управляя режимами работы процессора.
  • Переход от ассемблера к C. Вы научитесь вызывать C-функции из низкоуровневого ассемблерного кода, открывая дорогу для написания сложной логики.
  • Обработка прерываний. Узнаете, как ОС реагирует на события от оборудования, например, на нажатие клавиш.
  • Ввод с клавиатуры и вывод на экран. Создадите базовые драйверы для взаимодействия с пользователем.
  • Основы своей libc. Напишете несколько базовых функций стандартной библиотеки C.

В планах у автора были и более амбициозные цели: управление памятью, файловая система, простенький shell и даже пользовательский режим. Хотя проект сейчас не развивается, пройденные уроки дают прочную базу для дальнейших самостоятельных исследований.

Важное замечание

Автор в самом начале README разместил важное предупреждение: проект старый и заброшенный, в нем есть технические и дизайнерские недочеты. Он советует искать более современные источники для серьезного изучения дизайна ОС.

Стоит ли тогда тратить на него время? Определенно, да. Думайте об этом репозитории не как о чертеже современного небоскреба, а как о курсе по основам архитектуры. Фундаментальные принципы загрузки компьютера и взаимодействия с железом не так уж сильно изменились. Этот туториал блестяще справляется с задачей демистификации этих процессов.

os-tutorial — это не про создание нового Linux. Это про личный опыт, про тот самый момент, когда после перезагрузки виртуальной машины на черном экране появляется ваша надпись «Hello, world!», выведенная вашим собственным кодом.

Если вы устали от высокоуровневых абстракций и хотите понять, как работает самое сердце компьютера, — этот репозиторий для вас. Он не сделает вас экспертом по ядру Linux за одну ночь, но подарит нечто более ценное: глубокое понимание основ и уверенность в том, что вы способны разобраться в самых сложных системах. Просто форкните репозиторий и пройдите первый урок. Возможно, это будет самое увлекательное, что вы делали за последнее время.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.