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?
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?
Antworten:
Die Unterschiede variieren 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 jeweilige Gerät und weiteren zusätzlichen Funktionen, z. B. verbesserter Energieverwaltung oder schnellerer Grafikunterstützung.
Viele Funktionen des Android-Kernels werden später zu Linux hinzugefügt, nachdem die Open-Source-Community sie akzeptiert (und möglicherweise geändert) hat. Andere werden jedoch nie übertragen, entweder weil sie für die Linux-Kernel-Entwickler nicht akzeptabel sind oder weil sie Dies gilt nur für Android oder für bestimmte Hardware.
Neben den gerätespezifischen Unterschieden und der Aktivierungssperre, die Dan Hulme und Lie Ryan erwähnen, hat Android die IPC-Funktionen von System V (Nachrichtenwarteschlangen, Segmente mit gemeinsam genutztem Speicher, Semaphoren) entfernt, die zu Ressourcenlecks führen können ( 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, genannt Binder, hat Unterstützung im Kernel, die meines Wissens nicht in Standard-Linux-Kerneln enthalten ist.
Ich denke, diese Android-Quelle ist eine großartige Dokumentation zum Verständnis.
Und hier ist eine Liste der Änderungen, die seit dem Mainline-Kernel für den Android-Kernel 4.14 vorgenommen wurden.
Die größten Funktionen umfassen:
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).