Mamy początek roku, w którym być może ukaże się pierwsza pełna/oficjalna wersja Haiku. Przynajmniej taką mamy nadzieję. Spróbujmy więc przetestować aktualny stan Haiku i zajrzyjmy do historii zmian na SVN by zobaczyć czy jest jakaś realna szansa na Haiku R1, które będzie można używać na co dzień.

Na potrzeby przeglądu, zacząłem testować Haiku 25 stycznia. Na przestrzeni kilku dni, wypróbowałem system na 2 komputerach (Benq Joybook P52EG i EeePC 901) oraz na maszynie wirtualnej VirtualBox v.3.1.2.

Na Benq próbowałem uruchamiać system z partycji na dysku wewnętrznym, z pamięci USB, oraz partycji na dysku zewnętrznym podłączanym przez USB (tak naprawdę, to dysk z laptopa, który siedzi w tzw. kieszeni, tworzącej z niego dysk przenośny). Na EeePC uruchamiałem Haiku tylko z pamięci USB i dysku zewnętrznego.

Pobierałem i "instalowałem" najnowsze obrazy Haiku tak, jak to opisałem w artykule pt.: "Instalacja/testowanie Haiku - Ubuntu Linux". Piszę instalowałem, choć instalację, z poziomu uruchomionego systemu, przeprowadziłem za pomocą Installera tylko raz, na dysku zewnętrznym. Haiku (a wcześniej BeOS) ma tą przewagę nad innymi systemami, że tzw. "LiveCD" i zainstalowany system właściwie niczym się nie różnią. Dlatego można nagrać obraz na pamięć USB i mieć "LiveUSB" uruchamiane na każdym komputerze (tzn. o ile Haiku potrafi się na nim uruchomić ze względu na kompatybilność ze sprzętem) bez dodatkowych zabiegów i kombinacji. Co więcej, taki przenośny system działa jak na normalnym dysku twardym - wszelkie zmiany, utworzone i skasowane pliki, pozostają takimi po ponownym uruchomieniu Haiku (bez względu na to czy jest on uruchamiany na tym samym komputerze, na którym wprowadzaliśmy zmiany, czy na innym).

