
TL:DR; Un novice a încercat Haiku pentru prima dată și a decis că este fantastic. Mai ales în comparație cu mediile de lucru disponibile pe Linux.
Am împărtășit deja ideile mele (în plus față de dezamăgirile) referitoare la #LinuxUsability (, , , , , ). În această recenzie, voi descrie primele impresii despre , un sistem de operare open-source pentru calculatoare personale. De multe ori, primele impresii pot fi utile, dar fiindcă primele impresii le avem doar o dată — mi le-am păstrat aici.

Sistemul pe care am scris această recenzie
Poate că acestea vor fi utile pentru dezvoltatorii Haiku sau pentru alte părți interesate.
Ar putea fi să greșesc undeva, deoarece descriu pur și simplu experiența mea personală (citiți: cu gândirea naivă). De asemenea, oameni prietenoși de pe canalul #haiku de pe irc.freenode.net m-au ajutat cu sugestii — le voi publica și pe acestea. Vă mulțumesc, dezvoltatorii Haiku!
Ce voiam să spun: Haiku nu este încă 100% perfect, dar deja are un mediu de lucru bine definit.
Instalare
Proiectul Haiku oferă imagini pentru instalare de pe CD sau DVD, . Am folosit un stick USB-3. Mi s-a spus că bootarea de pe USB-3 ar putea să nu funcționeze, dar pe cele două sisteme de testare bazate pe Intel nu am avut probleme.
Procesul de instalare l-am început prin descărcarea imaginii pentru 64bit, pe care am scris-o pe stick folosind programul . Bootarea funcționează atât cu , cât și fără — aplauzele mele pentru furnizarea unei astfel de imagini.
Haiku folosește propriul său pentru partiția de boot, deși, în principiu, este dezvoltat suport pentru FAT32 și NTFS. În general, sistemul necesită 600MB, dar pentru aplicații suplimentare este nevoie de mai mult spațiu.
Implicit, se creează o partiție de 600MB cu BeFS și o partiție FAT32 de 3GB. Pe FAT32 există un fișier /EFI/BOOT/BOOTx64.EFI, ceea ce sugerează posibilitatea bootării pe sisteme care suportă EFI. Din păcate, nu am găsit programe pentru a crește dimensiunea BeFS și sper ca, în viitor, să se dezvolte un alt schemă de partiționare, deoarece dimensiunea imaginii partiției este fixată la o valoare mică și poate să nu fie suficient spațiu liber pentru software suplimentar. Ar fi bine dacă pachetele suplimentare de software ar putea fi stocate pe a doua partiție FAT32.
Această soluție ar reprezenta un avantaj pentru cei care doresc să acceseze fișierele direct de pe alte sisteme. Sub Linux există deja suport pentru citirea BeFS, există implementări pentru citire-scriere BeFS pe .

Instalator Haiku
Am primit un sfat: dacă vrei să folosești o partiție mai mare — instalează Haiku pe un alt stick USB.
Pentru mine, această etapă este, în principiu, redundantă, deoarece instalatorul Haiku nu poate să particioneze discurile, ci pur și simplu lansează programul DriveSetup, în care trebuie să particionezi manual discul, să adaugi o partiție, care apoi trebuie formatată în BeFS, după care controlul revine instalatorului. De asemenea, va trebui să instalez manual și bootloader-ul, folosind un program separat. Din păcate, nu am reușit să bootez cu EFI la această particionare, deoarece lipsește o partiție FAT32 cu fișierele de boot pentru EFI. Ar fi fost util un instalator care să aibă o particionare automată inclusiv pentru caracteristicile EFI.

