En pratique, les programmes codés pour HW1 AMS 1.00 sont presque tous incompatibles avec tout ce qu'il y a de plus récent. Et je rappelle que les premiers programmes à marcher sur HW2 AMS 2, c'étaient Cblaster et Creversi de Zeljko Juric, qui étaient en
_nostub. Il était à l'époque impossible de faire tourner un kernel sur HW2 AMS 2. Ces 2 programmes étaient en
_nostub et en moins de 8 KO, du coup ils marchaient sans problèmes.
Et le kernel n'est pas du tout une garantie de compatibilité. La preuve, je peux prendre n'importe quel programme
_nostub (sauf un programme qui a déjà presque 65518 octets, si vous voulez chipoter

), lui mettre un header kernel, et du coup c'est un programme kernel. Donc toutes les incompatibilités possibles en
_nostub sont aussi possibles en kernel. Et il y a des incompatibilités supplémentaires "rendues possibles" par le kernel, par exemple le fameux hack
font_small qui ne marche plus sur Titanium (ça partait du principe que les polices sont toujours dans le même ordre dans le boot code, et ben sur Titanium, c'est raté), et pourtant ce hack était présent dans les headers kernel, proposé comme une API fiable (et ce n'est pas le seul abus d'offsets codés en dur qu'il y a eu dans les headers kernel).
Maintenant, il est vrai que certaines abstractions du matériel du kernel peuvent faciliter la compatibilité binaire avec les nouveaux modèles (mais TIGCCLIB a aussi ces abstractions et donc pour un programme en C
_nostub codé proprement, il suffit de recompiler), mais ce n'est pas aussi noir et blanc comme décrit par les partisans des kernels.