Le 25/05/2018 à 18:30, Paul Ezvan a écrit :
Le 24/05/2018 à 15:17, Pascal Hambourg a écrit :
Généralement une mise à jour du noyau Debian stable est une mise à
jour du paquet linux courant, pas un nouveau paquet. Les exceptions
sont une mise à niveau de la distribution et un changement d'ABI. La
situation actuelle où il y a eu plusieurs changements d'ABI en peu de
temps est exceptionnelle.
Tu parles d'ABI interne ou externe ?
Interne. L'ABI externe du noyau est stable. Le contraire obligerait à
recompiler les binaires exécutables et les bibliothèques à chaque
nouvelle version du noyau.
Mon impression est qu'à chaque fois
que le noyau est recompilé il faut aussi recompiler les modules, donc
avoir une ABI interne stable me semble difficile. Pourquoi cette
situation exceptionnelle ?
C'est un choix de conception.
Bien qu'il puisse être modulaire, Linux est un noyau monolithique
notamment pour des raisons de performance d'après ce que j'ai compris.
Et les developpeurs et mainteneurs du noyau ne veulent probablement pas
être bridés en étant forcés de conserver une compatibilité avec des
modules externes. Leur mot d'ordre a toujours été : si vous écrivez du
code pour le noyau, faites en sorte qu'il soit intégré une fois pour
toutes aux sources officielles du noyau plutôt que de vous embêter à
l'adapter aux changements du noyau.
Mettre à jour le paquet pour le noyau est risqué, car il faut être sûr
que les nouveaux modules peuvent être chargé par le noyau courant, et je
ne suis pas sûr qu'il soit possible de le garantir.
En effet, pas en cas de changement d'ABI (installation d'un nouveau
paquet linux-image). Il faut redémarrer avec la nouvelle image du noyau.
De toute façon il faut toujours le faire au plus vite après une mise à
jour du noyau. Par contre s'il y a mise à jour sans changement d'ABI
(mise à jour du même paquet linux-image), les nouveaux modules devraient
fonctionner avec le noyau actuel.
Le modules font partie du noyau, ce qui est dans /boot n'est que
l'image du noyau. Le tout est installé par un même paquet
Bien sûr, mais les modules dans /lib peuvent aussi être fournis par
d'autres paquets (pilotes divers)
Un exemple de module binaire fourni par un paquet Debian ?
et même construit à partir de sources
différentes (module nvidia par exemple).
Exact, donc /lib peut contenir des modules qui ne viennent pas du paquet
du noyau.