Niestety pierwsze wrażenie okazało się tragiczne. Po wgraniu obrazu na dysk i ponownym uruchomieniu komputera Benq... przywitał mnie KDL, i to jeszcze na etapie ekranu z ikonkami wskazującymi postęp wgrywania systemu :(. Najwyraźniej wciąż są jakieś problemy z obsługą dysków twardych i, pomimo niewykorzystywania ich w jakikolwiek sposób (bo przecież próbowałem startować system także z USB, a dyski nie są montowane automatycznie), Haiku nie potrafiło się uruchomić poprawnie. Muszę zatem cierpliwie czekać aż problemy zostaną usunięte lub zmienię komputer.

Głupio było pisać przegląd bez przetestowania choćby aplikacji kalkulatora, więc w następnej kolejności spróbowałem maszyny wirtualnej. Tutaj obyło się bez problemów i już po kilku minutach odpalałem dema jak szalony. Mój komputer ma swoje lata i na pewno do szybkich (według dzisiejszych standardów) nie należy, a wirtualny komputer działa zawsze nieco wolniej niż fizyczny (w końcu to program pracujący na systemie operacyjnym, który uruchomiony został na fizycznym sprzęcie, czyli jest co najmniej kilka warstw oprogramowania pomiędzy sprzętem a testowanym systemem). Pomimo to, wszystko sprawowało się dobrze i bez żadnego "zacinania" się. Widać że, od ostatniego czasu gdy próbowałem uruchamiać Haiku w ten sposób, system został znacznie ulepszony. Szczególnie przez ostatni miesiąc, programiści mocno zoptymalizowali jądro systemu, pamięć wirtualną i obsługę systemów plików. Dzięki wielowątkowości GUI - głównej zalecie systemów Haiku i BeOS, mogłem bez problemu uruchamiać programy i korzystać z ich menu oraz funkcji nawet wtedy, gdy w tle działało demo Charts ("zjadające" około 40% procesora) oraz replikant generujący komiksowy śnieg na pulpicie (zabierający następne kilkadziesiąt procent czasu procesora). Ta zaleta oraz możliwość kliknięcia prawym przyciskiem myszy na ramkę okna, by je przesunąć pod inne okna, przypomniały mi o ile wygodniej pracowało mi się na BeOS-ie niż na Linuksie i zrobiło żal, że nie mogę uruchomić Haiku bezpośrednio na swoim komputerze.

Nieco później, "borg1980" dał mi znać, że Haiku działa się na jego EeePC 1005, więc pożyczyłem model 901 i uruchomiłem na nim Haiku z pamięci USB. System wystartował bardzo szybko i bezproblemowo (a przecież uruchamiany był poprzez kabel USB, czyli dane były odczytywane i zapisywane znacznie wolniej niż na dysku lokalnym)! Szkoda że, pomimo sporych postępów prac nad obsługą WiFi, karta sieci bezprzewodowej nie została wykryta. Rozdzielczość ekranu została źle rozpoznana/ustawiona i nie dawało się jej zmienić w ustawieniach ekranu. Nie działały też dynamiczne taktowanie procesora oraz replikant mający wskazywać poziom baterii. Doskonale za to funkcjonowała sieć po kablu (DHCP, internet przez kablówkę) - wystarczyło tylko podłączyć kabel, wyświetlić ustawienia sieci i kliknąć "apply", żeby system odświeżył połączenie. Dodatkowo, po po włączeniu programu ProcessController, zauważyłem że system poprawnie rozpoznał oba procesory (fizycznie to chyba jeden "udający" dwa, ale to nie ma znaczenia w tym przypadku) i jak procesy startują na każdym z nich. Sporo rzeczy zatem już funkcjonuje poprawnie, ale sporo też jeszcze nie działa. Na szczęście to, czego jeszcze brakuje, nie jest aż tak istotne, żeby nie dało się na Haiku pracować.

Większość zainstalowanych domyślnie programów, które wypróbowałem, sprawowała się bez zarzutu. Tylko niektóre miały kłopoty z odświeżaniem okna (np.: Icon-o-matic) lub źle dobranym kolorem tła "suwaka" (wyglądało na to że BSlider źle pobierał kolor tła z systemu, np.: ustawienia klawiatury), ale to problemy przejściowe, które zostały szybko usunięte w kolejnych dniach lub okazały się być związane z uruchamianiem systemu w wirtualnej maszynie na dość powolnym komputerze.

Gdy minęła już pierwsza euforia, postanowiłem zainstalować paczkę TiltOS i wypróbować przeglądarkę Arora. Tu napotkałem na pewien problem - obrazy Haiku mają małą pojemność, a instalacja Arory wymaga zainstalowania mnóstwa rzeczy (w tym całego QT), a więc znacznie więcej wolnej przestrzeni dyskowej niż było dostępne. Na szczęście podłączenie dysku zewnętrznego na USB, uruchomienie programu Installer i zainstalowanie Haiku na partycji 4GB poszło jak po maśle :). Jedno uruchomienie komputera później, zainstalowałem TiltOS, a następnie Arorę (dwie komendy w Terminalu: box --sync-repos i box -i arora). Cóż za radość! Nowoczesna przeglądarka (bo oparta na bardzo dobrym silniku WebKit) na Haiku! Działa bardzo szybko, oprócz może samego uruchamiania, które było nieco powolne, ale i to pewnie zostanie poprawione. Widać, że to nie natywna aplikacja, jednak na razie to więcej niż oczekiwałem, a pewnie niedługo ktoś i tak zbuduje natywny interfejs dla silnika WebKit. Może nawet ktoś się pokusi o port Chromium, na którego bazie powstają kolejne wersje przeglądarki Google Chrome?