BootManager instalează bootloader-ul pe disc
Procesul de instalare durează puțin mai puțin de trei minute, ceea ce este foarte rapid. În acest timp se copiază întregul sistem, care constă „doar” din 4751 de fișiere. Cauza acestui fapt este că majoritatea programelor sunt ambalate sub formă de fișiere hpkg (asemănătoare cu pachetele Snap din sistemele Linux), care nu sunt niciodată instalate, ci doar montate. Ce este interesant — există destul de multe fișiere „libere”, de exemplu, png. De ce nu sunt ambalate?
Așa cum am menționat, chiar și nucleul sistemului de operare este livrat sub formă de fișier hpkg. (am menționat cele 4751 de fișiere, deoarece am rulat înainte de instalare HaikuDepot, care a descărcat o mulțime de fișiere. O instalare curată nu le conține pe toate și poate fi realizată mai rapid cu aproximativ 200 de pachete. Grozav! Așa cum mi s-a spus, faptul că fișierele descărcate nu sunt ignorate la instalare — este . Wow, iată și primul raport de eroare, redactat la inițiativa mea).
Prima încărcare
Sistemul pornește, arătând un ecran frumos de încărcare, apoi se oprește: după pornire, placa mea video (Radeon) arată un ecran negru.
Mi s-a sugerat să pornesc în modul sigur al ecranului cu o rezoluție de 1024x768 pe un monitor FullHD. În principiu, s-ar fi putut face ceva mai complicat cu bootloader-ul pentru a obține funcționarea cu FullHD, dar pe un alt computer cu o placă video Intel totul a funcționat perfect.
Sistemul funcționează rapid de pe memory stick, probabil pentru că nu se scrie nimic pe acesta în timpul utilizării, așa că sper să folosesc memory stick-ul ca sistem propriu de lucru. Vei obține un sistem real la bootarea de pe USB, spre deosebire de versiunile „live” de Linux care sunt lente.
În timpul pornirii, ecranul nu clipește, nu apar mesaje ale nucleului, nu ai senzația că Xorg este lipit de nucleu cu bandă izolatoare albastră. Spre deosebire de distribuțiile tipice de Linux, nucleul și GUI-ul sunt făcute și ajustate unul pentru celălalt!
Nu există prompt de autentificare, deoarece sistemul este creat pentru un singur utilizator. Totul este simplu, exact ceea ce este necesar pentru un calculator personal.
Ai nevoie de suport pentru mai mulți utilizatori - dă-le fiecăruia un memory stick, fiecare costând nu mai mult de 5 dolari.
Primele impresii despre mediu de lucru
Dacă compari prima senzație - seamănă mai mult cu Mac decât, de exemplu, cu Linux cu Gnome. Tasta „command” funcționează exact la fel ca în Mac. Foarte bine!

Nimic nu se compară cu managerul de fișiere pe bază de spațiu, e ca vechiul și bunul Mac!
(ca Macintosh System 1.0), din păcate, fiecare fereastră nu își păstrează setările (de exemplu, vizualizarea sub formă de listă sau pictograme). Așa cum mi s-a spus - aceasta este o eroare, care, cred, va fi ușor de reparat. (Din păcate, este dificil - se folosește un sistem original, care nu este bazat pe GitLab sau GitHub, și în care nu poți intra cu aceste metode). Fișierele primesc pictogramele lor, nu sunt probleme cu fișierele separate de pe birou și pictogramele.
Foarte bine! Mult mai bine decât mediile de lucru pentru Linux, simți simplitatea.
Performanță
Sistemul de operare funcționează rapid chiar și pe hardware slab, cum ar fi un netbook cu Atom. Nu simți straturile de software umflate. Foarte bine!
a spus că LibreOffice, din câte îmi dau seama, funcționează mai repede decât pe alte sisteme de operare, dar nu am verificat încă acest lucru.

Bryan Lunduke. Haiku OS Beta - recenzie și impresii
Linia de comandă
Include un terminal. În general, în ciuda diferențelor minore față de Linux, m-am familiarizat imediat cu el, de fapt - este un bash obișnuit, ceea ce m-a bucurat foarte mult.
Bine ai venit în shell-ul Haiku.
În el, poți lansa ușor aplicațiile care sunt pe $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/preferencesWow! «.» in $PATH! This means that you can run commands directly from the current directory (Linux users once told me that the world would explode if I tried this). Great!

