Выпуск ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы 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 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ микроядра, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ядра обСспСчиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ процСссами ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ рСсурсами, Π° вся ΠΎΡΡ‚Π°Π»ΡŒΠ½Π°Ρ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ вынСсСна Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ядром, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ прилоТСниями. ВсС Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² пространствС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… 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.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru