# Haiku (sistema operatiu)

Haiku és un sistema operatiu de codi obert lliure compatible amb BeOS. El seu desenvolupament va començar el 2001, i el sistema operatiu va assolir l'autoallotjament el 2008, amb la primera versió oficial alfa llançada el setembre de 2009. Rep el suport de Haiku, Inc., una organització sense ànim de lucre amb seu a Rochester, Nova York, que va ser fundada el 2003.

## Història

Haiku va començar com el projecte OpenBeOS el 2001, any en què Be, Inc. va ser adquirida per Palm, Inc. i el desenvolupament de BeOS es va suspendre. El focus del projecte era donar suport a la comunitat d'usuaris mitjançant la creació d'un substitut de codi obert compatible amb versions anteriors de BeOS. El primer projecte OpenBeOS va ser una actualització «pal·liativa» creada el 2002 per la comunitat, per a BeOS 5.0.3. El 2003, una organització sense ànim de lucre (Haiku Inc.) es va registrar a Rochester, Nova York per a donar suport financer al desenvolupament, i el 2004, després que Palm enviés a OpenBeOS una notificació de violació de la marca registrada BeOS, el projecte va ser rebatejat com a Haiku.
El nom va ser decidit pels directors del projecte en una votació oficial i finalment revelat a la WalterCon del mateix any. La decisió d'usar com nom Haiku — una forma de poesia tradicional japonesa — intentava reflectir la senzillesa i elegància que s'obtenia amb l'antic sistema operatiu BeOS. És un homenatge als missatges d'error mostrats pel navegador NetPositive, escrits en forma de haiku.
El desenvolupament, però, només arribaria el seu primer marc el setembre de 2009 amb el llançament de Haiku Alpha 1.

## Desenvolupament

Haiku és desenvolupat en C++ i proporciona una API orientada a objectes. El disseny modular de BeOS ha permès als equips de programadors voluntaris treballar de forma independent en substituts per a servidors individuals i API (conegudes en Haiku com «kits»). Aquests equips inclouen:
* App/Interface: desenvolupa la interfície, aplicacions i kits de suport tècnic.
* BFS: desenvolupa el sistema de fitxers Be File System, que és gairebé complet amb el consegüent OpenBFS
* Game: desenvolupa el «Kit de Joc» i les seves API.
* Input Server: el servidor que controla els dispositius d'entrada, com teclats i ratolins i com es comuniquen amb altres parts del sistema.
* Kernel: desenvolupa el nucli del sistema operatiu.
* Media: desenvolupa el servidor d'àudio i API relacionades.
* MIDI: implementa el protocol MIDI.
* Network: escriu controladors per als dispositius de xarxa i les API relacionades amb la creació de xarxes.
* OpenGL: desenvolupa la compatibilitat amb OpenGL.
* Preferences: recrea la suite preferències.
* Printing: treballa en els servidors d'impressió i controladors per a impressores.
* Screen Saver: implementa la funcionalitat d'estalvi de pantalla.
* Storage: desenvolupa el servidor d'emmagatzematge i els controladors per a sistemes de fitxers necessaris.
* Translation: recrea els mòduls de lectura/escriptura/conversió per als diferents formats de fitxer.
Uns pocs kits s'han considerat complets i la resta estan en diferents etapes de desenvolupament.
El nucli de Haiku és un nucli modular híbrid i un fork de NewOS, un nucli modular escrit per Travis Geiselbrecht, exenginyer de Be Inc.. Igual que la resta del sistema en aquest moment encara està en desenvolupament. Moltes de les funcions s'han implementat, incloent-hi una capa de sistema de fitxers virtual (VFS) i suport rudimentari a multiprocessament simètric (SMP).

## Compatibilitat amb BeOS

