Poznajemy Haiku – historia

Jako, że dziwaczne i mało znane systemy operacyjne to moje hobby, tym razem czas na parę słów o moim ulubionym systemie operacyjnym Haiku.

Definicja prawie żywcem skopiowana z Wikipedii

Haiku (dawniej OpenBeOS) jest to system operacyjny oparty na jądrze NewOS na licencji X11 (MIT), którego celem jest odtworzenie platformy BeOS i zgodność binarna z BeOS R5. Rozwijany jest on przez Haiku Inc., organizację non-profit założoną w 2003 roku.

NewOS

Może zanim przejdę do Haiku i jego historii, kilka słów o NewOS’ie. Jest to otwartoźródłowy system operacyjny, napisany przez byłego programistę Be Inc. (firma odpowiedzialna za BeOS), Travisa Geiselbrechta. System ten wykorzystuje rozwiązania znane z BeOS’a, ale również te zaczerpnięte z Windows NT, Solaris czy systemów uniksowych. Posiada wielowątkowość, obsługę wielu procesorów, łatwo portuje się go na różne platformy, w pełni wielowejściowe jądro, tryb pamięci chronionej, odrębne przestrzenie jądra i użytkownika i inne bajery, o których już nie wspominam, by nikogo nie zanudzić. System oczywiście jest zgodny częściowo ze standardem POSIX. Więcej technobełkotu dla zainteresowanych, tutaj.

Początki Haiku

Projekt rozpoczęto pod nazwą „OpenBeOS” w 2001 roku, gdy Be Inc. zostało wykupione przez Palm, Inc. i zaprzestano rozwoju systemu BeOS, pozostawiając jego użytkowników bez dalszych aktualizacji, a deweloperów z programami na niewspieraną platformę. Celem projektu było wspieranie społeczności BeOS przez utworzenie otwartoźródłowego zamiennika BeOS’a. Projekt ten różnił się od innych, mających zamiar kontynuować dzieło zaczęte przez programistów z Be Inc. Na przykład Cosmoe i BlueEyedOS (oba pozostały niekompletne i obecnie są nieaktywne) re-implementowały API Be na istniejącym już Linuksie, czy BSD, niestety bez binarnej kompatybilności z BeOS’em R5, odrobinę różniąc się od oryginału. Dla kontrastu, OpenBeOS miał na celu przepisanie systemu od podstaw, zachowując kompatybilność zarówno kodu binarnego, jak i źródłowego, co pozwalało na uruchamianie już istniejących aplikacji dla BeOS’a R5 na nowym systemie bez rekompilacji.

Na samym początku udostępniono nieoficjalną, tymczasową aktualizację dla BeOS’a 5.0.3 w 2002 roku, zawierającą otwartoźródłowe zamienniki dla pewnych komponentów BeOS’a.

Rok później, były lider projektu, Michael Phipps zarejestrował organizację non-profit (Haiku Inc.) w Rochester, w Nowym Yorku, by wspomóc finansowo rozwój systemu. W 2004 roku wybrano nową nazwę projektu, by nie naruszać znaków towarowych Palm. Na decyzję deweloperów wpłynęło oficjalne głosowanie społeczności. Nową nazwę ujawniono na tegorocznym WalterCon. Nazwa „Haiku” ma odzwierciedlać elegancję i prostotę, która przyciągała ludzi do BeOS’a i jest równocześnie nawiązaniem do charakterystycznych komunikatów błędów będących poezją haiku, w NetPositive i wielu innych aplikacjach Be.

Postęp

29 kwietnia, 2002 roku, udostępniono piąty prototyp OpenBeOS app_server. Była to pierwsza wersja, potrafiąca renderować okna.

OpenBeOS app_server Proto5

Spora liczba kamieni milowych została osiągnięta w przeciągu sześciu tygodni od marca do kwietnia 2005, takich jak pierwsza aplikacja graficzna działająca na Haiku (z pełną akceleracją 2D) oraz odnotowano pierwsze użycie przeglądarki internetowej (Links) na Haiku. Haiku nie wykorzystuje żadnych binarek czy kodu źródłowego należących do Be, Inc., w tym sterowników dla kat graficznych i sieciowych. Kolejny kamień milowy osiągnięto w lipcu 2005, gdy system był w stanie uruchomić powłokę graficzną BeOS’a, Tracker.

W październku 2005, Axel Dörfler, jeden z najbardziej płodnych deweloperów Haiku, został pierwszym, pełno-etatowym deweloperem, pracującym za fundusze z dotacji społeczności. Pracował nad bootowaniem z CD, SMP oraz nad jądrem i app_server’em. W grudniu 2005 skończyły się fundusze, wtedy też Axel przestał być zatrudniony.

