Представляем Banan-OS: совершенно новая ОС, написанная с нуля на C++
Разработчик Banaymous только что выпустил новую ОС, написанную с нуля, которая уже поддерживает многие функции современных операционных систем. Banan-OS отражает двухлетние усилия разработчика и написана почти полностью на C++, с некоторым количеством 16-битного ассемблера реального режима, используемого для загрузчика BIOS. В проекте даже используется собственная библиотека Banaymous на C++. В настоящее время ОС поддерживает архитектуры x86_64 и i686. Однако нет необходимости устанавливать ее локально, так как разработчик размещает живой пример, с помощью которого пользователи могут посмотреть, что она может предложить.
Несмотря на то, что Banon-OS все еще находится в зачаточном состоянии, у нее есть несколько общих функций, которые демонстрируют, насколько далеко она продвинулась как полноценная ОС. К этим функциям относятся:
- Пользовательское пространство Ring3
- SMP (мультипроцессинг)
- Линейный фреймбуфер (VESA и GOP)
- Сетевой стек
- Загрузка исполняемых файлов ELF
- Интерпретатор AML (частичный)
- Базовая графическая среда
Графический интерфейс особенно впечатляет, поскольку в нем есть терминал и базовая строка состояния. В настоящее время нет ни приложений, ни программы запуска, но эти функции будут реализованы в будущем.
Banon-OS также поддерживает множество различных драйверов, сетевых опций, файловых систем и загрузчиков, что, несомненно, привлечет к сотрудничеству других разработчиков. Ниже приведено несколько основных моментов из каждой из этих категорий:
- Драйверы: NVMe-диски, клавиатуры и мыши PS2, USB-клавиатуры, USB-мыши и USB-накопители
- Сети: ARP, ICMP, IPv4, UDP, доменные сокеты UNIX
- Файловые системы: Виртуальная файловая система, Ext2, FAT12/16/32, Dev, Ram, Proc
- Загрузчики: GRUB и пользовательский загрузчик BIOS
Для тех, кто хочет узнать больше о структуре кода Banan-OS или внести свой вклад в проект, пользователи могут заглянуть на страницу проекта на GitHub. Там Банаймус предоставляет подробную информацию о проекте и конкретные инструкции по внесению вклада.