В мире информационных технологий много всего интересного — как среди аппаратного обеспечения, то есть «железа», так и программного. Одна из таких интересных вещей — 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 emulator, 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 году.

Комментарии (15)


  1. Kroleg
    13.12.2021 21:37
    +20

    Итак немалое количество людей еще раз с нуля пилит новую Unix-подобную ОС.
    Решение какой задачи или обкатка какой новой идеи потребовали таких огромных усилий сообщества?


    1. quwy
      14.12.2021 01:42
      +8

      Очевидно, все существующие Unix-подобные ОС поражены каким-то фатальным недостатком.


  1. Elsajalee
    13.12.2021 23:20

    Статья

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

    Справка

    Композитный интерфейс - интерфейс, в котором сигналы цветности и яркости не разделены, а передаются по одному каналу связи, называется «композитным» (т.е. многокомпонентный). Это один их самых первых упрощенных интерфейсов.

    Какими идеями? Случайно не realtime ядро? Вот реально интересно, т.к. композитные интерфейсы не интересны, а вот станки с ЧПУ - интересны.


    1. V1RuS
      14.12.2021 13:30

      есть же linuxcnc с реалтайм ядром


      1. Elsajalee
        14.12.2021 13:52

        Я понимаю, что вы не в теме. На относительно новых CPU ( & motherboard, т.к. и от неё зависит) по сути realtime не гарантирует. Почитайте про jitter.


        1. V1RuS
          14.12.2021 14:53

          в таком случае сможет ли другое ядро гарантировать реалтайм на таком железе?


          1. Elsajalee
            14.12.2021 14:55

            Ну мне, собственно, это и было интересно. См выше, диалог зациклился.


  1. lain8dono
    14.12.2021 00:47
    +1

    Misaka, MSK

    Здесь должна быть эта картинка


    1. alan008
      14.12.2021 08:41

      Это что-то малоизвестное. MSK чаще с Москвой ассоциируется


      1. domix32
        14.12.2021 10:52
        +2

        Название ОС как бы намекает.


        1. alan008
          14.12.2021 11:31
          +1

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


  1. Source
    14.12.2021 18:22

    С одной стороны, разработчики таких ОС вызывают восхищение. Это огромный объём кропотливой работы. Но практический смысл от меня ускользает, как это было с MenuetOS и KolibriOS, так и с этой. Там хотя бы был прикол уместить OS на дискету, но прикол затянулся и пережил дискеты xD


  1. impwx
    14.12.2021 18:38

    Браузера нет?


  1. johnfound
    14.12.2021 18:40
    +1

    Пусть будет. Вам жалко что ли?


  1. ivanovdev
    14.12.2021 21:02

    Их бы энтузиазм, да на поддержку BolgenOS!