bash, running in Haiku terminal
Another cool thing in the terminal is that you can press ctrl + c to copy, just like in other applications, unlike Linux environments where you have to press ctrl + shift + c in the terminal.
Little things that showcase the integrity of the entire system.
File system structure
The section where the boot is coming from is mounted in /boot. How simple!
No clutter /etc, /usr, /bin… Just /home și /system. Clean, simple, clear. Good! (Not quite: they do exist, but are hidden. Why? Because /bin it /system/bin, there’s no need to display this in Tracker, but scripts still use it. I think developers should get rid of outdated things made for compatibility, as it only complicates understanding.)
packagefs
I previously mentioned hpkg files, which are somewhat similar to packages on Linux, but they don’t install; they just mount (like snap packages). The file system that does this magic is called packagefs. It mounts hpkg files over others, leading to the entire /system directory being created this way.
The mount command, unfortunately, does not show what is mounted.
~> mount
usage: mount [-ro] [-t fstype] [-p parameter] [device] directory
-ro mounts the volume read-only
-t specifies the file system to use (defaults to automatic recognition)
-p specifies parameters to pass to the file system (-o also accepted)
if device is not specified, NULL is passed (for in-memory filesystems)I was advised to try mountvolume, which will show mounted partitions, but unfortunately, it also does not show mounting points with packagefs (it will only show those related to partitions or disk images). [Fortunately, if you run mount or df somewhere on a host with docker, you can scroll through a couple of screens! — nota traducătorului] But you can pull off a trick with 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/1As you can see, /system și /home/config inside /boot this is just packagefs.
Those who know me are aware that I am a fan of drag-and-drop support in file managers: for example, I use NeXT-style application sets, or .
In any case, there are drawbacks to this software distribution format as well. Can packagefs combine the best?
Așa cum se vede, în cazul meu (partea de sistem este plină, dar vreau să instalez aplicații) ar fi fost mai elegant să descarc aplicațiile undeva, folosind browserul, exact așa cum fac cu fișierele. .dmg pentru Mac sau AppImage. packagefs trăiește în kernel, deci aceasta nu este un sistem de fișiere pentru FUSE (deși știu că FUSE există și în Haiku). De asemenea, mi s-a spus că, probabil, în viitor vor fi create zone suplimentare de packagefs, ceea ce cel mai probabil înseamnă că voi putea specifica packagefs să păstreze pachetele, de exemplu, pe partiții separate. Asta mi se pare grozav — dacă partiția va fi pe un mediu de stocare detasabil, voi putea să mă așez la un alt computer și să am aplicații funcționale acolo.
S-a mai spus că metoda drag-and-drop funcționează și pentru instalarea pachetelor: e suficient să tragi fișierul în /system/packages sau pe /home/config/packages pentru instalare, iar dacă tragi fișierul dincolo — acesta va fi șters. Dacă tragi un pachet cu dependențe nesatisfăcute, sistemul va solicita instalarea lor prealabilă.
La început, nu înțelegeam cum gestionează packagefs versiunile multiple ale aceluiași pachet, ce se va întâmpla dacă vreau să instalez, de exemplu, versiuni diferite de gcc sau alte programe GUI? (Unul dintre dezvoltatori a spus, citând: „packagefs în sine nu conține nimic care să împiedice instalarea mai multor pachete cu același nume, dar deoarece se aplică libsolv din OpenSuse pentru rezolvarea dependențelor, care nu permite așa ceva, — a fost interzis și lui HaikuDepot în setări să facă asta”. Pot explica de ce îmi place ideea cu pachetele .app, AppDir și AppImages).
Biblioteci dinamice
Există o tehnologie pentru biblioteci dinamice? Da, acest lucru este evident, de exemplu, dacă rulezi o aplicație cu biblioteci lipsă prin dublu clic:

