Моят първи ден с Haiku: тя е изненадващо добра

Моят първи ден с Haiku: тя е изненадващо добра

TL:DR; Новак пробва Haiku за първи път и реши, че е страхотна. Особено в сравнение с работните среди, налични за Linux.

Вече споделях моите идеи (а също така и разочарованията) относно #LinuxUsability (част 1, част 2, част 3, част 4, част 5, част 6). В този преглед ще опиша първоначалните впечатления от Хайку, операционна система с отворен код за персонални компютри. Понякога първоначалните впечатления могат да бъдат полезни, но тъй като се получават само веднъж — моите запазих тук.

Моят първи ден с Haiku: тя е изненадващо добра
Системата, на която пиша този преглед

Възможно е те да са полезни за разработчиците на Haiku или други заинтересовани страни.
Някъде може да се объркам, тъй като само описвам личния си (чети: наивен) първи опит. Също така дружелюбни хора в канала #haiku в мрежата irc.freenode.net ми помогнаха с подсказки — ще ги публикувам също. Благодаря ви, разработчици на Haiku!

Какво исках да кажа: Haiku все още не е на 100% идеална, но в нея вече има добре организирана работна среда.

Инсталиране на

Проектът Haiku предлага образи за изтегляне с CD или DVD, формирани ежедневно. Използвах USB-3 флашка. Казаха ми, че зареждането от USB-3 може да не сработи, но на моите две тестови системи на база Intel всичко работи безупречно.

Самият процес на инсталиране започнах с изтегляне на образа за 64bit, който след това записах на флашката с помощта на програмата Etcher. Зареждането работи както с EFI, така и без него — моите аплодисменти за предоставянето на такъв образ.

Haiku използва собствената си файлова система BeFS за зареждащия дял, въпреки че е обявена поддръжка за FAT32 и NTFS. Всъщност, за системата са достатъчни 600MB, но за допълнителни приложения е необходимо повече място.

По подразбиране се създава дял от 600MB с BeFS и дял с FAT32 с размер 3GB. На FAT32 има файл /EFI/BOOT/BOOTx64.EFI, което предполага възможност за зареждане на системи с поддръжка на EFI. За съжаление не намерих програми за увеличаване на размера на BeFS и се надявам в бъдеще да се направи друга схема на разпределение на диска, тъй като размерът на образа на дяла е фиксиран на малък и може да не е достатъчно свободно място за допълнителен софтуер. Би било добре, ако допълнителните пакети със софтуер се запазваха на втория дял FAT32.

Това решение ще бъде предимство за тези, които желаят да получат достъп до файлове директно от други системи. Под Linux вече съществува поддръжка за четене на BeFS, има реализации за четене и запис на BeFS под FUSE.

Моят първи ден с Haiku: тя е изненадващо добра
Инсталатор на Haiku

Получих съвет: искаш да използваш по-голям дял — инсталирай Haiku на друг флаш диск.
За мен тази стъпка е излишна, тъй като инсталаторът на Haiku не разбива дискове, а просто стартира програмата DriveSetup, в която трябва ръчно да разбиеш диска, да добавиш дял, който после да форматираш в BeFS, след което управлението се връща на инсталатора. Също така трябва да инсталираш ръчно и загрузчика, използвайки отделна програма. За съжаление, не успях да заредя с EFI при такова разбиване, тъй като липсва FAT32 дял с файловете за зареждане за EFI. Не би било зле инсталатор, който да поддържа автоматично разбиване, включително особеностите на EFI.

Моят първи ден с Haiku: тя е изненадващо добра
BootManager инсталира загрузчика на диска

Самият процес на инсталиране отнема малко под три минути, което е доста бързо. При това се копира цялата система, състояща се „всъщност“ от 4751 файла. Причината за това е фактът, че повечето софтуери са опаковани под формата на hpkg файлове (нещо подобно на пакети Snap в Linux системи), които никога не се инсталират, а просто се монтират. Интересно е, че има доста „свободни“ файлове, например png. Защо не са опаковани?

