Tags Posts tagged with "alexander von gluck"

alexander von gluck

Haiku

W ostatnich tygodniach, Alexander von Gluck aka kallisti5, dokonał dużego postępu w przenoszeniu nowej Mesy 3D do Haiku. Przez ten okres czasu opracował serię łatek, które dodano do kodu źródłowego Mesa 3D i prawie zakończył trzy z pięciu etapów, które są niezbędne do ukończeniem Gallium 3D dla Mesa. Sama aktualizacja jest już prawie gotowa, trzeba jedynie poprawek i testów.

Alexander von Gluck
Z racji tego, że Haiku R1 ma być zgodny binarnie z BeOSem R5, system występuje w dwóch wersjach. Oficjalne jest on kompilowany za pomocą GCC 2 i nosi nazwę gcc2h (h oznacza hybrid czyli, że zawiera biblioteki GCC 4, dzięki którym działają aplikacje skompilowane w GCC 4 – a takie wymagania/zależności ma większość dzisiejszego oprogramowania i portów). Druga wersja jest nieoficjalna (dostarczana przez developerów Haiku), z której korzysta większość użytkowników, to gcc4h, czyli jest kompilowana za pomocą GCC 4 i posiada biblioteki GCC 2. Istnieją też “standardowe”, mało istotne wersje z bibliotekami jednego rodzaju (gcc2 bądź gcc4). Haiku R1 będzie właśnie posiadać dwa API. Jedno dla starych, BeOSowych aplikacji (GCC 2) i drugie dla nowych (GCC 4). Dlaczego tak jest? Po bankructwie Be Inc. i upadku BeOSa (firmę wykupił Palm i źródła stały się jego własnością intelektualną – później wchłonięte przez ACCESS Co. i jedynie uwolniono kody źródłowe paru aplikacji systemowych, jeszcze za nieboszczki Be Inc. np. OpenTracker) zaprzestano rozwijania aplikacji dla BeOSa i w większości przypadków, nie uwolniono programów na zasadach open source. Następnie twórcy kompilatora GCC wprowadzili w nim zmiany, które doprowadziły do zerwania wstecznej kompatybilności. Aplikacje dla Haiku które posiadają API napisane w C++, muszą być na nowo kompilowane z poprawkami w kodach źródłowych. Problemu by nie było, gdyby programy dla BeOSa były rozwijane na bieżąco. Wtedy twórcy systemu i aplikacji dla niego, mogliby drogą ewolucji łagodnie przystosowywać system pod nowsze wersje GCC.

API i ABI GCC 4 w pierwszym Haiku nie będzie w przyszłości rozwijane, tzn. programy w nim skompilowane dla Haiku R1 nie będą kompatybilne z wersją Haiku R2. Wersja R2 będzie posiadać zamrożone API GCC 2 i nowe GCC 4, jednocześnie developerzy nie planują wrzucać do następcy obsługi API GCC 4 z wersji R1 – nie chcą mnożyć API w następcy. Z powyższych powodów wersja gcc4h Haiku nie jest tą oficjalną(może to ulegnie zmianie w przyszłości pod wpływem różnych czynników) ale nic nie stoi na przeszkodzie by z niej korzystać tak jak to robi większość użytkowników, którzy chcą korzystać z aplikacji skompilowanych w GCC 4 – niektóre porty nie chcą poprawnie działać w wersji gcc2h, gdzie przykładowo media_server jest również w GCC 2, tak jak całe bebechy systemu.

Dla Haiku w wersji gcc2h będzie dostępna tylko Mesa 7.8.2. Mesa 8.0 i jej kolejne wersje, będą tylko w wersji gcc4h Haiku, gdyż w kolejnych rewizjach Mesy zaimplementowano GLSL i twórcy Haiku chcąc udostępnić nowsze wydania Mesy dla starego API, musieliby utrzymywać fork – co byłoby bardzo pracochłonne i wymagało więcej niż jednego developera, który tym się teraz zajmuje w Haiku. Kod C++ GLSL nie jest przyjazny dla kompilatora GCC2. Alexander jest bardzo zadowolony z tego, że jego łatki zostały dodane do kodu źródłowego Mesy i wersja 8.0 buduje się w Haiku tylko z niewielką pomocą z jego strony. Prace polegają na zdalnym pobraniu z serwera Opcjonalnego Pakietu Mesa 3D i użycia różnych plików binarnych i nagłówkowych do utworzenia libGL (za pomocą Haiku OpenGL Kit). W tej chwili projekt Haiku utrzymuje swój własny fork biblioteki GLUT, która to nie jest już aktywnie rozwijana przez zespół Mesy. GLUT był i jest bardzo ważny dla świata BeOSa i Haiku, dlatego jest nadal sens w utrzymywaniu własnego rozwidlenia kodu. Możliwe, że w przyszłości GLUT zostanie zastąpiony w Haiku przez którąś z jego alternatywnych implementacji np. Freeglut. GLUT został przeniesiony z src/lib/mesa/glut do src/lib/glut, a pliki z src/lib/mesa zostały usunięte. Teraz w Haiku wróciliśmy do punkty wyjścia, ale z nowym OpenGL Kit bazującym na bibliotece Mesa 3D i programowym renderowaniem, oraz otwartą drogą do akceleracji sprzętowej.

