Haiku (system operacyjny)
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].
Logo programu | |
Interfejs użytkownika | |
Producent |
The Haiku Project |
---|---|
Architektura | |
Aktualna wersja |
R1/beta5 |
Aktualna wersja testowa |
R1/beta5 |
Jądro | |
Środowisko pracy | |
Licencja | |
Wersja Live |
dostępna |
Strona internetowa |
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
edytujPoczątki
edytujProjekt 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
edytuj29 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
edytujPierwsza 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
edytujHaiku 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
edytujCelem 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
edytuj- ↑ Haiku port status. Haiku Project. [dostęp 2020-08-31]. (ang.).
- ↑ a b OpenBeOS First Release. BeGroovy, 2002-02-15. [dostęp 2012-10-09]. (ang.).
- ↑ a b c Grzegorz Niemirowski: Haiku Release 1 Alpha 1. dobreprogramy.pl, 2009-09-15. [dostęp 2012-10-09]. (pol.).
- ↑ Bruno Albuquerque: Haiku self-hosting. 2008-04-01. [dostęp 2012-10-09]. (ang.).
- ↑ a b Wojciech Cybulski: Haiku R1/Alpha 2 wydany. dobreprogramy.pl, 2010-05-10. [dostęp 2012-10-09]. (pol.).
- ↑ a b Haiku Release 1 Alpha 3. Haiku, 2011-06-20. [dostęp 2012-10-09]. (ang.).
- ↑ Strona domowa Haiku Inc. Haiku Inc.. [dostęp 2012-10-09]. (ang.).
- ↑ 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.).
- ↑ a b Marcus Overhagen: Ok, let’s start. Haiku, 2001-08-18. [dostęp 2012-10-09]. (ang.).
- ↑ 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.).
- ↑ Eugenia Loli: OpenBeOS Proto5 app_server Replacement Released. OSNews, 2002-04-29. [dostęp 2012-10-09]. (ang.).
- ↑ 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).
- ↑ Michael Lotz: So you really want screenshots?. 2005-03-21. [dostęp 2012-10-09]. (ang.).
- ↑ Michael Lotz: There is progress, yes. 2005-04-10. [dostęp 2012-10-09]. (ang.).
- ↑ New Java for Haiku Team Formed. Haiku, 2008-01-03. [dostęp 2012-10-09]. [zarchiwizowane z tego adresu (2012-02-10)]. (ang.).
- ↑ Haiku Port Project. OpenJDK. [dostęp 2012-10-09]. (ang.).
- ↑ Thom Holwerda: Haiku 'Self Hosts’ for the First Time. OSNews, 2008-02-12. [dostęp 2012-10-09]. (ang.).
- ↑ Bruno Albuquerque: Haiku self-hosting. 2008-04-01. [dostęp 2012-10-09]. (ang.).
- ↑ 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.).
- ↑ ColinG: WiFi stack prototype works. Haiku, 2009-07-12. [dostęp 2012-10-09]. [zarchiwizowane z tego adresu (2010-02-21)]. (ang.).
- ↑ Thom Holwerda: Qt4 Ported to Haiku, Developer Preview Release Available. OSNews, 2009-10-27. [dostęp 2012-10-09]. (ang.).
- ↑ Haiku Project Announces Availability of Haiku R1/Alpha 2. Haiku, 2010-05-09. [dostęp 2012-10-09]. (ang.).
- ↑ Kernel & Drivers Team. Haiku. [dostęp 2012-10-09]. (ang.). (zarchiwizowane w WebArchive 9 czerwca 2008).
- ↑ 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.).
- ↑ GCC Releases. Projekt GNU. [dostęp 2012-10-09]. (ang.).