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

Публикувана е версията на операционната система Redox 0.8, разработена с помощта на езика 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 използва концепцията на микроядрото, при която само комуникацията между процесите и управлението на ресурсите се осигурява на ниво ядро, а цялата останала функционалност е поставена в библиотеки, които могат да се използват както на ядрото, така и на потребителски приложения. Всички драйвери се изпълняват в потребителско пространство в изолирани пясъчни среди. За съвместимост със съществуващи приложения е осигурен специален POSIX слой, който позволява много програми да работят без пренасяне.

Системата прилага принципа "всичко е 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 библиотека relibc, текстов редактор, подобен на sodium vim, мрежов стек и файл система. Конфигурацията е зададена на езика Toml.

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

Други иновации:

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

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

Добавяне на нов коментар