Auf der vergangenen Konferenz Linux Plumbers 2019 hat Google ĂŒber die Entwicklung der Integration von Ănderungen in den Hauptkernel Linux gesprochen, die in fĂŒr die Android-Plattform entwickelt wurden. Das endgĂŒltige Ziel besteht darin, einen einheitlichen Kernel fĂŒr Android bereitzustellen, anstatt fĂŒr jedes GerĂ€t separate Builds auf der Grundlage eines Android-spezifischen Branches vorzubereiten. . Dieses Ziel wurde bereits teilweise erreicht, und auf der Konferenz wurde ein Android-Smartphone, das Xiaomi Poco F1, mit einer Firmware auf der Basis eines normalen, unverĂ€nderten Linux-Kernels demonstriert.
Nach Abschluss des Projekts wird den Anbietern vorgeschlagen, ein Basis-Kernel auf Grundlage des Haupt-Linux-Kernels zu liefern. Komponenten zur UnterstĂŒtzung der Hardware werden von den Anbietern ausschlieĂlich in Form von zusĂ€tzlichen Kernel-Modulen bereitgestellt, ohne dass Patches auf den Kernel angewendet werden. Die Module mĂŒssen sicherstellen, dass sie kompatibel mit dem Hauptkern auf der Ebene des Namensraums des Kernels sind. Alle Ănderungen, die den Hauptkern betreffen, werden in das Upstream-Projekt eingebracht. Um die KompatibilitĂ€t mit proprietĂ€ren Modulen in den LTS-Zweigen aufrechtzuerhalten, wird vorgeschlagen, die API und ABI des Kernels in stabiler Form zu unterstĂŒtzen. Dadurch wird die KompatibilitĂ€t der Module mit den Aktualisierungen fĂŒr jede öffentliche Kernel-Zweige gewĂ€hrleistet.

Im Laufe eines Jahres wurden Funktionen wie das PSI-Subsystem (Pressure Stall Information) fĂŒr die Analyse von Wartezeiten bei der Ressourcenbeschaffung (CPU, RAM, I/O) sowie das Pseudo-Dateisystem BinderFS fĂŒr den interprozessualen Kommunikationsmechanismus Binder und der energieeffiziente Scheduler EAS (Energy Aware Scheduling) vom Hauptkern Linux aus der Android-Kernel-Edition ĂŒbertragen. ZukĂŒnftig plant Android, von dem spezifischen Scheduler SchedTune auf das neu entwickelte UtilClamp-Subsystem von ARM umzusteigen, das auf cgroups2 und den nativen Mechanismen des Kernels basiert.

Zur Erinnerung: Der Kernel fĂŒr die Android-Plattform durchlief bisher mehrere Vorbereitungsphasen:
- Es wurde ein Fork des Haupt-LTS-Kernels (3.18, 4.4, 4.9 und 4.14) erstellt, der als âAndroid Common Kernelâ bezeichnet wird. In diesen wurden spezifische Android-Patches ĂŒbertragen (ehemals betrug das Volumen der Ănderungen mehrere Millionen Zeilen, in letzter Zeit wurde es jedoch auf einige tausend Zeilen Code reduziert).
- Auf Basis des âAndroid Common Kernelâ entwickelten Chip-Hersteller wie Qualcomm den âSoC Kernelâ, der ErgĂ€nzungen zur UnterstĂŒtzung der Hardware enthĂ€lt.
- Basierend auf dem âSoC-Kernelâ entwickelten GerĂ€tehersteller den âDevice-Kernelâ, der Anpassungen zur UnterstĂŒtzung zusĂ€tzlicher Hardware, Bildschirme, Kameras, Audiosysteme usw. umfasst.

Im Grunde erhielt jedes GerĂ€t sein eigenes Kernel, das nicht auf anderen GerĂ€ten verwendet werden konnte. Dieses Konzept erschwert erheblich die Bereitstellung von Sicherheitsupdates und den Wechsel zu neuen Kernel-Versionen. Zum Beispiel wird das im Oktober veröffentlichte neueste Smartphone Pixel 4 mit einem Linux-Kernel 4.14 ausgeliefert, der vor zwei Jahren veröffentlicht wurde. Teilweise versuchte Google, die Wartung zu vereinfachen, indem es ein System förderte , das Herstellern ermöglicht, universelle HardwareunterstĂŒtzungskomponenten zu erstellen, die nicht an bestimmte Android-Versionen und verwendete Kernel-Versionen gebunden sind. Treble ermöglicht es, bereits verfĂŒgbare Updates von Google als Grundlage zu nutzen und spezifische Komponenten fĂŒr das jeweilige GerĂ€t zu integrieren.

Quelle: opennet.ru
