Haiku
Logo Haiku
Logo programu
Ilustracja
Interfejs użytkownika
Producent

The Haiku Project

Architektura

x86, x86-64[1]

Aktualna wersja

R1/beta4
(23 grudnia 2022) [±]

Aktualna wersja testowa

R1/beta4
(23 grudnia 2022) [±]

Jądro

hybrydowe

Środowisko pracy

Tracker

Licencja

MIT

Wersja Live

T dostępna

Strona internetowa

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

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[7].

Historia

Początki

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[8][9]. 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[9].

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[2].

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[10]. Przykład z NetPositive:

Server’s poor response Not quick enough for browser. Timed out, plum blossom.

Dalszy rozwój

OpenBeOS app_server Proto5

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

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)[13] i pierwszy raz uruchomiono przeglądarkę internetową (był to Links)[14]. 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łny 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[15][16].

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

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[19].

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

Haiku Release 1

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

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

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

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[22].

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ść)[6].

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

Haiku Release 1 Beta 1 została wydana 28 września 2018 roku.

API i rozwój systemu

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[23].

Kompatybilność z BeOS-em

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[24].

Kompatybilność ta ma także swoje wady, jak np. konieczność dostarczania z Haiku GCC w wersji 2.95, wydanej w 1999 roku[25]. 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[24].

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

Linki zewnętrzne

  • Główna strona Haiku

Witaj

Uczę się języka hebrajskiego. Tutaj go sobie utrwalam.

Źródło

Zawartość tej strony pochodzi stąd.

Odsyłacze

Generator Margonem

Podziel się