
TL:DR; Новак опита Haiku за пръв път и реши, че е впечатляваща. Особено в сравнение с работните среди, налични на Linux.
Вече споделих моите идеи (а също така разочарования) относно #LinuxUsability (, , , , , ). В това ревю ще опиша първоначалните впечатления от , операционна система с отворен код за персонални компютри. Понякога първоначалните впечатления са полезни, но тъй като се получават само веднъж — аз запазих моите тук.

Системата, на която пиша това ревю
Може би, те ще са полезни за разработчиците на Haiku или други заинтересовани страни.
Някъде може да греша, тъй като просто описвам личния си (чети: наивен) първи опит. Също така дружелюбните хора в канала #haiku в мрежата irc.freenode.net ми помогнаха с подсказки — тях ще публикувам също. Благодаря ви, разработчици на Haiku!
Какво исках да кажа: Haiku все още не е 100% идеална, но вече разполага със здраво изградена работна среда.
Инсталиране
Проектът Haiku предоставя образи за изтегляне от CD или DVD, . Аз използвах USB-3 флашка. Казаха ми, че зареждането от USB-3 може да не сработи, но на моите две тестови системи с Intel всичко работи безупречно.
Самият процес на инсталиране започнах с изтеглянето на образа за 64-бита, който след това записах на флашката с помощта на програмата . Зареждането работи както с , така и без него — моите аплодисменти за предоставяне на такъв образ.
Haiku използва собствената си за зареждащия дял, въпреки че принципно се заявява поддръжка на FAT32 и NTFS. Всъщност, за системата са достатъчни 600MB, но за допълнителни приложения е нужно повече пространство.
По подразбиране се създава дял с 600MB с BeFS и дял с FAT32 с размер 3GB. На FAT32 има файл /EFI/BOOT/BOOTx64.EFI, което предполага възможност за зареждане на системи с поддръжка на EFI. За съжаление не намерих програми за разширяване на размера на BeFS, и се надявам в бъдеще да направят друга схема на разделяне на диска, защото размерът на образа на дяла е фиксиран малък и може да не е достатъчен за допълнителен софтуер. Щеше да е добре, ако допълнителни пакети със софтуер се съхраняват на втория дял FAT32.
Това решение би било предимство за тези, които желаят да получат достъп до файловете директно от други системи. Под Linux вече има поддръжка за четене на BeFS, има реализации за четене и запис на BeFS под .

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

BootManager инсталира зареждача на диска
Самият процес на инсталиране отнема малко под три минути, което е доста бързо. При това се копира цялата система, състояща се "само" от 4751 файла. Причината за това е фактът, че повечето софтуер е опакован под формата на hpkg файлове (нещо подобно на пакетите Snap в Linux системите), които никога не се инсталират, а просто се монтират. Интересно е, че има достатъчно много "свободни" файлове, например, png. Защо не са опаковани?
Както вече казах, дори ядрото на операционната система се доставя под формата на hpkg файл. (казах за 4751 файл, тъй като стартирах преди инсталацията HaikuDepot, който изтегли купища неща. Чистата инсталация, изглежда, не съдържа всички тях и може да бъде инсталирана по-бързо с около 200 пакета. Яко! Както ми казаха, фактът, че изтеглените файлове не се игнорират при инсталирането — това . О, ето, изглежда, и първият отчет за грешка, написан по моя инициатива).
Първично зареждане
Системата се зарежда, показвайки симпатична заставка, а след това спира: след зареждането моята видеокарта (Radeon) показва черен екран.
Постоянно ми съветваха да заредя в безопасен режим с резолюция 1024x768 на FullHD монитор. В принципе, можеше да се потрудя с зареждача, за да работи с FullHD, но на друг компютър с видеокарта от Intel всичко проработи безпроблемно.
Самата система работи бързо от флашка, очевидно защото на флашката по време на работа не се записва нищо, така че се надявам да я използвам като основна работна система. Ще получите реална система при зареждане от USB, за разлика от бавните "живи" Linux образи.
По време на зареждане екранът не мига, не се виждат съобщения от ядрото, няма усещането, че Xorg е прикрепен към ядрото с синя лента. За разлика от типичните дистрибуции на Linux, ядрото и GUI тук са създадени и настроени един за друг!
Няма покана за вход в системата, тъй като системата е направена за един потребител. Всичко е просто, точно това, от което се нуждаете за личния компютър.
Ако ви е необходима поддръжка за няколко потребители — раздайте им по флашка, всяка от които струва не повече от $5.
Първи впечатления от работната среда
Ако сравнявам първото усещане — повече прилича на Mac, отколкото, например, на Linux с Gnome. Бутонът «command» работи точно както в Mac. Добре!

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

Брайън Лундюк. 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! Това означава, че можете да изпълнявате команди директно от текущата директория (Linux ентусиастите ми казаха веднъж, че светът ще се взриви, ако опитам да направя така). Чудесно!

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
употреба: mount [-ro] [-t fstype] [-p parameter] [device] directory
-ro монтира обема само за четене
-t определя файловата система, която да използвате (по подразбиране е автоматично разпознаване)
-p определя параметри, които да се предадат на файловата система (-o също е прието)
ако устройството не е посочено, NULL се предава (за файлови системи в паметта)Препоръчаха ми да пробвам mountvolume, който ще покаже монтираните раздели, но за съжаление той също не показва точките на монтиране с packagefs (ще покаже само тези, свързани с разделите или дискови образи). [За щастие, ако стартирате mount или df някъде на хост с docker, можете да преминете през няколко екрана! — прим. преводача] Но може да се направи трик с df:
~> df -h
Тип монтиране Обща Свободно Флагове Устройство
----------------------------------
/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 -
/none fat 2.8 MiB 2.3 MiB - M-PRW /dev/disk/usb/0/0/1Както се вижда, /system и /home/config вътре /boot това е точно packagefs.
Хората, които ме познават, знаят, че съм фен на поддръжката на drag-and-drop в файловите мениджъри: например, използвам комплекти приложения в стил NeXT, или .
Както и да е, има недостатъци и в този формат на разпространение на софтуер. Ще може ли 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).
Динамични библиотеки
Има ли технология за динамични библиотеки? Да, това е видно, например, ако стартирате приложение с липсващи библиотеки с двойно щракване:

Може ли да си представите такова в gnome, kde или xfce?
В Linux такъв старт нямаше да покаже нищо. Нека видим колко време ще отнеме в различни среди:
- GNOME:
- KDE:
- XFCE:
- MATE:
А какво да кажем за проверките?
~> ldd
bash: ldd: командата не е намеренаТрябва да се използва замяна:
~> 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 — разработчиците на приложения също нямат достъп до версии, по-нови от наличните за изтегляне във вашата система. Резултат: по-малко разочарования, нещата „просто работят“. Отлично опростяване! Харесва ми.
Ресурси и регистратор
Както казахме по-горе, приложенията получават тип и иконка, така че не ви се налага да се занимавате с файлове на работния плот и подобни неща. Споделиха ми, че има специален услуг-registrator, който знае за приложенията, типовете файлове и иконките. Той винаги се уведомява при инсталация на пакет или маркиране на файл за изпълнение (използвайки програмата chmod или mimeset).
Нещо напомня на на Mac. И това е нещото, което Отлично!
Двоичните файлове получават вградени иконки под формата на ресурси, така че не е необходимо отделна иконка в допълнение към файловете на работния плот. Почти както беше на Macintosh System 1. Яко!

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

