Google pracuje nad wykorzystaniem zwykłego jądra Linuksa w systemie Android

Na ostatniej konferencji Linux Plumbers 2019 Google powiedziałem o rozwoju inicjatywy o przeniesieniu zmian opracowanych w jądrze Linuksa do głównego jądra Linuksa wersja jądra dla platformy Android. Ostatecznym celem jest umożliwienie Androidowi korzystania z jednego wspólnego jądra, zamiast przygotowywać osobne kompilacje dla każdego urządzenia w oparciu o gałąź specyficzną dla Androida Wspólne jądro Androida. Cel ten został już częściowo osiągnięty, a na konferencji zademonstrowano smartfon Xiaomi Poco F1 z systemem Android z oprogramowaniem opartym na zwykłym, niezmodyfikowanym jądrze Linuksa.

Gdy projekt będzie już gotowy, dostawcy zostaną poproszeni o dostarczenie podstawowego jądra opartego na głównym jądrze Linuksa. Komponenty do obsługi sprzętu będą dostarczane przez dostawców wyłącznie w postaci dodatkowych modułów jądra, bez nanoszenia poprawek na jądro. Moduły będą musiały być kompatybilne z głównym jądrem na poziomie przestrzeni nazw symboli jądra. Wszystkie zmiany wpływające na główny rdzeń zostaną przeniesione do wyższego szczebla. Aby zachować kompatybilność z zastrzeżonymi modułami w obrębie gałęzi LTS, proponuje się utrzymanie API i ABI jądra w stabilnej formie, co pozwoli zachować kompatybilność modułów z aktualizacjami dla każdej wspólnej gałęzi jądra.

Google pracuje nad wykorzystaniem zwykłego jądra Linuksa w systemie Android

W ciągu roku takie funkcje jak podsystem PSI (Pressure Stall Information) analizujący informacje o czasie oczekiwania na uzyskanie różnych zasobów (CPU, pamięć, I/O) oraz system pseudoplików BinderFS do komunikacji międzyprocesowej mechanizmy zostały przeniesione do głównego jądra Linuksa z edycji jądra Androida.Binder i energooszczędny harmonogram zadań EAS (Energy Aware Scheduling). W przyszłości planowane jest przeniesienie Androida ze specyficznego harmonogramu SchedTune do nowego podsystemu UtilClamp opracowanego w ARM, opartego na cgroups2 i standardowych mechanizmach jądra.

Google pracuje nad wykorzystaniem zwykłego jądra Linuksa w systemie Android

Przypomnijmy, że do tej pory jądro dla platformy Android przeszło kilka etapów przygotowań:

  • W oparciu o główne jądra LTS (3.18, 4.4, 4.9 i 4.14) utworzono gałąź „Android Common Kernel”, do której przeniesiono poprawki specyficzne dla Androida (wcześniej rozmiar zmian sięgał kilku milionów linii, ale ostatnio zmiany zostały zredukowane do kilku tysięcy linii kodu).
  • W oparciu o „Android Common Kernel” producenci chipów, tacy jak Qualcomm, utworzyli „SoC Kernel”, które zawierało dodatki do obsługi sprzętu.
  • W oparciu o Jądro SoC producenci urządzeń stworzyli Jądro Urządzenia, które obejmowało zmiany związane z obsługą dodatkowego sprzętu, ekranów, kamer, systemów dźwiękowych itp.

Google pracuje nad wykorzystaniem zwykłego jądra Linuksa w systemie Android

Zasadniczo każde urządzenie miało własne jądro, którego nie można było używać na innych urządzeniach. Taki schemat znacznie komplikuje wdrażanie aktualizacji w celu wyeliminowania luk i przejścia na nowe gałęzie jądra. Na przykład najnowszy smartfon Pixel 4, wydany w październiku, jest dostarczany z jądrem Linuksa 4.14, wydanym dwa lata temu. Po części Google próbował uprościć konserwację, promując system Potrójny, umożliwiając producentom tworzenie uniwersalnych komponentów obsługi sprzętu, które nie są powiązane z konkretnymi wersjami Androida i używanymi wydaniami jądra Linuksa. Treble pozwala na wykorzystanie gotowych aktualizacji od Google, integrując w nich komponenty specyficzne dla konkretnego urządzenia.


Źródło: opennet.ru

Dodaj komentarz