Nous avons enfin défini une pile de contrôle protégée, rapide et sûre ! Il aura fallu trois articles pour y arriver mais il reste un goût d’inachevé, même d’inefficacité. Dans la grande tradition de Douglas Adams, voici donc le quatrième volet de la trilogie, où notre pile sera vraiment poussée à bout, capable de faire le café et plier votre linge. Enfin presque.
Dans l’article précédent [1], nous avons défini un modèle de programmation (CDI) qui différencie trois espaces d’adressage indépendants : les données, les instructions et la pile ont chacune leur propre mémoire cache et une granularité d’accès spécifique. Une telle séparation, à contre-courant de la mode unifiante platiste, nous affranchit des questions d’alias des pointeurs, facilite incroyablement le traitement des vecteurs de longueurs variables et arbitraires (comme les chaînes de caractères [2]) et surtout empêche toute confusion des types ! Cette approche protège le flux d’instructions et donc améliore significativement la sécurité des programmes, surtout s’ils reposent sur une ABI héritée du C. Un jour, avec assez de patience, les sites comme https://ropemporium.com/ ne seront plus qu’un vestige désuet d’une ère d’errance aveugle.
À partir de ce modèle à trois espaces, tout devient possible, à commencer par des appels de...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première