Приложение на Linux без установлен бит за изпълнение
В Gnome възможност за стартиране на изпълними файлове от файловия мениджър, но общността вдигна шум — и всичко беше върнато обратно.
Също така ми казаха, че приложенията използват функцията find_paths() вместо твърдо зададени /usr/bin и /usr/share (обща характеристика на работните среди в Linux), което означава, че могат да бъдат преместени из файловата система. Аплодирам стоейки! .
Това, което ме изненада
- Тревожен беше фактът, че
/bootтова е точка на монтиране на дяла, откъдето се зарежда системата. Защо не "/"? Или/Haiku? (Пояснение: действительно,/bootтова винаги е зареждащият дял, който се показва на работния плот като "Haiku", защото това е името му. Гледайте на "/" като аналог на работния плот в Mac System 1, корен на йерархия, реално несъществуваща на дисковете). - Точката на монтиране за пакети, инсталирани от потребителя, е
/home/config. Защо не просто/home? (Один из разработчиков пояснил мне, что они не хотят засорять домашний каталог, но мне кажется, config — название неудачное, потому что внутри есть подкаталогbin/, така че не става просто за съхраняване на настройки). - Каква е лицензията за всичко? Например в при разглеждане на "За програмата" няма явна индикация. В полето "За тази система" пише, че кодът на Haiku е под MIT лиценз. Отлично! (Също така ми казаха, че WebPositive идва с операционната система под същата лицензия, но неговият движещ механизъм WebKit е основно под двупунктова BSD).
Какво не работеше както очаквах
Първо, изненада ме нивото на поддръжка на хардуера. На моя нетбук с основа Atom всичко работеше, включително WLAN. Но има някои особености в работата.
- Пълна неработоспособност на хардуер на Macintosh, независимо от режима EFI или емулацията на BIOS ("Windows"). Системата просто замръзва, ако изберете иконата в зареждача на Mac. Казаха ми, че това е и може да се зареди, използвайки , но тези настройки за мен са прекалено сложни.
- Ускорение на графиката. Изглежда, че използването на Radeon все още е невъзможно (имах черен екран), но и на Intel не всичко е гладко. Ускорението на видеото в WebPositive е само софтуерно, включително H.264. Учудващо, като се има предвид, че първоначалната ориентация е към видеото. Един от разработчиците уточни, че видеото в WebPositive работи, използвайки забавящи кодове.
- Нямате звук? „Драйверите за звуковите карти все още не работят“, каза разработчикът. Вероятно е необходим някой, който да поддръжа HDA драйвера, подобно на USB-3. В момента, за да получа звук, е достатъчна гореща перезагрузка от друга операционна система и вярвам, че това ще бъде оправено.
- Не работят бутоните за управление на яркостта и силата на звука. (Основата вече е налична под формата на приложението Shortcuts: може да направите привързване на всякаква клавишна комбинация с всяка предпочитана функция, но в момента Haiku не може да работи с медиабутоните. Може би има доброволци?)
- Двуфингерно управление на touchpad. Не работи от кутията. Има панел с настройки, който съобщава, че „Не е намерен touchpad, настройките няма да имат ефект.“ ( с ELAN Input Device, ACPI ETD050A).
- С наличното приложение за четене на файлове от цифрови камери и смартфони с Android, синхронизацията в режимите MTP и PTP не работеше. Беше чудесно, ако се монтираха като други дялове в системата.
- Затварянето на капака на лаптопа очевидно не се обработва. (Знам, че Haiku все още не работи с ACPI: реализирана е поддръжка, но не е включена по подразбиране; няма повторна инициализация на драйвера)
- Не успях да създам акаунт в bugtracker, защото не работи в WebPositive.
Приложения
Основното предназначение на операционната система е стартиране на приложения. Страхувах се, че под Haiku няма да има приложения за реална работа. За щастие, грешах, тъй като имам надежда за подобрение — когато Haiku стане по-широко използвана.
(приложение за визуална вёрстка) е налично, и това е доста сложно приложение на основата на Qt. Има и (IDE).
Интересно ми е, пишат ли днес натурални приложения Be за Haiku, използвайки натурални инструменти (ако съществуват), или е достатъчно да се използва QtCreator (което ще улесни прехвърлянето на кросплатформени приложения). Позицията на разработчиците на Haiku е „явно“ предпочитание към натурални приложения за Haiku. Наистина ли? Съмнявам се, че приложенията за реална работа не са кросплатформени (всички приложения, които използвам в работата си, са кросплатформени).
Обявена е поддръжка за WxWindows приложения.
Липсата на поддръжка за Gtk+ е разочароваща. Това означава, че на Haiku в близко бъдеще няма да има Gimp (е, така мисля), но има заместител под формата на Krita!
Също така, мисля, че е необходим прост и разбираем начин за създаване на приложения за Haiku, — използвайки Travis CI и GitLab CI.
Къде отиваме?
Дали Haiku ще заседне в концепцията за BeOS UX? Смятам, че за привлекателността ѝ е необходимо внимателно да се преценяват новите UX схеми при приемането им, като същевременно остава вярна на основите си.
Например:
- Да остане проста, без онези 100500 опции, които правят Linux „сложен“.
- Да се използва курсор-стрела за мишката вместо странна ръка.
- Ще има ли Dock? (Зная, че съществува нещо като Dock, наречено , което е още по-близо до Dock , но оригиналният BeOS вече имаше Dock през 1998!)
- Глобално меню? (Очевидно, не, тъй като не вижда особена полза).
- Бързо превключване на прозорци? (Казаха, че може да се опита да се активира „", задържайки клавиша Windows при преместване на прозореца, но това не е интуитивно, освен това — не работи за мен).
- Анимация при отваряне и затваряне на прозорци?
- Сенки зад прозорците?
- Подкрепа за теми, подобно на Aqua? (Да, възможно е, има инфраструктура и инструменти, например, , но някой трябва да създаде теми. Аз бих опитал сам, казаха ми, че има документация в /xref/haiku/headers/os/interface/ControlLook.h, но не сейчас).
Тези тънки нюанси, взети предвид, системата не трябва да загуби своята уникална индивидуалност.
Заключение
Haiku наистина ми отвори очите, показа ми как работната среда „просто работи“.
Повече от 10 години минаха, откакто преминах от Mac на Linux и оттогава търся същото ниво на изисканост и красота, и Haiku до голяма степен я осигурява.
Честно казано, има недостатъци, но изненадващо много неща, включително хардуерни компоненти, например WLAN или принтери, „просто работят“.
Все пак, на първо място, системата има концепция за работна среда, липсваща в работните среди на Linux.
Наличието на единна система (а не ядро и различни конкуриращи потребителски среди) прави всичко просто и последователно.
Липсата на различни сборки (дистрибуции) улеснява още повече всичко.
Предвидено е да работи само един потребител в системата, което допълнително намалява сложността.
Резултатът: много проста, изискана, минималистична система в много отношения, създадена за „обикновените хора“, а не за системни администратори на UNIX.
Има надежда, че когато тази система стане по-популярна (а това е неизбежно), сложността ѝ няма да нарасне.
Вече писах за #LinuxUsability в предишния цикъл статии. Приятно е да знам, че Haiku решава много от засяганите .
Един ден ми беше достатъчен, за да се уверя: искам да използвам това работно пространство за ежедневна работа и също така търся възможности за моя принос в развитието на системата.
Опитайте сами! Проектът Haiku предлага образи за изтегляне на DVD или USB, . За инсталацията е достатъчно да изтеглите образа и да го запишете на флашка с помощта на .
От автора на превода: това е само първата статия от цикъл за Haiku, останалите чакат превод и ще бъдат публикувани по-късно.
Източник: habr.com
