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

Після півтора року розробки опубліковано випуск операційної системи Redox 0.7, розробленої з використанням мови Rust та концепції мікроядра. Напрацювання проекту поширюються під вільною ліцензією MIT. Для тестування Redox OS запропоновані настановні та Live-образи, розміром 75 МБ. Збірки сформовані для архітектури x86_64 та доступні для систем з UEFI та BIOS.

При підготовці нового випуску основну увагу було приділено забезпеченню роботи на обладнанні. Основні нововведення:

  • Повністю переписаний завантажувач, у якому уніфікований та переважно написаний на Rust код для завантаження на системах з BIOS та UEFI. Зміна завантажувача дозволило суттєво розширити спектр обладнання, що підтримується.
  • В ядрі крім виправлення помилок проведено роботу з підвищення продуктивності та розширення підтримки обладнання. Специфічні для CPU змінні переведені використання регістру GS. Забезпечено відображення (мапінг) усієї фізичної пам'яті, припинено використання рекурсивних сторінок пам'яті. Асемблерний код у inline-вставках переписаний для покращення сумісності з майбутніми випусками компілятора.
  • Додано початкову підтримку архітектури AArch64.
  • Здійснено перехід на обробку всіх файлових шляхів у кодуванні UTF-8.
  • Код для роботи з ACPI AML (ACPI Machine Language) Specification — uefi.org перенесений з ядра у фоновий процес acpid, що виконується в просторі користувача.
  • Вміст Initfs перенесено до нового файлу, що спростило формування пакетів.
  • Файлова система RedoxFS переписана та переведена на використання механізму CoW (Copy-on-Write), при якому зміни не перезаписують інформацію, а зберігаються у нове місце, що дозволило досягти суттєвого підвищення надійності. З нових можливостей RedoxFS відзначається підтримка транзакційних оновлень, шифрування даних з використанням алгоритму AES, а також засвідчення даних та метаданих цифровими підписами. Забезпечено спільне використання коду ФС у системі та завантажувачі.
  • Продовжено вдосконалення стандартної Си-бібліотеки Relibc, що розвивається проектом, здатної працювати не тільки в Redox, але і в дистрибутивах на базі ядра Linux. Внесені зміни спростили перенесення різних програм у Redox і вирішили проблеми з багатьма програмами та бібліотеками, написаними мовою Сі.
  • Підготовлено версію компілятора rustc, здатну запускатися в Redox. З задач, що залишаються, відзначається оптимізація продуктивності та адаптація пакетного менеджера cargo для роботи в оточенні Redox.

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

Операційна система розвивається відповідно до філософії 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.

Джерело: opennet.ru

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