Kiedy już zobaczyłem, że system działa dość stabilnie (do tego momentu nic się nie psuło), postanowiłem uruchomić na nim swoje aplikacje. Ponieważ wybrałem Haiku w wersji zbudowanej za pomocą GCC 4, programy przeznaczone na BeOS-a nie działały - trzeba było je skompilować na nowo. Odkurzyłem więc kopie zapasowe w postaci 650MB obrazu BFS i kilkuset megabajtowego archiwum ZIP, po czym spróbowałem je zgrać na dysk. Niestety pojawił się KDL. Musiałem powtarzać operację kilka razy, aż za którymś razem się udało. Nie wiem czy to wina sterowników USB, obsługi partycji FAT32, pamięci wirtualnej, czy może kombinacji wszystkich lub kilku tych części systemu. Problem był też z rozpakowaniem tak dużego pliku ZIP, bo za każdym razem proces "wieszał się" przed ukończeniem pracy. Po którejś z kolei próbie, postanowiłem rozpakować pliki z linii poleceń, bezpośrednio wywołując program unzip. W końcu, po drugiej lub trzeciej próbie, zadziałało i uzyskałem dostęp do kodów źródłowych swoich programów :).

Po zorientowaniu się gdzie jest co, przystąpiłem do kompilowania. Archiver wymagał tylko kilku zmian w kodzie i zadziałał bez problemu. Podobnie było z SVM. To dobra wiadomość, bo oznacza że porty z BeOS-a do Haiku, nie wymagają dużego wysiłku. Kompatybilność, w większej mierze, została zachowana. Właściwie najwięcej problemu (o ile w ogóle można tak to nazwać) przysporzyło dodanie ikonki wektorowej oraz dodanie obsługi tych ikonek w programach (BeOS używał 8-bitowych bitmap i wymagał nieco innego trybu ich rysowania na ekranie) - jedno wyszukanie informacji na Google, kilka linijek kodu i gotowe!

Skoro wiedziałem już, że działają USB, sieć (przynajmniej ta po kablu), przeglądanie stron internetowych (może z wyjątkiem Adobe Flash, ale to nie wszędzie jest konieczne) i kompilowanie programów, to czego jeszcze brakowało? Chyba tylko filmów, muzyki i ogólnie "mediów". Za pierwszym razem żaden z filmów się nie uruchamiał, ale wynikało to chyba z wcześniejszych problemów z rozpakowywaniem i kopiowaniem dużych plików. Widocznie wychodzenie z KDL i próba kontynuowania pracy, jak gdyby nic się nie stało, nie było dobrym rozwiązaniem w tym przypadku. Po ponownym starcie Haiku, filmy działały niemal idealnie. "Niemal", bo przewijanie filmu powodowało utratę dźwięku. EeePC nie ma czytnika DVD, więc nie mogłem przetestować odtwarzania filmów z płyty. Muzyka z plików mp3 i ogg była odtwarzana bezbłędnie.

Patrząc na to co przetestowałem, co działało a co nie, myślę że głównym problemem pozostają jednak sterowniki (lub ich brak), czyli to, z czym problemy będą zawsze, choć z czasem na pewno coraz mniejsze (tak, jak to było i jest w przypadku Linuksa czy innych systemów "alternatywnych").

Na EeePC jest kamerka, ale nie została wykryta przez CodyCam, pomimo włączenia jej w BIOS-ie (Linuks potrafi ją włączać i wyłączać, więc domyślnie jest wyłączona). Bluetooth nie udało mi się przetestować, ale prace nad jego obsługą trwają, więc prędzej czy później działać będzie (o ile jeszcze nie działa). Karta WiFi, jak już wspomniałem wcześniej, nie została wykryta, ale "borg1980" poinformował mnie, że na EeePC 1005 karta WiFi została wykryta i działała poprawnie, więc przynajmniej część z nas może już korzystać z bezprzewodowego podłączenia do sieci.

