Bizarreries de compatibilité descendante

Presque personne n'a entendu parler du système d'exploitation DOS-777. Et cela existait vraiment. Certes, en réalité, il s'agissait du MS DOS le plus courant avec des modifications mineures, conçu pour fonctionner sur un seul ordinateur et exécuter un seul programme. Ce clone doit en quelque sorte son apparence au problème de la rétrocompatibilité. Mais tout d'abord.



Un programme nouveau et important s'est soudainement comporté d'une manière complètement mystérieuse. Cela a tellement exaspéré ses auteurs qu'il a été décidé de démonter MS DOS, de comprendre les nuances de son travail et de trouver les causes d'erreurs étranges. Maintenant, même par passion, presque personne n'osera démonter, par exemple, Windows-10 et comprendre toutes ses fonctionnalités. Mais ensuite, au début des années 90, lorsque le système d'exploitation se composait de trois fichiers relativement petits, leur démontage et leur analyse prenaient deux semaines.



De nombreuses petites fonctionnalités ont été découvertes qui ne sont pas susceptibles d'intéresser qui que ce soit maintenant. Mais à l'époque, selon les résultats de cette analyse, il était même possible de renseigner les noms manquants des champs des tables internes MS DOS, qui dans l'un des livres de la série System Programmer's Library édités par les Frolovs (maison d'édition Dialogue MEPhI) étaient désignés comme «réservés».



Je le répète, il est peu probable que toutes ces subtilités intéressent qui que ce soit maintenant, mais les trois nuances trouvées, d'une manière ou d'une autre liées au problème de la rétrocompatibilité, méritent peut-être d'être mentionnées.



Nuance d'abord. Les premiers programmes «TSR», par exemple «SideKick», recherchaient l'adresse de l'indicateur «occupé» interne du système d'exploitation directement à partir du contexte des commandes dans MS DOS. Dans les versions ultérieures, ce contexte a changé et une fonction documentée de demande d'un drapeau est apparue, mais plusieurs "anciennes" commandes ont été spécialement déplacées vers le segment de données (elles n'ont pas obtenu de contrôle), de sorte que les anciens programmes trouvent toujours le bon contexte. Une analogie me vient à l'esprit avec le lancement d'un nouveau navire nommé d'après son prédécesseur légendaire. Ensuite, selon la tradition, une dalle est découpée dans l'ancienne coque et fixée comme plaque commémorative au nouveau navire. Ainsi, toutes les versions de MS DOS contenaient à bord un petit morceau de la toute première version de 1981.



La nuance suivante était plus curieuse. Il s'est avéré qu'avant d'exécuter un fichier EXE, MS DOS vérifie un certain contexte à un certain endroit parmi ses commandes. Si tel est le cas, le système d'exploitation "pousse" légèrement les commandes voisines et ajoute les commandes PUSH CX et POP CX.







LOOP, , - MicroSoft, , . : « MS DOS !» . , MicroSoft , , . , CX. MS DOS POP CX, , MicroSoft . ( , ) , .



, , , , , . . , , , , , . 8086 . : .. (16 20) .. (16 20). , , , ( ). . 19- ( ) 64 .







1986 32- , 30 ( 32, ). , «» .







«». , - . , , 20- , ! : .



, , , «640 » . «expanded», - 64- «» , MicroSoft MS DOS, , , 640 .





MS DOS . DOS , , , . DOS … , ? ? ? . , DOS , (.. PSP) . ( DOS) . , .







: DOS, , , .





DOS, , . , DOS , . DOS-777 , .







, , . MMX, FPU. : , , FPU. MMX, .





-, : , MMX, ( ) , , Windows. , - MMX . - MMX FPU . - - Windows , MMX, .



Ainsi, le problème de la rétrocompatibilité existe objectivement, et il est parfois nécessaire de le résoudre. Mais si dans les deux premiers exemples donnés la solution était ingénieuse, et surtout cachée pour les utilisateurs qui n'ont pas besoin de cette compatibilité, alors dans les deux derniers exemples une tentative de compatibilité (à mon avis, tirée par les cheveux!) A conduit à des solutions matérielles prétentieuses et a donné lieu à des problèmes. De plus, même alors, la compatibilité était bien meilleure et plus facile grâce à un mode virtuel 8086 spécialement conçu.



Le principal problème de toute rétrocompatibilité est que chaque année, de moins en moins d'utilisateurs en ont besoin. Et chacun doit en tenir compte.








All Articles