Android basiert auf Linux, aber was bedeutet das?
Android basiert möglicherweise auf Linux, jedoch nicht auf dem Linux-System, das Sie auf Ihrem PC verwendet haben. Sie können keine Android-Apps auf typischen Linux-Distributionen ausführen, und Sie können keine Linux-Programme ausführen, die Sie unter Android kennen.
Linux ist das Kernstück von Android, aber Google hat nicht die typische Software und Bibliotheken hinzugefügt, die auf einer Linux-Distribution wie Ubuntu zu finden wären. Das macht den Unterschied.
"Linux" vs. Der Linux-Kernel
Der große Unterschied hier ist, was wir unter Linux verstehen. Die Leute verwenden den Begriff "Linux", um viele verschiedene Dinge zu bedeuten. In seiner einfachsten Form bedeutet Linux den Linux-Kernel. Ein Kernel ist der Kern eines Betriebssystems.
Wir bezeichnen Linux-Distributionen auch als „Linux“. Linux-Distributionen sind jedoch nicht nur der Linux-Kernel. Sie enthalten viele andere Softwarekomponenten, z. B. die GNU-Shell-Dienstprogramme, den Xorg-Grafikserver, den GNOME-Desktop, den Firefox-Webbrowser usw. Deshalb meinen einige Leute, dass der Begriff GNU / Linux für "Linux-Distributionen" wie Ubuntu, Mint, Debian, Fedora, Arch, openSUSE und andere verwendet werden sollte.
Android nutzt den Linux-Kernel unter der Haube. Da Linux Open Source ist, können die Android-Entwickler von Google den Linux-Kernel an ihre Bedürfnisse anpassen. Linux gibt den Android-Entwicklern zunächst einen vorgefertigten, bereits gepflegten Betriebssystemkernel, damit sie keinen eigenen Kernel schreiben müssen. Auf diese Weise werden viele verschiedene Geräte gebaut. Beispielsweise verwendet die PlayStation 4 den Open-Source-FreeBSD-Kernel, während die Xbox One den Windows NT-Kernel verwendet, der in modernen Windows-Versionen zu finden ist.
Sie sehen sogar die Linux-Kernel-Version, die auf Ihrem Gerät ausgeführt wird, unter About phone oder About tablet in den Android-Einstellungen.
Die Unterschiede
Es gibt einige Debatten darüber, ob Android als "Linux-Distribution" gilt. Es verwendet den Linux-Kernel und andere Software, enthält jedoch nicht viel der Software, die Linux-Distributionen normalerweise enthalten.
Wenn Sie ein Android-Gerät booten, wird der Linux-Kernel wie bei einer Linux-Distribution geladen. Die meisten anderen Softwareprogramme unterscheiden sich jedoch. Android enthält weder die GNU C Library (glibc), die in Standard-Linux-Distributionen verwendet wird, noch alle GNU-Bibliotheken, die Sie in einer typischen Linux-Distribution finden würden. Es enthält auch keinen X-Server wie Xorg, daher können Sie keine grafischen Standard-Linux-Anwendungen ausführen.
Anstatt typische Linux-Anwendungen auszuführen, verwendet Android die virtuelle Maschine von Dalvik, um im Wesentlichen in Java geschriebene Anwendungen auszuführen. Diese Anwendungen richten sich an Android-Geräte und die Anwendungsprogrammierschnittstellen (Application Programming Interfaces, APIs) von Android.
Warum Sie keine Desktop Linux-Software unter Android ausführen können
Da Android keinen grafischen X-Server oder nicht alle Standard-GNU-Bibliotheken enthält, können Sie Linux-Anwendungen nicht einfach auf Android ausführen. Sie müssen Anwendungen ausführen, die speziell für Android geschrieben wurden.
Android hat eine Shell, wie Sie sie unter Linux finden. Es gibt keine Möglichkeit, sofort darauf zuzugreifen. Sie können jedoch eine App wie den Android Terminal Emulator installieren, um Zugriff auf diese Terminalumgebung zu erhalten.
Standardmäßig können Sie hier nicht viel tun. Das Terminal wird weiterhin in einer eingeschränkten Umgebung ausgeführt, sodass Sie keine volle Root-Shell erhalten können, ohne Ihr Android-Gerät zu rooten. Viele Standardbefehle, die Sie möglicherweise benötigen, sind nicht verfügbar. Aus diesem Grund installieren Benutzer, die ihr Gerät rooten, in der Regel die BusyBox-Anwendung, mit der viele Befehlszeilenprogramme installiert werden. Diese Dienstprogramme werden von Anwendungen verwendet, um Aufgaben mit ihrem Root-Zugriff auszuführen.
Warum können Sie Android-Software nicht auf Desktop Linux ausführen?
Die virtuelle Maschine von Dalvik ist in Linux nicht enthalten. Daher können keine Android-Apps ausgeführt werden. Die virtuelle Maschine von Dalvik und die gesamte andere Android-Software können nicht einfach auf einem Desktop-Linux-Computer abgelegt werden. Sie müssen beispielsweise mehr Arbeit damit leisten, dass Android-Apps über Xorg in einem Fenster auf einem Standard-Desktop ausgegeben werden. Theoretisch könnten Entwickler mit genügend Arbeit Dalvik unter Desktop-Linux zum Laufen bringen, sodass Desktop-Linux-Benutzer Android-Apps auf ihren Desktops ausführen können. Das nun ruhende Ubuntu für Android-Produkt versuchte so etwas zu tun, indem Ubuntu und Android in ein Telefon integriert wurden und diese Android-Apps auf Ubuntus Desktop ausgeführt werden konnten.
BlueStacks und andere Android-App-Emulatoren versuchen dies für Windows und Mac. Sie führen Android auf virtueller Hardware in einer virtuellen Maschine aus, sodass sie Android-Apps - mit einem Leistungsabfall - auf Ihrem Desktop ausführen können. Diese Lösungen haben sich jedoch nicht als sehr beliebt erwiesen.
Googles Chrome OS basiert auch auf Linux. Wie Android bietet Chrome OS kein Standard-X-Window-System. Daher können Linux-Standardanwendungen nicht unter Chrome OS ausgeführt werden. Im Gegensatz zu Android ist Chrome OS den Standard-Desktop-Linux-Distributionen näher. Sie können den Entwicklermodus verwenden, um die fehlende Linux-Desktopsoftware zu installieren.
Bildnachweis: ranti on Flickr, Anatomie und Physiologie von Android