Nie obyło się też bez błędów. Na przykład demo GLTeapot ma drobne problemy z wyświetlaniem, może być to spowodowane przestarzałym kodem GLTeapot lub jakimś błędem w programowym silniku renderowania. W demie Haiku3d obracające się litery pozostawiają za sobą ślad, problem prawdopodobnie jest związany z przestrzenią kolorów, bo występuje jedynie u użytkowników mających ustawione 32 bity głębi w systemie. Także w tej chwili jest pojedynczy bufor, który powoduje, że czajnik miga, gdy się umieści nad nim kursor. Natomiast podwójny bufor na obecną chwilę wiesza aplikacje GL.

GLTeapot na przeciętnym obecnie sprzęcie działa w Haiku z prędkością 300-400 FPS( software render), a gdy Haiku jest wirtualizowane za pomocą Qemu, to wynosi to około 16 FPS. GLTeapot działał na jego komputerze przez wiele dni i nie zaobserwował on żadnych wycieków pamięci.

Teraz pozostaje nam jedynie czekać na sterowniki i sprzętową akcelerację.

Alexander von Gluck dziękuje wszystkim za wsparcie, komentarze i wpłaty na pracę nad Gallium3D dla Haiku. Przede wszystkim dziękuje zespołowi Mesa 3D za bezproblemową współpracę.

Poniżej prezentuję wywiad z Alexandrem, jaki udało mi się przeprowadzić z nim 22 stycznia 2012 roku:

Przemysław Pintal: Na sam początek chciałbym Ciebie zapytać kim jesteś, skąd pochodzisz, jak znalazłeś się w projekcie Haiku i skąd Twoje zainteresowanie sterownikami kart graficznych?

Alexander von Gluck: Miło mi Cię poznać! Jestem Alexander von Gluck IV, mam 26 lat, urodziłem się i żyję w Teksasie, w pobliżu Houston. Projekt Haiku poznałem wiele lat temu, gdy szukałem informacji na temat mojego ulubionego przez długi czas, systemu operacyjnego jakim był BeOS. Wtedy to chciałem zrobić stronę internetową która mogłaby zastąpić BeBits.

Trochę pokopałem i znalazłem mój post na ten temat, na liście mailingowej Haiku – http://www.freelists.org/post/haiku/Haiku-software-site

Jak pamiętam, to zawsze pragnąłem poznać działanie komputerów na ich jak najniższym poziomie funkcjonowania. W okolicach roku 2003 próbowałem samemu napisać hobbystycznie jakiś system operacyjny( byłem wtedy bardzo początkującym programistą).

Przez wiele lat starałem się dobrze nauczyć C i C++. Co prawda nie wszystko umiem w tych językach napisać, nie jestem bardzo zaprawiony, doświadczony w tym… Najbardziej komfortowo pisze mi się w PHP.

Mój pierwszy sterownik jaki napisałem dla Haiku, to był sterownik USB WiMax dla urządzeń z chipsetem Beceem. Sterownik Beceem był moim pierwszym doświadczeniem w pisaniu i projektowaniu sterowników. To wtedy nauczyłem się co należy robić i jak, a jak nie. Rozwój swojego sterownika zawiesiłem, ze względu na spadek użycia WiMax w USA.

http://cgit.haiku-os.org/haiku/tree/src/add-ons/kernel/drivers/network/wwan/usb_beceemwmx

Moje zainteresowanie sterownikami kart graficznych w Haiku wzięło się z tego, że Urias
McCullough( jeden z developerów Haiku) rzucił mi wzywanie na kanale IRC Haiku, bym zajął się sterownikiem radeon_hd. W tym celu przekazał mi kartę graficzną Radeon HD 4350, bym mógł się tym zająć. Wstydliwie muszę przyznać, że przez lata byłem fanem Nvidii i kupowałem ich kart graficzne ze względu na ich wsparcie w Linuksie. Ten Radeon okazał się być pierwszym Radeonem którego używałem przez długi okres czasu.

Przemysław Pintal: Dla których kart graficznych w pierwszej kolejności zrobisz sterowniki?

