Выпуск аперацыйнай сістэмы Redox OS 0.8, напісанай на мове Rust

Апублікаваны выпуск аперацыйнай сістэмы 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 выкарыстоўвае канцэпцыю мікраядра, пры якім на ўзроўні ядра забяспечваецца толькі ўзаемадзеянне паміж працэсамі і кіраванне рэсурсамі, а ўся астатняя функцыянальнасць вынесена ў бібліятэкі, якія могуць выкарыстоўвацца як ядром, так і карыстацкімі праграмамі. Усе драйверы выконваюцца ў прасторы карыстача ў ізаляваных 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, стандартная Сі-бібліятэка 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 дададзена падтрымка шматманіторных сістэм, палепшана апрацоўка курсора мышы, дададзены індыкатар для змены гучнасці. У меню рэалізавана магчымасць падзелу прыкладанняў па катэгорыях.

Крыніца: opennet.ru

Дадаць каментар