Както казах, дори ядрото на операционната система се доставя под формата на hpkg файл. (Говоря за 4751 файла, тъй като стартирах преди инсталацията HaikuDepot, който свали куп неща. Чиста инсталация, очевидно, не съдържа всичките им и може да бъде инсталирана по-бързо с около 200 пакета. Яко! Както ми казаха, това, че свалените файлове не се игнорират при инсталацията — е программна грешка. О, а ето го и първият отчет за грешка, написан с моя помощ).

Първоначално зареждане

Системата се зарежда, показвайки симпатична заставка, а след това спира: след зареждане видеокартата ми (Radeon) показва черен екран.

Получих съвет да заредя в безопасен режим на екрана с разрешение 1024х768 на FullHD монитор. Всъщност можеше да се направи и с загрузчика, за да се осигури работа с FullHD, но на друг компютър с видеокарта от Intel всичко проработи безотказно.

Цялата система работи реагиращо от флашка, вероятно защото на флашката не се записва нищо по време на работа, така че се надявам да я използвам като основна работна система. Ще получите истинска система при зареждане от USB, за разлика от бавните 'живи' Linux образи.

По време на зареждане екранът не мига, не се виждат съобщения от ядрото, няма усещане, че Xorg е прикрепен към ядрото с синьо тиксо. За разлика от типичните дистрибуции на Linux, тук ядрото и GUI са създадени и подгонени един за друг!

Няма покана за вход в системата, тъй като системата е направена за един потребител. Всичко е просто, точно каквото е необходимо за личен компютър.

Нуждаете се от поддръжка на множество потребители — раздайте им по флашка, всяка от които струва не повече от 5 $.

Първи впечатления от работната среда

Ако сравнявам първото усещане — повече прилича на Mac, отколкото например на Linux с Gnome. Клавишът 'command' работи точно както в Mac. Добре!

Моят първи ден с Haiku: тя е изненадващо добра
Нищо не може да се сравни с пространствения файлов мениджър, усещането е - старият добър Mac!

Файловият мениджър по подразбиране е пространствен (като Macintosh System 1.0), за съжаление всяко прозорец не запомня настройките си (например преглед в списък или в икони). Както ми казаха — това е грешка, която, предполагаем, ще бъде лесно за поправяне. (За съжаление, пишете отчети на 'мимокрокодил' в bugtracker за Haiku е трудно — използва се оригиналната система, която не е базирана на GitLab или GitHub и в която не можете да влезете с тяхна помощ). Файловете получават иконките си, няма проблеми с отделни файлове на работния плот и с иконите.
Добре! Къде по-добре, отколкото работните среди за Linux, усеща се простота.

Производителност

Операционната система работи бързо дори на маломощно оборудване, като нетбук с Atom. Не се усеща излишен софтуерен слой. Добре!

Lunduke каза, че LibreOffice, по усещания, работи по-бързо, отколкото на други операционни системи, но аз все още не съм проверявал.

Пуснете видеото

Bryan Lunduke. Haiku OS Beta — обзор и впечатления

Команден ред

Налице е терминал. Въобщо, въпреки малките различия с Linux, аз бързо се справих с него, всъщност — обикновен bash, което много ми хареса.

Welcome to the Haiku shell.
In it, you can easily launch applications that are on the $PATH:
~> Touchpad
~> echo $PATH
.: /boot/home/config/non-packaged/bin:/boot/home/config/bin:/boot/system/non-packaged/bin:/bin:/boot/system/apps:/boot/system/preferences

Ох, да! «.» в $PATH! Това означава, че можете да изпълнявате команди директно от текущата директория (Линуксоидите веднъж ми казаха, че светът ще експлодира, ако опитам да направя така). Страхотно!

Моят първи ден с Haiku: тя е изненадващо добра
bash, стартиран в терминала Haiku

Какво още е готино в терминала — можете да натиснете ctrl + c за копиране, така както и в другите приложения, за разлика от работните среди на Linux, където трябва да натискате ctrl + shift + c в терминала.
Дреболии, които показват целостта на цялата система.

