Na konferencji Linux Plumbers 2019 firma Google omawia przeniesienia zmian rozwijanych w dla platformy Android. Ostatecznym celem jest umożliwienie korzystania z jednego wspólnego jądra w Androidzie, zamiast przygotowywania osobnych kompilacji dla każdego urządzenia na podstawie specyficznej dla Androida gałęzi. . Ten cel został już częściowo osiągnięty, a podczas konferencji zaprezentowano smartfon Android Xiaomi Poco F1 z systemem opartym na standardowym, niemodyfikowanym jądrze Linux.
Po gotowości projektu dostawcy będą mogli dostarczać bazowe jądro oparte na głównym jądrze Linux. Wsparcie dla sprzętu będzie dostarczane przez dostawców wyłącznie w postaci dodatkowych modułów jądra, bez nakładania poprawek na jądro. Moduły muszą zapewniać zgodność z ogólnym jądrem na poziomie przestrzeni nazw symboli jądra. Wszelkie zmiany dotyczące głównego jądra będą promowane w upstream. Aby zachować zgodność z własnościowymi modułami w ramach gałęzi LTS, proponuje się utrzymywanie API i ABI jądra w stabilnej wersji, co pozwoli zachować zgodność modułów z aktualizacjami dla każdej wspólnej gałęzi jądra.

W ciągu roku do głównego jądra Linux przeniesiono taką funkcjonalność, jak podsystem PSI (Pressure Stall Information) do analizy czasu oczekiwania na różne zasoby (CPU, pamięć, I/O), system plików pseudo BinderFS dla mechanizmu komunikacji międzyprocesowej Binder oraz energooszczędny scheduler zadań EAS (Energy Aware Scheduling). W przyszłości planuje się przenieść Android z specyficznego scheduler'a SchedTune na nowy podsystem UtilClamp opracowany w ARM, oparty na cgroups2 i standardowych mechanizmach jądra.

Przypomnijmy, że do tej pory jądro dla platformy Android przechodziło przez kilka etapów przygotowania:
- Na podstawie głównych rdzeni LTS (3.18, 4.4, 4.9 i 4.14) tworzono odgałęzienie „Android Common Kernel”, do którego przenoszono poprawki specyficzne dla Androida (wcześniej rozmiar zmian wynosił kilka milionów linijek, ale ostatnio zmiany zostały ograniczone do kilku tysięcy linijek kodu).
- Na podstawie „Android Common Kernel” producenci chipów, tacy jak Qualcomm, opracowali „SoC Kernel”, który zawiera dodatki do wsparcia sprzętu.
- Na podstawie „SoC Kernel” producenci urządzeń tworzyli „Device Kernel”, który zawiera zmiany związane z obsługą dodatkowego sprzętu, ekranów, aparatów, systemów audio itp.

W zasadzie dla każdego urządzenia tworzono własne jądro, które nie mogło być używane na innych urządzeniach. Taki system znacznie utrudnia aktualizacje w celu usunięcia luk i przejścia na nowe wersje jądra. Na przykład najnowszy smartfon Pixel 4, wydany w październiku, jest dostarczany z jądrem Linux 4.14, wydanym dwa lata temu. Częściowo Google próbował uprościć wsparcie, promując system , który pozwala producentom tworzyć uniwersalne komponenty wsparcia sprzętu, niezwiązane z konkretnymi wersjami Androida i używanymi wydaniami jądra Linux. Treble umożliwia korzystanie z już gotowych aktualizacji od Google, integrując w nich komponenty specyficzne dla danego urządzenia.

Źródło: opennet.ru
