Heim  >  Artikel  >  System-Tutorial  >  Analysieren Sie die Funktionsaktualisierungen des Android-Kernels und des Standard-Linux-Kernels

Analysieren Sie die Funktionsaktualisierungen des Android-Kernels und des Standard-Linux-Kernels

WBOY
WBOYOriginal
2024-06-03 11:53:511109Durchsuche

Android系统内核剖析

[Zusammenfassung] Analysieren Sie den Ordner der Android-Plattformsystemarchitektur, analysieren Sie den neuesten Android-Quellcode, vergleichen Sie ihn mit dem Standard-Linux-Kernel-Quellcode, analysieren Sie die Funktionsaktualisierungen des Android-Kernels im Detail und diskutieren Sie die Unterschiede zwischen den Der Android-Kernel und der Standard-Linux-Kernel wurden analysiert und Android wurde unter verschiedenen Kerneln positioniert. Außerdem wurde die Übernahme und Kompilierung des Android-Kernels in der Ubuntu-Umgebung eingeführt.

[Schlüsselwörter]Android; Linux; Kompilierung

Chinesische Bibliotheksklassifizierungsnummer: G354.3 Dokumentcode: A Artikelnummer: 1009-914X (2013) 33-0119-01

1. Übersicht

Mit der rasanten Entwicklung der eingebetteten Technologie wurden die Betriebsgeschwindigkeit und die integrierten Funktionen der intelligenten Plattform von China Unicom erheblich verbessert. Darüber hinaus nutzte die von Google angeführte Open Handset Alliance OHA die Situation und brachte 2008 die Android China Unicom-Terminalplattform auf den Markt. Android ist eine offene und kostenlose China Unicom-Terminalplattform [1]. Es hat das Monopol des Symbian-Betriebssystems auf herkömmlichen Smartphone-Plattformen gebrochen. Gleichzeitig haben seine Plattformvorteile auch die Funktionalität verschiedener Handheld-Geräte erheblich bereichert.

2. Android-Systemarchitektur

Android ist ein Open-Source-Betriebssystem für Mobiltelefone, das auf der von Google entwickelten Linux-Plattform basiert. Es handelt sich um eine Terminalplattform von China Unicom, die die gesamte für den Betrieb von China Unicom-Telefonen erforderliche Software enthält Anwendungen.

linux内核android_内核管理器_内核稳定

Die Android-Systemarchitektur besteht von unten nach unten aus den folgenden vier Ebenen [2]: Linux-basiertes Kernelmodul, Laufzeitbibliothek und andere Bibliotheken, Anwendungsframework und Anwendung.

Die erste Ebene: Linux-Betriebssystem und Android-Systemerweiterung, implementiert durch C-Sprache.

Die zweite Schicht: Systembibliotheksschicht und Linux-Software für die Android-Laufzeitumgebung, implementiert durch C/C++.

Die dritte Ebene: Android-Anwendungsframework Vor jeder Anwendung verbirgt sich eine Reihe von Diensten und Systemen.

Stufe 4: Android-Apps

Die Android-Anwendungsschicht besteht aus allen Anwendungen, die auf Android-Geräten ausgeführt werden. Neben Systemanwendungen wie Anrufen, Textnachrichten und Kontakten umfasst sie auch andere Anwendungen von Drittanbietern, die anschließend auf dem Gerät installiert werden. 3. Android-Kernel-Analyse

内核管理器_linux内核android_内核稳定

Die Rolle des 2.1-Kernels im Betriebssystem

Android basiert auf dem Linux-Betriebssystem und besteht aus vier Hauptteilen: Hardware, Systemkernel, Systemdienste und Anwendungen. Unter ihnen ist der Kernel der Kernteil. Seine Hauptfunktion besteht darin, mit der Computerhardware zu interagieren, die Programmiersteuerung und Socket-Operationen der Hardware zu realisieren, den Zugriff auf Hardwareressourcen zu planen und gleichzeitig eine Zwischenausführungsumgebung und Virtualisierung bereitzustellen Hardware zu Anwendungen-Buchse. Zu den Hauptfunktionen gehören: Interrupt-Serviceroutine, Prozessplaner, Videospeicherverwaltung des Prozessadressraums und Kommunikation zwischen Prozessen.

2.2Android-Kernel

Um den Android-Kernel zu vergleichen und zu analysieren, haben wir eine Android-Kernel-Kompilierungs- und Entwicklungsplattform auf dem Ubuntu-Betriebssystem erstellt und die neueste Android-Kernel-Codeversion JellyBean über das Repo heruntergeladen.

Nach einem detaillierten Vergleich mit dem Standard-Linux-Kernel-Quellcode kann festgestellt werden, dass es Unterschiede zwischen dem Android-Kernel und dem Standard-Linux-Kernel hinsichtlich des Dateisystems, des prozessübergreifenden Kommunikationsmechanismus, der Speicherverwaltung usw. gibt.

