Google arbeitet daran, einen regulären Linux-Kernel in Android zu verwenden

Auf der letzten Linux Plumbers 2019-Konferenz hat Google erzählt über die Entwicklung Initiativen zum Übertragen von im Linux-Kernel entwickelten Änderungen auf den Haupt-Linux-Kernel Kernelversion für die Android-Plattform. Das ultimative Ziel besteht darin, Android die Verwendung eines gemeinsamen Kernels zu ermöglichen, anstatt für jedes Gerät separate Builds auf der Grundlage eines Android-spezifischen Zweigs vorzubereiten Gemeinsamer Android-Kernel. Dieses Ziel wurde bereits teilweise erreicht und auf der Konferenz wurde das Android-Smartphone Xiaomi Poco F1 mit Firmware auf Basis des üblichen unveränderten Linux-Kernels vorgeführt.

Sobald das Projekt fertig ist, werden die Anbieter gebeten, einen Basiskernel bereitzustellen, der auf dem Haupt-Linux-Kernel basiert. Komponenten zur Hardware-Unterstützung werden von Lieferanten nur in Form zusätzlicher Kernel-Module geliefert, ohne dass Patches auf den Kernel angewendet werden. Module müssen mit dem Hauptkernel auf der Ebene des Kernelsymbol-Namespaces kompatibel sein. Alle Änderungen, die den Hauptkern betreffen, werden auf den Upstream übertragen. Um die Kompatibilität mit proprietären Modulen innerhalb der LTS-Zweige aufrechtzuerhalten, wird vorgeschlagen, die Kernel-API und ABI in einer stabilen Form zu halten, wodurch die Modulkompatibilität mit Updates für jeden gemeinsamen Kernel-Zweig gewährleistet bleibt.

Google arbeitet daran, einen regulären Linux-Kernel in Android zu verwenden

Im Laufe eines Jahres werden Features wie das PSI-Subsystem (Pressure Stall Information) zur Analyse von Informationen über die Wartezeit für den Erhalt verschiedener Ressourcen (CPU, Speicher, I/O) und das BinderFS-Pseudodateisystem für die Interprozesskommunikation entwickelt Der Mechanismus wurde von der Android-Kernel-Edition auf den Haupt-Linux-Kernel übertragen. Binder und energieeffizienter Taskplaner EAS (Energy Aware Scheduling). Zukünftig soll Android vom spezifischen SchedTune-Scheduler auf das neue in ARM entwickelte UtilClamp-Subsystem übertragen werden, das auf cgroups2 und Standard-Kernel-Mechanismen basiert.

Google arbeitet daran, einen regulären Linux-Kernel in Android zu verwenden

Erinnern wir uns daran, dass der Kernel für die Android-Plattform bisher mehrere Vorbereitungsphasen durchlaufen hat:

  • Basierend auf den wichtigsten LTS-Kerneln (3.18, 4.4, 4.9 und 4.14) wurde ein Zweig des „Android Common Kernel“ erstellt, in den Android-spezifische Patches übertragen wurden (zuvor erreichte der Umfang der Änderungen mehrere Millionen Zeilen, seit kurzem jedoch). die Änderungen wurden auf mehrere tausend Zeilen Code reduziert).
  • Basierend auf dem „Android Common Kernel“ bildeten Chiphersteller wie Qualcomm einen „SoC Kernel“, der Add-ons zur Unterstützung der Hardware enthielt.
  • Basierend auf dem SoC-Kernel haben Gerätehersteller den Gerätekernel erstellt, der Änderungen im Zusammenhang mit der Unterstützung zusätzlicher Geräte, Bildschirme, Kameras, Soundsysteme usw. enthielt.

Google arbeitet daran, einen regulären Linux-Kernel in Android zu verwenden

Im Wesentlichen verfügte jedes Gerät über einen eigenen Kernel, der nicht auf anderen Geräten verwendet werden konnte. Dieses Schema erschwert die Implementierung von Updates zur Beseitigung von Schwachstellen und den Übergang zu neuen Kernel-Zweigen erheblich. Beispielsweise wird das neueste Pixel 4-Smartphone, das im Oktober veröffentlicht wurde, mit dem Linux-Kernel 4.14 ausgeliefert, der vor zwei Jahren veröffentlicht wurde. Teilweise versuchte Google durch die Förderung des Systems die Wartung zu vereinfachen Treble, wodurch Hersteller universelle Hardware-Unterstützungskomponenten erstellen können, die nicht an bestimmte verwendete Android-Versionen und Linux-Kernel-Releases gebunden sind. Treble ermöglicht es, vorgefertigte Updates von Google als Grundlage zu nutzen und in diese gerätespezifische Komponenten zu integrieren.


Source: opennet.ru

Kommentar hinzufügen