C'est valable pour toutes les distributions Linux? Ou alors juste Ubuntu?
Sur tous les linux, on met dans le noyau tous les drivers et firmware de tous les matériels courants des 20 dernières années?
C'est franchement pas clair pour moi, pas facile à comprendre.
Il y a plusieurs choses :
- le kernel lui-même : il y a le code de base, et certains drivers que la distribution choisit d'intégrer directement, il peut y avoir plusieurs variantes (par exemple une version "cloud" allégée qui ne contient que ce qui est nécessaire pour les VM habituelles)
- les modules (drivers compilés en fichiers séparés), qui sont en général regroupés en plusieurs paquets (au moins un de base, et un "extra" pour le matériel plus rarement utilisé)
- les firmwares : il y en a de plus en plus, beaucoup de périphériques ne fonctionnent pas sans (ou de manière très limitée), les distributions commencent à découper un peu pour éviter de tout avoir
- l'initrd : il doit contenir un certain nombre de programmes, et des modules nécessaires au boot (drivers pour le disque ou le réseau, le GPU, ...), il peut être déjà généré (donc gros), ou l'être au moment de l'installation du paquet (et là on peut parfois choisir la liste des modules intégrés, par exemple de faire une version la plus minimaliste possible sans les fonctionalités et drivers non nécessaires à une machine donnée, quitte à ce que ça pose problème en cas de changement de HW)
Par rapport à un Windows, la philosophie est différente.
Même si c'est moins le cas aujourd'hui, Windows n'aime pas les changements de matériel : si on prend un disque et qu'on le met sur un autre PC, il n'est pas sûr qu'on puisse booter sans avoir à réinstaller (et dans tous les cas le premier boot sera long, et il faudra potentiellement rebooter ensuite avant de tout avoir de fonctionnel).
Linux au contraire a très peu de paramètres statiques liés au matériel, et a par défaut la majorité des drivers déjà installés, donc il est beaucoup plus simple de booter sur un autre PC (parfois c'est totalement transparent).
C'est notamment ça qui permet un Linux bootable depuis un DVD / une clé USB en étant très proche de la version installée, alors que les équivalents Windows sont pleins de contournements et loin d'être complets.
Rien n'interdirait de faire un Linux qui télécharge les drivers et firmwares de manière individuelle et à la demande, mais ce serait un énorme travail pour la distribution.
Il faudrait que les modules soient téléchargeables en tant que fichiers individuels, mais quand même mis à jour, avec un système pour suivre les dépendances et les modalias (d'une version à l'autre, le module à utiliser pour un contrôleur donné peut changer, ou se mettre à dépendre d'un module supplémentaire).
Et tout devrait être conservé sur les serveurs : si un utilisateur n'a pas mis à jour son kernel depuis 3 mois et branche un nouveau périphérique USB, il faudrait qu'il puisse télécharger le module (l'ABI n'étant pas stable, ça doit être celui qui correspond à la version et configuration du kernel qu'il a, ou presque).