Структура на файловите системи

Разделът, от който започва зареждането, е монтиран в /boot. Колко просто!
Никаква купчина /etc, /usr, /bin… Просто /home и /system. Чисто, просто, ясно. Добре! (Не съвсем: те съществуват, но са скрити. Защо? Защото /bin това /system/bin, няма нужда да се показва в Tracker, но скриптовете все още го използват. Мисля, че разработчиците трябва да се отърват от остарелите неща, направени за съвместимост, тъй като това само усложнява разбирането.)

packagefs

Вече споменах по-рано за файловете hpkg, които донякъде наподобяват пакети в Linux, но те не се инсталират, а просто се монтират (подобно на пакетите snap). Файловата система, която прави тази магия, се нарича packagefs. Тя монтира hpkg файлове над други, в резултат на което по този начин се създава цялата директория \/system.

Командата mount, за съжаление, не показва какво е монтирано.

~> mount
usage: mount [-ro] [-t fstype] [-p parameter] [device] directory
-ro монтира обема в режим само за четене
-t определя файловата система, която да се използва (по подразбиране автоматично разпознаване)
-p задава параметри, които да се предадат на файловата система (-o също се приема)
ако device не е указан, NULL се предава (за файлови системи в паметта)

Препоръчаха ми да опитам mountvolume, която ще покаже монтираните раздели, но за съжаление, тя също не показва точките на монтиране с packagefs (ще покаже само тези, свързани с раздели или дискови образи). [За щастие, ако стартирате mount или df някъде на хост с docker, можете да прехвърляте няколко екрана! — бележка на преводача] Но може да се приложи трик с df:

~> df -h

Mount Type Total Free Flags Device
----------------------------------
\/boot bfs 600.0 MiB 6.0 KiB QAM-P-W \/dev\/disk\/usb\/0\/0\/0
\/boot\/system packagefs 4.0 KiB 4.0 KiB QAM-P -
\/boot\/home\/config packagefs 4.0 KiB 4.0 KiB QAM-P -
\/no name fat 2.8 MiB 2.3 MiB - M-PRW \/dev\/disk\/usb\/0\/0\/1

Както виждате, /system и /home/config вътре /boot това е точно packagefs.
Хората, които ме познават, знаят, че съм фен на поддръжката на drag-and-drop в файловите мениджъри: например, използвам комплекти приложения в стил NeXT, или AppImages.
Както и да е, има недостатъци и в такъв формат на разпространение на софтуер. Ще може ли packagefs да комбинира най-доброто?

Както изглежда, в моя случай (системният дял е запълнен, но искам да инсталирам приложения) по-изискано би било да изтегля приложения някъде, използвайки браузъра, точно както го правя с файловете .dmg за Mac или AppImage. packagefs съществува в ядрото, така че това не е файлова система за FUSE (въпреки че зная, че FUSE също има в Haiku). Освен това ми казаха, че в бъдеще може да бъдат направени допълнителни „зони packagefs“, което вероятно означава, че ще мога да посоча на packagefs да съхранява пакети, например, на отделни дялове. Това ми харесва — защото ако дялът е на сменяем носител, мога да се откажа на друг компютър и да получа работещи приложения там.

Още казаха, че методът drag-and-drop също работи за инсталиране на пакети: просто е необходимо да издърпате файла в /system/packages или в /home/config/packages за инсталиране, а ако изтеглите файл от там — той ще бъде изтрит. Ако перетегляте пакет с незадоволителни зависимости — системата ще поиска предварителната им инсталация.

Первоначално не ми беше ясно как packagefs обработва множество версии на един и същ пакет, какво ще стане, ако искам да инсталирам, например, различни версии gcc или други GUI програми? (Един от разработчиците каза, цитата: „самата packagefs не съдържа нещо, което да пречи на инсталирането на няколко пакета с едно и също име, но тъй като се прилага libsolv от OpenSuse за разрешаване на зависимости, което не позволява това, — да, HaikuDepot е забранено да го прави в настройките“. Мога да обясня защо ми харесва идеята с пакетите .app, AppDir и AppImages).

