Это проект операционной системы с открытым исходным кодом, написанный на языке программирования Zig.
Бамос не внедряет новые стандарты, но стремится к наилучшей возможной реализации существующих.
Основная особенность и цель этого проекта-разработка легкой и чрезвычайно быстрой операционной системы с хорошо документированной , краткой и простой кодовой базой, насколько это возможно.
Он направлен на включение собственной поддержки для нескольких системных ABI между ядром и пространством пользователя (GNU/Linux, Windows NT и т. Д.). Это должно значительно улучшить пользовательский опыт и упростить работу для разработчиков программного обеспечения.

Несмотря на знакомые и устоявшиеся языки, такие как C/C ++ или, возможно, более безопасная ржавчина, наш выбор - Zig.
Зиг достаточно прост, чтобы быть более поддерживаемым, чем ржавчина, предлагая более безопасную и более функциональную альтернативу C/C ++. Zig позволяет генерировать высокоскоростный и оптимизированный машинный код, и одним из его основных преимуществ является система сборки, которая делает процесс компиляции плавным и невероятно простым.
Чтобы создать исполняемый файл ядра, все, что вам нужно, - это исходный код, компилятор Zig и команда zig build kernel .
Общая документация ОС доступна на этой странице.
Кодовая документация доступна на этой странице. Если вы хотите создать документацию локально, запустите следующую команду:
zig build docs Статический сайт будет размещен в каталоге docs , который затем может быть запущен с помощью:
cd docs
python -m http.serverОписание и документацию Zig Language для его стандартной библиотеки можно найти на официальном веб -сайте.
Бамос все еще маленький, но растущий проект.
Мы приветствуем любой вклад и приглашаем вас участвовать в разработке и эволюции проекта.
См. Информацию о внесении.
Процесс сборки довольно прост:
git clone https://github.com/bagggage/bamos.git
cd bamos
zig build kernel --release=[small | safe | fast] По умолчанию результат сборки будет расположен в каталоге .zig-out . Чтобы указать другой путь, используйте опцию --prefix=[path] во время сборки.
В настоящее время ОС опирается на сторонний загрузчик Bootboot, а утилита bootboot/mkbootimg используется для создания изображения. В будущем этот этап планируется упростить и сделать более кроссплатформенную. Однако, пока, чтобы создать изображение, вам нужно:
mkbootimg для вашей ОС в хосту.bootboot-bin , установив переменную BOOTBOOT в env.shiso.sh По умолчанию изображение будет размещено в dist каталоге.
Для быстрого тестирования и запуска ОС рекомендуется использовать эмулятор QEMU.
В Windows вы также должны заранее добавить каталог qemu в переменную среды PATH .
В корневом каталоге проекта есть сценарии qemu.sh и debug.sh :
qemu.sh запускает предварительно построенное системное изображение (по умолчанию dist/bamos.iso ) в эмуляторе.debug.sh компилизируется, создает изображение и запускает систему в эмуляторе. Бамос находится на ранней стадии разработки, и многие вещи еще не реализованы. Более того, для написания реализации и разработки архитектуры операционной системы требуется итеративный подход для поиска лучших решений, поэтому некоторые детали могут измениться, но все это в лучшем виде.
Чтобы отслеживать то, что уже было реализовано в проекте, и на каком этапе он сейчас находится, посетите эту страницу .