AutoCAD R10, DOS extender, utilisation de la RAM

Il fût une époque ou la RAM était un problème central. Avec 640Ko (oui Ko, pas Mo et pas Go, vous avez bien lu) , il fallait faire des acrobaties pour faire tourner nos programmes, en particulier AutoCAD®, ce fût l’heure de gloire des DOS Extenders !

Il y a longtemps, très longtemps, dans une lointaine galaxie…

MS-DOS, et les programmes qui s’exécutent sous celui-ci, peuvent uniquement adresser directement 1 mégaoctet (1M) de mémoire. Les machines DOS utilisent les premiers 640K pour la mémoire RAM. Le PC réserve les 384K restants pour les périphériques d’E/S et le BIOS ROM. Les PC modernes qui utilisent les unités centrales de traitement (UCP) Intel (ou compatibles Intel) 80286, 80386, ou 80486 peuvent fonctionner dans au moins deux modes différents : le mode réel et le mode protégé. Le mode réel correspond au modèle de programmation MS-DOS - le processeur agit comme un CPU 8086 rapide et ne peut adresser que 1M de mémoire dans des circonstances normales. Le mode protégé permet l’accès à de nombreuses fonctionnalités de programmation avancées. La caractéristique la plus visible est la disponibilité de plus de mémoire. Un 286 peut adresser jusqu’à un maximum de 16M ; les processeurs 386 et 486 peuvent gérer 4096M (4 gigaoctets, ou 4G). Les programmeurs utilisant des systèmes d’exploitation en mode protégé (comme Unix ou OS/2) peuvent facilement exploiter ces fonctionnalités de programmation avancées. Bien sûr, passer à ces systèmes d’exploitation signifie abandonner le vaste marché de DOS. Les programmeurs DOS et Windows doivent se tourner vers un mini-système d’exploitation spécial - un extenseur DOS. Les extenseurs DOS existent en deux versions : 16 bits et 32 bits.

Les utilisateurs normaux avaient généralement 512Ko. Les mieux nantis avaient 640Ko. Seuls les utilisateurs d’AutoCAD pouvaient justifier l’achat d’un vertigineux 2Mo.

La barrière du 640Ko, ou de son extension entre 2Mo à 16Mo, a été brisée définitivement avec la venue du premier Windows vraiment 32 bits, soit Windows NT 4.0 en 1996, mais il aura fallut attendre AutoCAD R13 pour qu’une version qui lui soit compatible.

La nouvelle limite de 4Go, sur les systèmes à 32 bits, tenait du fait que ce nombre correspond à 2 exposant 32 (ou 2 ^ 32). Dans les faits, on ne pouvait utiliser que les 3 premiers Go; le dernier 1 Go étant utilisé par Microsoft. Il aura fallu attendre AutoCAD 2008 et quelques-uns de ses verticaux (e.g. AutoCAD Mechanical et Architectural Destop) pour voir apparaître les premières moutures 64 bits, même si ces derniers ne pouvaient aller au-delà du 3e Go.

Avec AutoCAD 2009, on pouvait ‹ trafiquer › ce 4e Go mais avec des risques de plantages. Au moins, on pouvait imprimer plusieurs présentations lourdes (espace papier) ayant des photos aériennes. Mentionnons qu’avec les systèmes d’exploitation 64 bits (Windows 7 à ce jour) , la limite n’est pas 2 ^ 64 mais beaucoup plus (e.g. 2To pour Windows 10 Pro).

Revenons au sujet du DOS Extender. Lorsqu’on voulait faire fonctionner des programmes AutoLISP, il fallait configurer le fichier CONFIG.SYS (l’ancêtre de la base de registre) pour réserver un maximum de 45Ko de mémoire. Le HEAP et le STACK devait être répartis selon l’expérience du programmeur (la mémoire HEAP ou tas est un type d’allocation de mémoire dynamique utilisée pour stocker des objets et des structures de données qui nécessitent une durée de vie plus longue que la mémoire STACK ou pile). Voici un exemple :

> SET LISPSTACK=10000
> SET LISPHEAP=35000

Pour continuer, il fallait aussi ajouter une section dans le fichier SYSTEM.INI

[386Enh]
device=pharlap.386

Pour terminer, il fallait configurer le fichier AUTOEXEC.BAT pour y définir des variables système et/ou des chemins de recherche.

Vous aurez sans doute remarqué la grande vulnérabilité de l’installation. Lorsque quelqu’un d’un monde externe à AutoCAD venait installer son logiciel, il modifiait les 3 fichiers selon ses besoins. Il était rare qu’il fasse attention à pas bousiller celle d’AutoCAD. Heureusement que les fichiers de type ‹ setup.exe › et la base de registres y a mis de l’ordre.

Pour rappel, il fallait impérativement installer un coprocesseur mathématiques avec les processeurs 286 et 386, respectivement des 287 et 387. Le processeur 486, incorporait les 2.

1 Like