După un an și jumătate de dezvoltare, a fost publicată a patra versiune beta a sistemului de operare Haiku R1. Inițial, proiectul a fost creat ca o reacție la închiderea sistemului de operare BeOS și a evoluat sub numele OpenBeOS, dar a fost redenumit în 2004 din cauza unor pretenții legate de utilizarea mărcii comerciale BeOS în denumire. Pentru evaluarea funcționalității noii versiuni, au fost pregătite mai multe imagini Live de boot (x86, x86-64). Codul sursă al unei părți considerabile a sistemului de operare Haiku este distribuit sub licența liberă MIT, cu excepția unor biblioteci, codec-uri media și componente împrumutate din alte proiecte.
Sistemul de operare Haiku este orientat către computere personale, utilizează un nucleu propriu, construit pe o arhitectură modulară, optimizat pentru un răspuns rapid la acțiunile utilizatorului și pentru o executare eficientă a aplicațiilor multi-thread. Pentru dezvoltatori este disponibil un API orientat pe obiecte. Sistemul se bazează direct pe tehnologiile BeOS 5 și este axat pe compatibilitatea binară cu aplicațiile pentru acest sistem de operare. Cerința minimă pentru hardware este un CPU Pentium II și 384 MB RAM (recomandat Intel Core i3 și 2 GB RAM).
Sistemul de fișiere folosește OpenBFS, care suportă atribute extinse ale fișierelor, jurnalizare, indicatoare pe 64 de biți, suport pentru stocarea meta-tag-urilor (pentru fiecare fișier pot fi salvate atribute sub formă de cheie=valoare, ceea ce face ca FS să semene cu o bază de date) și indecși speciali pentru accelerarea interogărilor pe acestea. Structura directorului este organizată folosind arbori de tip „B+ tree”. Din codul BeOS a fost inclus managerul de fișiere Tracker și bara de instrumente Deskbar, a căror sursă a fost deschisă după ce BeOS a ieșit de pe scenă.
Noutăți principale:
- A fost îmbunătățită funcționarea pe ecrane cu densitate înaltă a pixelilor (HiDPI). A fost implementată o scalare corectă a interfeței, care nu se limitează la modificarea dimensiunii fonturilor. La prima pornire, Haiku încearcă acum să determine automat dacă există un ecran HiDPI și să aleagă dimensiunile necesare pentru scalare. Parametrii aleși pot fi modificați în setări, dar pentru aplicarea acestora este necesară o repornire. Opțiunile de scalare sunt acceptate în majoritatea aplicațiilor native și în unele portate, dar nu în toate.
- A fost oferită posibilitatea de a utiliza un aspect cu un decorator de feronerie plat și un design plat al butoanelor, în loc de un design care utilizează activ degrade. Designul plat este inclus în pachetul Haiku Extras și poate fi activat în secțiunea de setări pentru aspect.

- A fost adăugată o plasă de compatibilitate cu biblioteca Xlib, care permite rularea aplicațiilor X11 în Haiku fără a lansa serverul X. Această plasă este implementată prin emularea funcțiilor Xlib prin traducerea apelurilor în API-ul grafic de nivel înalt Haiku.
- A fost pregătit un strat pentru a asigura compatibilitatea cu Wayland, permițând rularea toolkit-urilor și aplicațiilor care utilizează acest protocol, inclusiv aplicații bazate pe biblioteca GTK. Stratul oferă biblioteca libwayland-client.so, bazată pe codul libwayland și compatibilă la nivel API și ABI, ceea ce permite rularea aplicațiilor Wayland fără modificări. Spre deosebire de serverele compozite tipice, servere stratul nu este lansat sub forma unui proces server separat, ci este încărcat ca un plugin în procesele client. În loc de socket-uri, server se folosește un ciclu nativ de procesare a mesajelor pe baza BLooper.
- Datorită stratelor de compatibilitate cu X11 și Wayland, a fost pregătit un port funcțional al bibliotecii GTK3. Printre aplicațiile care pot fi rulate cu ajutorul acestui port se numără GIMP, Inkscape, Epiphany (GNOME Web), Claws-mail, AbiWord și HandBrake.

- A fost adăugat un port funcțional cu Wine, care poate fi folosit pentru a rula aplicații Windows în Haiku. Printre limitări se numără posibilitatea de a rula doar în versiunile de 64 de biți ale Haiku și capacitatea de a executa doar aplicații Windows de 64 de biți.

- A fost adăugat un port al editorului de text GNU Emacs, care funcționează în modul grafic. Pachetele sunt disponibile în repositoariul HaikuDepot.

- În managerul de fișiere Tracker a fost adăugată suportul pentru generarea și afișarea miniaturilor imaginilor. Miniaturile sunt salvate în atributele extinse ale fișierelor.

- A fost implementat un strat pentru compatibilitatea cu driverele FreeBSD. Din FreeBSD au fost portate drivere pentru suportul adaptoarelor USB wireless cu cipuri Realtek (RTL) și Ralink (RA). Printre limitări se numără necesitatea conectării dispozitivului înainte de bootare (după bootare, dispozitivul nu este recunoscut).
- Din OpenBSD a fost portat stivul wireless 802.11 cu suport pentru 802.11ac și driverele iwm și iwx cu suport pentru adaptoarele wireless Intel „Dual Band” și „AX”.
- A fost adăugat driverul USB-RNDIS, care permite organizarea unei rețele de acces prin USB (USB tethering) pentru utilizarea ca o interfață de rețea virtuală.
- A fost adăugat un nou driver NTFS, bazat pe biblioteca proiectului NTFS-3G. Noua implementare este mai stabilă, suportă integrarea cu stratul de cache al fișierelor și oferă o bună performanță.
- A fost adăugat un translator pentru citirea și scrierea imaginilor în format AVIF.
- Motorul de browser HaikuWebKit este sincronizat cu versiunea actuală a WebKit și a fost portat pe un backend de rețea bazat pe biblioteca cURL.
- Loaderul a fost îmbunătățit cu suport pentru sistemele de 32 de biți cu EFI și a fost oferită posibilitatea de a instala un mediu Haiku de 64 de biți dintr-un loader EFI de 32 de biți.
- A fost îmbunătățită compatibilitatea cu standardele POSIX. A fost continuată înlocuirea apelurilor la biblioteca standard C, anterior migrate din glibc, cu variante din musl. A fost adăugat suport pentru fire C11 și metode locale locale_t.
- Driverul pentru unitățile NVMe a fost îmbunătățit, adăugându-se suport pentru operația TRIM pentru a informa unitatea despre blocurile eliberate.
- A fost asigurată posibilitatea de a compila nucleul și driverele cu versiunile noi de GCC (inclusiv GCC 11), dar pentru compilarea sistemului din cauza legăturilor cu codul vechi pentru compatibilitatea cu BeOS, GCC 2.95 este în continuare necesar.
- Au fost realizate lucrări generale pentru creșterea stabilității întregului sistem.
Sursa: opennet.ro





