ToaruOS, ОС, написанная с нуля с собственным ядром, похожая на Unix.

Недавно выпуск версия операционной системы, аналогичная Unix «ToaruOS 2.0 ″, написано с нуля и снабжено собственным ядром, загрузчик, стандартная библиотека C, менеджер пакетов, компоненты пользовательского пространства и графический интерфейс с составным оконным менеджером.

В рамках проекта начат в 2010 году в Университете Иллинойса и изначально разрабатывался как исследовательская работа в области создания новых составных графических интерфейсов.

Так 2012, разработка переведена на операционную систему ToaruOS, разработанный сообществом, заинтересованным в развитии.

О ToaruOS

В текущем виде система оснащена составным оконным менеджером, поддерживает динамически связанные исполняемые файлы в формате ELF, многозадачность, графический стек, может запускать Python 3 и GCC.

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

Ядро поддерживает Unix, TTY, потоки виртуальной файловой системы., псевдофайловая система / proc, многопоточность, IPC, ramdisk, ptrace, разделяемая память, многозадачность и другие типичные особенности.

Ext2 используется как файловая система. Загрузчик совместим с BIOS и EFI. Сетевой стек включает API-интерфейсы сокетов в стиле BSD и поддерживает сетевые интерфейсы, включая loopback.

Для ToaruOS были перенесены такие программы, как Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, эмулятор Super Nintendo, Bochs и т. Д.

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

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

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

Компилятор и интерпретатор могут быть собраны в виде небольшой разделяемой библиотеки (~ 500 КБ), которую можно интегрировать с другими программами и расширять через API C. Помимо ToaruOS, язык можно использовать в Linux, macOS, Windows и может работать в браузерах, поддерживающих WebAssembly.

Что нового в ToaruOS 2.0?

В этой новой версии системы упоминается, что Ядро Misaka добавляет функциональность, позволяющую настраивать утилиты top, strace, dbg, ping и cpuwidget.

Также упоминается, что расширены возможности графической библиотеки , включая добавление связанных преобразований и улучшение оконной рамы.

Также стоит отметить, что был добавлен растеризатор текста с поддержкой TrueType, добавлена ​​библиотека для форматирования текста с разметкой, улучшен загрузчик BIOS с улучшенной поддержкой аппаратных конфигураций, а загрузчик EFI был переписан.

Из другие изменения которые выделяются:

  • Добавлена ​​поддержка редактирования командной строки ядра в обоих загрузчиках.
  • Модернизирован дизайн панели.
  • Добавлена ​​поддержка загружаемых библиотек, динамических макетов и новых всплывающих окон виджетов.
  • Переписан вьювер с добавлением новых палитр.
    Добавлена ​​новая реализация калькулятора.
    В стандартную библиотеку добавлена ​​поддержка часовых поясов.
  • Добавлен драйвер для чипсета Ensoniq ES1371, эмулированный в VMware.
  • Ожидается, что следующая основная версия 2.1 будет поддерживать устройства AHCI, xHCI и USB HID.
  • В ветке 2.2 планируется реализовать поддержку архитектуры AArch64.

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