Rust-ով գրված Redox OS 0.8 օպերացիոն համակարգի թողարկում

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

Օպերացիոն համակարգը մշակվել է Unix-ի փիլիսոփայության համաձայն և փոխառել է որոշ գաղափարներ SeL4-ից, Minix-ից և Plan 9-ից: Redox-ն օգտագործում է միկրոմիջուկի հայեցակարգը, որտեղ միջուկի մակարդակում տրամադրվում են միայն գործընթացների և ռեսուրսների կառավարման միջև փոխազդեցությունը, և մնացած բոլորը: ֆունկցիոնալությունը տեղադրված է գրադարաններում, որոնք կարող են օգտագործվել ինչպես միջուկի, այնպես էլ օգտագործողի հավելվածներում: Բոլոր դրայվերները աշխատում են օգտագործողի տարածքում՝ մեկուսացված ավազատուփ միջավայրերում: Առկա հավելվածների հետ համատեղելիության համար տրամադրվում է հատուկ POSIX շերտ, որը թույլ է տալիս բազմաթիվ ծրագրեր գործարկել առանց տեղափոխման։

Համակարգն օգտագործում է «ամեն ինչ URL է» սկզբունքը։ Օրինակ, «log://» URL-ը կարող է օգտագործվել գրանցման համար, «bus://»՝ գործընթացների միջև փոխազդեցության համար, «tcp://»՝ ցանցային փոխգործակցության համար և այլն: Մոդուլները, որոնք կարող են իրականացվել դրայվերների, միջուկի ընդլայնումների և օգտագործողի հավելվածների տեսքով, կարող են գրանցել իրենց URL մշակողները, օրինակ՝ կարող եք գրել I/O պորտ մուտքի մոդուլ և կապել այն «port_io://» URL-ին: «, որից հետո այն կարող եք օգտագործել 60 նավահանգիստ մուտք գործելու համար՝ բացելով «port_io://60» URL-ը:

Օգտվողի միջավայրը Redox-ում կառուցված է Orbital-ի սեփական գրաֆիկական շերտի (չշփոթել մեկ այլ Orbital թաղանթի հետ, որն օգտագործում է Qt և Wayland) և OrbTk գործիքակազմի հիման վրա, որն ապահովում է Flutter, React և Redux-ի նման API: Netsurf-ը օգտագործվում է որպես վեբ բրաուզեր: Նախագիծը նաև մշակում է իր փաթեթների կառավարիչը, ստանդարտ կոմունալ ծառայությունների մի շարք (binutils, coreutils, netutils, extrautils), ion հրամանի վահանակ, ստանդարտ C գրադարան relibc, vim-ի նման տեքստային խմբագրիչ sodium, ցանցային ստեկ և ֆայլ: համակարգ. Կազմաձևը դրված է Toml լեզվով:

В новом выпуске продолжена работа по обеспечению работы на реальном оборудовании. Помимо архитектуры x86_64 добавлена возможность работы на 32-разрядных системах x86 (i686, Pentium II и новее). Ведётся портирование на CPU ARM64 (aarch64). Работа на реальном ARM-оборудовании пока не поддерживается, но возможна загрузка при эмуляции ARM64 в QEMU. По умолчанию активирована звуковая подсистема и обеспечена начальная поддержка многомониторных конфигураций (на системах с фреймбуфером UEFI). Из оборудования, которое поддерживается в 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 добавлена поддержка многомониторных систем, улучшена обработка курсора мыши, добавлен индикатор для изменения громкости. В меню реализована возможность разделения приложений по категориям.

Source: opennet.ru

Добавить комментарий