Prace nad systemem były kontynuowane, Haiku nareszcie potrafiło zabootować i było częściowo użyteczne, aczkolwiek pozostało jeszcze sporo pracy, zanim pierwsza, publiczna wersja mogła zostać opublikowana. Obsługa sieci i USB była w bardzo wczesnej fazie, a prace nad media_server’em były w tyle za innymi komponentami. Haiku było wciąż całkiem niestabilne, jak to bywa w tak wczesnej fazie rozwoju, a ponieważ crashe zdarzały się prawie cały czas, nikt nawet nie myślał o ustalaniu daty publikacji. W styczniu 2006, deweloper Stephan Aßmus zasugerował, że z obecnym postępem prac, na wersję R1 trzeba czekać przynajmniej rok, lub dwa.

W sierpniu 2006, Haiku świętowało swoje piąte urodziny. Prace nad stosem sieciowym i USB, o których już wspominałem wyżej, postępuje błyskawicznie. Mówi się, że gdy tylko te dwa, największe elementy zostaną ukończone, Haiku będzie przystosowane do codziennego użytku przez deweloperów i testerów.

Gdy ruszyła nowa strona internetowa, ogłoszono konkurs na utworzenie domyślnego zestawu ikon Haiku. Zwyciężył Stephan Aßmus ze swoim zestawem „stippi”. Aßmus był również deweloperem odpowiedzialnym za narzędzie do tworzenia ikon „Icon-O-Matic” oraz obsługę własnego formatu skalowalnych grafik wektorowych Haiku (HVIF) w Deskbarze i Trackerze. Częściowa implementacja tego zestawu była dostępna w najnowszych kompilacjach.

VLC działające pod Haiku (2008 rok)

W styczniu 2008, powstała oficjalna grupa „Java dla Haiku”, która została jednogłośnie zaakceptowana przez grupę porterów (da się to lepiej przetłumaczyć?) OpenJDK oraz zajmowała się przeportowaniem OpenJDK do Haiku.
W kwietniu 2008, kod Haiku dało się już skompilować pod Haiku.

31 stycznia, 2009, Haiku zyskało natywny port GCC4, który pozwala na kompilowanie nowoczesnych aplikacji, takich jak Firefox 3, pod Haiku.

12 lipca, 2009, Haiku zyskało prototypowy stos WLAN, przeportowany z FreeBSD, co pozwoliło na połączenia z niezabezpieczonymi sieciami WLAN.

Haiku R1/Alpha 1 i kolejne

Oryginalna płyta CD z Haiku R1 Alpha 1. Zdjęcie zrobiono w izraelskim Microsoft Research & Development Center, w Haifie.

Pierwsza wersja alfa, „Haiku R1/Alpha 1” została udostępniona 14 września, 2009. Pamiętam te dni, gdzieś w moim pokoju leży płyta z tym systemem, aczkolwiek własnoręcznie wypalana.

27 października, 2009, Haiku zyskało wsparcie dla Qt4 przez nieoficjalny port.

Kolejna wersja alfa, zawierająca ponad 300 poprawek i ulepszeń, została opublikowana 10 maja, 2010. Haiku zyskuje własną przeglądarkę internetową, WebPositive.

Zdjęcie: Andreas Teichmann

R1/Alpha 3 z lipca 2011, zawierała dodatkowe ulepszenia i ponad 950 poprawek, w tym wsparcie dla zarówno GCC2, jak i GCC4 (użycie wyłącznie tego drugiego jest niemożliwe ze względu na problemy z kompatybilnością).

Przyszłość

Wstępne plany wersji R2 zostały rozpoczęte przez projekt „Glass Elevator”. Jedyny detal, który do tej pory został potwierdzony, to całkowite przejście na GCC4 i porzucenie GCC2.

Planowano warstwę kompatybilności, która pozwalałaby na uruchamianie aplikacji napisanych dla Haiku R1 na R2 i późniejszych. Wspominał o tym w dyskusji na liście mailingowej jeden z głównych deweloperów, Axel Dörfler. Wśród zaproponowanych, nowych funkcji było indeksowanie plików w stylu uniksowego Beagle, Google Desktop i Mac OS’owego Spotlight, większa integracja skalowanych grafik wektorowych z pulpitem, czy właściwe wsparcie dla wielu użytkowników.

Podsumowanie

Jak widać, projekt Haiku postępuje całkiem szybko (biorąc pod uwagę fakt, że jest on robiony przez kilku hobbystów, całkowicie od podstaw), a ja, sporadycznie go testując, widzę że zapowiada się całkiem ciekawa alternatywa dla „mainstreamowych” systemów, takich jak Windows, Linux czy Mac. Jak tylko pojawią się porządne odpowiedniki używanych przeze mnie aplikacji, z pewnością się przesiadam! Obecnie mam jednak z tym systemem sporadyczny kontakt, jako że pracuję nad swoim otwartym klientem Dropboksa, między innymi na tę platformę.