Kwiecień dobiegł końca. To był z pewnością bardzo udany miesiąc, jeśli chodzi o postępy poczynione w pracach nad Haiku. Z małym poślizgiem zapraszam na kolejny artykuł związany z ewolucją tego systemu.

To już 3.5 roku wspólnie co miesiąc przyglądamy się zmianom, które przybliżają Haiku do stania się pełnowartościowym systemem operacyjnym. Ostatnie 30 dni były wyjątkowe pod tym względem - wystarczy zauważyć, że w kwietniu dokonano dokładnie 686 pojedynczych zmian w kodzie systemu, z czego wiele z nich było bardzo rozległych. To mniej więcej 2 razy szybsze tempo prac, niż podczas przeciętnego miesiąca w ciągu ostatnich 12 miesięcy, kiedy zazwyczaj zmian tych było pomiędzy 200 a 400. Dodatkowo optymizmem napawa fakt, że dotychczas nie zanotowałem aż tak dużej jak w tym miesiącu ilości programistów, którzy wnieśli swój wkład w usprawnianie systemu. Co więcej nic nie zapowiada, by tempo prac miało się zmniejszyć - aż sześciu programistów będzie pracować nad Haiku w ramach sponsorowanego przez Google programu Summer of Code. Powyższe fakty mogą więc w jakiś sposób usprawiedliwiać poślizg w terminie publikacji tego artykułu :).

A jak wygląda użytkowanie systemu? Tu również rysuje się bardzo optymistyczny obraz. Osobiście mam wrażenie, że Haiku pod wieloma względami naprawdę jest już nie tylko w okolicach wersji alpha, ale już gdzieś niedaleko bety. Świadczy o tym nie tylko stabilność systemu i coraz to większa jego funkcjonalność, ale i również pewne optymalizacje, które zostały dokonane w ostatnim czasie. Na pierwszy plan wychodzą z pewnością prace nad nowym sterownikiem IDE - coraz więcej konfiguracji działa poprawnie i coraz szybciej (w trybie DMA). Start systemu na moim sprzęcie zajmuje w chwili obecnej tylko 22s., a wciąż dokonywane są optymalizacje - można spodziewać się więc, że będzie jeszcze szybciej. Zauważalnie szybciej uruchamiają się również aplikacje - np. zasobożerny Firefox. Sprawdziłem również działanie instalatora systemu - tu też wszystko zafunkcjonowało jak należy.

Wzrost prędkości odczuwalny jest również przy obróbce multimediów. W moim ulubionym teście na kodowanie krótkiego pliku do formatu ogg w chwili obecnej Haiku uzyskuje 8.4 s. - po raz pierwszy wysuwa się więc przed Zetę (9.9 s.). Zważywszy, że miesiąc temu czas ten wynosił 16.9 s. możemy stwierdzić, że postęp jest ogromny. Nowy sterownik IDE obsługuje w końcu napęd CD - mogłem przeprowadzić więc dodatkowy test - kodowanie materiału wideo programem HandBrake - tu Haiku znów było przed Zetą - osiągając tempo konwersji materiału 46.2 fps (Zeta osiągnęła wynik 40.4 fps).

Pozostaje więc nam tylko czekać na dalsze postępy - wszystko wygląda coraz bardziej obiecująco. Dla ostudzenia entuzjazmu wyliczę jednak tutaj rzeczy, które nie funkcjonują jeszcze jak należy. Są problemy z obsługą USB - jak już wspomniałem w poprzednich artykułach transfer jest bardzo szybki, ale niestety często kończy się to błędami odczytu plików. Ponadto Tracker zawiesza się przy próbie skasowania czegokolwiek z pendrive'a. Nie działa również odtwarzanie płyt CDAudio - próba skorzystania z aplikacji CDPlayer kończy się zawieszaniem systemu. Brak jest w chwili obecnej skutecznej i pewnej aplikacji do nagrywania na CD/DVD. Korzystanie z multimediów utrudnia także brak sterowników do nowszych kart graficznych - pliki wideo ogląda się więc w trybie bitmapy, a nie overlaya. Restart systemu kończy się też piskiem z mojego głośnika systemowego przed ponownym uruchomieniem BIOS-u. W tych dziedzinach zostało trochę pracy do wykonania w ciągu najbliższych tygodni - oby równie udanych.

