Welche Änderungen wurden im Linux-Kernel vorgenommen, um ihn zu einem Android-Kernel zu machen? Mit dieser Frage meine ich, was sind die Unterschiede zwischen Linux-Kernel und Android-Kernel?
Ich denke, diese Android-Quelle ist eine großartige Dokumentation, um sie zu verstehen.
Und hier ist eine Liste der Änderungen, die vom Mainline-Kernel für den Android-Kernel 4.14 vorgenommen wurden.
Zu den größten Features gehören:
Unterschiede zu LTS
Im Vergleich zu LTS (4.14.0) weist der gemeinsame Android-Kernel 355 Änderungen, 32266 Einfügungen und 1546 Löschungen auf (Stand: Februar 2018).
Die Unterschiede ändern sich von Version zu Version (sowohl von Linux als auch von Android), und der genaue Kernel ist für jedes Gerät unterschiedlich. Ein Kernel für Android ist ein Mainstream-Linux-Kernel mit zusätzlichen Treibern für das spezifische Gerät und anderen zusätzlichen Funktionen, wie z. B. verbesserte Energieverwaltung oder schnellere Grafikunterstützung.
Viele Funktionen im Android-Kernel werden später zu Upstream-Linux hinzugefügt, nachdem die Open-Source-Community sie akzeptiert (und vielleicht geändert) hat, aber andere werden nie upstreamed, entweder weil sie für die Linux-Kernel-Entwickler nicht akzeptabel sind oder weil sie ' gelten nur für Android oder bestimmte Hardware.
Abgesehen von den gerätespezifischen Unterschieden und Wakelocks, die Dan Hulme und Lie Ryan erwähnen, entfernte Android System V IPC-Funktionen (Nachrichtenwarteschlangen, gemeinsam genutzte Speichersegmente, Semaphore), die zu Ressourcenlecks führen könnten ( http://www.kandroid.org/ndk /docs/system/libc/SYSV-IPC.html ). Dies ist wahrscheinlich nur eine Frage der Konfiguration des Kernel-Builds. Auch der Android-IPC der Wahl namens Binder hat eine gewisse Unterstützung im Kernel, die meines Wissens nicht in Standard-Linux-Kerneln enthalten ist.
GAThrawn