Как стать автором
Обновить
Selectel
IT-инфраструктура для бизнеса

Больше операционных систем, хороших и разных: что умеет ToaruOS 2.0

Время на прочтение4 мин
Количество просмотров12K

В мире информационных технологий много всего интересного — как среди аппаратного обеспечения, то есть «железа», так и программного. Одна из таких интересных вещей — Unix-подобная операционная система ToaruOS 2.0. Она началась едва ли не со студенческой курсовой работы, но постепенно превратилась во вполне серьезный проект, коммьюнити которого быстро расширяется.

Ну а поскольку на днях появилась уже версия 2.0, то о ней стоит поговорить, поскольку проект явно не собирается затухать, а развивается. Краткая история ОС и список ее возможностей, включая новую версию — под катом.

Как все начиналось


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

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

Конечно, операционной системой для домохозяек ToaruOS 2.0 вряд ли станет, но более-менее продвинутые пользователи в ней разберутся без проблем.

Структура системы


В 2020 году ОС состояла из таких компонентов, как:

  • Ядра, которое получило название Toaru Kernel.
  • Оконного композитора Yutani, который управляет оконными буферами, раскладкой и маршрутизацией ввода.
  • Текстового редактора Bim, который представляет собой портированный Vim с ограниченным количеством возможностей, но подсветкой синтаксиса.
  • Эмулятора терминала с простым и понятным названием Terminal.
  • Компонента ld.so (dynamic linker/loader), который управляет динамически подключенными бинарниками ELF.
  • Оболочки Esh, поддерживающей работу с конвейерами, переменными, направлениями и т.п.
  • Менеджера пакета MSK.


Отдельно стоит поговорить о ядре, поскольку оно использует гибридную модульную архитектуру, сочетает монолитную основу и средства для использования загружаемых модулей. В виде таких модулей оформлено большинство драйверов устройств. Правда, их пока что немного — поддержка «железа» имеет базовый уровень. Разработаны драйверы диска (PATA и ATAPI), ФС EXT2 и ISO9660, framebuffer, клавиатуры, мыши, сетевых карт (AMD PCnet FAST, Realtek RTL8139 и Intel PRO/1000), звуковых чипов (Intel AC'97), а также дополнений VirtualBox для гостевых систем.

Ядро поддерживает также Unix-потоки, TTY, виртуальную ФС, псевдо-ФС /proc, многопоточность, IPC, ramdisk, ptrace, разделяемую память, многозадачность и т.п.

С самого начала своего существования система проектировалась как многозадачная. Она может выполнять Python 3 и GCC.


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

Что еще?


В качестве файловой системы разработчики используют ext2, здесь они не стали придумывать что-то свое. Загрузчик системы почти всеядный, он поддерживает BIOS и EFI.

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

Как команда разработчиков, так и представители комьюнити уже портировали Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, эмулятор Super Nintendo, Bochs и другое программное обеспечение, как распространенное, так и не очень.


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


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

Что там «выросло» в новой версии?


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

Среди новых функций и возможностей стоит выделить:

  • Доработку загрузчика BIOS, который теперь поддерживает больше аппаратных конфигураций. Кроме того, переработан и загрузчик EFI. Специалисты добавили возможность редактирования командной строки ядра.
  • Довольно сильно расширены возможности графической библиотеки, включая добавление афинных преобразований.
  • Оптимизирована работа оконного фреймворка.
  • Доработано ядро, благодаря чему удалось добавить необходимые пользователю утилиты, включая top, strace, dbg, ping и cpuwidget.
  • Добавлены виджеты, в которых теперь появилась поддержка загружаемых библиотек, динамической раскладки элементов и всплывающих окон.

С полным списком обновлений и оптимизаций можно ознакомиться по этой ссылке. А вот Github с наработками команды. Ну а в качестве задела на будущее, точнее выхода версии 2.1, разработчики анонсировали добавление устройств AHCI, xHCI, USB HID. Еще через время будет реализована поддержка архитектуры AArch64.

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

Теги:
Хабы:
Всего голосов 35: ↑33 и ↓2+44
Комментарии16

Публикации

Информация

Сайт
slc.tl
Дата регистрации
Дата основания
Численность
1 001–5 000 человек
Местоположение
Россия
Представитель
Влад Ефименко