ການປ່ອຍລະບົບປະຕິບັດການ 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 ໃຊ້ແນວຄວາມຄິດຂອງ microkernel, ເຊິ່ງມີພຽງແຕ່ການຕິດຕໍ່ພົວພັນລະຫວ່າງຂະບວນການແລະການຄຸ້ມຄອງຊັບພະຍາກອນເທົ່ານັ້ນໃນລະດັບ kernel, ແລະອື່ນໆ. ຟັງຊັນແມ່ນຖືກຈັດໃສ່ໃນຫ້ອງສະຫມຸດທີ່ສາມາດນໍາໃຊ້ໄດ້ທັງ kernel ແລະຄໍາຮ້ອງສະຫມັກຂອງຜູ້ໃຊ້. ໄດເວີທັງໝົດແລ່ນຢູ່ໃນພື້ນທີ່ຜູ້ໃຊ້ໃນສະພາບແວດລ້ອມ sandbox ທີ່ໂດດດ່ຽວ. ສໍາລັບຄວາມເຂົ້າກັນໄດ້ກັບຄໍາຮ້ອງສະຫມັກທີ່ມີຢູ່ແລ້ວ, ຊັ້ນ POSIX ພິເສດແມ່ນສະຫນອງໃຫ້, ເຊິ່ງຊ່ວຍໃຫ້ທ່ານສາມາດດໍາເນີນການຫຼາຍໂຄງການໂດຍບໍ່ມີການ porting.

ລະບົບໃຊ້ຫຼັກການ "ທຸກສິ່ງທຸກຢ່າງແມ່ນ URL". ຕົວຢ່າງ, URL "log://" ສາມາດໃຊ້ສໍາລັບການບັນທຶກ, "bus://" ສໍາລັບການໂຕ້ຕອບລະຫວ່າງຂະບວນການ, "tcp://" ສໍາລັບການໂຕ້ຕອບເຄືອຂ່າຍ, ແລະອື່ນໆ. ໂມດູນ, ເຊິ່ງສາມາດປະຕິບັດໄດ້ໃນຮູບແບບຂອງໄດເວີ, ການຂະຫຍາຍແກ່ນ, ແລະຄໍາຮ້ອງສະຫມັກຂອງຜູ້ໃຊ້, ສາມາດລົງທະບຽນຕົວຈັດການ URL ຂອງຕົນເອງ, ຕົວຢ່າງເຊັ່ນ, ທ່ານສາມາດຂຽນໂມດູນການເຂົ້າເຖິງພອດ I/O ແລະຜູກມັດມັນກັບ 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 library relibc, vim-like text editor sodium, network stack ແລະໄຟລ໌. ລະບົບ. ການຕັ້ງຄ່າແມ່ນຕັ້ງຢູ່ໃນພາສາ Toml.

ແຫຼ່ງຂໍ້ມູນ: opennet.ru

ເພີ່ມຄວາມຄິດເຫັນ