15 votes

Pourquoi n'y a-t-il pas d'installateurs génériques de systèmes d'exploitation pour téléphones ?

J'ai l'habitude d'installer et de supprimer divers systèmes d'exploitation sur mes PC, voire d'en avoir plusieurs à la fois.

Habituellement, installer un nouveau système d'exploitation signifie :

  1. Gravez l'ISO sur un CD/DVD/USB.

  2. Insérez-le.

  3. Botte. (Vous devrez peut-être d'abord modifier un peu le BIOS).

La seule différence entre les PC est l'architecture de leur CPU : x86, x86_64, arm, etc. En fonction de cela, vous devez télécharger un ISO ou un autre. Mais je n'ai jamais à me soucier de savoir de quelle carte graphique, souris, clavier, écran, carte réseau, etc. il dispose. L'assistant d'installation le détecte automatiquement et installe les pilotes correspondants. Parfois, s'ils ne sont pas regroupés, le programme d'installation les télécharge également. Quoi qu'il en soit, le point essentiel ici est que l'ISO est toujours la même .

Aujourd'hui, de nombreux OS mobiles voient le jour : Ubuntu, Tizen, Firefox OS, l'omniprésent Android, et pourquoi pas n'importe quelle distro Linux ARM qui existe ! Malheureusement, j'ai un mobile chinois au hasard, qui n'aura sûrement jamais de support officiel sur aucune plateforme, et je ne pourrai jamais les tester.

Mais... Les téléphones d'aujourd'hui ne sont-ils pas de minuscules PC ARM ? Pourquoi l'installation est-elle si différente ? Pourquoi ai-je toujours besoin d'avoir une ROM monolithique précompilée spécifique à mon modèle de téléphone ? Pourquoi ne pas avoir une seule "ISO" par OS pour n'importe quel téléphone qui détecte et installe automatiquement les pilotes nécessaires, comme cela a toujours été le cas sur le marché des PC ?

Note : Je comprends le problÃ?me des pilotes privatifs, mais je me souviens que Debian m'en a demandé alors qu'il n'y en avait pas. libre alternatives à l'installation, et je pourrais les installer à ce moment-là ou plus tard. Je suppose que cette solution de contournement pourrait être utilisée dans ces cas également. Corrigez-moi si je me trompe.

14voto

Andy Brudtkuhl Points 1714

En bref, c'est à cause des différentes manières dont Android et MS Windows sont distribués. MS Windows est un produit de détail, vendu directement aux propriétaires de PC. Par conséquent, Microsoft est responsable de son fonctionnement sur les PC. Les PC sont standardisés et disposent (de nos jours) d'un mécanisme de découverte du matériel, ce qui permet à Microsoft de concevoir le programme d'installation de Windows de manière à ce qu'il puisse fonctionner sur n'importe quelle machine compatible PC. Il est dans son intérêt de rendre les pilotes des anciennes versions de Windows compatibles avec les nouvelles versions, afin de pouvoir continuer à vendre les nouvelles versions de Windows aux utilisateurs.

Il y a aussi une dimension technique à cela. Les téléphones ne sont pas seulement des "petits PC ARM" comme vous le suggérez. Ce qui distingue un PC, c'est qu'il répond aux critères suivants Spécifications du PC Ce système a été créé par IBM, mais il est maintenant spécifié par un consortium industriel. Il existe plusieurs autres normes concernant l'interaction des composants d'un PC, qui permettent la configuration automatique des pilotes, comme c'est le cas pour les PC de bureau. Les cartes graphiques offrent une interface VESA, qui permet d'afficher les graphiques avant qu'un pilote de GPU ait été configuré.

De nos jours, tout le matériel PC offre la fonction Plug N Play, qui permet au système d'exploitation de découvrir le matériel et de configurer la carte mémoire au démarrage. Avant le Plug N Play, vous deviez modifier les cavaliers physiques sur chaque carte PCI, puis indiquer au logiciel la plage de mémoire, l'IRQ, etc. que vous aviez définie sur les cavaliers. Et à l'époque précédant DirectX et ses semblables, vous deviez faire cela séparément pour chaque jeu qui voulait utiliser ce matériel. Le Plug N Play est apparu principalement pour que les vendeurs de cartes son (et autres composants discrets) puissent fabriquer du matériel plus facile à installer.

En revanche, Android n'est pas un produit vendu aux utilisateurs : il est "vendu" aux fabricants d'appareils. Les téléphones (mais aussi les tablettes, les décodeurs, les lecteurs multimédias, etc.) n'ont rien à voir avec les spécifications des PC, et il est donc impossible pour Google de créer un "installateur Android" capable de fonctionner sur n'importe quel appareil. Même l'affichage de l'animation de la batterie lorsque le téléphone est éteint nécessite le chargement du noyau Linux avec un pilote de framebuffer et un pilote de batterie. C'est au fabricant de l'appareil qu'il incombe de modifier le code source d'Android pour qu'il puisse fonctionner sur son appareil, et l'image du microprogramme Android qui en résulte appartient au fabricant : il n'est pas (obligé de) donner ces modifications à Google ou à quiconque.

Le monde de la téléphonie n'a pas ce genre de normes, car il n'y a pas de demande en ce sens. Personne n'essaie de vendre des composants de téléphone que vous assemblez vous-même. Personne dans l'industrie de la téléphonie n'est intéressé par la création d'un système d'exploitation que vous pouvez installer sur n'importe quel téléphone - seulement des entreprises comme Ubuntu et Mozilla, qui sont des outsiders ne contribuant pas aux normes matérielles.

6voto

Thej Points 655

Le premier problème est l'espace. Jusqu'à récemment, la plupart des téléphones n'avaient pas assez d'espace de stockage pour contenir l'intégralité du noyau générique et du cadre Android. Un problème supplémentaire est que le matériel des téléphones est généralement plus varié et moins standardisé que celui des PC, ce qui peut être inévitable en raison de l'espace limité.

L'autre problème est qu'il n'existe pas de norme unique pour la méthode de flashage parmi les chargeurs de démarrage. Avec un PC, vous avez la méthode standard de démarrage à partir d'un CD et la méthode de démarrage à partir d'un lecteur USB ; dans la méthode standard de démarrage à partir d'un lecteur externe, le PC est l'hôte USB, mais Android agit généralement en tant que client USB. Cela se reflète également dans le choix des câbles, le côté Android du câble USB est généralement un USB micro et la plupart des lecteurs externes utilisent également un USB mini, ce qui signifie que la connexion physique nécessite que vous obteniez un câble USB micro vers USB micro, ce qui est relativement rare.

Enfin, le dernier problème est d'ordre politique. Les fabricants et les opérateurs n'ont aucun intérêt à changer le statu quo, seule une très petite minorité d'utilisateurs va flasher leur appareil, ce qui annule généralement la garantie. Ils n'ont aucun intérêt à encourager les gens à installer un chargeur de démarrage qui permet d'annuler facilement la garantie et qui est souvent à l'origine d'un cauchemar pour l'assistance.

5voto

Flow Points 18254

Outre les points mentionnés dans Réponse de Lie Ryan mais il y a un problème majeur que les gens ont tendance à sous-estimer : Pilotes .

Vous vous souvenez de Windows 95 ? La plupart des gens s'en souviennent comme d'un système d'exploitation mauvais et instable. Pourquoi était-il instable ? Parce qu'au début, les pilotes ne venaient pas de Microsoft mais des fabricants de matériel et que certains (la plupart ?) d'entre eux étaient de mauvaise qualité, faisant planter tout le système. Bien sûr, l'utilisateur devant le PC accusait le système d'exploitation, car c'était lui qui semblait tomber en panne, et non le pilote.

L'écriture de pilotes matériels n'est pas une tâche facile : vous devez connaître l'API du système d'exploitation, vous devez connaître le matériel, vous devez connaître l'architecture de l'ordinateur et si vous faites une petite erreur, la plupart des systèmes d'exploitation (ceux qui ne sont pas bien isolés) se planteront.

Jetons un coup d'œil aux autres systèmes d'exploitation à source ouverte, la plupart d'entre eux sont dotés d'une architecture supérieure et utilisent plus de fonctionnalités matérielles que Linux. Alors pourquoi tout le monde ne les utilise pas ? Je dirais que c'est parce qu'il leur manque conducteurs . Pourquoi devrais-je choisir un système d'exploitation qui ne prend pas en charge mon matériel WiFi ?

Examinons maintenant la plate-forme cible si vous vous demandez pourquoi il n'y a pas de support d'installation disponible. Les appareils Android sont hautement spécialisés et utilisent du matériel qui

  1. n'est pas disponible pour le grand public (par exemple, vous ne pouvez généralement pas acheter la puce sonore utilisée dans un appareil Android typique)
  2. ont besoin de pilotes propriétaires (c'est-à-dire que seul le fabricant du matériel a accès à la source du pilote)
  3. est un collecteur

Il est donc difficile de composer un support d'installation qui fonctionne pour tous, ou même pour la plupart, des appareils.

L'approche habituelle pour installer GNU/Linux sur un appareil Android est d'utiliser l'environnement disponible (Bootloader, Kernel (incl. Drivers), libc). Cela permet d'éviter tous les problèmes mentionnés dans les réponses.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X