Haiku (system operacyjny)
| Ten artykuł należy dopracować zgodnie z zaleceniami edycyjnymi: poprawić styl – powinien mieć encyklopedyczną formę, zweryfikować treść i dodać źródła. Po wyeliminowaniu niedoskonałości prosimy usunąć szablon {{Dopracować}} z kodu tego artykułu. |
| Haiku | |
| Rodzina systemów operacyjnych BeOS | |
Interfejs użytkownika |
|
| Producent | The Haiku Project |
| Aktualna wersja testowa |
R1/Alpha 3 (18 czerwca 2011) |
| Jądro | hybrydowe |
| Licencja | Licencja MIT |
| Oficjalna strona | |
Haiku (dawniej OpenBeOS) – system operacyjny oparty na jądrze NewOS na licencji X11 (MIT), którego celem jest odtworzenie platformy BeOS i pełna zgodność z BeOS R5.
Rozwojem systemu opiekuje się Haiku Inc. – organizacja non-profit założona w 2003 roku.
Spis treści |
[edytuj] Historia
Projekt powstał w 2001 roku pod nazwą „OpenBeOS” po wykupieniu firmy Be Inc, twórców BeOS-a, przez firmę Palm, Inc i ogłoszeniu zaprzestania prac nad systemem. Użytkownicy BeOS-a pozostali wówczas bez możliwości uaktualniania systemu, a twórcy oprogramowania z programami napisanymi na niewspieraną platformę. Istniały także inne projekty, które zamierzały zaimplementować API BeOS-a R5 na jądrze Linuksa lub BSD, jednak tylko OpenBeOS planował zachować zgodność nie tylko programową, lecz także binarną, co powinno pozwolić działać na nowym systemie programom skompilowanym na BeOS-ie R5 bez rekompilacji kodu.
W 2004 roku wybrano nową nazwę projektu, aby nie naruszać znaków towarowych Palma. Nazwa „Haiku” (japońska forma poetycka reprezentatywna dla okresu Edo) nazwiązuje do charakterystycznej dla BeOS-a formy komunikatów o błędach.
Projekt jest kontrolowany przez Haiku Incorporated, niedochodową organizację z siedzibą w Rochester w stanie Nowy Jork.
[edytuj] Rozwój
Modularna budowa BeOS-a pozwoliła ekipie programistów-wolontariuszy na niezależne prace nad zamiennikami serwerów i API (znanymi w Haiku jako „kity”). 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 BeFS – owocem tego zespołu jest praktycznie kompletny OpenBFS, który jest używany także przez SkyOS
- Game – pracuje nad odtworzeniem kitu game
- Input Server – pracuje nad serwerem, który obsługuje urządzenia wejściowe i to, jak się komunikują 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 mikrojądra NewOS, napisanego przez byłego inżyniera Be, Travisa Geiselbrechta. Jest ono 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.
W okresie 6 tygodni od marca do kwietnia 2005 osiągnięto wiele istotnych kamieni milowych, takich jak pierwsza graficzna aplikacja działająca na Haiku (działająca z pełną akceleracją dwuwymiarową) i pierwsze użycie przeglądarki internetowej w Haiku (Links). Oba z nich zostały osiągnięte bez użycia żadnego kodu należącego do Be, włączając w to sterowniki do karty graficznej i sieciowej z przykładów. Kolejny duży kamień milowy został osiągnięty w lipcu 2005, kiedy to na Haiku uruchomiła się powłoka graficzna BeOS-a – Tracker.
W październiku 2005 Axel Dörfler, jeden z ważniejszych deweloperów Haiku, stał się pierwszym pełnoetatowym deweloperem Haiku, pracującym za pieniądze dostarczone przez społeczność. Zaczął pracę od umożliwienia uruchomienia Haiku z CD, naprawy obsługi SMP i innych prac przy jądrze.
W lutym 2008 Michael Lotz poinformował o kompilacji systemu w samym systemie Haiku, co oznaczało już olbrzymią jego stabilność. 1 kwietnia 2008 Bruno Albuquerque podał informacje o identycznej kompilacji, ale bez sztuczek zastosowanych przy kompilacji Lotza.
W styczniu 2009 Michael Lotz zaimplementował już natywne GCC w wersji 4.3.3 w Haiku. Do tej pory można było używać tylko przy kompilacji skrośnej wersji 4.2.1. Udział w pracach nad wprowadzeniem natywnej wersji GCC miał m.in. polski programista Artur Wyszyński.
System każdy może już sam przetestować. Obrazy dysku twardego ze skompilowanym systemem dostępne są na oficjalnej stronie projektu. Haiku można również nagrać na płytę jako bootowalną płytę instalacyjną lub stworzyć bootowalny obraz na flashu USB.
Od lipca 2009 w fazie beta testów jest stos Wi-Fi dla Haiku. W tej fazie umożliwia tylko łączenie z niezaszyfrowaną siecią.
14 września 2009 następuje premiera wersji Haiku R1/Alpha1, która od tej pory oficjalnie jest do pobrania również jako obraz Live CD z funkcją instalacji na dysku twardym komputera. Wersja Alpha1 jest wersją hybrydową GCC 2. Oznacza to, że system jest zbudowany w GCC 2, żeby zachować maksymalną kompatybilność z BeOSem (główny cel Haiku R1), jednak posiada również odpowiednie biblioteki GCC 4 umożliwiające uruchamianie i portowanie aplikacji wymagających nowszej wersji kompilatora gcc, takich jak Firefox 3 czy WebKit.
9 maja 2010 została wydana kolejna wersja Haiku R1/Alpha2. Twórcy podkreślają, że jest to wydanie stabilne i stanowi ważny krok milowy na drodze do udostępnienia wersji Release 1. Główne nowości od poprzedniej wersji alfy:
- Wsparcie dla WiFi z WEP
- Obecność natywnej przeglądarki WebPositive, opartej na silniku WebKit
- Locale Kit , który umożliwia lokalizacje / tłumaczenie
- Większa wydajność sterownika dla pamięci masowej USB
- Domyślnie włączone ACPI
- Powłoka Basha zaaktualizowana do wersji 4.x
- Mechanizm MSI (Message Signal Interrupts)
- Poprawiona kompatybilność ze standardem POSIX
- Zwiększona wydajność całego systemu
19 czerwca 2011 nastąpiło wydanie trzeciej wersji alfa: Haiku R1 Alpha3. Główne zmiany w tej wersji to:
- Sprzęt - zwiększono ilość obsługiwanego sprzętu, w tym wsparcie dla drukarek za pomocą Gutenprint’a.
- Systemy plików - dodano obsługę btrfs, ext4 i exFAT.
- Tłumaczenia - zwiększono ilość tłumaczeń i poprawiono wsparcie m.in. dla języka chińskiego.
- Layout API - poprawiono klasy układu API.
- Aplikacje – zwiększono funkcjonalności i dodano poprawki.
- Zarządzanie oknami - dodano Stack and Tile( łączenie okien, na zasadzie kart\zakładek – przyp. red.) i skróty klawiszowe.
- Media - zwiększono ilość obsługiwanych formatów i usprawniono systemowy odtwarzacz multimediów.
- Naprawiono błędy - ponad 950 błędów zostało naprawionych od czasu wydania drugiej alphy.
[edytuj] Kompatybilność z BeOS-em
Celem projektu Haiku jest zgodność z BeOS-em R5 na poziomie źródłowym i binarnym, co pozwoli oprogramowaniu napisanemu i skompilowanemu dla BeOS-a R5 na kompilację i działanie bez żadnych modyfikacji na Haiku. Dostarczy 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 wyboru wraz z wersją R1 Haiku, pozwalając też wznowić prace nad aplikacjami, które zostały wstrzymane po ogłoszeniu zaprzestania rozwoju platformy BeOS.
Kompatybilność ta ma także swoje wady, jak np. pozostanie Haiku przy kompilatorze GCC w wersji 2.95, który został wydany w 1999 roku. Inną wadą zachowywania kompatybilności z BeOS-em R5 jest ścisłe przestrzeganie oryginalnych API Be, jak i konstrukcji systemu, w konsekwencji czego niektóre błędy systemu muszą być odtwarzane zamiast rozwiązywane. Drugie główne wydanie Haiku, wersja R2, ma złamać kompatybilność wsteczną. Jednak w maju 2008 roku Michael Lotz dokonał usprawnień w systemie pozwalających na systemie skompilowanym w GCC 4 uruchamiać aplikacje napisane dla BeOS-a w GCC 2.95.
Mimo tych prób kompatybilność z systemowymi dodatkami, które używają prywatnych API, nie zostanie zaimplementowana. Do tego wliczają się dodatkowe sterowniki systemów plików i wtyczki kodeków, jednak jedyną trudną do przepisania wtyczką będzie kodek Indeo, dla którego nie istnieje żadna specyfikacja.