Warum kann Android immer noch nicht als reguläres Betriebssystem installiert werden?

11

Gibt es technische oder andere Gründe, warum Android immer noch eine Firmware und kein Betriebssystem ist, das einfach und ohne großen Aufwand installiert werden kann?

Warum gibt es kein universelles Image, das geeignete Treiber (Kernelmodule) erkennen, NAND auf standardmäßige Weise partitionieren und den Bootloader so konfigurieren könnte, dass die aktualisierte Betriebssystemversion gestartet wird?

Was hindert Google daran, ein echtes (weniger Firmware-ähnliches) Betriebssystem (ein Betriebssystem für kleine ARM-, x86- usw. Geräte) zu erstellen?

Alex Bolotov
quelle
1
Es ist erwähnenswert, dass dies nicht nur für Android gilt. Andere Betriebssysteme, die sich auf ARM-Geräte konzentrieren (sogar Microsoft Windows 8 RT), können nicht einfach auf einem anderen ARM-Computer installiert werden, sondern werden eher wie Firmware behandelt.
GAThrawn
Es sind die Header-Dateien: theregister.co.uk/2011/03/29/…
Thufir
Siehe auch dies: android.stackexchange.com/questions/205072/…
Irfan Latif

Antworten:

11

Was hindert Google daran, ein echtes Betriebssystem zu erstellen (ein Betriebssystem für kleine ARM-, x86- usw. Geräte)?

Es ist ein "echtes" Betriebssystem.

Warum gibt es kein universelles Bild, das geeignete Treiber erkennen könnte?

Wie erkennt man nicht vorhandene Treiber? Jemand muss sie schreiben. Im Gegensatz zu PCs variiert die Telefonhardware stark, vor allem, weil es für Endbenutzer nicht möglich ist, aus Teilen und Größenbeschränkungen eigene Hardware zu erstellen. Kundenspezifische Teile anstelle von austauschbaren und speziellen Chipsätzen erfordern sehr spezielle Treiber, und ein Betriebssystem kann nicht nur Standardtreiber ausliefern. Stellen Sie sich auch das Aufblähen vor - jemand mit einem billigen HTC-Telefon mit 20 MB für Apps hat keinen Platz, um Treiber zu hosten, die er nicht benötigt.

und konfigurieren Sie den Bootloader so, dass die aktualisierte Betriebssystemversion gestartet wird

Bootloader variieren auch stark zwischen den Geräten. Sie müssten alle Hersteller an Bord holen, um einen einzigen zu verwenden, und es ist unwahrscheinlich, dass Hersteller ihre Macht in diesem Bereich aufgeben wollen.

Matthew Read
quelle
3
… Aber sie könnten die Distribution mit einem sehr modularen Kernel durchführen und dann nur das benötigte Material installieren. Die PC-Hardware variiert auch von Pentium mit fehlerhafter CMD640-IDE bis Core i7 mit USB3. Sie könnten ein Installationsprogramm erstellen, das VendorISs: DeviceIDs von einem vorhandenen Betriebssystem auf dem Gerät liest und dann nur den Kernel auf QEMu kompiliert und ihn dann einfach mit neuen Dingen auf das Gerät überträgt. Ich denke, Sie haben Recht, auch wenn es einer Person möglich ist, mit menuconfig nur einen Kernel zu erstellen, der für ein bestimmtes Gerät ausreichend ist. Dies kann von keinem Skript automatisch automatisch durchgeführt werden.
Alex Bolotov
1
@OleksandrBolotov: Beachten Sie, dass der Linux-Kernel auch eine große Anzahl von Open Source-Treiberimplementierungen enthält, die beim Ausführen eines Builds kompiliert werden. Die überwiegende Mehrheit der von Mobilgeräten verwendeten Treiber ist proprietär. Obwohl Sie Android für jedes Gerät mit genügend Zeit aus dem Quellcode erstellen können, müssen Sie alle Treiber implementieren. Darüber hinaus verstößt Google möglicherweise gegen Vereinbarungen über geistiges Eigentum, wenn sie dies selbst tun (ich weiß es nicht genau, aber es kann durchaus in ihren Verträgen mit verschiedenen Herstellern enthalten sein).
Eldarerathis
2
@OleksandrBolotov Ich stimme sicherlich zu, dass sie etwas tun könnten , um die Probleme zu mildern, aber wir können nur annehmen, dass die Probleme der Grund sind, warum sie es nicht tun;). Ich denke, weitere Spekulationen würden unseren Rahmen sprengen.
Matthew Read
2
Ja, es ist ein Treiberproblem. Jemand muss die Fahrer machen.
Bryan Denny
Aufgrund des Designs oder des perfekten Szenarios an sich würde der Kernel alle Treiber enthalten, während das Android-Betriebssystem universell ist. Beide könnten separat oder zusammen in einem Bundle als Standard-Firmware geflasht werden (was wir heute häufig sehen). Wenn der Kernel vom Betriebssystem getrennt wäre, könnten wir dann kernelloses AOSP direkt auf ein Gerät flashen , dessen Herstellerkern zuerst geflasht wurde? Vielleicht existiert das schon? Idk
Aaron Gillion
3