Alexander von Gluck: Chciałbym w pierwszej kolejności zająć się Radeonami HD, od chipu R600 wzwyż. Sterowniki do nich są najlepiej rozwinięte w Gallium 3D. W każdym razie jeszcze nie zdecydowałem.

Przemysław Pintal: Czy myślisz, że kiedyś otwartoźródłowe sterowniki będą kiedyś wydajniejsze, lepsze od własnościowych, jeżeli prace nad nimi będą postępować tak jak teraz?

Alexander von Gluck: Myślę, że pewnego dnia tak. Sam naocznie przekonałem się ile AMD włożyło pracy w rozwój otwartych sterowników, poświęcając temu kilku developerów. Słyszałem także, że Intel nie próżnuje i otwiera specyfikacje swoich chipów graficznych.

Przemysław Pintal: Jak myślisz, kiedy możemy spodziewać się wsparcia dla OpenCL w Haiku?

Alexander von Gluck: AMD i Mesa od kilku miesięcy ciężko pracują nad dodaniem OpenCL w Gallium 3D( za pomocą LLVM).

Mesa pracuje nad uzyskaniem wsparcia dla OpenCL w Gallium 3D, a ja pracuję nad wsparciem Gallium 3D w Haiku… Myślę, że wkrótce :).

Przemysław Pintal: Co myślisz o PowerPC? Poświęciłeś tym procesorom jedną z notek na swoim blogu i napisałeś trochę kodu. Czy tak jak inni developerzy Haiku miałeś kiedyś któryś ze starych komputerów, może; ZX Spectrum, Atari, Commodore, Amiga, Amstard, etc? I stąd ten sentyment? Myślę, że przy tak małej społeczności i liczbie developerów powinniśmy się całkowicie skupić na architekturze x86. Zwłaszcza, że inne architektury są słabo dostępne i bardzo drogie, a z ARM nie zrobimy sobie PeCeta chyba, że dopiero architektura ARMv8 to zmieni.

Alexander von Gluck: Tak na prawdę to nigdy nie miałem innych komputerów niż zgodne z IBM, x86. Były one przed moim czasem( chociaż interesuję się starymi komputerami).

Aktualnie interesuję się PowerPC w typowo nerdowsko-techniczny sposób. Na co dzień jesteśmy zanurzeni w x86 i przyjemnym orzeźwieniem jest spojrzenie na stare komputery i inne architektury. Osobiście chciałbym pewnego dnia zobaczyć jak Haiku działa na PowerPC, nawet jakby nie było innego powodu niż taki, że ten interesujący sprzęt leży sobie zakurzony i porzucony przez Apple. Myślę, że byłoby to ciekawe hackowanie. Oczywiście zgadzam się, że przy takich środkach powinniśmy się skupić na x86, ale podczas pisania i projektowania kodu powinniśmy myśleć o innych platformach, że pewne rzeczy mają się inaczej tam i że pewnego dnia będziemy uruchamiać Haiku na innych architekturach.

Przemysław Pintal: Jak oceniasz całokształt rozwoju Haiku? Co Ci się podoba a co nie? Co byś zmienił? Co by można było zrobić lepiej?

Alexander von Gluck: Ja zawsze lubiłem pracować dla Haiku. Chciałbym tylko by było jak najwięcej utalentowanych programistów pomagających Haiku, niż tej pomocy było potrzeba( tu był idiom, wskazówka dla mnie bym się zajął pisaniem kodu przyp. red.).

Przemysław Pintal: Co myślisz o tym, że większość użytkowników prawdopodobnie będzie migrować na wersję gcc4h Haiku, gdzie będą cieszyć się sprzętową akceleracją i innymi rzeczami? Że wersja gcc2h może być używana jedynie przez developerów?

Alexander von Gluck: Pełna kompatybilność z BeOSem na poziomie ABI, zawsze będzie celem projektowym dla wersji R1 Haiku.

Ja osobiście czuję, że wraz z upływem czasu maleje sens posiadania klonu BeOSa zgodnego z GCC 2. Jest coraz mniej przypadków użycia BeOSowego, zamkniętego oprogramowania napisanego w latach 1997-2001. Nie mówię, że zgodność binarna jest zła… Myślę, że zbyt dużo czasu na tym skupialiśmy się. Jest coraz trudniej kompilować nowoczesne oprogramowanie za pomocą GCC 2, który jest już wiekowy i gdzie mamy m.in. brak standardu C99. GCC 2 nie jest już kompilatorem dla żadnego projektu.

Prywatnie chciałbym aby wersja gcc4hybrid stała się tą oficjalną ale wiem, że dużo ludzi nie zgadza się ze mną i mają ku temu swoje powody.

