6Fermer8
Kevin KoflerLe 18/02/2008 à 10:27
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 roll), 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.