Haiku (system operacyjny)

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj
Haiku
Rodzina systemów operacyjnych BeOS
Logo
Logo systemu
Interfejs
Interfejs użytkownika
Producent The Haiku Project
Platforma sprzętowa x86, ARM
Aktualna wersja
testowa
R1/Alpha 4.1
(14 listopada 2012)
Jądro hybrydowe
Środowisko pracy Tracker
Licencja Licencja MIT
Wersja Live link= alt=T dostępna
Oficjalna strona

Haiku (dawniej OpenBeOS) – wolny i otwarty system operacyjny kompatybilny z systemem BeOS. Jego rozwój rozpoczął się w 2001 roku[1][2]. W 2008 był w stanie skompilować własny kod źródłowy[3]. Pierwsza alpha została wydana we wrześniu 2009[2], druga w maju 2010[4], a trzecia, najnowsza w czerwcu 2011 roku[5].

Rozwojem systemu opiekuje się Haiku, Inc.organizacja non-profit założona w 2003 roku przez dawnego lidera projektu Michaella Phippsa. Siedziba znajduje się w Rochester, w stanie Nowy Jork[6].

Historia[edytuj | edytuj kod]

Początki[edytuj | edytuj kod]

Projekt powstał w 2001 roku pod nazwą OpenBeOS po wykupieniu firmy Be Inc., twórcy BeOS-a, przez firmę Palm i ogłoszeniu zaprzestania prac nad systemem[7][8]. Użytkownicy BeOS-a pozostali wówczas bez możliwości uaktualniania systemu, a twórcy oprogramowania z programami napisanymi na niewspieraną platformę. OpenBeOS różnił się od ówczesnych prób wskrzeszenia BeOSa. Przykładami takich prób są projekty Cosmoe oraz BlueEyedOS (oba obecnie niegotowe i zawieszone), które powstawały na bazie jądra Linux lub BSD i implementowały API BeOSa do postaci działającej pod tymi systemami, co łamało wsteczną kompatybilność z pierwowzorem i powodowało inny wygląd od oryginału. Projekt OpenBeOS zakładał stworzenie systemu od podstaw zapewniając kompatybilność z plikami binarnymi i kodem źródłowym napisanym dla BeOSa R5[8].

Pierwsze wydanie OpenBeOSa upubliczniono w 2002 roku. Była to forma nakładki na system BeOS R5 zastępująca część oprogramowania oprogramowaniem stworzonym przez społeczność. Nakładka ta ustawiała wersję systemu na R5.0.3[1].

W 2004 roku wybrano nową nazwę projektu, aby nie naruszać znaków towarowych Palma. Nazwa Haiku została wybrana przez głosowanie społeczności i upubliczniona na konferencji WalterCon. Nazwa wywodzi się z haiku – tradycyjnej japońskiej formy poetyckiej. Ma ona oddawać elegancję i prostotę systemu, a także nawiązuje do charakterystycznych komunikatów błędów w NetPositive i innych aplikacjach tworzonych przez Be, pisanych właśnie w haiku[9]. Przykład z NetPositive:

Quote-alpha.png
Server’s poor response

Not quick enough for browser.

Timed out, plum blossom.

Dalszy rozwój[edytuj | edytuj kod]

OpenBeOS app_server Proto5

29 kwietnia 2002 wydano pierwszą wersję app_server[10]. Pozwoliło to wydać pierwszą wersję OpenBeOSa renderującą okna[11].

Kilka ważnych osiągnięć odnotowano w ciągu 6 tygodni między marcem a kwietniem 2005 roku. Wtedy to uruchomiono pierwsze graficzne aplikacje napisane pod BeOSa na Haiku (z pełną akceleracją 2D)[12] i pierwszy raz uruchomiono przeglądarkę internetową (był to Links)[13]. Projekt nie używa żadnego kodu należącego do Be, włącznie ze sterownikami grafiki i sieci z przykładów wydanych przez tę firmę. Kolejnym ważnym krokiem było uruchomienie powłoki graficznej Tracker w lipcu 2005 roku.

W październiku 2005 roku Axel Dörfler, jeden z deweloperów o największym wkładzie do systemu, został zatrudniony na pełen etat przy pracy nad systemem. Zakończył prace w grudniu 2005 roku. W tym czasie pracował nad uruchamianiem systemu z płyty CD, wieloprocesowością, jądrem i app_serverem.

W styczniu 2008 roku zespół Java for Haiku został utworzony i zaakceptowany przez społeczność OpenJDK. Wtedy to oficjalnie rozpoczęły się prace nad przeniesieniem Javy na Haiku[14][15].

