Auf der vergangenen Konferenz Linux Plumbers 2019 sprach das Unternehmen Google ĂŒber die Entwicklung beim Transfer von Ănderungen in das Hauptkern von Linux, die in fĂŒr die Android-Plattform entwickelt werden. Das endgĂŒltige Ziel ist es, die Nutzung eines einheitlichen Kernels in Android zu ermöglichen, anstatt fĂŒr jedes GerĂ€t separate Builds auf Basis eines spezifischen Android-Zweigs vorzubereiten. . Dieses Ziel wurde bereits teilweise erreicht, und auf der Konferenz wurde ein Android-Smartphone Xiaomi Poco F1 mit einer Firmware auf Basis des gewöhnlichen unverĂ€nderten Linux-Kerns demonstriert.
Nach der Fertigstellung des Projekts werden den Anbietern basierende Hauptkern-Lieferungen auf Basis des Hauptkerns von Linux angeboten. Komponenten zur UnterstĂŒtzung der Hardware werden von den Anbietern ausschlieĂlich in Form zusĂ€tzlicher Kernel-Module bereitgestellt, ohne Patches ins Kernel zu integrieren. Die Module mĂŒssen die KompatibilitĂ€t mit dem Hauptkernel auf der Ebene des Namensraums der Kernsymbole gewĂ€hrleisten. Alle Ănderungen, die den Hauptkernel betreffen, werden upstream vorangetrieben. Um die KompatibilitĂ€t mit proprietĂ€ren Modulen in den LTS-Zweigen zu gewĂ€hrleisten, wird vorgeschlagen, API und ABI des Kernels stabil zu halten, was die KompatibilitĂ€t der Module mit Updates fĂŒr jeden gemeinsamen Kernel-Zweig bewahrt.

Im Laufe des Jahres wurden im Hauptkern von Linux Funktionen wie das PSI-Subsystem (Pressure Stall Information) zur Analyse von Wartezeiten fĂŒr verschiedene Ressourcen (CPU, Speicher, Ein/Ausgabe), das Pseudo-Dateisystem BinderFS fĂŒr den Binder-Mechanismus zur Interprozesskommunikation und der energieeffiziente Aufgabenplaner EAS (Energy Aware Scheduling) aus der Android-Kernredaktion ĂŒbernommen. DarĂŒber hinaus ist geplant, Android von dem spezifischen Scheduler SchedTune auf ein neu entwickeltes System UtilClamp von ARM zu ĂŒbertragen, das auf cgroups2 und den integrierten Mechanismen des Kernels basiert.

Wir erinnern daran, dass der Kern fĂŒr die Android-Plattform bisher mehrere Vorbereitungsphasen durchlaufen hat:
- Basierend auf den Haupt-LTS-Kernen (3.18, 4.4, 4.9 und 4.14) wurde ein Abzweig "Android Common Kernel" erstellt, in den spezifische Android-Patches ĂŒbertragen wurden (zuvor betrugen die Ănderungen mehrere Millionen Zeilen, aber in letzter Zeit wurden die Ănderungen auf einige Tausend Zeilen Code reduziert).
- Basierend auf dem "Android Common Kernel" haben Chiphersteller wie Qualcomm den "SoC Kernel" entwickelt, der Erweiterungen zur UnterstĂŒtzung der Hardware beinhaltet.
- Auf Basis des 'SoC Kernel' erstellten GerĂ€tehersteller den 'Device Kernel', der Ănderungen zur UnterstĂŒtzung zusĂ€tzlicher Hardware, Bildschirme, Kameras, Soundsysteme usw. beinhaltet.

Im Grunde wurde fĂŒr jedes GerĂ€t ein eigenes Kernel erstellt, das auf anderen GerĂ€ten nicht verwendet werden konnte. Ein solches System erschwert die Bereitstellung von Updates zur Behebung von SicherheitsanfĂ€lligkeiten und den Wechsel zu neuen Kernversionen erheblich. Beispielsweise wird das im Oktober erschienene neueste Smartphone Pixel 4 mit dem vor zwei Jahren veröffentlichten Linux-Kernel 4.14 ausgeliefert. Teilweise hat Google versucht, die Wartung zu vereinfachen, indem es ein System fördert , das es Herstellern ermöglicht, universelle Hardware-Supportkomponenten zu erstellen, die nicht an spezifische Android-Versionen und verwendete Linux-Kernel-Release gebunden sind. Treble ermöglicht es, bereits verfĂŒgbare Updates von Google zu verwenden, wobei gerĂ€tespezifische Komponenten integriert werden.

Quelle: opennet.ru
