Au niveau de la taille des pilotes, quelques affirmations en vrac (pas le temps de faire mieux) :
- un pilote peut être plus ou moins bien codé, et donc être plus ou moins gros, indépendamment de sa qualité
- ce qui prend de la place, c'est de gérer tous les cas particuliers ; un pilote spécifique à un matériel, et un pilote générique à des matériels dont les constructeurs respectent bien les normes appropriées, n'ont pas de raison d'avoir des complexités très différentes (parce que dans le deux pilotes, on ne gère en fait qu'un seul "cas") ; le pire en théorie c'est un pilote générique qui essaie de dialoguer avec des matériels tous subtilement différents
- comme l'a dit patrick_g, seuls les pilotes correspondant au matériel présent dans la machine sont chargés en mémoire ; les autres pilotes prennent de la place sur le disque dur, c'est tout
- un pilote, c'est n'est pas qu'un bout de code qui s'exécute dans le noyau ; souvent, il faut aussi des bibliothèques de fonction, pour que les programmeurs ne se prennent pas trop la tête avec les détails, et des programmes pour que l'utilisateur soit face à un truc potable pour gérer son matériel ; sous Linux, c'est très standardisé, grâce à l'open source, par exemple Sane pour gérer tout ce qui ressemble à un scanner ; sous Windows, quand il n'y a pas de bibliothèque standard pour gérer quelque chose, les constructeurs sont souvent obligés de les coder eux-même ; pareil pour les programmes, c'est ce qui fait la distinction entre les constructeurs, donc chacun fait son truc de gestion avec plein d'images, de fonctionnalités, de modèles, de trucs lourds divers... Tout ça pèse nettement plus que le pilote de base ! Exemple, pilote HP "complet" pour ma LaserJet : 600 Mo (grosse appli lourde autour du pilote) ; pilote HP "light" (juste le pilote, et l'utilisateur se contentera des fenêtres standard Windows pour gérer son imprimante) : 15 Mo (et au sein de ces 15 Mo, le pilote lui-même ne représente peut-être que 1 ou 2 Mo)
Bref, le poids des pilotes sous Windows, c'est surtout lié à la "valeur ajoutée" du fabricant, à tous les programmes qu'il fournit "en plus" du "vrai pilote".
Oh, et les pilotes Windows sont "souvent" programmés avec des budgets limités, avec du temps limité, pas forcément par les meilleurs des meilleurs, avec juste le temps de pondre une version initiale et c'est tout ; bref, dès que le "gros truc" est pondu, on arrête et on passe à autre chose (surtout valable pour le matériel no-name taïwanais ou les entreprises géantes qui créent de nouveaux modèles en tous genres à tour de bras...)
[^] # Re: Quelques questions
Posté par Boa Treize (site web personnel) . En réponse à la dépêche Nouvelle version 2.6.32 du noyau Linux. Évalué à 5.
- un pilote peut être plus ou moins bien codé, et donc être plus ou moins gros, indépendamment de sa qualité
- ce qui prend de la place, c'est de gérer tous les cas particuliers ; un pilote spécifique à un matériel, et un pilote générique à des matériels dont les constructeurs respectent bien les normes appropriées, n'ont pas de raison d'avoir des complexités très différentes (parce que dans le deux pilotes, on ne gère en fait qu'un seul "cas") ; le pire en théorie c'est un pilote générique qui essaie de dialoguer avec des matériels tous subtilement différents
- comme l'a dit patrick_g, seuls les pilotes correspondant au matériel présent dans la machine sont chargés en mémoire ; les autres pilotes prennent de la place sur le disque dur, c'est tout
- un pilote, c'est n'est pas qu'un bout de code qui s'exécute dans le noyau ; souvent, il faut aussi des bibliothèques de fonction, pour que les programmeurs ne se prennent pas trop la tête avec les détails, et des programmes pour que l'utilisateur soit face à un truc potable pour gérer son matériel ; sous Linux, c'est très standardisé, grâce à l'open source, par exemple Sane pour gérer tout ce qui ressemble à un scanner ; sous Windows, quand il n'y a pas de bibliothèque standard pour gérer quelque chose, les constructeurs sont souvent obligés de les coder eux-même ; pareil pour les programmes, c'est ce qui fait la distinction entre les constructeurs, donc chacun fait son truc de gestion avec plein d'images, de fonctionnalités, de modèles, de trucs lourds divers... Tout ça pèse nettement plus que le pilote de base ! Exemple, pilote HP "complet" pour ma LaserJet : 600 Mo (grosse appli lourde autour du pilote) ; pilote HP "light" (juste le pilote, et l'utilisateur se contentera des fenêtres standard Windows pour gérer son imprimante) : 15 Mo (et au sein de ces 15 Mo, le pilote lui-même ne représente peut-être que 1 ou 2 Mo)
Bref, le poids des pilotes sous Windows, c'est surtout lié à la "valeur ajoutée" du fabricant, à tous les programmes qu'il fournit "en plus" du "vrai pilote".
Oh, et les pilotes Windows sont "souvent" programmés avec des budgets limités, avec du temps limité, pas forcément par les meilleurs des meilleurs, avec juste le temps de pondre une version initiale et c'est tout ; bref, dès que le "gros truc" est pondu, on arrête et on passe à autre chose (surtout valable pour le matériel no-name taïwanais ou les entreprises géantes qui créent de nouveaux modèles en tous genres à tour de bras...)