☰ Menu

06.10.2026 · Signal Titans Editorial

Le plafond hexadécimal : comment MS-DOS a bloqué des millions d’utilisateurs sous la limite des 640 kilo-octets

Lors du lancement du PC IBM en 1981, 640 kilo-octets de mémoire semblaient immenses. Mais les limites de MS-DOS ont piégé les utilisateurs sous ce plafond.

Une illustration éditoriale montrant un mur imposant constitué de puces mémoire dorées et lumineuses, symbolisant la limite de mémoire de 640 kilo-octets sur un fond indigo sombre.

À l'adresse mémoire hexadécimale A0000 (soit l'adresse décimale 655 360), la carte mémoire interne des premiers ordinateurs personnels d'IBM se heurtait à une frontière infranchissable. Lorsque IBM a lancé son PC d'origine en août 1981, son microprocesseur Intel 8088 disposait d'un espace d'adressage de 20 bits capable de référencer jusqu'à 1 048 575 octets, soit un mégaoctet de mémoire totale. IBM a alloué les cinq huitièmes inférieurs de cet espace (640 kilo-octets) à la mémoire des applications générales, réservant les trois huitièmes supérieurs à la ROM système en lecture seule et au matériel vidéo. Ce qui avait débuté comme une allocation généreuse est rapidement devenu le goulot d'étranglement matériel le plus persistant de l'informatique personnelle. Selon l'historien des technologies Jimmy Maher, cette ligne de démarcation a bridé les développeurs de logiciels et les utilisateurs durant des années.

Conception de la limite du mégaoctet

En août 1981, offrir 640 kilo-octets de mémoire conventionnelle constituait une avancée majeure par rapport aux micro-ordinateurs concurrents, comme l'Apple II, qui n'embarquaient généralement que 48 kilo-octets ou moins. IBM a conçu cette carte mémoire à partir de la puce 8088 d'Intel. Comme un processeur doit attribuer une adresse numérique unique à chaque octet de mémoire RAM ou ROM qu'il consulte, le bus d'adresse de 20 bits du 8088 plafonnait strictement la mémoire adressable totale à 1 048 575 octets. IBM a associé les applications des utilisateurs aux adresses commençant à zéro et se terminant au nombre décimal 655 360, soit A0000 en hexadécimal. Les 384 kilo-octets restants, appelés mémoire haute, étaient mis de côté pour les tampons d'affichage vidéo, le code système de bas niveau et les composants d'extension matérielle.

Accès direct au matériel et système d'exploitation rudimentaire

Le plafond de 640 kilo-octets s'est mué en une barrière permanente en raison de la façon dont MS-DOS interagissait avec le matériel. Développé à la hâte pour respecter le calendrier de sortie commercial d'IBM, les premières versions de MS-DOS ne fournissaient aux programmeurs que 27 appels de fonction de base, destinés principalement à la gestion des disques et des fichiers. Fonctionnant comme un système d'exploitation monotâche dépourvu de gestion des ressources et de couches d'abstraction matérielle, MS-DOS incitait les développeurs à concevoir des logiciels qui contournaient totalement les fonctions du système d'exploitation afin de manipuler directement les registres matériels et les adresses mémoire. Cette approche de programmation au plus près du matériel maximisait la vitesse d'exécution, mais elle associait indissociablement les logiciels commerciaux à l'agencement mémoire d'origine du 8088.

Le progrès matériel piégé dans le mode réel

IBM a tenté d'apporter une réponse aux besoins croissants des logiciels en mémoire dès 1984 avec la sortie du PC/AT, animé par le microprocesseur Intel 80286. Le 80286 arborait un espace d'adressage de 24 bits capable de gérer jusqu'à 16 mégaoctets de mémoire. Pour prendre en charge l'exécution de logiciels avancés, Intel proposait deux modes de fonctionnement : le mode protégé, qui activait la protection matérielle de la mémoire et l'accès à la totalité des 16 mégaoctets, et le mode réel, qui émulait les anciens processeurs 8086 et 8088. Afin de garantir une compatibilité immédiate avec le catalogue d'applications MS-DOS existant, Intel a configuré le 80286 pour qu'il démarre par défaut en mode réel, conservant la limite d'adressage de 1 mégaoctet à moins qu'un système d'exploitation ne bascule explicitement de mode.

La persistance des limites du mode réel

Parce que MS-DOS dépendait de l'exécution en mode réel pour préserver la compatibilité avec les programmes professionnels existants, la mémoire étendue des systèmes à base de 80286 est restée largement inexploitable pour l'utilisateur ordinaire. Faire évoluer MS-DOS afin de gérer le mode protégé aurait rompu la compatibilité avec l'immense logithèque commerciale qui faisait la domination commerciale de la plateforme IBM. En conséquence, les utilisateurs ayant installé des cartes de mémoire étendue sur leurs machines équipées de 80286 ne pouvaient pas accéder à cette RAM supplémentaire pour leurs logiciels standards, laissant les applications emprisonnées derrière la frontière hexadécimale A0000.

Illustration éditoriale générée par IA ; ce n’est pas une photographie documentaire.

Source: The 640 K Barrier