Îți poți imagina așa ceva în gnome, kde sau xfce?
În Linux, o astfel de rulare nu ar arăta nimic. Să vedem cât de mult va dura în diferite medii:
- GNOME:
- KDE:
- XFCE:
- MATE:
Dar ce zici de verificări?
~> ldd
bash: ldd: command not foundTrebuie folosită o alternativă:
~> 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În principiu ldd ar fi mai bine, deoarece ar arăta și căile din care bibliotecile vor fi încărcate.
Dar de unde sunt realmente încărcate?
~> echo $LIBRARY_PATH
%A/lib:/boot/home/config/non-packaged/lib:/boot/home/config/lib:/boot/system/non-packaged/lib:/boot/system/libAșadar, poți plasa bibliotecile lângă fișierul executabil, iar acesta va „funcționa pur și simplu”. Ce mișto! Poți conecta pur și simplu biblioteci separate la aplicație fără să te complici cu rpath sau să setezi variabila LD_LIBRARY_PATH ca în Linux. Super!
Există o bibliotecă (oribilă în Linux) /boot/system/lib/libstdc++.so.6.0.24.
Ce se întâmplă dacă aplicația necesită o versiune mai nouă decât cea disponibilă în /boot/system/lib?
Utilizatorul obișnuit probabil că va face upgrade la cea mai recentă versiune, deoarece în acest sistem nu există utilizatorul «Administrator» cu parola root [autorul sugerează ușurința — nota traducătorului].
Ei bine, cel puțin așa pare. (De fapt, «utilizatorul» este echivalentul root. Poți seta o parolă folosind comanda passwd, după care să specifici PermitRootLogin=yes în sshd_config, și apoi poți să te conectezi de afară prin ssh. Dezvoltatorii mi-au spus că, în mod implicit, toate aplicațiile sunt rulate de root. În cele din urmă, poate că vor îmbunătăți asta... Dar nu sunt sigur că îmi va plăcea.)
Din cauza lipsei distribuțiilor Haiku — dezvoltatorii de aplicații nu au acces la versiuni mai noi decât cele disponibile pentru descărcare în sistemul tău. Rezultatul: mai puține dezamăgiri, lucrurile „funcționează pur și simplu”. O simplificare excelentă! Îmi place.
Resurse și registrator
După cum s-a menționat mai sus, aplicațiile primesc tip și pictogramă, așa că nu trebuie să te ocupi cu fișiere pe desktop și lucruri de genul. Mi s-a spus că există un registrator de servicii special, care cunoaște aplicațiile, tipurile de fișiere și pictogramele. Acesta este întotdeauna notificat la instalarea unui pachet sau marcarea unui fișier pentru execuție (folosind programul chmod sau mimeset).
Semănă cumva cu de pe Mac. Și este ceea ce . Excelent!
Fișierele binare primesc pictograme incorporate sub formă de resurse, așa că nu ai nevoie de o pictogramă separată pe lângă fișierele de pe desktop. Aproape la fel cum era pe Macintosh System 1. Grozav!

Tipuri de aplicații, tipuri de documente acceptate, resurse încorporate și informații despre versiune
Tracker (manager de fișiere) marchează automat fișierele binare ca executabile. Asta a fost ceea ce așteptam de la mediile de lucru pe Linux de mai bine de 10 ani.
Toate acestea sunt foarte plăcute. E uimitor! Viața devine atât de simplă. E mai rafinat și seamănă mai mult cu Mac decât pe Linux. Sau asta...

