ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ravynOS Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅Ρ‚ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΡŽ FreeBSD, Π½Π°Ρ†Π΅Π»Π΅Π½Π½ΡƒΡŽ Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ c macOS

ПослС Π΄Π²ΡƒΡ… Π»Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ выпуск ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ravynOS 0.5, Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму Π½Π° основС FreeBSD, Π½Π°Ρ†Π΅Π»Π΅Π½Π½ΡƒΡŽ Π½Π° достиТСниС совмСстимости с прилоТСниями для macOS ΠΈ прСдоставлСниС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Π² стилС macOS. Наработки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ BSD. Π Π°Π·ΠΌΠ΅Ρ€ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½ΠΎΠ³ΠΎ iso-ΠΎΠ±Ρ€Π°Π·Π° — 869 ΠœΠ‘ (x86_64).

Π’ качСствС Ρ†Π΅Π»Π΅ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° заявлСно достиТСниС совмСстимости с прилоТСниями macOS Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ исходных тСкстов ΠΈ исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ². Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС подразумСваСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ пСрСкомпиляции ΠΊΠΎΠ΄Π° macOS-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для выполнСния Π² ravynOS, Π² Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ — встраиваниС Π² ядро ΠΈ инструмСнтарий ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ для запуска исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ² Mach-O, собранных для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ x86-64 ΠΈ arm64. Из Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм поддСрТиваСтся ZFS ΠΈ примСняСмыС Π² macOS Π€Π‘ HFS+ ΠΈ APFS. Помимо свойствСнных для FreeBSD ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΉ /usr ΠΈ /usr/local ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ спСцифичныС для macOS ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ /Library, /System ΠΈ /Volumes. Π”ΠΎΠΌΠ°ΡˆΠ½ΠΈΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ /Users. Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ домашнСм ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ имССтся ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ~/Library для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ интСрфСйс Apple Cocoa.

Для совмСстимости с macOS прСдоставляСтся частичная рСализация ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ интСрфСйса Cocoa ΠΈ Objective-C runtime (Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ /System/Library/Frameworks), Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ для ΠΈΡ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ компиляторы ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊΠΈ. Помимо слоя для совмСстимости с macOS Π² ravynOS Ρ‚Π°ΠΊΠΆΠ΅ доступна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ запуска ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Linux, основанная Π½Π° ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠΉ Π²ΠΎ FreeBSD инфраструктурС эмуляции окруТСния Linux (Linuxulator).

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ„ΠΎΡ€ΠΌΠ»ΡΡ‚ΡŒΡΡ Π² Π²ΠΈΠ΄Π΅ самодостаточных app-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² (App Bundle) Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ AppImage, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅ΠΌΡ‹Ρ… Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ… /Applications ΠΈΠ»ΠΈ ~/Applications. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ установки ΠΈ использования ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° — достаточно ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ ΠΌΡ‹ΡˆΡŒΡŽ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ AppImage-Ρ„Π°ΠΉΠ». ΠŸΡ€ΠΈ этом сохранСна ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… для FreeBSD ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².

ГрафичСскоС ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ построСно Π½Π° Π±Π°Π·Π΅ собствСнного ΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ сСрвСра, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎ ΡƒΡ€Π΅Π·Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ‚Π½Ρ‹ΠΉ сСрвСр labwc (ΡƒΠ΄Π°Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° дСкорирования ΠΎΠΊΠΎΠ½ Π½Π° сторонС сСрвСра ΠΈ Ρ‚Π΅ΠΌ оформлСния), wlroots ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Wayland. графичСских Π’ прилоТСниях ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Qt ΠΈ Cocoa. Π’ интСрфСйсС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Π΅ для macOS ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ вСрхняя панСль с Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ мСню, идСнтичная структура мСню, ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ, ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ ΠΏΠΎ ΡΡ‚ΠΈΠ»ΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Filer ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚Π°ΠΊΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠ°ΠΊ launchctl ΠΈ open.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ravynOS Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅Ρ‚ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΡŽ FreeBSD, Π½Π°Ρ†Π΅Π»Π΅Π½Π½ΡƒΡŽ Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ c macOS

Π’ Π½ΠΎΠ²ΠΎΠΌ выпускС:

  • Базовая систСма ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π° Π΄ΠΎ Π²Π΅Ρ‚ΠΊΠΈ FreeBSD 15-CURRENT. ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½ΠΎ использованиС ΠΏΠΎΡ€Ρ‚ΠΎΠ² FreeBSD — всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ пСрСнСсСны Π² систСмный Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.
  • Π’ основной состав Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½ тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ turbo. Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ cmake, gmake, nasm ΠΈ GNU binutils.
  • Π’ сборочных Ρ„Π°ΠΉΠ»Π°Ρ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² для Cocoa ΠΈ Objective-C прСдоставлСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ связывания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ… для упрощСния пСрСноса ΠΊΠΎΠ΄Π° ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π² ΠΎΠ΄Π½Ρƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ.
  • ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½ΠΎ использованиС рСпозитория ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Π½ΠΎ оставлСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ установки ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈΠ· Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² FreeBSD Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /usr/local ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ pkg.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° новая сборочная ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° build.sh, ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‰Π°Ρ вСсь процСсс сборки систСмы ΠΈ создания настраиваСмого ISO-ΠΎΠ±Ρ€Π°Π·Π°, Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ Π² Live-Ρ€Π΅ΠΆΠΈΠΌΠ΅.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ рСализация графичСской Dock-ΠΏΠ°Π½Π΅Π»ΠΈ с нСбольшим Π½Π°Π±ΠΎΡ€ΠΎΠΌ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ†ΠΈΠΈ запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, размСщСния ярлыков ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ настройки ΠΎΠ±ΠΎΠ΅Π² Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола Π² стилС macOS. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΏΠΎΠΊΠ° настраиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ plist-Ρ„Π°ΠΉΠ»Π° Π² ~/Library/Preferences.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° класса NSStatusItem, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ Cocoa-прилоТСниям ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒ мСню Π² Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ панСль.

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