UPDATE!2 maja 2009, godz. 14:00! Zrobiłem dodatkowo 2 testy porównawcze, by zobaczyć czy są jakieś różnice pomiędzy Haiku skompilowanym w gcc4, a gcc2 i o dziwo w chwili obecnej starsza wersja jest nieco szybsza - zwracali już na to uwagę developerzy pracujący nad Haiku. Otóż start systemu na gcc2 jest szybszy o nieco ponad sekundę (niecałe 21 s.), a kodowanie pliku do ogg jest zauważalnie szybsze na systemie skompilowanym w gcc2 - tu zajmuje tylko 7.5 s. (wobec 8.4 na gcc4). Jest jak widać jeszcze spore pole do popisu, jeśli chodzi o optymalizacje Haiku dla gcc4, co wydaje się dobrą wiadomością w obliczu tego, że system już działa z całkiem dobrą prędkością.

Poniżej jak zwykle bardziej szczegółowa lista zmian w kodzie systemu:

  • wprowadzono poprawki w systemach obsługi plików FUSE, NTFS, FAT i BFS;
  • kolejny raz dokonano istotnych poprawek w obsłudze czcionek i układów klawiatury;
  • poprawek doczekały się także sterowniki Bluetooth i Firewire;
  • usprawniono w Trackerze opcje wyświetlania;
  • wprowadzono poprawki w aplikacjach Deskcalc, Activitymonitor, Stylededit, Textsearch, Diskusage, Fonts, Terminal, Launchbox, People, Background, Mediaplayer;
  • po raz kolejny dokonano pewnych poprawek w shedulerze;
  • dodano kodek Ape_reader oraz usprawniono kodek ac3;
  • dokonano pewnych postępów w pracy nad portem systemu na maszyny PPC;
  • do obrazu systemu zostały domyślnie dodane sterowniki HDAudio;
  • zmieniono strukturę głównych katalogów w systemie;
  • usprawniono obsługę standardu DHCP i protokołów sieciowych tcp i udp;
  • do obrazu systemu dodano aplikację Poorman (prosty serwer www);
  • dokonano licznych optymalizacji w działaniu AppServera;
  • uproszczono konfigurację programu Mail;
  • uaktualniono bibliotekę libpng do wersji 1.2.35;
  • wprowadzono sporo poprawek do Trackera;
  • uaktualniono pakiet Mesa do wersji 7.4;
  • wprowadzono istotne usprawnienia w obsłudze dysków twardych i napędów CD/DVD;
  • do narzędzi służących do budowania systemu dodano pakiet Yasm;
  • usprawniono obsługę USB;
  • dodano kod rozpoznający procesory Via;
  • dodano dekoder h264;
  • wprowadzono poprawki do aplikacji związanych z instalacją systemu - Installer i Drive Setup;
  • rozpoczęto prace nad sterownikami do niektórych modeli kart sieciowych Marvel_yukon;
  • wprowadzono poprawki do sterownika Speedstep;
  • poprawiono dokumentację systemu;
  • wprowadzono usprawnienia mające służyć przybliżeniu nas do funkcjonalności związanej z LiveCD;
  • pracowano nad funkcjonalnością związaną z debugowaniem systemu;
  • poprawiono wiele błędów.

Opisane powyżej zmiany wprowadzili (kolejność alfabetyczna, najpierw stała załoga Haiku/SVN): Alexandre Deckner (aldeck), Rene Gollent (anevilyak), Axel Dörfler (axeld), Bruno G. Albuquerque (bga), Ingo Weinhold (bonefish), Clemens Zeidler [czeidler], David McPaul (dlmcpaul), Joachim Seemer (humdingerb), Siarzhuk Zharski (imker), Stefano Ceccherini (jackburton), Julun (julun), Jonas Sundström (kirilla), Jérôme Duval (korli), Marcus Overhagen (marcusoverhagen), Michael Lotz (mmlr), François Revol (mmu_man), Fredrik Modeen (modeenf), Oliver Ruiz Dorantes (oruizdorantes), Philippe Houdoin (phoudoin), Rudolf Cornelissen (rudolfc), Stephan Aßmus (stippi), Philippe Saint-Pierre [stpere], Gerasim Troeglazov (threedeyes), Oliver Tappe (zooey) oraz Chico Chen, Oliver Coursiere, Vincent Duvert, Fredrik Ekdahl, Alexander von Gluck, Bryce Groff, Ma Jie, Rob Judd, Brecht Machiels, Matt Madia, Urias McCollough, Joerg Meyer, Raghu Nagireddy, Obaro Ogbo, plasm, Joagup Repaen, Ankhur Sethi, sil2001, Maxime Simon, Artur Wyszyński, Jiseng Zhang.