(1) Dateisystem

内核稳定_linux内核android_内核管理器

Der Android-Kernel hat das YAFFS2-Dateisystem reduziert, das im Standard-Linux-Kernel nicht übernommen wird.

(2) Mechanismus zur Kommunikation zwischen Prozessen

Binder ist ein prozessübergreifender Kommunikationsmechanismus (Linux-Kernel-Android), obwohl er die RPC-Funktion (Remote Procedure Call) bereitstellt. im Der Binder-Mechanismus des Android-Systems besteht aus einer Systemkomponente, nämlich Client, Server, ServiceManager und Binder-Treiber, die im Benutzerbereich ausgeführt werden, und der Binder-Treiber wird im Kernelbereich ausgeführt.

(3) Videospeicherverwaltung

Im Videospeicher-Verwaltungsmodul verwendet der Android-Kernel einen Low-Level-Kernel, der im Standard-Linux-Kernel nicht verwendet wird

Einlagenverwaltungsstrategie. Das Android-System verwendet einen Mechanismus namens LMK (LowMemoryKiller), der Prozesse nach ihrer Wichtigkeit klassifiziert und gruppiert. Wenn nicht genügend Videospeicher vorhanden ist, wird der Prozess in der Gruppe der untersten Ebene beendet.

4. Android-Kernel-Erfassung und -Kompilierung

Im Folgenden wird das Betriebssystem Ubuntu13.04 als Beispiel verwendet, um zu erklären, wie es unter dem Ubuntu13.04-System erstellt wird

Android-Kernel-Kompilierungs- und Entwicklungsplattform. Um eine Android-Kernel-Kompilierungsumgebung unter Ubuntu zu erstellen, sind die spezifischen Schritte wie folgt:

(1) Entwerfen Sie die Systemumgebung, Liste der erforderlichen Softwarepakete Flex, Bison, Gperf, libsdl-dev, libesd0-

dev, libwxgtk2.6-dev (optional), build-essential, zip, curl; (2) Installieren Sie Version 1.7 von JDK; (4) Erstellen Sie einen bin-Ordner im Hauptdateiverzeichnis und fügen Sie ihn hinzu zu Unter den Umgebungsvariablen; (5) Laden Sie das Repo-Skript herunter und ändern Sie seine Attribute in die ausführbare Datei „curlhttp:///repo>~/bin/repochmoda+x~/bin/repo;“ (6) Erstellen Sie ein Verzeichnis zum Speichern des Quellcodes mkdircoredroidcdcoredroid ( 7) Holen Sie sich den Android-Kernel-Code: gitclonegit:///kernel/common.git

linux内核android_内核管理器_内核稳定Nach den oben genannten Schritten wird die neueste Version des Android-Kernels in den Ordner coredroid heruntergeladen. Nachdem die Make-Kompilierung abgeschlossen ist, wird die zImage-Datei generiert. Sie können den Simulator verwenden, um cdmydroid/out/cupcake/out/target/product/genericemulator-imagesystem.img-datauserdata.img-ramdiskramdisk.img-kernel~ zu testen und auszuführen /coredroid/common/arch/arm/ boot/zImage

5. Fazit

Der Android-Kernel ist vom Standard-Linux-Kernel optimiert. Er übernimmt verschiedene Vorteile des Linux-Kernels und behält die Hauptstruktur des Standard-Linux-Kernels bei. Gleichzeitig hat Android entsprechend den Anforderungen der China Unicom-Plattform Änderungen am Dateisystem, der Speicherverwaltung, dem prozessübergreifenden Kommunikationsmechanismus, der Energieverwaltung und anderen Aspekten vorgenommen, relevante Treiber und notwendige neue Funktionen hinzugefügt und ist mit den meisten kompatibel Optimierter eingebetteter Linux-Betrieb: Android behält weitgehend die Grundstruktur von Standard-Linux bei. Aus diesem Grund verfügt das Android-System über ein breiteres Anwendungsspektrum und eine stärkere Skalierbarkeit.

Referenzen

[1]CodeHome.Android-AnOpenHandsetAllianceProject.[EB/OL]http:///android/what-is-android.

[2] Gong Lei, Zhou Cong. Entwicklung und Forschung der China Unicom-Terminalanwendung basierend auf Android [M]. [3]Zhao Jiong. Vollständige Anmerkung zum Linux-Kernel[M]. [4] Chen Lijun. Analyse und Anwendung des Linux-Kernels[J].

Das obige ist der detaillierte Inhalt vonAnalysieren Sie die Funktionsaktualisierungen des Android-Kernels und des Standard-Linux-Kernels. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn