Випуск операційної системи Redox OS 0.8, написаної Rust

Опубліковано випуск операційної системи Redox 0.8, розробленої з використанням мови Rust та концепції мікроядра. Напрацювання проекту поширюються під вільною ліцензією MIT. Для тестування Redox OS запропоновані демонстраційні збирання розміром 768 МБ, а також образи з базовим графічним оточенням (256 МБ) та консольним інструментарієм для серверних систем (256 МБ). Збірки сформовані для архітектури x86_64 та доступні для систем з UEFI та BIOS. Демонстраційний образ окрім графічного оточення Orbital включає емулятор DOSBox, добірку ігор (DOOM, Neverball, Neverputt, sopwith, syobonaction), навчальні програми, музичний програвач rodioplay та текстовий редактор Sodium.

Операційна система розвивається відповідно до філософії Unix і запозичує деякі ідеї з SeL4, Minix і Plan 9. Redox використовує концепцію мікроядра, при якому на рівні ядра забезпечується тільки взаємодія між процесами та управління ресурсами, а решта функціональності винесена в бібліотеки, які можуть використовуватися як ядром, так і додатками користувача. Всі драйвери виконуються у просторі користувача в ізольованих sandbox-оточеннях. Для сумісності з наявними програмами надається спеціальна POSIX-прошарок, що дозволяє запускати багато програм без портування.

У системі застосовується принцип "все є URL". Наприклад, для запису в лог може використовуватися URL "log://", для взаємодії між процесами "bus://", для взаємодії мережі "tcp://" і т.п. Модулі, які можуть бути реалізовані у формі драйверів, розширень ядра та додатків користувача, можуть реєструвати свої обробники URL, наприклад, можна написати модуль звернення до портів вводу/виводу і прив'язати його до URL «port_io://», після чого можна використовувати його для доступу до порту 60 через відкриття URL «port_io://60».

Користувальне оточення в Redox побудоване на базі власної графічної оболонки Orbital (не плутати з іншою оболонкою Orbital, яка використовує Qt і Wayland) і тулкіта OrbTk, що надає API, схожий на Flutter, React та Redux. Як web-браузер застосовується Netsurf. Проектом також розвивається власний пакетний менеджер, набір стандартних утиліт (binutils, coreutils, netutils, extrautils), командна оболонка ion, стандартна Сі-бібліотека relibc, vim-подібний текстовий редактор sodium, мережевий стек та файлова система. Конфігурація задається мовою Toml.

У новому випуску продовжено роботу щодо забезпечення роботи на реальному устаткуванні. Крім архітектури x86_64 додано можливість роботи на 32-розрядних системах x86 (i686, Pentium II та новіше). Ведеться портування на CPU ARM64 (aarch64). Робота на ARM-обладнанні поки не підтримується, але можливе завантаження при емуляції ARM64 в QEMU. За замовчуванням активовано звукову підсистему та забезпечено початкову підтримку багатомоніторних конфігурацій (на системах з фреймбуфером UEFI). З обладнання, яке підтримується в Redox OS, названі звукові чіпи AC'97 та Intel HD Audio, виведення графіки через API VESA BIOS або UEFI GOP, Ethernet (Intel 1/10 Gigabit Ethernet, Realtek RTL8168), пристрої введення (клавіатури, миші, тачпади), SATA (AHCI, IDE) та NVMe. Підтримка Wi-Fi та USB поки не доведена до готовності (USB працює лише в QEMU).

Інші нововведення:

  • Об'єднані завантажувальні образи для систем з BIOS та EFI.
  • Реалізація системних викликів clone та exec перенесена у простір користувача.
  • Спрощено процес завантаження. Впроваджено програму bootstrap, що запускається ядром і забезпечує подальше завантаження ELF-файлів, таких як процес init.
  • Додана програма escalated для забезпечення роботи setuid-програм, таких як sudo.
  • Для спрощення створення та встановлення фонових процесів запропоновано crate-пакет redox-daemon.
  • Перероблено складальну систему, в якій з'явилася можливість збирання для різних архітектур в одному дереві вихідних текстів. Для спрощення складання різних конфігурацій запропоновано скрипт build.sh. Додано підтримку складання з використанням інструментарію podman. Складання ядра, завантажувача та initfs уніфіковано з іншими пакетами.
  • Додано демонстраційну конфігурацію для складання прикладів програм, що не входять до базового завантажувального образу з графічним оточенням.
  • У звукову підсистему audiod додано підтримку програмного керування гучністю.
  • Додано драйвер для звукових чіпів на базі AC'97. Покращено драйвер для чіпів Intel HD Audio.
  • Доданий драйвер для IDE-контролерів.
  • Поліпшено підтримку накопичувачів NVMe.
  • Поліпшено драйвери PCI, PS/2, RTL8168, USB HID, VESA.
  • Перероблена організація процесу встановлення: завантажувач, bootstrap, ядро ​​та initfs тепер розміщуються у каталозі /boot.
  • У ядрі спрощено роботу з пам'яттю, додано можливість маніпуляції з адресними просторами з рівня користувача.
  • У графічній оболонці Оrbital додано підтримку багатомоніторних систем, покращено обробку курсора миші, додано індикатор для зміни гучності. У меню реалізована можливість поділу додатків за категоріями.

Джерело: opennet.ru

Додати коментар або відгук