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 ოპერაციული სისტემის გამოშვება

ოპერაციული სისტემა შემუშავებულია Unix-ის ფილოსოფიის შესაბამისად და ნასესხებს რამდენიმე იდეას SeL4-დან, Minix-დან და Plan 9-დან. Redox იყენებს მიკროკერნელის კონცეფციას, რომელშიც მხოლოდ პროცესებსა და რესურსების მართვას შორის ურთიერთქმედება უზრუნველყოფილია ბირთვის დონეზე და ყველა სხვა. ფუნქციონალობა მოთავსებულია ბიბლიოთეკებში, რომლებიც შეიძლება გამოყენებულ იქნას როგორც ბირთვის, ასევე მომხმარებლის აპლიკაციებში. ყველა დრაივერი მუშაობს მომხმარებლის სივრცეში იზოლირებულ სავარჯიშო გარემოში. არსებულ აპლიკაციებთან თავსებადობისთვის, გათვალისწინებულია სპეციალური POSIX ფენა, რომელიც საშუალებას გაძლევთ გაუშვათ მრავალი პროგრამა პორტირების გარეშე.

სისტემა იყენებს "ყველაფერი არის URL" პრინციპს. მაგალითად, URL "log://" შეიძლება გამოყენებულ იქნას ჟურნალისთვის, "bus://" პროცესებს შორის ურთიერთქმედებისთვის, "tcp://" ქსელის ურთიერთქმედებისთვის და ა.შ. მოდულებს, რომლებიც შეიძლება განხორციელდეს დრაივერების, ბირთვის გაფართოებების და მომხმარებლის აპლიკაციების სახით, შეუძლიათ დაარეგისტრირონ საკუთარი URL დამმუშავებლები, მაგალითად, შეგიძლიათ დაწეროთ I/O პორტის წვდომის მოდული და დააკავშიროთ იგი URL-ზე "port_io://. ", რის შემდეგაც შეგიძლიათ გამოიყენოთ იგი 60-ე პორტში შესასვლელად URL-ის გახსნით "port_io://60".

Redox-ში მომხმარებლის გარემო აგებულია Orbital-ის საკუთარი გრაფიკული გარსის საფუძველზე (არ უნდა აგვერიოს სხვა ორბიტალურ გარსთან, რომელიც იყენებს Qt-ს და Wayland-ს) და OrbTk ინსტრუმენტარიუმის, რომელიც უზრუნველყოფს API-ს მსგავსს Flutter, React და Redux. Netsurf გამოიყენება როგორც ვებ ბრაუზერი. პროექტი ასევე ავითარებს საკუთარ პაკეტების მენეჯერს, სტანდარტული უტილიტების კომპლექტს (binutils, coreutils, netutils, extrautils), ion command shell, სტანდარტული C ბიბლიოთეკის relibc, vim-ის მსგავსი ტექსტური რედაქტორი ნატრიუმი, ქსელის სტეკი და ფაილი. სისტემა. კონფიგურაცია დაყენებულია Toml ენაზე.

წყარო: opennet.ru

ახალი კომენტარის დამატება