1. Introduction
2. Commandes du config.sys 
3. Commandes de l'autoexec.bat 
4. Gestion de la mémoire 
5. Exemples de configuration 
6. Menus de démarrage sous DOS

1. Introduction
Sous DOS, lorsque l'ordinateur démarre, il lit d'abord les informations inclues dans le BIOS (paramétrable à partir des 80286 par le setup). Ce firmware permet de configurer l'hardware du PC, notamment de déterminer l'ordre de bootage (démarrage) des disques (lecteur de disquette, disque dur, CD-ROM).
Une fois le périphérique de démarrage déterminé, le PC va lire les fichiers systèmes sur le disque pour déterminer s'il est effectivement bootable et démarrer le système d'exploitation: command.com, io.sys et ms.sys (dans le cas d'un DOS Microsoft)

Dans le cas du DOS, il va lire deux fichiers de configuration de type texte l'un à la suite de l'autre:
  1. Config.sys reprend les configurations matérielles de la machine (configuration mémoire par exemple)
  2. autoexec.bat reprend les paramètres utilisateurs (clavier, souris, ...).
Ces deux fichiers sont optionnels et doivent se trouver à la racine du disque de démarrage.
Pour ne pas démarrer ces fichiers au démarrage:
  • maintenez la touche F8 enfoncée lors du message "Démarrage de MS-DOS", DOS demandera confirmation de chaque commande
  • ou démarre sans les exécuter.
Pour modifier ces fichiers, vous pouvez utiliser la commande DOS EDIT (y compris sous XP). C'est un petit éditeur de texte sous DOS implanté comme fichier externe.

2. Commande standard du config.sys

Toutes les commandes reprises ci-dessous ne sont pas forcément installées. Commençons par un résumé des commandes:
BreakSpécifie au DOS de vérifier régulièrement la combinaison de touches + (arrêter) ou + suspendre temporairement le fonctionnement des lignes de commandes, programmes sous DOS
Buffersdétermine la quantité de buffers disques (tampon) à réserver pour les transferts de données mémoire - disques durs: 1 à 99.
CountryPermet de définir le pays
DevicePermet de charger un pilote de périphérique
DevicehighPermet de charger un pilote de périphérique en mémoire haute (entre 640Kb et 1 MB), depuis la version 5.0
DOSspécifie si DOS peut être chargé en mémoire supérieure
DRIVPARMPermet de définir les caractéristique d'un disque, quasiment pas utilisé
FILESSpécifie le nombre de fichiers maximum que le système d'exploitation peut ouvrir simultanément
INSTALLCharge un programme résident en mémoire, les programmes peuvent également être démarrés par l'autoexec.bat
LASTDRIVEDéfinit la lettre maximum autorisée pour les disques. 
NUMLOCKDéfinit si le pavé numérique est activé au lancement, peut être paramétré par le BIOS.
REM (ou ;)Remarque
SETPermet de définir des variables d'environnement. 
SHELLPermet de définir un autre interpréteur de commande COMMAND.COM
STACKSDéfinit la quantité de mémoire pour les interruptions matérielles
SWITCHESPermet de sélectionner des lignes de commandes dans un menu suivant le choix utilisateur, à partir de DOS 5.0
Quelques commandes spécifiques de périphériques sont également définies par MS-DOS. Ce sont des fichiers externes (inclus généralement dans le répertoire DOS). D'autres sont fournies directement par le constructeur du périphérique. Il se chargent par device=[emplacement]\commande ou si la mémoire haute est gérée par device=[emplacement]\commande
ANSI.SYSCrée une émulation de terminal ANSI
DISPLAY.SYSGère la commutation de pages de code pour l'écran
DRIVER.SYSCrée une unité logique renvoyant à un lecteur disquettes physique
EMM386.EXEStimule la mémoire supérieure pour les ordinateurs à base de 386 et supérieurs utilisant la mémoire étendue. Certaines options ne sont accessibles qu'à partir de la version 5.0
HIMEM.SYSGère l'utilisation de la mémoire étendue (supérieure au 1 MB) pour les ordinateurs à base de 286 ou supérieurs
RAMDRIVE.SYSCrée une zone mémoire reprenant le contenu d'un disque dur.
SETVER.SYSCharge la table des versions en mémoire, utilisé pour la compatibilité avec les anciens programmes.
SMARTDRV.SYSCrée un tampon mémoire pour les accès disques durs.
L'ordre des commandes n'a pas réellement d'importance, sauf dans le cas de la gestion de la mémoire haute.
  • Device= [emplacement] himem.sys
  • Dos = high
  • Device = [emplacement] Emm386.exe Noems (RAM)
  • DOS=UMB
les commandes suivantes avec devicehigh
Dans ce cas, vous pouvez également utiliser DOS=HIGH,UMB (en supprimant la deuxième ligne).

3. Commandes du fichier AUTOEXEC.BAT.

Le fichier autoexec.bat est un fichier texte qui reprend les commandes utilisateurs. Quelques unes sont préprogrammées pas le système d'exploitation mais vous pouvez également démarrer vos propres programmes par ce fichier de commande (en fin de listes).
PROMPTPermet de modifier le prompt, l'invite de commandes. Le plus courant est Prompt $p$g qui affiche la lettre du disque dur et le répertoire courant.
MODEPermet de définir les caractéristiques des ports de communications (COM et PRN)
PATHSpécifie les répertoires de recherche et l'ordre dans lequel il sont analysés.
ECHO OFFPermet de ne pas afficher les commandes du fichier autoexec.bat lors de l'exécution
SETDéfinit des variables d'environnement pour certains programmes
CLSn'affiche pas les commandes exécutées
Ce fichier batch permet également de définir les programmes résidents à télécharger comme DOSKEY (mise en mémoire des commandes tapées) ou SMARTDRV qui accélère l'accès aux disques durs.
Loadhigh (LH en abrégé) permet d'exécuter le programme en mémoire haute.

4. Gestion de la mémoire.

Par la conception des premiers XT, la mémoire d'un PC est constituée de 3 zones:
  • la mémoire de base (de 0 à 640KB), aussi appelée conventionnelle.
  • la mémoire haute réservée au départ pour les périphériques comme la carte écran
  • la mémoire supplémentaire supérieure à 1 MB. Cette partie n'existe que pour les 286 et supérieurs. Elle est configurée en 2 parties: la mémoire paginée qui n'est utilisable que sous DOS et la mémoire étendue, utilisable sous Windows.
Par défaut, DOS n'utilise que la zone de 0 à 640 KB (mémoire de base). Les commandes de gestion de la mémoire supérieure sont apparues avec la version 3.3. D'autres commandes, permettant notamment de récupérer les zones libres de la mémoire haute sont apparues avec le 5.0, les version 6 utilisent diverses commandes pour automatiser la gestion de cette zone mémoire. La configuration mémoire de l'ordinateur peut être affichée par la commande sous DOS mem.
Nous considérons que le dossier où est installé le DOS est C:\DOS.
Device=c:\dos\hymem.sys
C'est la première commande à insérer dans le config.sys. Ce programme assure la coordination de la mémoire étendue et s'assure que 2 applications n'utilisent pas la même zone. Différentes options existent mais ne sont pas utilisées.
DOS=HIGH: cette commande est liée à hymem.sys et permet de transférer le DOS vers la mémoire haute, libérant de l'espace dans la mémoire conventionnelle pour les programmes.
DEVICE=c:\DOS\emm386.exe permet la gestion de de mémoire supérieure. La quantité de mémoire utilisable peut être renseignée, mais ce n'est pas nécessaire. Par contre on retrouve 2 options: RAM et NOEMS. RAM permet d'utiliser la mémoire supérieure pour les programmes DOS, NOEMS permet d'utiliser la mémoire supérieure également mais pas pour les programmes DOS (uniquement Windows 3.0, 3.1 et 3.11). En gros, les joueurs utiliseront DEVICE=c:\DOS\emm386.exe RAM, les applications bureautiques sous Windows: DEVICE=c:\DOS\emm386.exe NOEMS. Une dernière remarque, les 286 ne permettent pas d'utiliser Noems, Windows 3.X ne fonctionne pas en mode étendu avec ce processeur, uniquement à partir des 386.
DOS=UMB permet aux programmes d'utiliser la mémoire supérieure.
Si emm386.exe est démarré, vous pouvez transférer les pilotes et programmes démarrés par config. sys et autoexec.bat vers la mémoire haute. Dans config.sys, la commande DEVICE est remplacée par DEVICEHIGH. Pour l'autoexec.bat, insérez devant les commandes LOADHIGH (LH en abrégé).
RAMDrive.sys est utilisé notamment pour les disquettes d'installation créée par Windows 98. Ce programme crée une zone disque dur en mémoire. Il est démarré par le config.sys. La syntaxe globale est device=[emplacement]ramdrive.sys taille disque en KB /e. Le /e impose la mémoire supérieure. D'autres options peuvent également être utilisées. La lettre du lecteur est la suivante de celle des partitions de disques durs.
Exemple: device=c:\dos\ramdrive.sys 1024 /e 
SMARTDRV.exe est une commande du fichier autoexec.bat. Elle permet de créer un tampon mémoire du disque dur. Ceci  accélère les échanges mais peut poser quelques problèmes si vous éteignez votre ordinateur. Pour cela, on crée un double tampon (à la fois en mémoire et sur le disque dur) en ajoutant l'option /c. Smartdrv /c.
L'utilitaire MEMMAKER est apparu avec la version 6.0. C'est un utilitaire qui va modifier les fichiers config.sys et autoexec.bat pour libérer le maximum de mémoire Ram.

5. Exemple de configuration standard

5.1. Configuration courante, souris en mémoire haute

CONFIG.SYS
  • Device=c:\DOS\himem.sys
  • Device =c:\DOS\ Emm386.exe Noems
  • DOS=high,UMB
  • DEVICEHIGH=c:\mouse\mouse.sys
  • BUFFERS=20
  • FILES=40
AUTOEXEC.BAT
  • Path=c:\dos
  • Keyb fr
  • Prompt $p$g
  • set temp=c:\temp
  • LH c:\dos\doskey /insert
La gestion de la mémoire est assurée dans le config.sys. On charge également un pilote externe pour la souris. Le buffers disque dur est placé à 20 avec jusque 40 fichiers ouverts simultanément. L'autoexec.bat signale que le répertoire de recherche est c:\DOS, le clavier est de type français (be pour un clavier belge), les fichiers temporaires sont transféré dans le dossier c:\temp. On affiche leprompt sous la forme disque:répertoire. On charge également en mémoire haute l'utilitaire doskey avec l'option insert.

5.2. Gestion CD-ROM

L'installation d'un lecteur CD-ROM sous DOS se fait en 2 étapes. Dans le config.sys, on charge le pilote spécifique (ils sont généralement tous compatibles).
DEVICE=c:\cd-rom\cdrom.sys /d:CD001 où CD001 est le nom que vous donnez au lecteur.
Dans l'autoexec.bat, on utilise le fichiers DOS MSCDEX.EXE qui est le gestionnaire de lecteur CD.
c:\dos\mscdex.exe /d:CD001 CD001 est le nom du lecteur désigné dans le config.sys. Vous pouvez également utiliser la commande optionnelle HL pour le transférer en mémoire haute. Dans Windows 95 et supérieurs, ce fichier se trouve en c:\windows\command comme la majorité des commandes DOS. Il n'existe plus en 2000 et suivants.

6. Démarrage sélectif par menus.

Les commandes ci-dessus vont nous permettre de définir des configurations multiples au démarrage du DOS (à partir de DOS 5.0). Ceci permet par exemple de spécifier des programmes à démarrer dans certains cas. La majorité des commandes s'insèrent dans le CONFIG.SYS. Les branchements conditionnels de l'autoexec.bat passent par les commandes IF et goto.
Pour démarrer spécifiquement, vous pouvez également appuyé sur la touche F5 qui passe les fichiers config.sys et autoexec.bat ou sur la touche F8 qui permet d'accepter ou non chaque ligne de commande.
Les commandes ci-dessous ne fonctionnent qu'à partir de DOS 5.0. Elles sont également utilisables en mode DOS sous Windows 95 et suivant.

6.1. Les commandes de Menus.

Ces commandes peuvent être insérées n'importe où dans le config.sys.
Pour créer un menu, vous devez créer des blocs de commandes. La première reprend les choix possibles pour l'utilisateur.
[MENU]
MENUITEM=normal
MENUITEM=jeux
Le menu ci-dessus affiche deux choix possibles: normal et jeux. La suite va déterminer les commandes en fonctions du choix du menu de démarrage.
[normal]
Files=20
buffers=10
[jeux]
files=40
buffers=40
Dans l'exemple ci-dessus, si l'utilisateur choisit normal, Files va être définit à 20 et buffers à 10. Si le choix est jeux, files sera de 40 et buffers de 40.
Une définition de menu particulier [common] permet d'exécuter les commandes reprises dans le bloc quelque soit le choix de l'utilisateur. Il doit apparaître en premier si nécessaire. Un exemple de config.sys:
[MENU]
MENUITEM=normal
MENUITEM=jeux
[common]
Device=c:\DOS\himem.sys
[normal]
Device =c:\DOS\ Emm386.exe Noems
Files=20
buffers=10
[jeux]
Device =c:\DOS\ Emm386.exe RAM 2048
files=40
buffers=40
[common]
DOS=high,UMB
DEVICEHIGH=c:\mouse\mouse.sys
Cet exemple permet de gérer les 2 types de mémoires supérieures.

6.2. Utilisation des menus pour AUTOEXEC.BAT

Le choix utilisateur se fait dans le config.sys mais il peut permettre de modifier les commandes exécutées dans l'autoexec.bat avec la commande goto %config%, en utilisant des étiquettes. Les noms d'étiquettes doivent donc être définies à partir des choix possibles dans le config.sys.
Ceci nécessite quelques commandes spéciales. A la fin du fichier autoexec.bat, insérés l'étiquette :fin. Chaque groupe de commande (désigné par une étiquette) doit reprendre la commande goto fin.
Exemple de menu:
  • path=c:\dos
  • c:\dos\mscdex.exe /d:CD001
  • KEYB fr
  • REM fin de la configuration pour chaque menu
  • goto %config%
  • :normal
  • lh doskey /insert
  • goto fin
  • :jeux
  • goto fin
  • :fin

Publier un commentaire

Blogger