Haiku pretén ser compatible amb BeOS, tant a nivell de codi font com binari, permetent programari escrit i compilat per a BeOS ser compilat i executat sense modificació en Haiku. Això proporcionarà als usuaris Haiku una biblioteca instantània d'aplicacions per a triar (fins i tot els programes que els desenvolupadors s'han retirat dels negocis o no tenien cap interès en l'actualització dels mateixos), a més de permetre el desenvolupament d'altres aplicacions, continuant des d'on s'havien acabat després de la defunció de Be, Inc. Aquesta dedicació a la compatibilitat també té els seus inconvenients, ja que requereix utilitzar la versió 2.95 del compilador GCC, que ja té 23 anys. Canviar a utilitzar la versió més recent del GCC 4 trenca la compatibilitat amb el programari de BeOS, per tant Haiku està sent construït com un entorn GCC4/GCC2 híbrid. Això permet l'ús de binaris tant de la versió 2 com de la versió 4 del GCC al mateix temps.
Tingueu en compte que aquesta compatibilitat és només vàlida per als sistemes x86. No es donarà suport a la versió PPC de BeOS R5. A conseqüència d'això, les versions de Haiku per a ARM, PowerPC i 68k utilitzen només el compilador GCC4.
Tot i aquests intents, no s'implementarà compatibilitat amb un cert nombre de complements que utilitzen API privats. Aquests inclouen complements controladors de sistema de fitxers i còdecs multimèdia, encara que l'únics complements afectats per BeOS R5 són descodificadors multimèdia Indeo 5 per a quin no existeixen especificacions.
Les aplicacions binàries de R5 que s'executen amb èxit a Haiku (a partir del maig de 2006) inclouen: Opera, Firefox, NetPositive, Quake II, Quake III, SeaMonkey, Vision i el reproductor multimèdia VLC media player.
Compatibilitat de controladors és incompleta, i és improbable que s'inclouen tots els tipus de controladors de BeOS. Controladors de gràfics 2D en general treballin exactament el mateix que el R5, igual que els controladors de xarxa. A més, Haikú ofereix una capa de compatibilitat del controlador de xarxa amb FreeBSD a nivell de codi font, el que significa que pot suportar qualsevol maquinari de xarxa que funciona a FreeBSD. Controladors d'àudio utilitzant l'API de versions anteriors a BeOS R5, encara no són compatibles, i és poc probable que siguin; tanmateix, controladors de l'època del R5 funcionen.
Controladors de baix nivell de dispositius, és a dir, per a dispositius d'emmagatzematge i adaptadors SCSI no seran compatibles. Controladors USB, tant per la segona (BeOS 5) i tercera (BeOS Dano) generació de piles USB funcionen, però.
En alguns altres punts, Haiku ja està més avançat que BeOS. Per exemple, el kit d'interfície permet l'ús d'un sistema de disseny per posar automàticament els ginys a les finestres, mentre que en BeOS el desenvolupador havia d'especificar la posició exacta de cada giny a mà. Això permet interfícies gràfiques d'usuari que es representen correctament amb qualsevol mida de font, i també fa molt més fàcil la localització d'aplicacions, com una cadena més llarga en una llengua traduïda farà créixer el giny, en lloc de ser part invisible si la mida del giny va ser corregida.

## Més enllà de R1

La planificació inicial per R2 s'ha iniciat a través del projecte «Glass Elevator» (una referència a la novel·la per a nens, Charlie i el gran ascensor de vidre). L'únic detall confirmat fins ara és que canviarà a una versió actual de GCC (és a dir v4.3.3).
Es preveu una capa de compatibilitat que permetrà que les aplicacions desenvolupades per Haiku R1 s'executin sobre Haiku R2 i posteriors. Això va ser esmentat en una discussió en la llista de distribució de Haiku per un dels principals desenvolupadors, Axel Dörfler. Noves característiques suggerides inclouen la indexació d'arxius similar al del Beagle d'Unix, Google Desktop i Spotlight de Mac OS X, una major integració de gràfics vectorials escalables a l'entorn d'escriptori, suport adequat per a múltiples usuaris i kits addicionals.

## Referències

* ↑ Bruno Albuquerque. «Haiku self-hosting.» (en anglès), 01-04-2008. [Consulta: 1r maig 2010].
* ↑ «WalterCon 2004 announces OBOS new name» (en anglès), 19-06-2004. Arxivat de l'original el 2004-12-15. [Consulta: 3 maig 2010].
* ↑ «Haiku Kernel & Drivers Team» (en anglès). Arxivat de l'original el 2007-09-10. [Consulta: 1r maig 2010].
* ↑ The GCC team. «GCC Releases - GNU Project - Free Software Foundation (FSF)» (en anglès). Free Software Foundation, 25-07-2007. [Consulta: 1r maig 2010].
* ↑ Stephan Aßmus. «Steady Progress towards Alpha 1» (en anglès). Haiku Inc., 18-05-2008. Arxivat de l'original el 2008-05-28.
* ↑ Native GCC 4.3.3 for Haiku - Tales of updating the GCC4 port Arxivat 2010-11-24 a Wayback Machine. (anglès)
* ↑ R2 Ideas – Glass Elevator Summaries (anglès)

## Enllaços externs

* Web oficial de Haiku (anglès)
* 30 days with Haiku Arxivat 2010-05-21 a Wayback Machine. (anglès)