Rust дээр бичигдсэн Redox OS 0.7 үйлдлийн системийн хувилбар

После полутора лет разработки опубликован выпуск операционной системы 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.

Rust дээр бичигдсэн Redox OS 0.7 үйлдлийн системийн хувилбар

Үйлдлийн систем нь Юниксийн философийн дагуу бүтээгдсэн бөгөөд SeL4, Minix болон Plan 9-ээс зарим санааг авсан. Redox нь зөвхөн процесс болон нөөцийн удирдлагын харилцан үйлчлэлийг цөмийн түвшинд хангадаг бичил цөм гэсэн ойлголтыг ашигладаг. функцийг цөм болон хэрэглэгчийн програмын аль алинд нь ашиглах боломжтой номын санд байрлуулсан. Бүх драйверууд тусгаарлагдсан хамгаалалттай орчинд хэрэглэгчийн орон зайд ажилладаг. Одоо байгаа програмуудтай нийцтэй байхын тулд тусгай POSIX давхаргыг өгсөн бөгөөд энэ нь олон програмыг зөөвөрлөхгүйгээр ажиллуулах боломжийг олгодог.

Систем нь "бүх зүйл URL" зарчмыг ашигладаг. Жишээлбэл, "log://" URL-г бүртгэлд, "автобус://" процесс хоорондын харилцан үйлчлэлд, "tcp://" сүлжээний харилцан үйлчлэлд гэх мэтийг ашиглаж болно. Драйвер, цөмийн өргөтгөл, хэрэглэгчийн програм хэлбэрээр хэрэгжиж болох модулиуд нь өөрийн URL зохицуулагчийг бүртгэх боломжтой, жишээлбэл, та I/O портын хандалтын модулийг бичиж, "port_io://" URL руу холбож болно. ", үүний дараа та "port_io://60" URL-г нээж 60-р порт руу нэвтрэхийн тулд үүнийг ашиглаж болно.

Redox дахь хэрэглэгчийн орчин нь Orbital-ийн өөрийн график бүрхүүл (Qt болон Wayland ашигладаг өөр Orbital бүрхүүлтэй андуурч болохгүй) болон Flutter, React, Redux-тай төстэй API-г хангадаг OrbTk хэрэгслийн иж бүрдэл дээр суурилагдсан. Netsurf-ийг вэб хөтөч болгон ашигладаг. Төсөл нь мөн өөрийн багц менежер, стандарт хэрэгслүүдийн багц (binutils, coreutils, netutils, extrautils), ион командын бүрхүүл, стандарт C library relibc, vim шиг текст засварлагч натрийн, сүлжээний стек болон файлыг хөгжүүлж байна. систем. Тохиргоог Toml хэл дээр тохируулсан.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх