TeamQuest Blog

Alternatywne systemy operacyjne część 1 - Haiku

Alternatywne systemy operacyjne część 1 - Haiku

Przemysław Pintal , 25.02.2020 r.

Windows, Linux, macOS - triada dominująca na desktopie, niemniej obok nich istnieją hobbystycznie projekty open source stawiające na celu stworzenie alternatywnych systemów operacyjnych. Częstokroć jednym z powodów ideowych pozostaje wzgląd na przejrzystość projektowanej architektury i lekkość działania wynikającą z braku zaszłości w postaci utrzymywania kompatybilności wstecznej na przestrzeni dekad. O ile na początkowym etapie prac entuzjazm przyciąga deweloperów i społeczność, to w związku z postępującymi implementacjami kolejnych funkcji rośnie ogólna złożoność, tym samym daje to iluzję zastoju. Trudność pogłębia wybór napisania własnego jądra zamiast skorzystania z Linuksa. Służące ku temu wyborowi motywy bywają ideologiczne, jak i techniczne. Wtedy wadą nie do przeskoczenia okazuje się brak ogromnej liczby sterowników, jednakże niektórzy deweloperzy obchodzą owe pisząc warstwę kompatybilności z FreeBSD, jak to uczyniono ze sterownikami sieciowymi w przypadku Haiku. Wydaje się oczywiste, iż hobbystyczne systemy operacyjne nie posiadają sensu ściśle biznesowego, za sprawą efektów sieci i skali, lecz potrafią one przyciągnąć studentów i młodych profesjonalistów. Wynika to z możliwości nabrania doświadczenia w pracy zespołowej, recenzji kodu, redagowania dokumentacji, a przede wszystkim pisania kodu zgodnie z wytycznymi. Wisienką na torcie jest możliwość uczestniczenia w Google Summer of Code, jakie oprócz wpisu do CV zapewnia pierwsze pieniądze lub finansowane przez społeczność zlecenia bounty.

Nie można pominąć nostalgii i poczucia pewnej krzywdy dziejowej, niejednokrotnie będącej głównym motorem zawiązania się społeczności, w celu podjęcia się przez nich próby utworzenia odmiennego systemu operacyjnego, nadto ukonstytuowania, nie tylko w internecie, ale też w rzeczywistości, za sprawą cyklicznych spotkań i wspólnego pisania kodu, alternatywnej przestrzeni, być może “ciągłości” (kontinuum), nadającej nie tyle sens istnieniu, co owe ustanawia poczucie wykonania dobrej roboty, gdy człowiek widzi, iż to co stworzył wespół z innymi działa, a inni także wykorzystują, prócz tego “jest ładne”. Stało się tak w przypadku społeczności systemu operacyjnego Haiku. Dziennikarz IT, Scot Hacker, napisał niegdyś esej poświęcony BeOSowi - “Opowieść o uchodźcach BeOSa. Od BeOSa do OS X, poprzez Linuksa i Windowsa". Jednakże nie wszyscy umieli się odnaleźć w różnych od dotychczasowego paradygmatu używania komputera osobistego. Haiku, nazwa wybrana w wyniku głosowania społeczności, aby nie naruszać znaków towarowych Palma, pierwotnie nosiło nazwę OpenBeOS. Kiedy wiadomym stało się, iż Be Inc. ogłosi bankructwo to niezadowoleni z obrotu spraw użytkownicy uznali, że napiszą otwarty źródłowo system operacyjny, który będzie kompatybilny binarnie z BeOSem w wersji R5.

Zobacz też: Oto 5 linuksowych dystrybucji, którym warto dać szansę w 2020 roku

Początki BeOSa sięgają 1991 roku, kiedy dwóch byłych pracowników Apple, Jean-Louis Gassée i Steve Sakoman, założyło przedsiębiorstwo Be Inc. Zamierzali oni produkować własną linię komputerów osobistych, posiadającą dedykowany system operacyjny. Celem projektowym BeOSa było wzięcie na stół kreślarski nowoczesnych idei IT, przy czym nie dźwigając za sobą brzemienia kompatybilności wstecznej. BeOS wyróżniał się m.in. byciem pisanym w C++, symetryczną multiprocesorowością (SMP) i niskimi opóźnieniami, skoro był to system desktopowy na którym mieli pracować ludzie związani z tworzeniem mediów, obróbką i montażem - audio i video. Oprócz tego, że jądro BeOSa obsługiwało wywłaszczenia (preemption), to na dokładkę GUI posiadało własny wątek. Warto uściślić, że każda aplikacja posiadała przynajmniej dwa wątki, jeden dla głównej pętli programu, drugi dla graficznego interfejsu, co sprawiało wrażenie, że system jest wyjątkowo responsywny. Nosi to nazwę wszechobecnej wielowątkowości (pervasive multithreading). Efekt potęgował fakt, iż komputer BeBox został zaopatrzony w dwa procesory PowerPC 603, taktowane 66 lub 133 MHz, a na obudowie komputera znajdowały się dwie linie z diodami LED, tzw. blinkenlights, jakie wskazywały aktualne zużycie procesora.

BeOS działał także na PowerMacach i jego klonach. Wiadomo, że zaistniały negocjacje pomiędzy Apple i Be Inc, BeOS miał być ich nowym systemem operacyjnym, jednakże warunki stawiane przez Jeana-Louisa Gassée okazały się zbyt wygórowane, a większą siłę przebicia, wśród zarządu Apple, zdobył Steve Jobs i jego NeXTStep. Jedną z pierwszych decyzji Steve’a Jobsa, po powrocie do Apple, był zakaz wydawania dokumentacji technicznych i podjęcie walki z klonami komputerów Apple. Be Inc uratowało się portem na platformę x86, niemniej, ostatecznie, przegrało konkurencję z Microsoftem. Microsoft szantażował partnerów OEM. Nie można było sprzedawać komputera z preinstalowanym Windowsem i drugim systemem operacyjnym, jeśli zainstalowano także program rozruchowy, umożliwiający wybór systemu który będzie załadowany. Finalnie praktyka Microsoftu została dowiedziona jako nielegalna, lecz nie istniała już konkurencja na platformie x86, oprócz Linuksa.

Zobacz też: Nachodzi kamień milowy w rozwoju Redoksa, systemu w całości napisanego w Ruście

Nie wszystko zostało jednak stracone. Spadkobiercy BeOSa posiadali dokumentację API w postaci Be Booka, a w wolnej chwili, były pracownik Be Inc, Travis Geiselbrecht napisał jądro NewOS i był to kamień węgielny położony pod Haiku. Jedną z ostatnich decyzji Be Inc było także wypuszczenie kodu źródłowego OpenTrackera, tj. menedżera plików.

Pierwszym “wydaniem” Haiku był rodzaj aktualizacji do BeOSa, jaki zastępował niektóre programy ich wersjami open source. W tym samym 2002 roku, upubliczniono też prototyp app_servera, jaki zdołał wyrenderować okno i kursor. Rok później zarejestrowano organizację non proft Haiku, Inc., aby trzymała ona pieczę nad znakami towarowymi społeczności i zarządzała dotacjami. Kolejne przełomy nastąpiły dopiero w 2005 roku, skoro społeczności nigdy nie udostępniono kodu źródłowego BeOSa, było to przede wszystkim zatrudnienie, po raz pierwszy, pełnoetatowego programistę, Axela Dörflera, co było możliwe dzięki datkom zebranym przez społeczność.

Haiku-desktop Haiku-desktop

Mijają lata, ukazują się kolejne wydania, a Haiku nadgania “konkurencję”, nadto zyskuje unikalne cechy jak Stack & Tile, umożliwia ono grupowanie okien w karty i przypinanie ich bokami.

