Coucou!
Ce qui change essentiellement sous MagiC, c'est la gestion de la mémoire.
Les memory descriptors (ou MD) sont intercalés entre les blocs de mémoire alloués, et complétés de longs mots magiques, qu'on appelle aussi des "
canaris". On dit des "canaris" parce dans les mines d'autrefois, on envoyait ces petits oiseaux en "éclaireurs" (au casse-pipe en fait) pour détecter le risque de coup de grisou.
Chez MagiC, le canari est un donc long mot "magique", et dès que sa valeur n'est pas la bonne, MagiC sait que ça sent le roussi. Comme les MD de MagiC forment une liste chaînée, et dès qu'un canari est altéré, on sait que le noeud de la liste est corrompu... Et là, c'est le drame : MagiC crashe comme un m...de lors du mfree()

.
Pour résumer, la différence essentielle, c'est la fragilité aux "débordements de buffer". Quand tu rends à MagiC la mémoire que tu lui as allouée, si tu as débordé d'un tout petit peu d'un seul de tes blocs alloués (et c'est très vite arrivé!!), sous TOS ça se verra pas, mais sous MagiC ça va être le gros drame.
Evidemment, cette fragilité n'est pas un hasard. C'est le revers de la médaille de la rapidité de MagiC. Car grâce à ce système, les opérations d'allocation/libération de mémoire sont d'une vitesse foudroyante!
a+
PS : Prochaîne étape, documenter ça sur WikiPendium...