Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Gibt es einen Unterschied zwischen Android und Linux?

Gibt es einen Unterschied zwischen Android und Linux?

青灯夜游
青灯夜游Original
2021-11-23 10:18:2013525Durchsuche

Es gibt Unterschiede zwischen Android und Linux: 1. Android-Anwendungen werden mit JAVA entwickelt und können auf dem Android-System über die virtuelle JAVA-Maschine ausgeführt werden, während Linux-Anwendungen mit „C/C++“ entwickelt werden und auf dem Android-System ausgeführt werden können die Form des Maschinencodes auf dem Kernelsystem. 2. Es gibt Unterschiede in der zugrunde liegenden Treibersoftware zwischen den beiden.

Gibt es einen Unterschied zwischen Android und Linux?

Die Betriebsumgebung dieses Tutorials: CentOS 6-System, Dell G3-Computer.

Als aktuelle Mainstream-Betriebssysteme werden Android und Linux sowohl in Verbraucherprodukten als auch in industriellen Steuerungsbereichen häufig verwendet. Es wird gesagt, dass das Android-System aus dem Linux-System hervorgegangen ist. Ist Android also eine Art Linux? Lassen Sie uns nun über die Gemeinsamkeiten und Unterschiede zwischen Android- und Linux-Systemen sprechen.
Gibt es einen Unterschied zwischen Android und Linux?

1. Was die beiden gemeinsam haben

Android ist ein System, das auf dem Linux-Kernel basiert. Die Kernsystemdienste von Android- und Linux-Systemen basieren alle auf dem Linux-Kernel, z. B. Sicherheit, Kernelverwaltung, Prozessverwaltung, Netzwerkstapel, Treibermodell usw. Der Linux-Kernel dient auch als Abstraktionsschicht zwischen der Hardware und der Software der beiden. Er verbirgt spezifische Hardwaredetails und bietet einheitliche Dienste für die Anwendungsentwicklung der oberen Ebene System und Android Oberflächlich betrachtet handelt es sich um zwei verschiedene Betriebssysteme, aber Android ist im Wesentlichen immer noch ein Linux-System, aber Google hat es maßgeschneidert und angepasst.

Darüber hinaus führt Android im Vergleich zu Linux-Systemen eine Java Virtual Machine (JVM) namens Dalvik (nach Version 4.4 in ART umbenannt) aus. Daher können mit JAVA entwickelte Android-Anwendungen über JAVA virtualisiert werden. Die Maschine läuft auf Android System. Linux-Anwendungen werden mit C/C++ entwickelt und können in Form von Maschinencode auf dem Kernelsystem ausgeführt werden. Die Unterschiede im System-Framework zwischen den beiden sind in der Abbildung dargestellt. 3. Unterschiede zwischen der zugrunde liegenden Treibersoftware für Linux und Android Treiber, Bluetooth-Treiber, Kameratreiber, Speicherkartentreiber, Binder IPC-Treiber usw.

Gibt es einen Unterschied zwischen Android und Linux?Um die geistigen Eigentumsrechte der Hardwarehersteller zu schützen, fügt das Android-System außerdem eine HAL-Schicht hinzu, die den spezifischen Implementierungsteil des Treibers extrahieren und zur Implementierung an HAL senden kann, wodurch das Risiko von Open Source vermieden wird Hardwaretreiber, also ist der Android-Treiber in zwei Teile unterteilt, ein Teil wird in den Kernel geschrieben und der andere Teil wird in die HAL-Schicht geschrieben.

Zusätzlich zur Entwicklung des zugrunde liegenden Treibers muss Android den Treiber auch gemäß den JNI-Regeln in eine JNI-Layer-Schnittstelle kapseln, damit die Anwendung (JAVA-Programm) den Kernel-Treiber über JNI aufrufen kann. Nehmen Sie als Beispiel den Anzeigetreiber Framebuffer, wie in der Abbildung gezeigt.

Anzeigetreibermodell des Linux-Systems

Gibt es einen Unterschied zwischen Android und Linux?Anzeigetreibermodell des Android-Systems

(1) Linux-System: Der Framebuffer-Treiber muss nur in den Linux-Kernel kompiliert und die entsprechenden Lese- und Schreibvorgänge ausgeführt werden Schreiben wird beiseite gelegt, ioctl und andere Schnittstellen können von der Host-Computeranwendung aufgerufen werden. Gibt es einen Unterschied zwischen Android und Linux?(2) Android-System

: Der Framebuffer-Treiber kompiliert zunächst den Treiber für einfache Lese- und Schreibvorgänge für Hardwareregister in den Kernel, schreibt dann den Treiber für die spezifische Hardwareimplementierung in die HAL-Schicht und kapselt ihn entsprechend als JNI-Schnittstelle gemäß den JNI-Spezifikationen, kann vom Host-Computer-Anwendungsprogramm aufgerufen werden.

4. Der Unterschied zwischen Linux- und Android-Anwendungsschichtsoftware

Aber Android-Anwendungen sind in Java-Sprache geschrieben und können die in C-Sprache implementierte Systemschnittstelle nicht direkt aufrufen, während im Linux-System die C-Sprache zum Aufrufen verwendet werden kann Die Systemschnittstelle für die Kommunikation Der Kernel kommuniziert, daher gibt es im Android-System ein Konzept namens JNI, mit dem die Informationsinteraktion zwischen Java- und C/C++-Programmen realisiert wird.

(1) Wie Android-Anwendungen auf den Android-Kernel-Treiber zugreifen:

Gibt es einen Unterschied zwischen Android und Linux?

APP –>JNI –>Android-Kernel-Treiber

Gibt es einen Unterschied zwischen Android und Linux?

APP –>Hardware Access Service –>Android-Kernel-Treiber

(2) So greifen Linux-Anwendungen auf Linux-Treiber zu Video-Tutorial

"

Das obige ist der detaillierte Inhalt vonGibt es einen Unterschied zwischen Android und Linux?. 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