15

Microsoft kocha Linuksa, a Google… pokazuje, że nie jest gorszy

To oznacza poważne zmiany dla samego Androida, który przecież działa w ramach linuksowego forka. Jednak w trakcie konferencji Linux Plumbers, Google poświęciło sporo czasu na to, aby uprawomocnić wizję Androida działającego na generycznym jądrze Linuksa. Mało tego, pokazano nawet urządzenie, które działa w ramach takiego właśnie rozwiązania.

Jak to wygląda obecnie? Google korzysta z jądra linuksowego w wersji LTS (Long Term Support) i tworzy z niego „Android Common Kernel”, który jest następnie dostarczany do producentów układów dla urządzeń z systemem Android (między innymi Qualcomm), gdzie sam producent wdraża pierwszą rundę własnych „dodatków” do „wspólnego jądra”, z myślą o konkretnym modelu SoC. Od producentów układów, „SoC Kernel” jest przekazywany już do producentów sprzętów, którzy dostarczają kolejne porcje kodu – tak, aby zachować zgodność jądra z konkretnymi podzespołami zainstalowanymi w smartfonach. Otrzymujemy tym samym „Device Kernel”, który jest już tym, z czego korzystamy na co dzień.

Google uważa, że jest to ekstremalnie długi łańcuch i należy go skrócić – jego skrócenie zaś zależy wprost od tego, czy uda się przenieść Androida na pełne, generyczne jądro Linuksa. Rachunek jest prosty: „Device Kernel” działający na jednym sprzęcie nigdy nie będzie działać na drugim – taki kernel trzeba osobno opakować w potrzebne modyfikacje, co oczywiście oznacza konieczność poświęcenia pewnych zasobów (czasu oraz pieniędzy). Oznacza to między innymi, że taki Pixel 4 zakończy swój żywot ze zforkowanym jądrem Linuksa z roku 2017 (4.14). Dotychczas nie zdarzyły się aktualizacje, które przynoszą ze sobą uaktualnienie wersji jądra forka Linuksa.

Linux Google Android

Przed Google jeszcze długa droga, ale korzyści mogą być ogromne

Przede wszystkim, możliwość wprowadzenia generycznego jądra Linuksa będzie oznaczać znacznie krótszy „łańcuch produkcyjny”, co pozwoli i lepiej wspierać kolejne wydania jądra Linuksa, a także może okazać się zbawienne dla aktualizacji wycelowanych właśnie w wyższe jądro. Google i tak zrobił sporo w ramach Project Treble oraz Android One, by dostarczać aktualizacje odpowiednio szybko do odpowiedniego grona urządzeń mobilnych. Nie jest to jednak wszystko – według giganta tak poważna zmiana mogłaby być niezwykle istotna w kontekście kolejnych usprawnień dedykowanych uaktualnieniom.

Czytaj więcej: Microsoft kocha Linuksa całym sobą

Google w tym momencie uważa, że jądro Linuksa, zamiast być obecnie „forkiem” w Androidzie, mogłoby być zwyczajnie zestawieniem modułów. Pokazano również diagram, który jasno pokazuje, jak miałaby wyglądać architektura takiego jądra – Google miałby wysyłać do partnerów „Generic Kernel Image” z kilkoma modułami GKI zawierającymi w sobie stabilne API/ABI w jądrze. Sterowniki odnoszące się wprost do sprzętu zostałyby załadowane jako moduły jądra.

Ale to wszystko nie jest takie proste – jest mnóstwo problemów technicznych do rozwiązania. Nic z tego, że Google de facto jest największym dostawcą „Linuksa” do konsumentów na świecie – ma na głowie również partnerów, którym musi udostępnić odpowiednie procedury rozwoju oprogramowania. A to znacząco wpływa na stopień skomplikowania tej operacji.