Comme vous pouvez le voir dans le changelog pour le noyau Linux , il y a des messages de mise à jour comme "Bump ABI - Maverick ABI 28".
Selon le wiki Ubuntu , ABI est quelque chose comme un pont entre l'espace du noyau et les autres modules (mon interprétation).
Une telle mise à jour ajoute-t-elle des fonctionnalités supplémentaires et / ou des corrections de bugs? Dois-je mettre à jour mon noyau vers la prochaine version?
aptitude changelog linux-image-2.6.35-28-generic
affiche une liste des modifications. Je ne sais pas pourquoi le méta-package ne contient pas les mises à jour deslinux-{image,headers}-*-generic
packages; peut-être parce qu'il y a aussi deslinux-{image,headers}-*-server
packages?L'ABI est l'interface binaire d'application (à ne pas confondre avec l'API, l'interface de programmation d'application). L'ABI définit les tailles, les signes et les ordres des nombres que l'application utilise.
Pour être clair, voici un exemple: je veux encoder l'âge d'un bâtiment, exprimé en années. Pour ce faire, je peux utiliser un C
unsigned char
, qui est un type dont la taille est de 1 octet, et qui peut coder des valeurs de 0 à 255. Supposons maintenant que je découvre que 255 est une limite trop basse car il y a des bâtiments qui ont été construits plus il y a 255 ans. Je peux ensuite utiliser un Cunsigned int
, qui est long de 4 octets et peut coder des valeurs de 0 à 65535.En changeant le type de
char
enint
, je n'ai pas changé la signification sémantique du champ (c'était un âge exprimé en années et il l'est toujours), mais j'ai changé sa taille. Tous les logiciels qui interagissent avec mon application n'auront pas besoin d'être modifiés, mais ils parleront une "langue" différente.Par conséquent, lorsqu'un noyau change son ABI, cela signifie qu'il a changé la langue qu'il parle, mais qu'aucune fonctionnalité n'a été ajoutée, supprimée ou modifiée. Tous les modules tiers qui doivent interagir avec le noyau doivent être recompilés pour parler ce nouveau langage, mais ils ne doivent en aucun cas être modifiés pour fonctionner correctement.
la source