Dopo un anno e mezzo di sviluppo, è stato pubblicato il quinto beta release del sistema operativo Haiku R1. Inizialmente, il progetto è stato creato come risposta alla chiusura del sistema operativo BeOS e si è evoluto con il nome di OpenBeOS, ma è stato rinominato nel 2004 a causa di contestazioni legate all'uso del marchio BeOS. Per valutare le prestazioni del nuovo rilascio sono disponibili diversi live image di boot (x86, x86-64 1,4 GB). Il codice sorgente della maggior parte del sistema operativo Haiku è distribuito sotto la licenza MIT, ad eccezione di alcune librerie, codec multimediali e componenti presi in prestito da altri progetti.
Il sistema operativo Haiku è progettato per computer personali e utilizza un proprio kernel basato su un'architettura modulare, ottimizzato per una rapida reattività alle azioni dell'utente e per l'esecuzione efficiente di applicazioni multithread. Per gli sviluppatori è fornita un'API orientata agli oggetti. Il sistema si basa direttamente sulle tecnologie di BeOS 5 ed è mirato alla compatibilità binaria con le applicazioni per tale sistema operativo. I requisiti minimi hardware sono: CPU Pentium II o AMD Athlon e 384 MB di RAM (si consiglia Intel Core i3 o AMD Phenom II e 2 GB di RAM).
Il file system utilizzato è OpenBFS, che supporta attributi estesi dei file, journaling, puntatori a 64 bit, supporto per la memorizzazione di meta-tag (per ogni file è possibile salvare attributi in forma chiave=valore, rendendo il file system simile a un database) e indici speciali per accelerare le query. Per organizzare la struttura delle directory vengono utilizzati alberi "B+ tree". Dal codice di BeOS, Haiku include il gestore file Tracker e il pannello Deskbar, i cui sorgenti sono stati resi pubblici dopo la scomparsa di BeOS.
Novità principali:
- Nelle impostazioni dell'aspetto, l'interfaccia di selezione dei colori è stata semplificata. Invece di 30 parametri predefiniti, ora vengono mostrati solo tre (colore dello sfondo del pannello, colore della barra di stato e colore delle schede), mentre gli altri vengono calcolati automaticamente in base ai tre valori selezionati. Nella selezione automatica dei colori viene considerata la scelta del tema scuro o chiaro (ad esempio, con un tema scuro attivo vengono scelti colori chiari per il testo). È presente un'opzione separata per ripristinare la visualizzazione dell'intero set di parametri per la modifica manuale.

- È stata introdotta una grande serie di correzioni mirate a migliorare il supporto per la scelta del tema scuro.

- Nell'editor di icone Icon-O-Matic è stata aggiunta la supporto per la trasformazione della prospettiva e la visualizzazione di un'immagine di riferimento come sfondo (per ripetere i contorni nell'icona). Sono state notevolmente migliorate le funzionalità di copia e incolla.

- Al primo avvio, se sono presenti batterie nel sistema, verrà effettuata automaticamente l'installazione del pannello dell'applet PowerStatus, che mostra lo stato di carica e le caratteristiche della batteria. La precisione delle informazioni sul livello di carica è stata migliorata. Per informare l'utente su un basso livello di carica, sono stati aggiunti segnali acustici e notifiche.

- Nel gestore di file Tracker è stata migliorata la gestione delle directory e delle partizioni dei dischi, disponibili in modalità di sola lettura, che ora vengono evidenziate chiaramente con uno sfondo più scuro (questo sfondo veniva precedentemente utilizzato per le directory virtuali). Per gli elementi del file system disponibili solo in lettura, vengono disattivate anche le voci di menu che richiedono accesso in scrittura.

- È continuato lo sviluppo dei port dei software di terze parti. Dalla scorsa release, sono stati portati nuovi programmi KDE, è aumentato il numero di programmi GTK supportati, è stato aggiunto il port con il debugger GDB 15 (precedentemente era fornito GDB 6) e realizzato un port sperimentale della piattaforma .NET Core 9.

- Migliorato il funzionamento dell'interfaccia per garantire la compatibilità con X11/Xlib. È stata fornita la possibilità di utilizzare il toolkit grafico FLTK (tra le limitazioni si segnala l'assenza di supporto per le funzioni relative a OpenGL).

- Aggiunto supporto per dispositivi audio con interfaccia USB (il passaggio automatico dell'uscita audio al collegamento di un dispositivo USB non funziona ancora, quindi è necessario riavviare i servizi multimediali di sistema per effettuare il passaggio).
- Aggiunto il driver per interfacce di rete TUN/TAP, utilizzabile per creare tunnel di rete e organizzare il funzionamento. VPN.
- Il stack TCP è stato ottimizzato, aumentando notevolmente la capacità di trasferimento (le prestazioni delle connessioni TCP sono aumentate da 8 a 10 volte, mentre la capacità di loopback (localhost) è aumentata di diversi ordini di grandezza). Migliorato il conteggio per la raccolta delle statistiche. Ridotto il numero di operazioni di copia dei buffer. Aggiunta la possibilità di spostare le operazioni di calcolo dei checksum dei pacchetti sulle schede di rete.
- Le funzionalità dell'emulatore di terminale sono state ampliate, includendo il supporto per l'inserimento di testo con escape dagli appunti, per gestire interruzioni di linea e caratteri speciali nei testi portatili. È stata aggiunta la possibilità di modificare la schema di colori nelle impostazioni.
- È stata effettuata una rifattorizzazione del layer TTY/PTY, unificando il codice di TTY e PTY, e aggiungendo il supporto per le estensioni TTY come TIOCOUTQ.
- È stata ottimizzata la performance del kernel e dei driver, è stata introdotta la possibilità di eseguire operazioni di input/output in batch, ottimizzato l'uso dei lock durante l'avvio dei programmi, migliorata l'efficienza del file mapping in memoria, ridotta la competizione tra i lock nel mapping delle pagine di memoria, è stata aumentata l'efficienza dell'allocazione dei buffer temporanei, e sono state implementate ottimizzazioni nel sistema di input/output; inoltre, nel caricatore di file eseguibili in formato ELF è stato aggiunto il supporto per DT_GNU_HASH.
- È stata riprogettata l'architettura del meccanismo di blocco user_mutex, simile nelle sue capacità al sistema futex di Linux, utilizzato per implementare le chiamate a pthread_mutex e pthread_rwlock. La nuova architettura ha permesso di risolvere precedenti problemi di race condition e di aumentare le prestazioni (ad esempio, la velocità di compilazione è aumentata del 25%).
- Il driver per il file system FAT è stato sostituito con una nuova versione, portata da FreeBSD. La sostituzione del driver ha risolto problemi di compatibilità con altre implementazioni di FAT.
- Aggiunto il driver per il file system UFS2 (Unix File System 2), utilizzato in FreeBSD. Attualmente, il driver funziona solo in modalità lettura.
- Implementata una parte dell'API di multiplexing input-output kqueue.
- Espanse le capacità di tracciamento e profilazione dei processi utilizzando gli strumenti strace e profile.
- Migliorata la compatibilità con le specifiche POSIX. Implementate le funzioni getentropy, arc4random, pthread_sigqueue, preadv e pwritev, e aggiunta la supporto ai socket Unix (AF_UNIX) SOCK_DGRAM.
- È stato fatto un grande lavoro per aumentare la stabilità dell'intero sistema. Risolti molti problemi che portavano a chiusure improvvise e guasti nel funzionamento del kernel e dei driver.
Fonte: opennet.ru







