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

Публикувана е версия 0.8 на операционната система Redox, разработена с помощта на езика Rust и концепцията за микроядро. Проектът се разпространява под свободната лицензия MIT. За тестване на Redox OS са предложени демонстрационни сборки с размер 768 MB, както и образи с основна графична среда (256 MB) и консолен инструментариум за сървърни системи (256 MB). Сборките са създадени за архитектура x86_64 и са достъпни за системи с UEFI и BIOS. Демонстрационният образ, в допълнение към графичната среда Orbital, включва емулатор DOSBox, колекция от игри (DOOM, Neverball, Neverputt, sopwith, syobonaction), учебни програми, музикален плейър rodioplay и текстов редактор Sodium.

Операционната система се развива в съответствие с философията на 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. За web браузър се използва Netsurf. Проектът също разработва собствен мениджър на пакети, набор от стандартни утилити (binutils, coreutils, netutils, extrautils), командна обвивка ion, стандартна C библиотека relibc, текстов редактор, подобен на vim, sodium, мрежов стек и файлова система. Конфигурацията се задава на Toml.

В новото издание продължава работата по осигуряване на функциониране на реално оборудване. Освен архитектурата x86_64 е добавена възможността за работа на 32-битови системи x86 (i686, Pentium II и по-нови). Провежда се портировка на ARM64 CPU (aarch64). Възможността за работа на реално ARM оборудване все още не е поддържана, но може да се зарежда при емилация на ARM64 в QEMU. По подразбиране е активирана звуковата подсистема и е осигурена начална поддръжка на конфигурации с множество монитори (на системи с UEFI framebuffer). От оборудването, което се поддържа в Redox OS, са посочени звуковите чипове AC’97 и Intel HD Audio, извеждане на графика чрез API VESA BIOS или UEFI GOP, Ethernet (Intel 1/10 Gigabit Ethernet, Realtek RTL8168), устройства за въвеждане (клавиатури, мишки, тъчпадове), SATA (AHCI, IDE) и NVMe. Поддръжката на Wi-Fi и USB все още не е завършена (USB работи само в QEMU).

Други нововъведения:

  • Съединени са зареждащите образи за системи с BIOS и EFI.
  • Реализацията на системни повиквания clone и exec е преместена в пространството на потребителя.
  • Процесът на зареждане е опростен. Внедрена е програма bootstrap, която се стартира от ядрото и осигурява по-нататъшно зареждане на ELF файлове, като процеса init.
  • Добавена е програма escalated за осигуряване на работата на setuid програми, като sudo.
  • За опростяване на създаването и инсталирането на фонови процеси е предложен crate пакет redox-daemon.
  • Преустроена е системата за сглобяване, в която е добавена възможността за сглобяване за различни архитектури в едно дърво на изходния код. За опростяване на сглобяването на различни конфигурации е предложен скрипт build.sh. Добавена е поддръжка за сглобяване с използването на инструментария podman. Сглобяването на ядрото, зареждача и initfs е унифицирано с другите пакети.
  • Добавена е демонстрационна конфигурация за сглобяване на примери за програми, които не са включени в основния зареждащ образ с графична среда.
  • В звуковата система audiod е добавена поддръжка за софтуерно управление на звука.
  • Добавен е драйвер за звукови чипове на базата на AC’97. Подобрена е драйверът за чиповете Intel HD Audio.
  • Добавен е драйвер за IDE контролери.
  • Поддръжката на NVMe устройства е подобрена.
  • Подобрени са драйверите за PCI, PS/2, RTL8168, USB HID, VESA.
  • Преработена е организацията на инсталационния процес: зареждачът, bootstrap, ядрото и initfs сега се разполагат в директория /boot.
  • В ядрото е улеснена работата с паметта, добавена е възможността за манипулиране с адресни пространства от потребителско ниво.
  • В графичната обвивка Оrbital е добавена поддръжка на многомониторни системи, подобрена е обработката на курсора на мишката, добавен е индикатор за управление на звука. В менюто е реализирана възможността за разделяне на приложения по категории.

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

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