Google pracuje nad wykorzystaniem standardowego jądra Linux w Androidzie

Na konferencji Linux Plumbers 2019 firma Google opowiedziała omawia inicjatywy przeniesienia zmian rozwijanych w wersji jądra 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. Android Common Kernel. 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.

Google pracuje nad wykorzystaniem standardowego jądra Linux w Androidzie

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.

Google pracuje nad wykorzystaniem standardowego jądra Linux w Androidzie

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.

Google pracuje nad wykorzystaniem standardowego jądra Linux w Androidzie

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 Treble, 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.


Odtwarzaj wideo

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster