Je crois qu'un rappel sur l'architecture ARM s'impose une fois encore.
Donc, ARM est une architecture de processeurs, avec un jeu d'instructions associé, mais, contrairement au PC, ce n'est pas une plate-forme. Nous sommes habitués au monde PC au point que la notion de plate-forme nous est devenue naturelle : une plate-forme, c'est grosso modo une norme commune de démarrage et de découverte de matériel. Cela permet de concevoir des systèmes d'exploitations capables de démarrer et de faire fonctionner n'importe quel PC.
Sur ARM donc, il n'y a rien de tel. Chaque modèle est spécifique, comme pour les PC, en revanche il n'y a aucun mécanisme de généricité, aucun mécanisme de découverte des composants et périphériques présents, et aucune procédure de démarrage commune. Cela signifie que les systèmes d'exploitation doivent être adaptés spécifiquement pour chaque modèle à prendre en charge.
Dans un système d'exploitation, je distingue en particulier (削除) trois (削除ここまで)quatre choses :
un installateur ;
une procédure de démarrage ;
un noyau ;
des logiciels en espace utilisateur, c'est à dire tout ce qui n'est pas le noyau, en fait.
Sur ARM donc, comme il n'existe aucun mécanisme de découverte du matériel, le noyau doit être adapté spécifiquement pour chaque nouveau modèle. Dans le meilleur des cas, le fabricant fait intégrer ces adaptations au code officiel de Linux. Dans le pire des cas il le fait dans son coin.
La procédure de démarrage est également spécifique à chaque modèle. Bien qu'ils utilisent à peu près tous le même firmware qui fait office de chargeur de démarrage, Das U-Boot, il est configuré de façon spécifique : l'un ira chercher un noyau sur tel banc de mémoire flash, un autre ira le chercher à tel chemin sur un système de fichiers Ext3 sur la première partition du disque dur SATA, un autre attendra qu'on lui fournisse par TFTP. Cela implique d'adapter l'installateur des systèmes d'exploitation à chaque modèle à prendre en charge.
La seule chose qui est commune, c'est donc le jeu d'instruction des processeurs, avec des variantes selon les générations. Cela signifie que la seule chose qui peut être mutualisée entre les modèles pour un système d'exploitation, ce sont les logiciels en espace utilisateur.
Pour résumer tout ça, vous pouvez retenir que la phrase « Ubuntu/Debian tourne sur ARM » n'a pas le moindre sens, en tout cas certainement pas le sens qu'on lui donnerait implicitement en connaissant le monde PC. Tout ce qu'elle signifie, c'est qu'il prend intégralement en charge quatre ou cinq modèles d'ordinateurs précis basés sur un processeur ARM, et qu'il fournit des logiciels utilisateur pour ARM. Pour un modèle non pris en charge, ce système serait certes utilisable, mais à condition de réussir 1. à le démarrer 2. avec un noyau qui fera autre chose qu'un panic immédiat.
Et s'il fallait donner une morale à tout ça, ce serait : merci IBM pour avoir permis l'avènement d'une plate-forme ouverte commune, le PC, qui a donné une avance incroyable à l'informatique. Hors du PC, c'est le Far West.
# Rappels
Posté par 🚲 Tanguy Ortolo (site web personnel) . En réponse au journal Commentaires pratiques sur Hercules eCafé EX HD. Évalué à 10. Dernière modification le 20 octobre 2011 à 13:30.
Je crois qu'un rappel sur l'architecture ARM s'impose une fois encore.
Donc, ARM est une architecture de processeurs, avec un jeu d'instructions associé, mais, contrairement au PC, ce n'est pas une plate-forme. Nous sommes habitués au monde PC au point que la notion de plate-forme nous est devenue naturelle : une plate-forme, c'est grosso modo une norme commune de démarrage et de découverte de matériel. Cela permet de concevoir des systèmes d'exploitations capables de démarrer et de faire fonctionner n'importe quel PC.
Sur ARM donc, il n'y a rien de tel. Chaque modèle est spécifique, comme pour les PC, en revanche il n'y a aucun mécanisme de généricité, aucun mécanisme de découverte des composants et périphériques présents, et aucune procédure de démarrage commune. Cela signifie que les systèmes d'exploitation doivent être adaptés spécifiquement pour chaque modèle à prendre en charge.
Dans un système d'exploitation, je distingue en particulier
(削除) trois (削除ここまで)quatre choses :Sur ARM donc, comme il n'existe aucun mécanisme de découverte du matériel, le noyau doit être adapté spécifiquement pour chaque nouveau modèle. Dans le meilleur des cas, le fabricant fait intégrer ces adaptations au code officiel de Linux. Dans le pire des cas il le fait dans son coin.
La procédure de démarrage est également spécifique à chaque modèle. Bien qu'ils utilisent à peu près tous le même firmware qui fait office de chargeur de démarrage, Das U-Boot, il est configuré de façon spécifique : l'un ira chercher un noyau sur tel banc de mémoire flash, un autre ira le chercher à tel chemin sur un système de fichiers Ext3 sur la première partition du disque dur SATA, un autre attendra qu'on lui fournisse par TFTP. Cela implique d'adapter l'installateur des systèmes d'exploitation à chaque modèle à prendre en charge.
La seule chose qui est commune, c'est donc le jeu d'instruction des processeurs, avec des variantes selon les générations. Cela signifie que la seule chose qui peut être mutualisée entre les modèles pour un système d'exploitation, ce sont les logiciels en espace utilisateur.
Pour résumer tout ça, vous pouvez retenir que la phrase « Ubuntu/Debian tourne sur ARM » n'a pas le moindre sens, en tout cas certainement pas le sens qu'on lui donnerait implicitement en connaissant le monde PC. Tout ce qu'elle signifie, c'est qu'il prend intégralement en charge quatre ou cinq modèles d'ordinateurs précis basés sur un processeur ARM, et qu'il fournit des logiciels utilisateur pour ARM. Pour un modèle non pris en charge, ce système serait certes utilisable, mais à condition de réussir 1. à le démarrer 2. avec un noyau qui fera autre chose qu'un panic immédiat.
Et s'il fallait donner une morale à tout ça, ce serait : merci IBM pour avoir permis l'avènement d'une plate-forme ouverte commune, le PC, qui a donné une avance incroyable à l'informatique. Hors du PC, c'est le Far West.