Haiku (system operacyjny)
| Haiku | |
| Rodzina systemów operacyjnych BeOS | |
Logo systemu |
|
Interfejs użytkownika |
|
| Producent | The Haiku Project |
| Platforma sprzętowa | x86, ARM |
| Aktualna wersja testowa |
R1/Alpha 4 (12 listopada 2012) |
| Jądro | hybrydowe |
| Środowisko pracy | Tracker |
| Licencja | Licencja MIT |
| Wersja Live | |
| 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].
Spis treści |
Historia [edytuj]
Początki [edytuj]
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:
|
Not quick enough for browser. Timed out, plum blossom. |
Dalszy progres [edytuj]
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 z 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]
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].
API i rozwój systemu [edytuj]
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]
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,0 1,1 OpenBeOS First Release (ang.). BeGroovy, 2002-02-15. [dostęp 2012-10-09].
- ↑ 2,0 2,1 2,2 Grzegorz Niemirowski: Haiku Release 1 Alpha 1 (pol.). dobreprogramy.pl, 2009-09-15. [dostęp 2012-10-09].
- ↑ Bruno Albuquerque: Haiku self-hosting (ang.). 2008-04-01. [dostęp 2012-10-09].
- ↑ 4,0 4,1 Wojciech Cybulski: Haiku R1/Alpha 2 wydany (pol.). dobreprogramy.pl, 2010-05-10. [dostęp 2012-10-09].
- ↑ 5,0 5,1 Haiku Release 1 Alpha 3 (ang.). Haiku, 2011-06-20. [dostęp 2012-10-09].
- ↑ Strona domowa Haiku Inc. (ang.). Haiku Inc.. [dostęp 2012-10-09].
- ↑ Edward Moltzen: Palm To Buy Be Inc. For $11 Million In Stock (ang.). CRN, 2001-08-16. [dostęp 2012-10-09].
- ↑ 8,0 8,1 Marcus Overhagen: Ok, let's start (ang.). Haiku, 2001-08-18. [dostęp 2012-10-09].
- ↑ Colin Ganther: History: Changing names, how OpenBeOS became Haiku (ang.). HaikuWare, 2009-04-16. [dostęp 2012-10-09].
- ↑ Eugenia Loli: OpenBeOS Proto5 app_server Replacement Released (ang.). OSNews, 2002-04-29. [dostęp 2012-10-09].
- ↑ 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)
- ↑ Michael Lotz: So you really want screenshots? (ang.). 2005-03-21. [dostęp 2012-10-09].
- ↑ Michael Lotz: There is progress, yes (ang.). 2005-04-10. [dostęp 2012-10-09].
- ↑ New Java for Haiku Team Formed (ang.). Haiku, 2008-01-03. [dostęp 2012-10-09].
- ↑ Haiku Port Project (ang.). OpenJDK. [dostęp 2012-10-09].
- ↑ Thom Holwerda: Haiku 'Self Hosts' for the First Time (ang.). OSNews, 2008-02-12. [dostęp 2012-10-09].
- ↑ Bruno Albuquerque: Haiku self-hosting (ang.). 2008-04-01. [dostęp 2012-10-09].
- ↑ umccullough: Haiku Finally Gets a Native GCC4 - full story inside! (ang.). Haiku, 2009-02-01. [dostęp 2012-10-09].
- ↑ ColinG: WiFi stack prototype works (ang.). Haiku, 2009-07-12. [dostęp 2012-10-09].
- ↑ Thom Holwerda: Qt4 Ported to Haiku, Developer Preview Release Available (ang.). OSNews, 2009-10-27. [dostęp 2012-10-09].
- ↑ Haiku Project Announces Availability of Haiku R1/Alpha 2 (ang.). Haiku, 2010-05-09. [dostęp 2012-10-09].
- ↑ Kernel & Drivers Team (ang.). Haiku. [dostęp 2012-10-09]. (zarchiwizowane w WebArchive 9 czerwca 2008)
- ↑ 23,0 23,1 stippi: Steady Progress towards Alpha 1 (ang.). Haiku, 2008-05-18. [dostęp 2012-10-09].
- ↑ GCC Releases (ang.). Projekt GNU. [dostęp 2012-10-09].