Pourquoi Android ne peut-il toujours pas être installé en tant que système d'exploitation normal?

11

Y a-t-il des raisons techniques ou autres pour lesquelles Android est toujours un micrologiciel et non un système d'exploitation qui peut être simplement installé sans trop de tracas?

Pourquoi il n'y a pas d'image universelle qui pourrait détecter les pilotes appropriés (modules du noyau), partitionner la NAND de manière standard et configurer le chargeur de démarrage pour démarrer la version du système d'exploitation mise à jour?

Qu'est-ce qui empêche Google de créer un véritable système d'exploitation (moins semblable à un micrologiciel) (un système d'exploitation pour les petits appareils ARM, x86, etc.)?

Alex Bolotov
la source
1
Il convient de noter que cela n'est pas exclusif à Android, d'autres systèmes d'exploitation qui se concentrent sur les appareils ARM (même Windows 8 RT de Microsoft) ne peuvent pas simplement être installés sur n'importe quelle autre machine ARM, mais sont traités plus comme des micrologiciels.
GAThrawn
Ce sont les fichiers d'en-tête: theregister.co.uk/2011/03/29/…
Thufir
Voir aussi ceci: android.stackexchange.com/questions/205072/…
Irfan Latif

Réponses:

11

Qu'est-ce qui empêche Google de créer un véritable système d'exploitation (un système d'exploitation pour les petits appareils ARM, x86, etc.)?

C'est un "vrai" OS.

Pourquoi il n'y a pas d'image universelle qui pourrait détecter les pilotes appropriés

Comment détectez-vous les pilotes qui n'existent pas? Quelqu'un doit les écrire. Contrairement aux PC, le matériel du téléphone varie énormément, principalement parce qu'il n'est pas possible pour les utilisateurs finaux de construire le leur à partir de contraintes de pièces et de taille. Des pièces personnalisées au lieu de pièces interchangeables et des chipsets spéciaux signifient que des pilotes très spécifiques sont nécessaires, et un système d'exploitation ne peut pas simplement expédier des pilotes par défaut. Imaginez aussi le ballonnement - quelqu'un avec un téléphone HTC bon marché avec 20 Mo pour les applications n'a pas de place pour héberger les pilotes dont il n'a pas besoin.

et configurer le chargeur de démarrage pour démarrer la version du système d'exploitation mise à jour

Les chargeurs de démarrage varient également considérablement entre les appareils; il faudrait impliquer tous les fabricants pour en utiliser un seul, et il est peu probable que les fabricants veuillent abandonner leur pouvoir dans ce domaine.

Matthew Read
la source
3
… Mais ils pourraient faire de la distribution avec un noyau très modulaire puis installer les éléments nécessaires. Le matériel PC varie également du pentium avec buggy CMD640 IDE au Core i7 avec usb3. Ils pourraient faire un programme d'installation qui lit VendorISs: DeviceIDs à ​​partir du système d'exploitation existant sur l'appareil, puis compile simplement le noyau sur QEMu, puis le transfère simplement sur l'appareil avec de nouvelles choses. Je suppose que vous avez raison même s'il est possible pour une personne d'utiliser simplement menuconfig pour créer un noyau suffisamment bon pour un périphérique spécifique, ce qui peut difficilement être fait automatiquement par un script.
Alex Bolotov
1
@OleksandrBolotov: Gardez à l'esprit que le noyau Linux contient également un grand nombre d'implémentations de pilotes open source qui sont compilées lorsque vous exécutez une génération. La grande majorité des pilotes utilisés par les appareils mobiles sont propriétaires, donc même si vous pouvez certainement créer Android à partir de la source pour n'importe quel appareil avec suffisamment de temps, vous devrez implémenter tous les pilotes. De plus, Google peut ne pas respecter les accords de propriété intellectuelle s'ils l'ont fait eux-mêmes (je ne sais pas avec certitude, mais cela peut certainement être dans leurs contrats avec divers fabricants).
eldarerathis
2
@OleksandrBolotov Je suis certainement d'accord qu'ils pourraient faire quelque chose pour atténuer les problèmes, mais nous pouvons seulement supposer que les problèmes sont la raison pour laquelle ils ne le font pas;). Je pense que spéculer davantage serait hors de notre portée.
Matthew Read
2
Oui, tl; dr c'est un problème de pilote. Quelqu'un doit faire les pilotes.
Bryan Denny
De par sa conception, ou le scénario parfait en soi, le noyau contiendrait tous les pilotes, tandis que le système d'exploitation Android est universel, les deux pourraient être flashés séparément, ou flashés ensemble dans un bundle en tant que firmware d'origine (que nous voyons beaucoup aujourd'hui). Si le noyau était séparé du système d'exploitation, pourrions-nous être en mesure de flasher AOSP sans noyau directement sur n'importe quel appareil dont le noyau du fabricant a été flashé en premier? Peut-être que cela existe déjà? Idk
Aaron Gillion
3

Afin de fournir ce que vous semblez demander, une couche supplémentaire (ou plus robuste) d' abstraction devrait être ajoutée au système d'exploitation afin qu'elle soit moins étroitement couplée au matériel. L'ajout de cela nécessiterait plus de mémoire et consommerait plus de cycles CPU sur une plate-forme qui n'a pas grand-chose à épargner.

En pause jusqu'à nouvel ordre.
la source
2

Le procès en cours de Google avec Oracle!

Google a un plan pour mettre Android sur PC, mais ce n'est pas tout à fait ce que vous envisagez: Google veut ajouter l'environnement d'exécution Android à Chrome. Android pourrait - avec beaucoup de travail - être conçu pour être installable sur les PC, mais le faire passer à Chrome signifie qu'il pourrait être facilement déployé sur 25% de tous les ordinateurs immédiatement (25% étant la part de marché de Chrome).

Si vous ne me croyez pas, regardez l'e-mail des armes à feu que Google se bat actuellement pour éviter les poursuites - il fait référence à Google ayant besoin de Java pour Chrome.

Je ne suggère pas que Google abandonnera soudainement Java s'il perd le procès - ils sont bien trop engagés envers Java pour le faire - mais ils aimeraient au moins savoir quelles seront les conditions d'utilisation de Java avant ils prennent une mesure qui augmenterait considérablement leur dépendance à son égard.

À M
la source
1
Google souffre juste de mauvaises décisions prises il y a longtemps par Android Inc. C'était une idée tellement horrible d'utiliser Java pour le développement d'applications sur un nouveau système d'exploitation. N'était-il pas assez évident que Java n'est qu'un piège propriétaire et ils n'en ont même pas besoin pour créer un bytecode de VM non java pour Dalvik. Je suppose qu'ils ont juste des traîtres dans la gestion qui expliquent tout.
Alex Bolotov
1
Il semblerait que l'ajout de l'environnement d'exécution Android à Chrome ne soit pas si difficile si c'est quelque chose à faire ... bluestacks.com - Applications Android fonctionnant sur un bureau Windows!
Captain Toad
2
Avez-vous des preuves de tout cela, ou spéculez-vous simplement de manière extravagante?
Dan Hulme
Certes, beaucoup de choses ont changé depuis que j'ai écrit cette réponse. Plus important encore, Pachai a remplacé Rubin et la réorganisation associée chez Google. Tous les signes ont semblé changer après cela, et IO13 était très différent de IO12: clairement, ils poussent maintenant Chrome en tant que plate-forme mobile en soi, donc je ne crois plus qu'ils apporteront Android à Chrome.
Tom
1

D'autres personnes que Google travaillent déjà sur le portage sur la plate-forme x86. Si vous consultez le projet Android-x86, vous pouvez voir différentes versions disponibles, bien que pour un nombre limité de périphériques matériels. J'ai essayé de télécharger quelques images et de les faire fonctionner dans VirtualBox sur mon ordinateur (CrunchBang Linux basé sur Debian sur Dell Latitude D520) mais je n'ai pas pu le charger. Vous pourriez peut-être le faire, cependant. GL!

vyse
la source