W lutym 2008 Michael Lotz poinformował o kompilacji Haiku za pomocą Haiku, co oznacza sporą jego stabilność[16]. 1 kwietnia 2008 Bruno Albuquerque podał informacje o identycznej kompilacji, ale bez modyfikacji systemu i sztuczek zastosowanych przy kompilacji Lotza[17].

W styczniu 2009 zaimplementowano natywne GCC w wersji 4.3.3. Do tej pory można było używać GCC 4.x tylko przez kompilację skrośną wersji 4.2.1. Pozwoliło to na przeniesienie na Haiku nowszych aplikacji, jak na przykład Firefox 3[18].

W lipcu 2009 wydano pierwszy port stosu WiFi z FreeBSD dla Haiku. Pozwoliło to na łączenie się z niezabezpieczonymi sieciami WiFi[19].

Haiku Release 1[edytuj | edytuj kod]

Pierwsza alfa systemu o nazwie R1/Alpha 1 została wydana 14 września 2009[2].

27 października 2009 Haiku zyskało port Qt4[20].

Druga alfa (R1/Alpha 2) została wydana 10 maja 2010[4].

Wersja ta była już dystrybuowana ze wczesną wersją przeglądarki WebPositive opartej na WebKicie. We wcześniejszych wersjach tę funkcję pełniły Bezilla (port Firefoxa 2), Links lub NetSurf[21].

R1/Alpha 3 została wydana w czerwcu 2011. Zawiera dużą liczbę poprawek i ulepszeń, a także obsługę kompilatorów GCC 2 i GCC 4 (starsza wersja ze względu na kompatybilność)[5].

Haiku Release 1 Alpha 4 została wydana 12 listopada 2012 roku.

Haiku Release 1 Alpha 4.1 wypuszczona dwa dni później była wersją poprawkową czwartej alfy, w której wykryto dwa poważne błędy uniemożliwiające poprawną prace na nośnikach tylko do odczytu

API i rozwój systemu[edytuj | edytuj kod]

Schemat architektury systemu.

Haiku jest tworzone w C++ i dostarcza zorientowane obiektowo API.

Modularna budowa BeOS-a pozwoliła ekipie programistów na niezależne prace nad zamiennikami serwerów i API (znanymi w Haiku jako kity). Początkowo programiści podzielili się na następujące podzespoły:

  • App/Interface – pracuje nad kitami App, Interface i Support
  • BFS – pracuje nad odtworzeniem systemu plików Be File System – owocem prac tego zespołu jest praktycznie kompletna implementacja pod nazwą OpenBFS.
  • Game – pracuje nad odtworzeniem kitu Game.
  • Input Server – pracuje nad serwerem, który obsługuje urządzenia wejściowe (np. klawiatury i myszki) i zarządza ich komunikacją z resztą systemu.
  • Kernel – pracuje nad jądrem systemu.
  • Media – pracuje nad serwerem dźwięku i związanymi z nim API.
  • MIDI – pracuje nad implementacją standardu dźwięku MIDI.
  • Network – pracuje nad sterownikami i API związanymi z siecią.
  • Preferences – pracuje nad napisaniem apletów służących do konfiguracji systemu.
  • Printing – pracuje nad serwerem druku i sterownikami do drukarek.
  • Screen Saver – pracuje nad wygaszaczem ekranu.
  • Storage – pracuje nad serwerem magazynowania i sterownikami do wymaganych systemów plików.

Kilka kitów zostało uznane za kompletne, reszta znajduje się w różnych stopniach rozwoju.

Jądrem Haiku jest fork jądra hybrydowego NewOS, napisanego przez byłego inżyniera Be, Travisa Geiselbrechta. Fork jest w fazie dynamicznego rozwoju. Wiele funkcjonalności zostało już zaimplementowanych, włączając w to wirtualny system plików i obsługę wieloprocesorowości symetrycznej[22].

Kompatybilność z BeOS-em[edytuj | edytuj kod]

Celem projektu Haiku jest zgodność z BeOS-em R5 na poziomie źródłowym i binarnym, co pozwoli oprogramowaniu napisanemu/skompilowanemu dla BeOS-a R5 na kompilację i/lub działanie bez żadnych modyfikacji. Dostarcza to użytkownikom Haiku zbiór aplikacji (nawet tych, których autorzy nie zajmują się już programowaniem lub nie mają chęci aktualizowania ich) do użycia w Haiku, pozwalając też wznowić prace nad aplikacjami, które zostały wstrzymane po ogłoszeniu zaprzestania rozwoju platformy BeOS[23].

