Kevin KoflerLe 01/11/2007 à 15:26
La raison principale pour laquelle TIGCC ne gère pas le "mistub" est simple:
* soit on a aussi une implémentation _nostub des fonctionnalités pour lesquelles on veut utiliser le kernel, dans ce cas pourquoi pas toujours utiliser l'implémentation _nostub,
* soit on n'en a pas, du coup ça fait des programmes qui fonctionnent moins bien sans kernel qu'avec, ce que nous ne voulons pas encourager.
Il y a aussi des raisons techniques:
* les relogements: si on met les relogements au format AMS seulement, il y a plusieurs kernels qui ne relogeront pas le programme correctement si on le lance avec userlib::exec; on ne peut pas mettre la table kernel seulement parce que ça doit marcher sans kernel aussi; et on ne peut pas mettre les deux parce que la table kernel appliquée à un programme relogé, ça donne un programme avec des adresses qui ne sont pas valides (c'est probablement ça la raison derrière le format redondant employé par AMS, ce format peut reloger un programme déjà relogé sans problèmes).
* Les programmes "mistub" ne marchent pas si KerNO est installé, à moins de tester KerNO spécialement, parce que KerNO installe des implémentation stub des fonctions kernel qui donnent un message d'erreur "KerNO does not support DoorsOS programs".