Динамични библиотеки

Съществува ли технология за динамични библиотеки? Да, това е видно, например, ако стартирате приложение с отсъстващи библиотеки чрез двойно кликване:

Моят първи ден с Haiku: тя е изненадващо добра
Можете ли да си представите нещо подобно в gnome, kde или xfce?

В Linux подобно стартиране не би показало нищо. Да видим колко време ще отнеме в различни среди:

А какво ще кажете за проверки?

~> ldd
bash: ldd: command not found

Трябва да използвате алтернатива:

~> objdump -x /bin/bash | grep NEEDED
NEEDED libreadline.so.7
NEEDED libhistory.so.7
NEEDED libncurses.so.6
NEEDED libintl.so.8
NEEDED libroot.so

По принцип ldd беше по-добре, тъй като той допълнително показва пътищата, от които библиотеките ще бъдат заредени.
А откъде се зареждат всъщност?

~> echo $LIBRARY_PATH
%A/lib:/boot/home/config/non-packaged/lib:/boot/home/config/lib:/boot/system/non-packaged/lib:/boot/system/lib

Можете да поставите библиотеките до изпълнимия файл и той ще "работи просто така". Колко готино! Можете просто да свързвате отделни библиотеки към приложението без да се занимавате с rpath или настройване на променливата LD_LIBRARY_PATH, както е в Linux. Страхотно!

Има библиотека (ужасна в Linux) /boot/system/lib/libstdc++.so.6.0.24.
Какво ако приложението изисква версия по-нова от наличната в /boot/system/lib?
Обикновеният потребител вероятно ще ъпдейтне до последната версия, защото в тази система няма потребител "Administrator" с паролата root [авторът намеква за простотата — бележка на преводача].
Ами, така изглежда. (Всъщност "потребителят" е еквивалент на root. Можете да зададете парола с помощта на командата passwd, след което да посочите PermitRootLogin=yes в sshd_config, а след това можете да се свържете отвън по ssh. Разработчиците ми казаха, че по подразбиране всички приложения се стартират от root. В крайна сметка, може би, ще го подобрят... но не съм сигурен, дали ще ми хареса.)

Поради липсата на дистрибуции на Haiku — разработчиците на приложения също нямат достъп до версии по-нови от тези, които са налични за изтегляне в системата ви. Резултатът: по-малко разочарования, нещата "просто работят". Отлично опростяване! Харесва ми.

Ресурси и регистратор

Както беше споменато по-горе, приложенията получават тип и икона, така че не е необходимо да се занимавате с файлове на работния плот и подобни неща. Каза ми се, че има специална услуга-регистратор, който знае за приложения, типове файлове и икони. Той винаги се уведомява при инсталиране на пакет или маркиране на файл за изпълнение (използвайки програмата chmod или mimeset).
Напомня нещо Launch Services на Mac. И всъщност това е нещо, което липсва в работните среди на Linux. Отлично!

Двоичните файлове получават вградени икони под формата на ресурси, така че не ви е нужна отделна икона в допълнение към файловете на работния плот. Почти като в Macintosh System 1. Яко!

Моят първи ден с Haiku: тя е изненадващо добра
Типове приложения, поддържани типове документи, вградени ресурси и информация за версията

Tracker (файлов мениджър) автоматично маркира двоичните файлове за изпълними. Това е нещо, което чакам от работните среди на Linux вече повече от 10 години.
Всичко това е много приятно. Нали е страхотно! Животът става толкова прост. Това е по-изтънчено и по-подобно на Mac, отколкото XDG в Linux. Или пък това...

Моят първи ден с Haiku: тя е изненадващо добра
Приложение на Linux без инсталиран бит за изпълнение

