Издаването на операционната система Redox OS 0.7, написана на Rust

След една година и половина разработка, излезе версия 0.7 на операционната система Redox, разработена на езика Rust и концепцията за микроядро. Ресурсите на проекта са разпространени под свободната лицензия MIT. За тестване на Redox OS са предложени инсталационни и Live-образи с размер 75 MB. Сборките са направени за архитектура 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, както и заверяване на данните и метаданните с цифрови подписи. Осигурено е съвместно използване на кода на FS в системата и бутлоудера.
  • Продължава усъвършенстването на стандартната C библиотека Relibc, която е способна да работи не само в Redox, но и в дистрибуции на базата на ядро Linux. Направените изменения опростиха преноса на различни програми в Redox и решиха проблеми с много програми и библиотеки, написани на C.
  • Подготвена е версия на компилатора 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. Като уеб браузър се използва Netsurf. Проектът също така развива собствен пакетен мениджър, набор от стандартни утилити (binutils, coreutils, netutils, extrautils), команден интерпретатор ion, стандартната C библиотека relibc, текстов редактор, подобен на vim, sodium, мрежов стек и файлова система. Конфигурацията се задава на езика Toml.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster