SteamOS - 100% Linuksa, bez konserwantów
18.12.2013 00:21
Premiera bety SteamOS już za nami, a wraz nią fala komentarzy w których często pojawia się stwierdzenie, a nawet swego rodzaju zarzut w stylu: "Blah to kolejna dystrybucja Linuksa". Coś co dla mnie jako użytkownika systemu "z pod znaku pingwina" wydaje się być wielką zaletą dla innych staje się wadą. Po części można to tłumaczyć stereotypami jakie narosły przez lata wokół Linuksa. Nic więc dziwnego, że wiele osób chciałoby czegoś "innego". Historia uczy nas jednak, że takie systemy "linuksopodobne" w dłuższej perspektywie mogą być dosyć problematyczne, czego przykładem niech będzie choćby Android.
Android - kłopotliwa hybryda
Android to w bardzo dużym uproszczeniu fork linuksowego jądra + maszyna wirtualna Dalvik. Próżno szukać tam standardowych bibliotek jakie znajdziemy w zwykłych dystrybucjach Linuksa. Z perspektywy zwykłego użytkownika, który kupuje smartfon za przysłowiową złotówkę, nie ma to żadnego znaczenia. Jednak dla linuksowych deweloperów, czy osób które próbują stworzyć coś na bazie ARM nie będącego Androidem, sytuacja zaczyna być problematyczna. Pomimo, iż deweloperzy Androida starają się portować swoje łatki do oryginalnego "jądra linuksa" to jest to proces dosyć czasochłonny, a i tak większość łatek ląduje w gałęzi "staging" jądra. W jednym z artykułów na LWN (z marca tego roku) John Stultz (osoba odpowiedzialna za przeportowanie wielu łatek z Androida) tak podsumowuje całą sytuację:
(...)forks of entire communities, where code does not get merged back, are more problematic. In this case, we are seeing a lot of ARM systems-on-chip being developed with Android in mind from the beginning, leading to an increase in the use of out‑of-tree drivers and kernels. Getting the Android base into the mainline makes it easier for developers to work with, and makes it easier to integrate Android-related code developed by others
Stultz zwraca tutaj uwagę na fakt, iż wielu producentów SoC tworzy sterowniki pod zmodyfikowane jądro Androida, przez co zwiększa się ilość sterowników, które nie są kompatybilne z jądrem Linuksa. Sztandarowym przykładem są tu sterowniki do układów graficznych ARM, które działają w zdecydowanej większości wyłącznie pod Androidem (ARM/Mali, Qualcomm/Adreno). Są to sterowniki własnościowe, a ich jakość pozostawia wiele do życzenia. Twórcy Dolphina (emulator konsoli Nintendo Gamecube oraz Wii), używają określeń "bad i horrible". Ich przemyślenia o stanie różnych sterowników OpenGL można przeczytać w tym wpisie. Całość jest warta uwagi, bo są tam również opisane ich doświadczenia ze sterownikami NVIDIA, AMD, Intela pod Linuksem.
"Androizacja" sterowników grafiki spowodowała powstanie biblioteki libhybris, która umożliwia miedzy innymi wykorzystanie sterowników z Androida przez Waylanda. Właśnie tej biblioteki używa Sailfish OS w telefonach Jolla. To co napisałem powyżej nie jest jakimś zarzutem w stosunku do Androida "per se". Kiedy system Googla wchodził na rynek, rozwiązania czysto linuksowe, praktycznie nie istniały. Nokia próbowała coś tam kręcić z Maemo, ale nie starczyło jej determinacji aby pchnąć cały system do przodu. Android był wówczas (w swoich początkach) postrzegany jako taka linuksowa ofensywa na rynku smartfonów. Wielu użytkowników przymykało oko na niedostatki a społeczność open source odegrała znaczącą rolę w jego popularyzacji, zwłaszcza wśród "zwykłych użytkowników". Zupełnie inaczej sytuacja ma się ze SteamOS. Tutaj Valve miało niemal wszystkie komponenty pod ręką, a co najważniejsze wykorzystało je, zamiast tworzyć koło od nowa.
SteamOS - sprawdzone rozwiązania w nowej formie
Wybór Debiana na system bazowy został przyjęty pozytywnie. Jest to bowiem distro cieszące się opinią bardzo stabilnego, zwłaszcza gałąź stable, która stanowi podstawę dla dystrybucji od Valve. O specyfikacji trudno się rozpisywać, bo nie ma w niej nic niezwykłego:
[list] [item]Jądro 3.10 (z wieloma łatkami - realtime)[/item][item]Menadżer kompozycji: Xcompmgr[/item] [item]X.Org Server 1.12.4[/item][item] System uruchamiania: SysVinit[item]
Pełną listę dostępnych pakietów można znaleźć tutaj
System posiada 2 tryby:
Big Picture - znany wszystkim posiadaczom Steama
a także tryb pulpitu, w którym można znaleźć, a jakże GNOME.
Wygląda na to, że Valve przygarnęło Debiana Wheezy z całym dobrodziejstwem inwentarza czyli GNOME 3.4.
O ile tryb Big Picture przystosowany do ekranów telewizorów nie jest dla nikogo zaskoczeniem, o tyle dodanie "trybu pulpitu" jest pewną nowością, tym bardziej, że jeszcze niedawno niektóre źródła sugerowały jego brak ;). To, że wszystkie egzemplarze steammachines zostały wyposażone w karty NVIDIA, a beta systemu oficjalnie wpiera tylko karty tego producenta, nie powinno nikogo dziwić. NVIDIA ma doskonałe wsparcie pod Linuksem, chociaż z drugiej strony karty AMD również działają bez problemu, jak informuje serwis phoronix. To, że Valve nie chwali się ich wparciem spowodowane jest prawdopodobnie rożnymi problemami jakie mają własnościowe sterowniki. To czy SteamOS odniesie sukces pozostaje kwestią otwartą, faktem jednak jest, że zarówno premiera Steam, jak i agresywna promocja SteamOS powinna zaowocować pojawieniem się tytułów klasy AAA, co już powoli ma miejsce. Jeszcze 2 lata temu, wydanie klienta steam traktowano jak swego rodzaju miejską legendę. A jeśli ktoś zasugerowałby, że Valve stworzy własną konsolę na bazie Linuksa, zostałby wyśmiany. Teraz SteamOS doczekał się nawet własnej strony na Distrowatch, jak na porządną dystrybucję przystało ;)