В Gnome беше премахнат възможност за стартиране на изпълними файлове от файловия мениджър, но общността създаде шум — и всички се върнаха обратно.
Също така ми казаха, че приложенията използват функцията find_paths() вместо строги указания /usr/bin и /usr/share (обща черта на работните среди в Linux), което означава възможност за преместване на файловете в файловата система. Аплодирам стоейки! На Linux е, както обикновено, „сложно“.

Какво ме изненада

  • Притесни ме, че /boot това е точка на монтиране на дял, откъдето системата се зарежда. Защо не „/„? Или /Haiku? (Пояснение: действительно, /boot това винаги е зареждащ дял, той се показва на работния плот като „Haiku“, защото това е неговото име. Гледайте на „/като на аналог на работния плот в Mac System 1, корена на йерархията, която реално не съществува на дисковете).
  • Точката на монтиране за пакети, инсталирани от потребителя, е /home/config. Защо не просто /home? (Один из разработчиков пояснил мне, что они не хотят засорять домашний каталог, но мне кажется, config — название неудачное, потому что внутри есть подкаталог bin/, така че това не е просто съхранение на настройки).
  • Каква е лицензията за всичко? Например в браузера WebPositive при преглед на „За програмата“ няма явно указание. В полето „За тази система“ е написано, че кодът на Haiku е под MIT лиценз. Отлично! (Също така ми казаха, че WebPositive идва с операционната система по същия лиценз, но неговият двигател WebKit е в по-голямата си част под двуточковата BSD).

Какво не работеше така, както очаквах

Първо, ме порази нивото на поддръжка на хардуера. На моя нетбук на базата на Atom всичко заработи, включително WLAN. Но има някои особености в работата.

  • Пълна неработоспособност на хардуера Macintosh, независимо от режима EFI или емулация на BIOS („Windows“). Системата просто засяда, ако избереш иконата в буутера на Mac. Казаха ми, че това е известна особеност и можеш да се стартираш, използвайки rEFIt, но тези настройки са твърде сложни за мен.
  • Ускорение на графиката. Похоже, че използването на Radeon все още не е възможно (имах черен екран), но и на Intel не е всичко наред. Ускорението на видеото в WebPositive е само софтуерно, включително H.264. Учудващо, защото първоначалната ориентация е към видеото. Един от разработчиците уточни, че видеото в WebPositive работи, използвайки спирачни хакове.
  • Няма звук? „Драйверите за звукови карти все още са в режим на неработоспособност“, каза разработчикът. Вероятно е нужен някой, който да поддържа драйвера HDA подобно на USB-3. В момента, за да получите звук, е достатъчна гореща рестартиране от друга операционна система, и вярвам, че скоро ще го поправят.
  • Не работят бутоните за управление на яркостта и звука. (Основата вече е налична под формата на приложението Shortcuts: можете да направите връзка на всяко клавишно съчетание с любима функция, но за сега Haiku не успява да работи с медийни клавиши. Може би има доброволци?)
  • Двупалечен контрол на тъчпада. Не работи от кутията. Има настройка, която съобщава, че „Не е намерен тъчпад, настройките няма да имат ефект.“ (Известен проблем с ELAN Input Device, ACPI ETD050A).
  • С наличното приложение за четене на файлове от цифрови камери и смартфони на Android не успях да синхронизирам в режимите MTP и PTP. Беше чудесно, ако те се монтираха като другите дялове в системата.
  • Затварянето на капака на лаптопа, изглежда, не се обработва. (Знам, че Haiku все още не работи с ACPI: поддръжката е реализирана, но не е активирана по подразбиране; няма повторна инициализация на драйвера)
  • Не можах да създам акаунт в bugtracker, тъй като не работи captcha в WebPositive.

Приложения

Основната цел на операционната система е да стартира приложения. Бях притеснен, че под Haiku няма да има приложения за реална работа. За щастие, бях в грешка, тъй като има надежда за подобрение - когато Haiku започнат да се използва по-често.
Scribus (приложението за визуално оформяне) е налично, и това е доста сложно приложение на основата на Qt. Също така е налично и QtCreator (IDE).

