Rust-en idatzitako Redox OS 0.7 sistema eragilearen kaleratzea

ПослС ΠΏΠΎΠ»ΡƒΡ‚ΠΎΡ€Π° Π»Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ выпуск ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы 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.

Rust-en idatzitako Redox OS 0.7 sistema eragilearen kaleratzea

Sistema eragilea Unix filosofiaren arabera garatzen da eta SeL4, Minix eta Plan 9-tik zenbait ideia mailegatzen ditu. Redox-ek mikrokernel kontzeptua erabiltzen du, zeinetan prozesuen eta baliabideen kudeaketaren arteko interakzioa soilik ematen baita nukleo mailan, eta gainerako guztiak. funtzionaltasuna nukleoa zein erabiltzailearen aplikazioak erabil daitezkeen liburutegietan kokatzen da. Gidari guztiak erabiltzaile-espazioan exekutatzen dira sandbox ingurune isolatuetan. Lehendik dauden aplikazioekin bateragarri izateko, POSIX geruza berezi bat eskaintzen da, eta horri esker programa asko exekutatu ditzakezu porturatu gabe.

Sistemak "dena URL bat da" printzipioa erabiltzen du. Adibidez, "log://" URLa erregistratzeko erabil daiteke, "bus://" prozesuen arteko elkarrekintzarako, "tcp://" sareko elkarrekintzarako, etab. Gidari, nukleo-luzapen eta erabiltzaile-aplikazio moduan inplementa daitezkeen moduluek beren URL kudeatzaileak erregistra ditzakete, adibidez, I/O ataka sartzeko modulu bat idatzi eta "port_io://" URLra lotu dezakezu. ", ondoren 60 ataka atzitzeko erabil dezakezu "port_io://60" URLa irekiz.

Redox-en erabiltzaile-ingurunea Orbital-en berezko shell grafikoan (ez nahastu behar Qt eta Wayland erabiltzen dituen beste Orbital shell batekin) eta OrbTk tresna-kutsean oinarrituta dago, Flutter, React eta Redux-en antzeko API bat eskaintzen duena. Netsurf web arakatzaile gisa erabiltzen da. Proiektua ere bere pakete-kudeatzailea garatzen ari da, utilitate estandar multzo bat (binutils, coreutils, netutils, extrautils), ion komandoen shell-a, C liburutegi estandarra relibc, vim antzeko testu editorea sodium, sareko pila bat eta fitxategi bat. sistema. Konfigurazioa Toml hizkuntzan ezarri da.

Iturria: opennet.ru

Gehitu iruzkin berria