ИздавањС Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΈΠΎΡ‚ систСм Redox OS 0.7 напишан Π²ΠΎ Rust

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

ИздавањС Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΈΠΎΡ‚ систСм Redox OS 0.7 напишан Π²ΠΎ Rust

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΈΠΎΡ‚ систСм сС Ρ€Π°Π·Π²ΠΈΠ²Π° Π²ΠΎ согласност со Ρ„ΠΈΠ»ΠΎΠ·ΠΎΡ„ΠΈΡ˜Π°Ρ‚Π° Π½Π° 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), јонска ΠΊΠΎΠΌΠ°Π½Π΄Π½Π° ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°, relibc стандардна Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° C, ΡƒΡ€Π΅Π΄ΡƒΠ²Π°Ρ‡ Π½Π° тСкст сличСн Π½Π° Π½Π°Ρ‚Ρ€ΠΈΡƒΠΌ vim, ΠΌΡ€Π΅ΠΆΠ½ΠΈΠΎΡ‚ стСк ΠΈ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° систСм. ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π΅ поставСна Π½Π° Ρ˜Π°Π·ΠΈΠΊΠΎΡ‚ Toml.

Π˜Π·Π²ΠΎΡ€: opennet.ru

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€