Kompatybilność ta ma także swoje wady, jak np. konieczność dostarczania z Haiku GCC w wersji 2.95, wydanej w 1999 roku[24]. Użycie wyłącznie wersji GCC 4 powoduje utratę wstecznej kompatybilności. W związku z tym projekt wydaje hybrydowe wersje zawierające GCC w wersji 2 i 4, pozwalające na korzystanie z obu tych kompilatorów naraz. WebKit i WebPositive kompilują się wyłącznie w GCC 4[23].

Kompatybilność dotyczy tylko architektury x86. Porty dla architektur PowerPC, ARM i 68k używają tylko kompilatora GCC 4.

Mimo tego kompatybilność z systemowymi dodatkami, które używają prywatnych API, nie zostanie zaimplementowana. Do tych dodatków wliczają się dodatkowe sterowniki systemów plików i wtyczki kodeków, jednak jedyną trudną do ponownego napisania wtyczką będzie kodek Indeo, dla którego nie istnieje żadna specyfikacja.

Programy z BeOS uruchomione w Haiku to między innymi: Opera, Firefox, NetPositive, Quake II, Quake III, SeaMonkey, Vision i VLC.

Przypisy

  1. 1,0 1,1 OpenBeOS First Release (ang.). BeGroovy, 2002-02-15. [dostęp 2012-10-09].
  2. 2,0 2,1 2,2 Grzegorz Niemirowski: Haiku Release 1 Alpha 1 (pol.). dobreprogramy.pl, 2009-09-15. [dostęp 2012-10-09].
  3. Bruno Albuquerque: Haiku self-hosting (ang.). 2008-04-01. [dostęp 2012-10-09].
  4. 4,0 4,1 Wojciech Cybulski: Haiku R1/Alpha 2 wydany (pol.). dobreprogramy.pl, 2010-05-10. [dostęp 2012-10-09].
  5. 5,0 5,1 Haiku Release 1 Alpha 3 (ang.). Haiku, 2011-06-20. [dostęp 2012-10-09].
  6. Strona domowa Haiku Inc (ang.). Haiku Inc.. [dostęp 2012-10-09].
  7. Edward Moltzen: Palm To Buy Be Inc. For $11 Million In Stock (ang.). CRN, 2001-08-16. [dostęp 2012-10-09].
  8. 8,0 8,1 Marcus Overhagen: Ok, let’s start (ang.). Haiku, 2001-08-18. [dostęp 2012-10-09].
  9. Colin Ganther: History: Changing names, how OpenBeOS became Haiku (ang.). HaikuWare, 2009-04-16. [dostęp 2012-10-09].
  10. Eugenia Loli: OpenBeOS Proto5 app_server Replacement Released (ang.). OSNews, 2002-04-29. [dostęp 2012-10-09].
  11. DarkWym: Tracking the Progress of the Haiku App Server (ang.). kwiecień 2002 - czerwiec 2005. [dostęp 2012-10-09]. (wersja z 3 maja 2008 roku zarchiwizowana przez WebArchive).
  12. Michael Lotz: So you really want screenshots? (ang.). 2005-03-21. [dostęp 2012-10-09].
  13. Michael Lotz: There is progress, yes (ang.). 2005-04-10. [dostęp 2012-10-09].
  14. New Java for Haiku Team Formed (ang.). Haiku, 2008-01-03. [dostęp 2012-10-09].
  15. Haiku Port Project (ang.). OpenJDK. [dostęp 2012-10-09].
  16. Thom Holwerda: Haiku 'Self Hosts’ for the First Time (ang.). OSNews, 2008-02-12. [dostęp 2012-10-09].
  17. Bruno Albuquerque: Haiku self-hosting (ang.). 2008-04-01. [dostęp 2012-10-09].
  18. umccullough: Haiku Finally Gets a Native GCC4 – full story inside! (ang.). Haiku, 2009-02-01. [dostęp 2012-10-09].
  19. ColinG: WiFi stack prototype works (ang.). Haiku, 2009-07-12. [dostęp 2012-10-09].
  20. Thom Holwerda: Qt4 Ported to Haiku, Developer Preview Release Available (ang.). OSNews, 2009-10-27. [dostęp 2012-10-09].
  21. Haiku Project Announces Availability of Haiku R1/Alpha 2 (ang.). Haiku, 2010-05-09. [dostęp 2012-10-09].
  22. Kernel & Drivers Team (ang.). Haiku. [dostęp 2012-10-09]. (zarchiwizowane w WebArchive 9 czerwca 2008).
  23. 23,0 23,1 stippi: Steady Progress towards Alpha 1 (ang.). Haiku, 2008-05-18. [dostęp 2012-10-09].
  24. GCC Releases (ang.). Projekt GNU. [dostęp 2012-10-09].

Linki zewnętrzne[edytuj | edytuj kod]

Commons in image icon.svg