Gdyby więc nie sterowniki i/lub komputer, którego Haiku nie obsługuje, miałbym przeglądarkę, własne programy, możliwość edycji i testowania stron internetowych i właściwie wszystko czego mi trzeba do pracy (brakuje tylko Flash od czasu do czasu, ale może Gnash będzie za jakiś czas potrafił to co Flash i będzie już wszystko, co potrzebne osobie na co dzień pracującej w sieci :). Naprawdę szkoda, że mój komputer nie jest obsługiwany poprawnie :(. Jeżeli jednak posiada się komputer, na którym Haiku działa, to myślę, że jest spora szansa na korzystanie z Haiku R1 jeszcze w tym roku.

Na koniec, dla zainteresowanych, lista najważniejszych zmian dokonanych w kodzie Haiku w styczniu i końcówce grudnia:

  • Trwały prace nad implementacją obsługi zabezpieczeń WEP i WPA dla kart intela;
  • Dodano system do testowania kodu w kernelu, który działa jako sterownik dodający wirtualny sprzęt, do którego można wysyłać informacje. Dzięki temu programistom łatwiej będzie testować np. sterowniki;
  • Poprawiono i zoptymalizowano mechanizmy blokowania, wykluczono sporo błędów związanych z wielowątkowością systemu i aplikacji;
  • Poprawiono sterownik standardu kart graficznych VESA, klawiatur USB, tabletów Wacom i sprzętu sieciowego opartego o układy Broadcom43x, obsługę pamięci wirtualnej i mediów (MediaTrack, ffmpeg), zgodność ze standardem POSIX oraz obsługę sieci (ogólnie), standardów Bluetooth, ATA i protokołu internetowego UDP;
  • Usprawniono aplikacje Icon-o-matic, Terminal, Mail, Launchbox, Tracker, ActivityMonitor, Installer, Pulse, ShowImage, Expander, DataTranslations, Keymap, MediaPlayer, Tracker, Deskbar i Expander;
  • Poprawiono proces budowania Haiku platformy Solaris, ARM i m68k oraz start na platformie Solaris;
  • Poprawiono działanie KDL na platformie PPC;
  • Rozpoczęto prace nad sterownikiem USB ethernet dla chipsetu Davicom 9601;
  • Rozpoczęto prace nad obsługą standardów IEEE 802.11 (wykorzystywane do WiFi);
  • Poprawiono translator formatu plików graficznych TGA;
  • Dodano obsługę systemu plików NetFS;
  • Dodano obsługę instalacji dostarczanego osobno oprogramowania dla kart sieciowych;
  • Dodano i/lub poprawiono tłumaczenia do Esperanto, Litewskiego, Francuskiego, Japońskiego, Portugalskiego, Duńskiego i Niemieckiego;
  • Importowano tłumaczenia podręcznika użytkownika ze strony http://userguide.haikuzone.net;
  • Trawały prace nad czyszczeniem stylu kodu i komentarzy w nim zawartych;
  • Dodano system plików (r35194) będący nakładką na każdy inny system i służący do zapisywania historii użytkowania systemu; Dzięki temu można testować systemy plików bez konieczności implementowania obsługi debugowania w nich samych;
  • Dodano aplikację, która daje możliwość wyboru języka i układu klawiatury zanim zapyta o instalację na dysk lub kontynuację uruchamiania systemu (np. z CD lub USB);
  • Zaktualizowano bibliotekę libjpeg, ICU i gallium3D;
  • Dodano aplikację 3dmov;

Lista została utworzona na podstawie historii zmian kodu w repozytorium SVN, odczytanej przy pomocy następującego polecenia:

            svn log svn://svn.berlios.de/haiku -r {2009-12-29}:{2010-01-31} --verbose > haiku.txt

          

Opisane powyżej zmiany wprowadzili (kolejność alfabetyczna, najpierw stała załoga Haiku/SVN): Artur Wyszyński (aljen), Rene Gollent (anevilyak), Axel Dörfler (axeld), Ingo Weinhold (bonefish), Colin Guthrie (colin), Clemens Zeidler (czeidler), David McPaul (dlmcpaul), Joachim Seemer (humdingerb), Stefano Ceccherini (jackburton), Julun (julun), Jérôme Duval (korli), Michael Pfeiffer (laplace), Michael Lotz (mmlr), François Revol (mmu_man), Niels Sascha Reedijk (nielx), Oliver Ruiz Dorantes (oruizdorantes), Philippe Houdoin (phoudoin), Adrien Destugues (pulkomandy), Scott McCreary (scottmc), Siarzhuk Zharski (siarzhuk), Stephan Aßmus (stippi), Philippe Saint-Pierre (stpere), Fredrik Holmqvis (tqh), Oliver Tappe (zooey) oraz Algirdas Buckus, Andreas Faerber, dancxjo, Grey, Matt Madia, Jorge G. Mare, mt, Travis D. Reed, Zenja Solaja, vegardw, Vincent i Xeon3D.