Aplicație Linux fără bit de execuție instalat
În Gnome capacitatea de a lansa fișiere executabile din managerul de fișiere, dar comunitatea s-a împotrivit — și totul a fost întors.
De asemenea, mi s-a spus că aplicațiile utilizează funcția find_paths() în loc de cele strict specificate /usr/bin și /usr/share (o caracteristică comună a mediilor de lucru în Linux), ceea ce înseamnă posibilitatea de a le mișca prin sistemul de fișiere. Aplaud în picioare! .
Ce m-a surprins
- M-a deranjat că
/bootaceasta este punctul de montare al partiției de unde se încarcă sistemul. De ce nu „/„? Sau/Haiku? (Пояснение: действительно,/bootaceasta este întotdeauna partiția de boot, ea este afișată pe desktop ca „Haiku”, pentru că acesta este numele său. Priviți „/” ca pe un echivalent al desktop-ului în Mac System 1, rădăcina ierarhiei, care, de fapt, nu există pe discuri). - Punctul de montare pentru pachetele instalate de utilizator este
/home/config. De ce nu doar/home? (Один из разработчиков пояснил мне, что они не хотят засорять домашний каталог, но мне кажется, config — название неудачное, потому что внутри есть подкаталогbin/, așa că nu este doar un loc pentru stocarea setărilor). - Care este licența pentru tot? De exemplu, în în secțiunea „Despre” nu există nicio mențiune explicită. În câmpul „Despre acest sistem” se menționează că codul Haiku este sub licența MIT. Excelent! (De asemenea, mi s-a spus că WebPositive vine împreună cu sistemul de operare sub aceeași licență, totuși motorul său WebKit vine, în cea mai mare parte, sub licența BSD în două puncte).
Ce nu a funcționat așa cum mă așteptam
În primul rând, m-a impresionat nivelul de suport hardware. Pe netbook-ul meu bazat pe Atom, totul a funcționat, inclusiv WLAN. Dar există unele particularități în funcționare.
- Incompatibilitate totală pe hardware-ul Macintosh, indiferent de modul EFI sau emularea BIOS („Windows”). Sistemul se blochează pur și simplu dacă alegi pictograma în încărcătorul Mac. Mi s-a spus că aceasta și că se poate boot-a folosind , dar acele setări sunt prea complicate pentru mine.
- Accelerația grafică. Se pare că utilizarea Radeon nu este posibilă pentru moment (am avut un ecran negru), dar nici pe Intel nu totul este perfect. Accelerația video în WebPositive este doar software, inclusiv H.264. Este surprinzător, având în vedere că orientarea inițială este spre video. Unul dintre dezvoltatori a specificat că video în WebPositive funcționează, folosind hack-uri de încetinire.
- Nu este sunet? „Driverii pentru plăcile de sunet încă nu funcționează”, a spus dezvoltatorul. Probabil că este nevoie de cineva pentru a susține driverul HDA, similar cu USB-3. În prezent, pentru a obține sunet, este suficientă o repornire rapidă dintr-un alt sistem de operare, și cred că în cele din urmă vor remedia această problemă.
- Butonul pentru controlul luminozității și volumului nu funcționează. (Există deja o bază sub formă de aplicația Shortcuts: se poate crea o legătură între orice combinație de taste și orice funcție dorită, dar în prezent Haiku nu poate lucra cu tastele media. Poate există voluntari?)
- Control touchpad cu două degete. Nu funcționează din cutie. Există un panou de setări care a spus că „Nu s-a găsit touchpad, setările nu vor avea efect.” ( cu dispozitivul de intrare ELAN, ACPI ETD050A).
- Cu aplicația existentă pentru citirea fișierelor de pe camerele digitale și smartphone-urile Android, nu am reușit să sincronizez în modurile MTP și PTP. Ar fi grozav dacă acestea s-ar monta ca celelalte partiții din sistem.
- Închiderea capacului laptopului, aparent, nu este gestionată. (Știu că Haiku încă nu funcționează cu ACPI: suportul este implementat, dar nu este activat implicit; nu există reinițializare a driverului)
- Nu am reușit să creez un cont în bugtracker, deoarece nu funcționează în WebPositive.
Aplicații
Destinația principală a sistemului de operare este rularea aplicațiilor. Mi-a fost frică că sub Haiku nu vor exista aplicații pentru muncă reală. Din fericire, m-am înșelat, deoarece există speranța unei îmbunătățiri — când Haiku va fi folosit mai des.
(aplicație pentru layout vizual) există, iar aceasta este o aplicație destul de complexă bazată pe Qt. De asemenea, există și (IDE).
M-a interesat dacă astăzi se scriu aplicații native Be pentru Haiku, folosind unelte native (dacă acestea există), sau dacă este suficient să folosești QtCreator (ceea ce va facilita portarea aplicațiilor multiplatformă). Poziția dezvoltatorilor Haiku este un „preferință” explicită pentru aplicațiile native pentru Haiku. Este adevărat? Eu mă îndoiesc că aplicațiile pentru muncă reală nu sunt multiplatformă (toate aplicațiile pe care le folosesc în munca mea sunt multiplatformă).
Se declară suport pentru aplicațiile WxWindows.
Lipsa suportului pentru Gtk+ este frustrantă. Asta înseamnă că pe Haiku nu va exista în curând Gimp (sau așa cred), dar există o alternativă sub formă de Krita!
De asemenea, cred că este necesară o modalitate simplă și clară de a crea aplicații pentru Haiku, — folosind Travis CI și GitLab CI.
Încotro ne îndreptăm?
Va rămâne Haiku prins în conceptul UI BeOS? Mi se pare că, pentru a fi atractiv, trebuie să examineze cu atenție noile scheme de UX atunci când le adoptă, rămânând totodată fidel fundamentelor sale.
De exemplu:
- A rămâne simplu, fără cele 100500 de opțiuni care fac Linux "complicat".
- A folosi un cursor-arhitectură pentru mouse în loc de o mână ciudată.
- Va exista Dock? (Știu că există ceva asemănător cu Dock numit , chiar mai apropiat de Dock , dar BeOS original avea deja Dock în 1998!)
- Meniu global? (Evident, nu, deoarece nu vede un beneficiu special).
- Schimbare rapidă între feronerie? (S-a spus că se poate încerca activarea „„, apăsând tasta Windows în timp ce tragi fereastra, dar asta nu este intuitiv, mai mult, nu funcționează la mine).
- Animație de deschidere și închidere pentru feronerie?
- Umbre în spatele feroneriilor?
- Suport pentru teme, ca în Aqua? (Da, este posibil, există infrastructură și instrumente, de exemplu, , dar cineva trebuie să creeze teme. Aș încerca eu, mi s-a spus că există documentație în /xref/haiku/headers/os/interface/ControlLook.h, но не сейчас).
Aceste nuanțe fine, având în vedere, sistemul nu trebuie să-și piardă unicitatea.
Concluzie
Haiku mi-a deschis cu adevărat ochii, mi-a arătat cum funcționează un mediu de lucru "pur și simplu".
Cu peste 10 ani în urmă am trecut de la Mac la Linux și de atunci caut același nivel de rafinament și frumusețe, iar Haiku se potrivește acestuia în multe privințe.
Sincer, există neajunsuri, dar surprinzător multe lucruri, inclusiv hardware-ul, de exemplu WLAN sau imprimantele, "funcționează pur și simplu".
Cu toate acestea, înainte de toate, sistemul are o concepție a mediului de lucru, care lipsește în mediile de lucru pe Linux.
Existencea unui sistem coerent (și nu a unui kernel și a diferitelor medii de lucru concurente) face totul simplu și consecvent.
Lipsa diferitelor distribuții (versiuni) face totul și mai simplu.
Calculul pentru a funcționa doar un singur utilizator în sistem reduce și mai mult complexitatea.
Rezultatul: un sistem foarte simplu, rafinat, minimalist în multe privințe, creat pentru „muritorii obișnuiți”, nu pentru administratorii de sisteme UNIX.
Există speranța că, atunci când acest sistem va deveni mai popular (ceea ce este inevitabil), complexitatea sa nu va crește.
Am scris deja despre #LinuxUsability în ciclul anterior de articole. Este plăcut să știu că Haiku rezolvă multe dintre problemele menționate .
A fost nevoie de o zi pentru a mă convinge: vreau să folosesc acest mediu de lucru pentru activitatea mea zilnică și caut opțiuni pentru contribuția mea la dezvoltarea sistemului.
Încercați singuri! Proiectul Haiku oferă imagini de descărcat pe DVD sau USB, . Pentru instalare, este suficient să descărcați imaginea și să o scrieți pe un stick USB folosind .
De la autorul traducerii: aceasta este doar prima articol dintr-un ciclu despre Haiku, restul așteaptă traducerea și vor fi publicate mai târziu.
Sursa: habr.com
