Студент создал целую операционную систему с нуля на C++. Да, вы не ослышались! Познакомьтесь с Banan OS, любительской операционной системой для архитектур x86_64 и i686, полностью написанной на C++ студентом Оскари Аларантой. Проект полностью независим, весь код написан исключительно Аларантой, за исключением портированного программного обеспечения.
В этой статье блога мы рассмотрим технические детали Banan OS. Мы также обсудим, что побудило её создателя разработать целую операционную систему с нуля. Наконец, мы поговорим о трудностях, с которыми он столкнулся в процессе.
Что такое Banan OS?
Banan OS — это Unix-подобная операционная система, разработанная для архитектур x86 и x86_64. Хотите верьте, хотите нет, но Оскари Аларанта, программист-самоучка и студент, разработал всю Banan OS с нуля на C++. Это действительно впечатляющая работа!
Banan OS имеет монолитное ядро и ряд основных компонентов, включая загрузчик, ядро и библиотеки пользовательского пространства. Отличительной особенностью Banan OS является использование пользовательской стандартной библиотеки C++, частично вдохновлённой stdc++
, а также надёжная поддержка современного оборудования и программного обеспечения.
Система уже предоставляет функциональную среду TTY и графического интерфейса, а также ключевые утилиты UNIX, такие как cp
, ls
, и stat
. Она поддерживает USB-устройства, диски NVMe и AHCI и даже включает собственный сетевой стек с поддержкой TCP и UDP.
Banan OS с файловой системой, похожей на UNIX, с функциями /dev
, /tmp
, и /proc
— это не просто учебный проект, а шаг к полноценной автономной операционной системе.
Аларанта отметил, что он регулярно тестирует Banan OS как на виртуальных машинах, так и на реальном оборудовании.
Мотивация
Оскари Аларанта посвятил разработке Banan OS более двух лет. Судя по всему, его основной мотивацией был интерес к низкоуровневому программированию, в частности к разработке операционных систем.
Эта страсть отразилась в его решении написать всю операционную систему с нуля на C++, исключив портированное программное обеспечение.
Проблемы
Аларанта отмечает, что самые серьёзные трудности, с которыми он столкнулся при разработке Banan OS, заключались в понимании обширных технических спецификаций, с чем он раньше не сталкивался.
Тем не менее, в ходе проекта также были приятные моменты, когда казалось, что «всё работает». Аларанта считает особенно приятным видеть, как новые функции безупречно работают на реальном оборудовании, и отмечает такие важные моменты, как:
- Обеспечение ввода с клавиатуры
- Реализация USB-входа для мыши
- Успешно запущенный DOOM
- Считывание данных с дисков
- Установление сетевого подключения
- Запуск компилятора в работу
Он считает, что проект стал по-настоящему увлекательным после создания базовых компонентов, которые позволили ему свободнее выходить за рамки обычного кода ОС и реализовывать функции, представляющие для него личный интерес. По его оценкам, этот этап был достигнут примерно через два месяца разработки.
Оскари Аларанта: Разработчик Banan OS
На момент написания этой статьи Оскари Аларанта — 22-летний программист-самоучка и студент из Тампере, Финляндия. Он интересуется низкоуровневым программированием, особенно разработкой операционных систем.
Страсть Аларанты к разработке операционных систем привела его к созданию Banan OS — проекта, над которым он работал более двух лет. Он выразил желание построить карьеру в этой отрасли, возможно, используя свой опыт работы с Banan OS в качестве портфолио.
Вклад в Banan OS
Banan OS — это совсем новый проект, и Оскари Аларанта приглашает всех желающих внести свой вклад в его улучшение.
Поскольку Banan OS — это обучающий проект для Аларанты, он просит участников заранее связываться с ним (по электронной почте, в Discord или путём создания проблемы) перед началом работы над новыми функциями. Исправления ошибок всегда приветствуются.
Banan OS в основном размещается на персональном сервере Alaranta. Хотя вносить свой вклад не так просто, как на таких платформах, как GitHub, вы можете отправлять запросы на добавление функций через зеркало GitHub, и Alaranta будет применять их вручную.
Если вам нужен прямой доступ к серверу Alaranta, вы можете связаться с ним по электронной почте или в Discord.
Заключение
Banan OS — доказательство того, что при должном усердии даже один студент может создать что-то выдающееся. Оскари Аларанта вложил много времени и сил в разработку Banan OS.
Примечательной особенностью Banan OS является то, что она в значительной степени создана с нуля, причём Аларанта сам написал большую часть кода. Такой амбициозный подход требует глубоких технических знаний и умения решать проблемы.
Стремление Аларанты создавать всё с нуля распространяется и на такие важные компоненты, как интерпретатор AML, который он решил разработать самостоятельно, а не использовать существующие решения. Этот выбор свидетельствует о его стремлении понять и контролировать все аспекты ОС.
Banan OS всё ещё находится в разработке. Ознакомьтесь с последними обновлениями и изменениями в репозитории проекта на GitHub.