Przemysław Pintal: Czy grasz w jakieś gry i czy Haiku może stać się dobrą platformą dla gier( gry niezależne)?

Alexander von Gluck: Nie jestem jakimś zapalonym graczem, ale chciałbym zobaczyć Minecrafta pod Haiku.

Wcześniej dłubałem trochę przy paru portach gier Indie dla Haiku. Nie jest to zbyt trudne zadanie, zwłaszcza dla gier napisanych z użyciem SDL.

Przemysław Pintal: Jakich programów najbardziej brakuje Ci w Haiku?

Alexander von Gluck: Tak po prawdzie to niczego. Sam od bardzo dawna używam Linuksa na swoim komputerze. Haiku używam codziennie, ale Linux nadal napędza mój desktop.

Przemysław Pintal: Na sam koniec chciałbym zapytać czy miałeś jakikolwiek kontakt z polską społecznością Haiku? Jeśli tak to jakie odniosłeś wrażenie? Czy masz jakiekolwiek skojarzenia z Polską i czy znasz jakieś słowa po polsku ;)?

kallisti5: Niezbyt wiele, Teksas jest trochę odizolowany :P.

Niestety z powodu natłoku obowiązków, Alexander nie mógł mi odpowiedzieć na dwa pytania. Jedno dotyczyło anegdot z życia społeczności, zlotów fanów systemu i zespołu programistów Haiku. Drugim pytanie było to, czy różnice w architekturach systemów Haiku i Linuxa mogą spowodować to, że Mesa 3D może działać szybciej na Haiku, lub odwrotnie. Pytanie dotyczyło ogólnie wydajności OpenGL i czy może być lepiej niż na Windowsie.

przez -
3 519
Haiku

Minęło już wiele czasu odkąd zebrano pieniądze na przeportowanie Gallium 3D do Haiku, lecz niestety nie udało się znaleźć żadnego dewelopera. Poprzedni programista Adrian Marius Popa nie dokończył swoich prac i nie dawał znaków życia. Tym razem mamy 100% pewność, że się uda, bo będzie to robił ten sam człowiek który zajmuje się sterownikiem Radeonów HD w Haiku, czyli Alexander von Gluck aka kallisti5.

Gallium 3D jest częścią biblioteki Mesa 3D od 2009 roku. Jednakże w sierpniu 2011 roku usunięto m.in. wsparcie dla BeOSa w Mesie. Alexander wysłał e-mail na listę mailingową Mesy, w którym zapytał czy poprawki dla Haiku zostaną przyjęte, a to spotkało się z akceptacją i kallisti5 wysłał już swój pierwszy patch.

Alexander zaproponował by płatności podzielić na kilka etapów:

  • 0% – Aktualizacja Mesa3D/aka Gallium 3D do bieżącej wersji i praca nad poprawkami które znajdą się w Mesie 3D.
  • 0% – Dodanie Mesy 3D do systemu budowania, po wcześniejszej kompilacji OpenGL Kit.
  • 25% – Zapewnienie, że Mesa 3D działa na podstawie OpenGL Kit, a renderowanie programowe działa. W tym momencie wrócimy do punktu wyjścia, ale z działającą nową Mesą.
  • 50% – Uzyskanie przynajmniej jednego działającego sterownika, który zapewni sprzętową akcelerację.
  • 25% – Przygotowanie przynajmniej dwóch sterowników które zapewnią sprzętową akcelerację.

Zaprezentowane kwoty zależą od włożonej pracy. Aktualnie kalistti5 jest w połowie pierwszego etapu. Z większą ilością szczegółów można zapoznać się na jednej z list mailingowych Haiku. Większość pieniędzy zostanie wydana na zakup kart graficznych od AMD, które posłużą do opracowywania i testowania kolejnych sterowników. Niestety większość sprzętu który posłuży do debugowania i testów sterowników, kallisti5 musi kupić samodzielnie. Przyczyniając się do wzrostu nagrody, pomaga się Haiku na dwóch frontach (nowa Mesa i sterowniki).

Na sam koniec portal Haikuware odesłał na emeryturę swój konkurs Thank You Award, który polegał na przyznawaniu drobnych kwot pieniężnych, wskazanym deweloperom za pomocą ankiety, przez społeczność Haiku. Pozostałe pieniądze z puli, czyli 2348,06 dolarów przekazano na nagrody, związane z Gallium 3D.

Polecane

Prasa, Czasopismo

1 915
Ukazało się Linux Magazine – numer 161. Lipcowe wydanie magazynu zawiera analizę tworzenia bardziej czytelnych wyrażeń regularnych z Simple Regex Language, instrukcje zabezpieczania i...