Стана ми интересно, писали ли се в днешно време нативни приложения Be за Haiku, използвайки местни инструменти (ако съществуват), или е достатъчно да се използва QtCreator (което ще улесни портването на кросплатформени приложения). Позицията на разработчиците на Haiku е очевидно предпочитане на нативни приложения за Haiku. Наистина ли? Съмнявам се, че приложенията за реална работа не са кросплатформени (всички приложения, които използвам в работата си, са кросплатформени).

Обявена е поддръжка за WxWindows приложения.

Липсата на поддръжка за Gtk+ е разочароваща. Това означава, че в скоро време на Haiku няма да има Gimp (така мисля), но има заместител под формата на Krita!

Също така, мисля, че е нужен прост и разбираем начин за създаване на приложения за Haiku, като този — използвайки Travis CI и GitLab CI.

Къде отиваме?

Ще остане ли Haiku в концепцията на BeOS UX? Мисля, че за да бъде атрактивна, трябва внимателно да преценява новите UX схеми при тяхното приемане, като същевременно остава вярна на основите си.
Например:

  • Да остане проста, без онези 100500 опции, които правят Linux „сложен“.
  • Да използва стрелковия курсор вместо странната ръка.
  • Ще има ли Dock? (Зная, че има нещо, подобно на Dock, наречено LaunchBox, още по-близо до Dock LnLauncher, но оригиналната BeOS вече през 1998 г. имаше Dock!)
  • Глобално меню? (Очевидно, не, тъй като JLG не вижда особена полза).
  • Бързо превключване между прозорците? (Казаха, че можем да опитаме да активираме „Stack&Tile“, държейки клавиша Windows при преместването на прозореца, но това не е интуитивно, напротив — не работи за мен).
  • Анимация при разширяване и свиване на прозорци?
  • Сенки зад прозорците?
  • Подкрепа за теми, както в Aqua? (Да, възможно е, има инфраструктура и инструменти, например, HaikuThemeManager, но някой трябва да създаде теми. Аз бих опитал сам, казаха ми, че има документация в https://xref.plausible.coop/source /xref/haiku/headers/os/interface/ControlLook.h, но не сейчас).

Това са фини нюанси, имайки предвид, че системата не трябва да губи своята уникална индивидуалност.

Заключение

Haiku наистина ми отвори очите, показа ми как работната среда „просто работи“.
Преди повече от 10 години преминах от Mac на Linux и оттогава търсех същото ниво на изтънченост и красота, което Haiku в значителна степен предлага.

Честно казано, има недостатъци, но изненадващо много неща, включително хардуерът, например WLAN или принтери, „просто работят“.

Въпреки това, в първия ред системата има концепция за работна среда, която отсъства в работните среди на Linux.

Съществуването на цяла система (а не на ядро и различни конкуриращи се потребителски среди) прави всичко просто и последователно.

Отсъствието на различни сборки (дистрибуции) прави всичко още по-просто.

Предположението, че системата ще бъде използвана само от един потребител, още повече намалява сложността.

Резултат: много проста, изтънчена, минималистична в много отношения система, създадена за „обикновени смъртни“, а не за UNIX системни администратори.

Има надежда, че когато тази система стане по-популярна (а това е неизбежно), нейната сложност няма да нарасне.

Вече писах за #LinuxUsability в предишния цикъл статии. Приятно е да знаеш, че Haiku разрешава много от засегнатите проблеми, включително основните, с които страдат работните среди в Linux.

Един ден ми беше достатъчен, за да се уверя: искам да използвам това работно обкръжение за ежедневна работа и търся възможности за моя принос в развитието на системата.

Опитайте сами! Проектът Haiku предоставя образи за зареждане от DVD или USB, формирани ежедневно. За инсталиране е достатъчно да изтеглите образа и да го запишете на флашка с помощта на Etcher.

От автора на превода: това е само първата статия от цикъла за Haiku, останалите чакат превод и ще бъдат публикувани по-късно.

Източник: habr.com

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster