Auf der letzten Linux Plumbers 2019-Konferenz hat Google
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.
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.
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.
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
Source: opennet.ru