Um das zu liefern, wonach Sie zu fragen scheinen, müsste dem Betriebssystem eine zusätzliche Abstraktionsebene (oder eine robustere) hinzugefügt werden, damit es weniger eng mit der Hardware verbunden ist. Das Hinzufügen würde mehr Speicher erfordern und mehr CPU-Zyklen auf einer Plattform verbrauchen, die wenig von beidem übrig hat.

Bis auf weiteres angehalten.
quelle
2

Googles laufender Rechtsstreit mit Oracle!

Google hat einen Plan, um Android auf PCs zu bringen - aber es ist nicht ganz das, was Sie sich vorstellen: Google möchte die Android-Ausführungsumgebung zu Chrome hinzufügen. Android könnte - mit viel Arbeit - auf PCs installiert werden, aber wenn es stattdessen zu Chrome gebracht wird, kann es problemlos auf 25% aller Computer sofort bereitgestellt werden (25% entsprechen dem ~ Marktanteil von Chrome).

Wenn Sie mir nicht glauben, schauen Sie sich die E-Mail mit den rauchenden Waffen an, mit der Google derzeit kämpft, um sich aus der Klage herauszuhalten. Sie bezieht sich darauf, dass Google Java für Chrome benötigt.

Ich schlage nicht vor, dass Google Java plötzlich fallen lässt, wenn sie die Klage verlieren - sie sind viel zu weit für Java engagiert, um dies zu tun -, aber sie möchten zumindest wissen, wie die Bedingungen für die Verwendung von Java vorher aussehen werden Sie unternehmen einen Schritt, der ihre Abhängigkeit davon erheblich erhöhen würde.

Tom
quelle
1
Google leidet nur unter schlechten Entscheidungen, die vor langer Zeit von Android Inc. getroffen wurden. Das war eine schreckliche Idee, Java für die App-Entwicklung unter NEUEM Betriebssystem zu verwenden. War es nicht offensichtlich genug, dass Java nur eine proprietäre Falle ist und sie es nicht einmal brauchen, um einen Nicht-Java-VM-Bytecode für Dalvik zu erstellen? Ich denke, sie haben nur Verräter im Management, die alles erklären.
Alex Bolotov
1
Es scheint, dass das Hinzufügen der Android-Ausführungsumgebung zu Chrome nicht so schwierig sein könnte, wenn dies noch nicht erledigt ist ... bluestacks.com - Android-Apps, die auf einem Windows-Desktop ausgeführt werden!
Captain Toad
2
Haben Sie Beweise für all das oder spekulieren Sie nur wild?
Dan Hulme
Sicherlich hat sich viel geändert, seit ich diese Antwort geschrieben habe. Am wichtigsten war, dass Pachai Rubin und die damit verbundene Neuorganisation bei Google ersetzte. Danach schienen sich alle Anzeichen zu ändern, und IO13 war viel anders als IO12: Offensichtlich pushen sie Chrome jetzt als eigenständige mobile Plattform, sodass ich nicht mehr glaube, dass sie Android auf Chrome bringen werden.
Tom
1

Andere Leute als Google arbeiten bereits daran, es auf die x86-Plattform zu portieren. Wenn Sie sich das Android-x86-Projekt ansehen, sehen Sie verschiedene verfügbare Builds, allerdings für eine begrenzte Anzahl von Hardwaregeräten. Ich habe versucht, einige der Bilder herunterzuladen und sie in VirtualBox auf meinem Computer (CrunchBang Linux basierend auf Debian auf Dell Latitude D520) zum Laufen zu bringen, konnte sie jedoch nicht laden. Möglicherweise können Sie dies jedoch. GL!

vyse
quelle