Perypetie społeczności i prace nad kodem Haiku wymagają własnej monografii, a moim celem, pisząc ten tekst, nie jest tłumaczenie Wikipedii, aby jak najprościej wyczerpać budżet znaków i opublikować kolejny artykuł pod własnym nazwiskiem. Lata temu byłem niezadowolony z działania Windowsa i Linuksa, toteż szukałem funkcjonalnej alternatywy. Przypadkiem dowiedziałem się o Haiku i wsiąknąłem w owe na tyle, że przez parę lat wisiałem na polskim kanale IRC (#haikupl na Freenode), pełniąc funkcję moderatora i współredagowałem wortal haiku-os.pl. Wśród społeczności byłem znany jako Premislaus i jako osoba nie pisząca kodu, ale techniczna, poświęcałem swój wolny czas, niekiedy środki finansowe. Mimo osobistego rozczarowania i zaniechania dalszych prac dla społeczności, nie uważam tamtego czasu za straconego. Był to mój pierwszy i czynny udział w jakiekolwiek społeczności open source, nadto praca w dużym i wieloaspektowym przedsięwzięciu. Pisałem artykuły, udzielałem wsparcia nowym użytkownikom, zgłaszałem błędy i współtłumaczyłem system na język polski. Niekiedy pisałem maile na oficjalne listy mailingowe, a także starałem się wyperswadować z głów niektóre koncepcje, jakie rodziły się w głowach deweloperów. Z perspektywy czasu, za najbardziej konkretny wkład w Haiku, ze swojej strony, uważam nakłonienie jednego z programistów, by podjął kontrakt opłacony przez społeczność i napisał na nowo scheduler. Ówcześnie idea nowego planisty była moim pomysłem i poczułem wielką dumę kiedy moje działania i rozmowy odniosły wysoce praktyczny dla użytkowników skutek. Dlatego nie uważam, aby praca nad niszowymi projektami open source była bez sensu, praktycznego i biznesowego, doświadczenie stanowi kapitał.

haiku developer

Kiedy czytam Haiku w internecie to myślę o 64-bitowym spadkobiercy BeOSa, napisanym w C++. Modułowa budowa pozwala na rozwój poszczególnych elementów we względnej izolacji. System został zaopatrzony w menedżer pakietów bazujący na libsolv z openSUSE. Ciekawą funkcją jest fakt, że pakiety nie są instalowane, ale montowane w trybie tylko do odczytu. System plików BFS wspiera metadane (rozszerzone atrybuty). Natywną przeglądarkę WWW WebPositive oparto o WebKita. GUI nie zrywa z klasyczną metaforą biurka. Scheduler obsługuje 64 rdzenie, a zwiększenie ich w przyszłości wymaga prostych zmian w kodzie. Decyzja co do liczby obsługiwanych procesorów została podyktowana oszczędnością pamięci. Wspiera POSIX. W czerwcu 2018 wydano wersję beta pierwszego wydania.

Najnowsze oferty pracy:

Polecane wpisy na blogu IT:

Szukasz pracownika IT?

Dostarczymy Ci najlepszych specjalistów z branży IT. Wyślij zapytanie

Wyrażam zgodę TeamQuest Sp. z o.o. na przetwarzanie moich danych osobowych w celu marketingu produktów i usług własnych TeamQuest, w tym na kontaktowanie się ze mną w formie połączenia telefonicznego lub środkami elektronicznymi.
Administratorem podanych przez Ciebie danych osobowych jest TeamQuest Sp. z o.o., z siedzibą w Warszawie (00-814), ul. Miedziana 3a/21, zwana dalej „Administratorem".
Jeśli masz jakiekolwiek pytania odnośnie przetwarzania przez nas Twoich danych, skontaktuj się z naszym Inspektorem Ochrony Danych (IOD). Do Twojej dyspozycji jest pod adresem e-mail: office@teamquest.pl.
W jakim celu i na jakiej podstawie będziemy wykorzystywać Twoje dane? Dowiedz się więcej