Rust ile yazılmış Redox OS 0.7 işletim sisteminin piyasaya sürülmesi

После полутора лет разработки опубликован выпуск операционной системы 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 ile yazılmış Redox OS 0.7 işletim sisteminin piyasaya sürülmesi

İşletim sistemi Unix felsefesine uygun olarak geliştirilmiş ve SeL4, Minix ve Plan 9'dan bazı fikirler almıştır. Redox, çekirdek düzeyinde yalnızca süreçler ve kaynak yönetimi arasındaki etkileşimin sağlandığı ve diğer tüm süreçlerin sağlandığı mikro çekirdek kavramını kullanır. işlevsellik, hem çekirdek hem de kullanıcı uygulamalarında kullanılabilen kitaplıklara yerleştirilir. Tüm sürücüler, yalıtılmış sanal alan ortamlarındaki kullanıcı alanında çalışır. Mevcut uygulamalarla uyumluluk için, birçok programı taşımadan çalıştırmanıza olanak tanıyan özel bir POSIX katmanı sağlanmıştır.

Sistem “her şey bir URL'dir” ilkesini kullanır. Örneğin, "log://" URL'si günlük kaydı için, "bus://" işlemler arasındaki etkileşim için, "tcp://" ağ etkileşimi vb. için kullanılabilir. Sürücüler, çekirdek uzantıları ve kullanıcı uygulamaları biçiminde uygulanabilen modüller, kendi URL işleyicilerini kaydedebilir; örneğin, bir G/Ç bağlantı noktası erişim modülü yazabilir ve onu "port_io://" URL'sine bağlayabilirsiniz. ", ardından “port_io://60” URL'sini açarak 60 numaralı bağlantı noktasına erişmek için kullanabilirsiniz.

Redox'taki kullanıcı ortamı, Orbital'in kendi grafik kabuğu (Qt ve Wayland kullanan başka bir Orbital kabuğuyla karıştırılmamalıdır) ve Flutter, React ve Redux'a benzer bir API sağlayan OrbTk araç seti temel alınarak oluşturulmuştur. Netsurf bir web tarayıcısı olarak kullanılır. Proje ayrıca kendi paket yöneticisini, bir dizi standart yardımcı programı (binutils, coreutils, netutils, extrautils), ion komut kabuğunu, standart C kütüphanesi relibc'yi, vim benzeri metin düzenleyicisi sodyumu, bir ağ yığınını ve bir dosya geliştiriyor. sistem. Yapılandırma Toml dilinde ayarlanır.

Kaynak: opennet.ru

Yorum ekle