ОС ToaruOS, написанная с нуля, взрослеет: на что способна экспериментальная операционная система год спустя

в 20:56, , рубрики: IT-стандарты, ToaruOS 2.1, Блог компании Selectel, операционные системы, ОС, Софт
ОС ToaruOS, написанная с нуля, взрослеет: на что способна экспериментальная операционная система год спустя - 1

Чуть меньше года назад мы опубликовали статью об операционной системе ToaruOS, которая выросла из студенческого проекта. Несмотря на то, что команда этого проекта не очень большая, система продолжает развиваться, и сейчас ее действительно можно назвать «взрослой». Разработчики выпустили версию 2.1, добавив новые возможности.

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

Что это за система такая?


В целом, как система уже не студенческая, так и ее разработчики не студенты (они ими были, но с момента выпуска первой версии прошло 11 лет). Сам проект стартовал в 2010 году в Иллинойском университете. Разработчик — К. Ланге, который в то время решил заняться изучением возможностей композитных интерфейсов. Для этого он не стал использовать сторонние разработки, а создал свой собственный «велосипед», то есть написал прототип операционной системы с внедренными идеями.

Работу оценили коллеги, стали интересоваться ей и коллеги разработчика. Постепенно из небольшого проекта операционная система превратилась во вполне серьезную разработку с комьюнити, которое объединяет сейчас специалистов из разных стран. Это уже далеко не только коллеги разработчика, но и другие независимые программисты. Поэтому Ланге принял решение преобразовать исследовательскую работу в полноценную ОС, с которой может работать обычный пользователь.

Как и говорилось выше, система поддерживает большое количество популярных драйверов устройств, включая драйверы диска (PATA и ATAPI), ФС EXT2 и ISO9660, framebuffer, клавиатуры, мыши, сетевых карт (AMD PCnet FAST, Realtek RTL8139 и Intel PRO/1000), звуковых чипов (Intel AC'97), а также дополнений VirtualBox для гостевых систем. При этом ядро способно на многое. Например, оно поддерживает Unix-потоки, TTY, виртуальную ФС, псевдо-ФС /proc, многопоточность, IPC, ramdisk, ptrace, разделяемую память, многозадачность и другие типовые возможности.

Кроме всего прочего, ОС может похвастаться композитным оконным менеджером. Она поддерживает динамически связываемые исполняемые файлы в формате ELF, многозадачность, графический стек, плюс поддерживает Python 3 и GCC. Файловая система здесь — ext2, а загрузчик поддерживает как BIOS, так и EFI.

ОС ToaruOS, написанная с нуля, взрослеет: на что способна экспериментальная операционная система год спустя - 2

Разработчики выпустили и несколько нативных приложений, включая редактор кода Bim (он похож на Vi), файловый менеджер, эмулятор терминала, графическая панель с поддержкой виджетов, пакетный менеджер. Кроме того, команда проекта выпустила и библиотеки для поддержки изображений (PNG, JPEG) и TrueType-шрифтов. Занимались создатели системы и портированием софта, включая Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, Super Nintendo emulator, Bochs и т.п.

Конечно, систему не могли оставить без сетевых функций. По словам разработчиков, новая операционная система предоставляет возможность использовать API сокеты в стиле BSD-систем и поддерживает сетевые интерфейсы, включая loopback.

Новое, старое, модифицированное


ОС ToaruOS, написанная с нуля, взрослеет: на что способна экспериментальная операционная система год спустя - 3
Речь идет о расширении возможностей ОС, а также о добавлении новых функций. Например, в версии ToaruOS 2.1 добавлено и модифицировано вот что:

• Появилась поддержка архитектуры AArch64 (ARMv8), в том числе с экспериментальной возможностью использования ToaruOS на плате Raspberry Pi 400 и в эмуляторе QEMU. К сожалению, пока что это лишь тестовая поддержка, так что возможны проблемы при работе.
• Оптимизирована обработка и передача сигналов процессам в пространстве юзера. Так, появились вызовы sigaction, sigprocmask, sigwait и sigsuspend.
• Кроме того, разработчики оптимизировали управление памятью в пространстве пользователя, включая добавление системного вызова munmap.
• Отрисовка терминала тоже улучшена, плюс команда проекта добавила кэш глифов для шрифтов True Type.
• Значительно улучшен сетевой стек. Так, например, в ifconfig появилась поддержка установки адресов IPv4 и настроек маршрутизации. Обеспечена работа сокетов ICMP. Добавлена поддержка функции recvfrom для сокетов UDP и ICMP.
• Загрузчик теперь поддерживает работу с USB-клавиатурами.
• Появилась утилита grep с поддержкой регулярных выражений.

Софт разрабатывается при помощи предложенного командой языка программирования, который, в целом, можно назвать сокращенным вариантом Python. Его особенность в том, что в нем явно определяются переменные, плюс сам язык отличается компактной реализацией. Язык может использоваться и вне операционной системы ToaruOS. Работать с ним можно в таких ОС, как Linux, macOS, Windows. В браузерах с поддержкой WebAssembly он тоже запускается.

Язык называется Kuroko, его синтаксис похож на синтаксис Python, он поддерживает компиляцию и интерпретацию байткода. Этот интерпретатор представляет собой сборщик мусора, он поддерживает многопоточность без применения глобальной блокировки.

Код же самого проекта написан на языке C, он распространятся под лицензией BSD. Если есть желание протестировать ОС, то вот live-образ, он весит всего 14,4 МБ. Ну а тестировать можно в QEMU, VMware или VirtualBox. Ну и вот Github с наработками команды.

Автор:
kkxen

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js