Démarrage



1. L'autotest de démarrage
2. L'amorçage sur disque
3. Le Système d'exploitation

1. L'autotest de démarrage

Quand votre ordinateur est éteint et que vous 
appuyez sur l'interrupteur marche il ne semble
rien se passer pendant quelques secondes,
mais en réalité l'ordinateur effectue des taches
de vérification de son état pour s'assurer que
tous les composants sont en état de fonctionnement
correct.

Cette phase n'est en fait que le début d'un processus
Le démarrage que l'on appelle souvent "BOOT".
Le démarrage effectue en premier lieu un autotest
ou POST ( Power-On-Self-Test ).

Si il détecte une anomalie sur un composant :
  Mémoire
  Clavier
  Vidéo
  Processeur
  Disque et disquette
  Cmos etc ...

Une série de BIP caractéristique et propre
à chaque version de bios vous avertira pour éclairer
la nature du problème.
( Voir site du constructeur BIOS pour doc ou avec votre
documentation de votre carte mère )

Un simple "BIP" accompagné de l'invite "Ms-DOS version X.xx"
ou "Microsoft Windows XX" signifie que les composants de
base ont passé avec succès l'épreuve de
l'autotest. 
	 
PHASE 1 : Au démarrage du micro un signal électrique 
se propage le long d'un chemin prédéfini jusqu'au CPU pour
effacer les données résiduelles de ses registres internes
(fonction RESET du microcode).
Ce signal installe une valeur spécifique dans un registre 
appelé compteur de programme ou Compteur ordinal
( F000 sur les PC ).

La valeur dans le compteur de programme indique au CPU
l'adresse de la prochaine instruction à exécuter.
Ici c'est l'adresse F000 qui est stockée en ROM 
( mémoire morte )

PHASE 2 : Le CPU se sert de cette adresse pour lancer en 
ROM le programme de démarrage du BIOS, qui lance lui une
série de tests système ( POST )
en les comparant avec le contenu de certaines adresses
avec des valeurs connues.
	
PHASE 3 : Le CPU (encore lui ...) envoie un signal sur le
BUS SYSTEME (Circuit reliant tous les composants entre eux),
pour s'assurer qu'ils fonctionnent tous.

PHASE 4 : Vérification par le CPU de l'horloge
système, qui est responsable de la synchronisation
des opérations.

PHASE 5 : Test de la mémoire installée sur la carte vidéo,
ainsi que des signaux vidéo qui contrôlent l'affichage.
(Apparition de la première image sur l'écran )

PHASE 6 : Test de la mémoire RAM installée (En la remplissant
de données connues à l'avance et en les relisant ensuite).

PHASE 7 : Test du clavier en lui envoyant un signal.

PHASE 8 : Envoie aux unités de disques des signaux spécifiques 
et écoute leurs réponses pour déterminer les 
lecteurs disponibles.

PHASE 9 : Comparaison des informations trouvées par rapport
à celles contenues dans la mémoire CMOS.

PHASE 10 : Intégration du BIOS de certaines cartes additionnel 
( Contrôleur SCSI ... ).		  	  		  		  		  	  	   

2. L'amorçage sur disque
   		
L'ordinateur ne peut rien faire sans système
d'exploitation.

Mais avant de le lancer, la machine a besoin de le 
charger du disque en mémoire.

Le programme d'amorçage contenu dans les puces
de la ROM interroge le lecteur A pour voir si il contient
une disquette formatée, si c'est le cas le programme
cherche sur le secteur d'amorce du disque les fichiers
IO.SYS et MSDOS.SYS sinon le programme recherche sur le
lecteur de disque dur.

Si il ne trouve pas les fichiers d'amorce un message 
d'erreur est affiché. Lorsque les fichiers sont trouvés
le programme d'amorce copie en mémoire le premier
secteur dans des emplacements mémoire spécifique.

Ce code appelé enregistrement d'amorçage prend 
512 octets. Après avoir placé l'enregistrement 
d'amorçage à l'adresse 7C00, le BIOS lui donne
le controcirc;le en se branchant à cette adresse.

A quoi sert IO.SYS et MSDOS.SYS ?

Le fichier IO.SYS contient des extensions du ROM BIOS
et comprend une routine nommée SYSINIT qui prend en charge
le reste du démarrage.

SYSINIT prend le contrôle du processus de démarrage
et charge MSDOS.SYS en RAM.
Il interagit avec le BIOS pour gérer les fichiers, 
exécuter les programmes et répondre aux signaux 
des divers composants.

SYSINIT recherche aussi dans le répertoire racine du disque
un fichier nommé CONFIG.SYS.Si il existe SYSINIT demande a MSDOS.SYS
d'en exécuter les commandes.

CONFIG.SYS sert à donner des paramètres au
système d'exploitation. Comme aussi des gestionnaires
de périphériques ( drivers ).

Ca sert à étendre le contrôle du BIOS vers le matériel.
SYSINIT demande a MSDOS.SYS de charger COMMAND.COM.
Ce fichier du système d'exploitation est composé
de trois parties.
L'une est une nouvelle extension aux fonctions
d'entrées/sortie. Elle est chargée en mémoire et devient
une partie permanente du système d'exploitation.
La seconde partie du fichier COMMAND.COM contient les
commandes DOS internes comme 'DIR' 'COPY' 'TYPE'.

La troisième partie n'est utilisée qu'une fois
elle sert a rechercher sur la racine le fichier AUTOEXEC.BAT.
Le fichier AUTOEXEC.BAT contient des commandes batch du DOS
ainsi que certains programme qui doivent être
lancés au démarrage.

3. Le système d'exploitation



La phase d'amorçage que nous avons vu au dessus est
spécifique au DOS de Microsoft (Windows démarre
pareil mais il charge une couche logiciel 
supplémentaire pour prendre en compte un nouveau
noyau et une interface graphique).

Il n'existe pas un système d'exploitation mais bien
plusieurs, En effet malgré la suprématie
de Microsoft dans le domaine des alternatives existent
pourtant : Linux présent en plusieurs distribution
tel que mandrake, sus, slackware etc ... )

Linux est un dérivé du système UNIX.BeOS est un autre 
système basé multimédia. Je ne vais pas vous expliquer
en détail tel ou tel système d'exploitation mais
plutôt vous donner des éléments vous permettant de
comprendre les bases d'un système d'exploitation.

Quel est le but d'un système d'exploitation ?
Et bien c'est l'interface ( ce qu'il y a entre ce qui fait
la jonction ) entre les applications(ou les commandes tapées par
l'utilisateur) et la machine.

Au départ le S.E devait servir à assurer la gestion les
plus complexes comme la gestion des fichiers sur les disques.

Bien vite les taches se sont rendu de plus en 
plus nombreuses et complexe. Le S.E ne travaille pas seul,
mais doit s'appuyer sur d'autres programmes et sur une
relation direct avec le BIOS.
Avec le BIOS et les pilotes de périphérique, le S.E effectue
une telle quantité de taches qu'il est impossible de les
décrire toutes.

Un S.E c'est un Noyau avec différentes couches logiciel.
Un S.E possède un système de commande
(Langage de commande ou shell) exploitable avec 
des règles de syntaxe bien établies.
Par exemple command.com; c'est une couche logiciel qui
interprète les commandes tapées par l'utilisateur.

Chaque programme lancé par le S.E est identifié par un
numéro appelé	numéro de processus.
Ce numéro de processus est unique
à un moment donné.
			
Exemple d'interprétation d'une commande DOS:
Quand vous tapez une commande ou un nom d'application sur 
invite DOS Command.com demande au bios de rechercher le prg
le long du chemin d'accès et de le copier en
mémoire, à la première adresse	de libre.

Depuis votre application vous demandez l'impression de votre
document. Le programme produit une INTERRUPTION, code spécial
qui réclame	l'attention du système d'exploitation.

 La valeur de l'interruption indique quel service est demandé.
Dans le cas de l'impression d'un caractère
l'interruption est a deux niveaux car elle peut être
utilisée pour plusieurs services.

 L'interruption elle même porte le numéro 33
et l'envoi du caractère à l'imprimante est le 
numéro 5.

L'interruption est interceptée par le contrôleur
d'interruption ; puce spéciale qui traite le signal 
'interruption.

Le contrôleur d'interruption indique au microprocesseur
qu'une interruption à eu lieu et demande son attention immédiate.
Comme le proc doit pouvoir revenir à la tache qu'il 
était en train de traiter, il doit stocker l'adresse
courante de l'instruction dans une pile(stack).

C'est une zone mémoire spéciale pour stocker les adresses mémoires
C'est une pile FIFO ( First In / First Out ) ou plus simplement 
pile d'assiette.

Le processeur examine la partie de mémoire RAM ou sont
stockés les vecteurs d'interruptions pour trouver l'interruption
33 service 5.

Les vecteurs d'interruptions sont stockés dans le premier
kilo octet de la ram par le système d'exploitation.
Une fois exécuté le bios déclenche	un IRET qui indique
au processeur de retourner chercher l'adresse qui se trouve
au sommet de la pile pour reprendre sa tache.

Il faut bien comprendre que Les vecteurs d'interruptions
sont définis par le BIOS et par le système
d'exploitation.

Voici une quelques interruptions ( Vecteur d'interruption )
avec leurs significations et leur adresse mémoire,
à noter qu'une adresse mémoire et toujours composé d'une
adresse de segment et d'un offset ( segment = adresse
mémoire et offset = déplacement dans le segment
voici une explication rapide ... )
Interruption Evénement Adresse System concerné
INT 00 Division par 0 0000:0001 Zone d'interruption
INT 01 Single step 0070:0465 MSDOS
INT 02 NMI EAFD:0016 STACKS
INT 03 Break point 0070:0465 MSDOS
INT 04 Overflaw 0070:0465 MSDOS

Lors de l'interruption( logiciel ou matériel ), le processeur 
utilise le numéro d'interruption pour lire l'adresse associé
et exécute la fonction se trouvant à cette adresse et terminé
par IRET ( Pour dire au processeur de retourner à la tache
qu'il faisait avant l'interruption).

Il est a noté également qu'il existe des fonctions BIOS & des
fonctions DOS, ces dernières étant regroupées en famille
par exemple INT 21.

Il existe différent services associés ( la valeur stockée dans
le registre AH ),la plus connue est INT 21,0 Programme terminé
(Interruption 21 service 0).