Processus de démarrage de Windows NT
Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Le processus de démarrage de Windows NT est le processus par lequel Windows 3.1, 3.5, 4.0, 2000, XP, et 2003 s'initialisent.

Pour Windows Vista (NT 6.0) et les successeurs, le processus est substanciellement différent.

Phase (Le mot phase peut avoir plusieurs significations, il employé dans plusieurs domaines et principalement en physique :) de chargement (Le mot chargement peut désigner l'action de charger ou son résultat :) au boot (En informatique, le mot boot (apocope du mot anglais bootstrap, nom qui désigne la languette des chaussures pour pouvoir les enfiler plus facilement, voir la partie Historique de l'article pour plus de précisions) désigne la...)

La phase du chargeur d'amorçage dépend de la plate-forme concernée. Puisque les premières phases ne sont pas techniquement dépendantes du système d'exploitation, le processus d'amorçage est considéré commencé quand :

  • Pour x86 (La famille x86 regroupe les microprocesseurs compatibles avec le jeu d'instructions de l'Intel 8086. Cette série est nommée IA-32 (pour Intel architecture 32 bits) par Intel pour ses processeurs à partir du Pentium.) et x64 : quand le code du secteur d'amorçage est exécuté en mode réel et charge (La charge utile (payload en anglais ; la charge payante) représente ce qui est effectivement transporté par un moyen de transport donné, et qui donne lieu à un paiement ou un bénéfice non...) NTLDR (NTLDR, qui signifie NT Loader, est le nom du chargeur d'amorçage de Windows 2003, XP, 2000 et NT 4.0 et 3.x sur les processeurs x86 et x86-64 (AMD64 et Intel 64) ; par contre, la version actuelle de Windows (Vista) ne l'utilise...)
  • Pour Itanium : quand le programme EFI IA64ldr.efi est exécuté

A partir de ce point (Graphie), le processus d'amorçage suit les étapes suivantes.

x86 x64 Itanium
Quand le contrôle (Le mot contrôle peut avoir plusieurs sens. Il peut être employé comme synonyme d'examen, de vérification et de maîtrise.) est passé (Le passé est d'abord un concept lié au temps : il est constitué de l'ensemble des configurations successives du monde et s'oppose au futur sur une échelle...) à NTLDR, le processeur (Le processeur, ou CPU (de l'anglais Central Processing Unit, « Unité centrale de traitement »), est le composant de l'ordinateur qui...) est en mode réel. La première action de NTLDR est de passer (Le genre Passer a été créé par le zoologiste français Mathurin Jacques Brisson (1723-1806) en 1760.) en mode protégé, ce qui permet l'accès à la mémoire (D'une manière générale, la mémoire est le stockage de l'information. C'est aussi le souvenir d'une information.) 32-bits et donc de créer la table des pages mémoires initiale et d'activer la pagination (D'une manière générale, le mot pagination désigne l'action de paginer son résultat. En particulier il est employé dans deux domaines :) mémoire. Cela fournit les fonctionnalités de base pour le reste de l'amorçage, puis, dans les étapes ultérieures pour le système d'exploitation lui-même.

NTLDR inclut des fonctionnalités de base pour l'accès au(x) disque(s) IDE partitionné NTFS ou FAT, via le BIOS. Si le disque (Le mot disque est employé, aussi bien en géométrie que dans la vie courante, pour désigner une forme ronde et régulière, à l'image d'un palet — discus en latin.) d'amorçage est SCSI et n'est pas accessible avec le micrologiciel (En informatique, un micrologiciel (ou firmware en anglais) est un logiciel qui est intégré dans un composant matériel (en anglais hardware).) du BIOS, alors, un fichier ( Un fichier est un endroit où sont rangées des fiches. Cela peut-être un meuble, une pièce, un bâtiment, une base de données informatique. Par exemple : fichier des patients d'un...) additionnel, Ntbootdd.sys est chargé pour gérer les accès disque à la place des routines par défaut. C'est une copie de ce même miniport[1] SCSI qui sera utilisé quand Windows (Windows est une gamme de systèmes d'exploitation produite par Microsoft, principalement destinées aux machines compatibles PC. C'est le remplaçant de MS-DOS. Depuis les années 1990, avec la sortie de Windows 95, son succès commercial pour...) s'exécutera.

Le chargeur d'amorçage lit alors le fichier boot.ini pour localiser l'emplacement du disque système.

A cette étape, l'écran (Un moniteur est un périphérique de sortie usuel d'un ordinateur. C'est l'écran où s'affichent les informations saisies ou demandées par l'utilisateur et générées ou restituées par l'ordinateur, sous forme de texte et d'images en deux...) est effacé.

Dans les versions de NTLDR ou IA64ldr.efi qui supportent la mise en veille (c'est-à-dire Windows 2000 et versions ultérieures), le fichier de mise en veille est cherché dans le volume (Le volume, en sciences physiques ou mathématiques, est une grandeur qui mesure l'extension d'un objet ou d'une partie de l'espace.) système (volume défini par boot.ini). Si le fichier est trouvé, s'il est positionné comme actif et s'il y a assez de mémoire vive (La mémoire vive, mémoire système ou mémoire volatile, aussi appelée RAM de l'anglais Random Access Memory (que l'on traduit en français par 'mémoire à...), alors, le contenu de ce fichier est chargé en mémoire et le contrôle est transféré au noyau Windows (Les noyaux sur les versions actuelles de Windows sont :) au point exact de la mise en veille. Le fichier est immédiatement marqué comme non-actif. Le but est de se protéger contre les conséquences d'un arrêt brutal de l'ordinateur (Un ordinateur est une machine dotée d'une unité de traitement lui permettant d'exécuter des programmes enregistrés. C'est un ensemble de circuits...) (par l'utilisateur ou par suite d'un problème logiciel (En informatique, un logiciel est un ensemble d'informations relatives à des traitements effectués automatiquement par un appareil informatique. Y sont inclus les instructions de traitement, regroupées...) ou matériel) : ainsi, lorsque l'utilisateur tentera un deuxième reboot (ReBoot en France, MégabogueS au Québec, était une série télévisée en images de synthèses (3D), créée en 1994 par Gavin Blair, Ian Pearson, Phil Mitchell et John Grace de MainFrame...), NTLDR lui donnera le choix entre un boot normal ou une tentative de reprise sur l'état d'avant la mise en veille.

Si le fichier boot.ini contient plus d'une entrée, un menu de boot est affiché, permettant à l'utilisateur de choisir quel système d'exploitation doit être chargé.

CAS 1

L'utilisateur sélectionne un système d'exploitation non NT tel que Windows 98 (spécifié par un chemin type MS-DOS (DOS disk operating system est le nom générique employé pour désigner les anciens systèmes d'exploitation dont les fonctionnalités étaient orientées manipulation aisée des périphériques contenant des...), par exemple C:\),
alors NTLDR charge le fichier secteur de boot spécifié dans boot.ini (par défaut, c'est le fichier bootsect.dos si aucun nom de fichier n'est spécifié), puis NTLDR passe le contrôle de l'exécution à ce fichier.

CAS 2

L'utilisateur sélectionne un système d'exploitation basé sur NT
NTLDR exécute ntdetect.com qui réunit les informations basiques sur le matériel (ces informations proviennent du BIOS).

A cette étape, NTLDR efface l'écran et affiche une barre de progression vide :

  • Windows 2000 affiche une simple barre de texte au bas de l'écran accompagnée par les mots Démarrage de Windows
  • Sur XP et 2003, il n'y a pas de texte, mais une barre de progression, qui n'est pas forcément vue (La vue est le sens qui permet d'observer et d'analyser l'environnement par la réception et l'interprétation des rayonnements lumineux.) par l'utilisateur car elle s'initialise très vite.

Si l'utilisateur appuie sur la touche F8, un menu de boot avancé est affiché. Ce menu propose à l'utilisateur de booter selon différents modes

  • avec la dernière bonne configuration connue
  • avec le Mode débogage activé
  • le mode restauration des services d'Active Directory (ce mode n'a un intérêt que sur un serveur Windows 2003 ou 2000 utilisé comme serveur Active Directory)

Une fois qu'un mode de boot est choisi et si la touche F8 n'a pas été enfoncée, le boot continue.

Si une version x64 de Windows a été bootée (Windows XP Professional x64 Edition ou Windows Server 2003 x64 Editions), alors le processeur passe en mode long et l'adressage 64-bit est activé

Ensuite, NTLDR ou IA64ldr charge le Noyau windows NT (Le noyau de Windows NT est le composant Microsoft qui assure l'accès sécurisé des différentes tâches de Windows à la couche du matériel (Hardware abstraction layer).) et la couche d'abstraction ( En philosophie, l'abstraction désigne à la fois une opération qui consiste a isoler par la pensée une ou plusieurs qualités d'un objet concret pour en former une...) matérielle (hal.dll) en mémoire. Si NTLDR ou IA64ldr échoue à charger ces fichiers, un message (La théorie de l'information fut mise au point pour déterminer mathématiquement le taux d’information transmis dans la communication d’un message par un canal de communication, notamment en présence de parasites appelés...) indiquera que Windows ne peut commencer parce que le fichier est corrompu En fait, En fait, le libellé d'erreur prête à confusion : en dehors de la corruption d'un de ces 2 fichiers, d'autres erreurs (temporaires ou définitives) peuvent provoquer ce message.Sur ce message d'erreur, le processus de boot se fige.

Si de multiples configurations matérielles sont définies dans la base de registre (La base de registre est une base de données utilisée par le système d'exploitation Windows. Elle contient les données de configuration du système d'exploitation et des autres logiciels...), un menu est proposé à l'utilisateur pour les choisir.

La prochaine tâche de NTLDR ou IA64ldr est de charger (mais pas d'initialiser) tous les pilotes en mémoire. Cette information est stockée sous l'arborescence HKey_Local_Machine\SYSTEM du registre, dans un sous-arbre du registre appelé ControlSet. De multiples ControlSet sont conservés ; il y en a au minimum deux : celui en cours et le dernier qui a permis un boot complet. HKey_Local_Machine\SYSTEM contient des ControlSet nommésControlSet001, ControlSet002, etc., ainsi que CurrentControlSet. En fonctionnement normal, Windows utilise CurrentControlSet pour lire et écrire des informations. CurrentControlSet est une simple référence : pour déterminer quel est le ControlSet qui servira de ControlSet courant, NTLDR ou IA64ldr utilisera les valeurs qui sont sousHKey_Local_Machine\SYSTEM\Select:

  • Default sera la valeur choisie si aucune autre n'est indiquée
  • Si la valeur de clé Failed correspond à Default, alors NTLDR ou IA64ldr affiche un message d'erreur, indiquant que le dernier boot a échoué, et propose à l'utilisateur de réessayer ou d'utiliser la dernière bonne configuration connue.
  • Si l'utilisateur a choisi dernière bonne configuration connue, le controlSet indiqué par LastKnownGood est utilisé au lieu de Default.

Quand un ControlSet est choisi, la clé Current est positionnée pour pointer dessus. La clé Failed est aussi positionnée à la même valeur que Current jusqu'à la fin du processus de boot. La clé LastKnownGood est aussi positionnée à Current si le boot se déroule complètement (Le complètement ou complètement automatique, ou encore par anglicisme complétion ou autocomplétion, est une fonctionnalité...) et avec succès.

NTLDR détermine quels seront les pilotes boot-time qui seront nécessaires au tout (Le tout compris comme ensemble de ce qui existe est souvent interprété comme le monde ou l'univers.) début de l'exécution du noyau.

NTLDR ou IA64ldr passe le contrôle au noyau Windows. Windows affiche alors l'écran bleu (Bleu (de l'ancien haut-allemand « blao » = brillant) est une des trois couleurs primaires. Sa longueur d'onde est comprise approximativement entre 446 et 520 nm. Elle varie en luminosité du cyan à...) qui liste le nombre (La notion de nombre en linguistique est traitée à l’article « Nombre grammatical ».) de processeurs, la quantité (La quantité est un terme générique de la métrologie (compte, montant) ; un scalaire, vecteur, nombre d’objets ou d’une autre manière de dénommer la valeur...) de mémoire installée, les switch de boot.

Voir Boot.ini: Les switch du noyau

Phase de chargement du noyau Windows

L'initialisation du noyau et du sous-système exécutif de Windows se fait en deux phases.

Durant la première phase, des structures de base de la mémoire sont créées, et chaque processeur est initialisé. Le gestionnaire de mémoire est initialisé, créant les structures nécessaires pour

  • le cache des systèmes de fichiers
  • les pools de mémoire paginée et non-paginée,
  • le gestionnaire d'objet (De manière générale, le mot objet (du latin objectum, 1361) désigne une entité définie dans un espace à trois dimensions, qui a une fonction précise, et qui peut être désigné par une étiquette verbale. Il est...) (lien),
  • le jeton de sécurité initial (voir (en) security token) pour l'assignation du premier processus du système
  • le gestionnaire de processus.

Le Processus inactif du système (voir (en) System idle (Idle est un terme le plus souvent utilisé en informatique venant de la langue anglaise et qui peut avoir plusieurs significations voisines, selon le contexte dans lequel il est utilisé.) process) et le gestionnaire du système sont créés à cette étape.

NB : Le processus inactif du système (System idle process) a son équivalent sous unix/linux : il s'agit de la tâche invisible qui a un PID de 0 et qui lance la tâche init dont le PID est toujours 1.

La seconde ( Seconde est le féminin de l'adjectif second, qui vient immédiatement après le premier ou qui s'ajoute à quelque chose de nature identique. La seconde...) phase initialise les pilotes qui ont été identifiés par NTLDR ou IA64l comme pilote boot-time.

Durant le chargement de ces pilotes, une barre de progression est affichée au bas de l'écran sur Windows 2000 ; dans Windows XP et Windows Server 2003, cette barre a été remplacée par une barre animée qui ne représente pas la progression. Cette phase est plus courte avec XP et les versions postérieures car l'initialisation des pilotes se fait en parallèle, en asynchrone (au lieu de les faire un par un, les uns après les autres, en synchrone).

Gestionnaire de session (smss.exe)

Une fois que les pilotes de boot et les pilotes système ont été chargés, le noyau (thread système) lance le Session Manager SubSystem (smss.exe). SMSS est un des plus importants composants de Windows.

SMSS.exe lit la clé BootExecute (dans HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\). La valeur par défaut de cette clé indique de faire un autochk sur toutes les partitions de disque ((lien) ). Plus précisément, Autochk monte tous les pilotes de stockage et vérifie qu'ils ont été arrêtés proprement. C'est l'équivalent du fsck de linux (Au sens strict, Linux est le nom du noyau de système d'exploitation libre, multitâche, multiplate-forme et multi-utilisateur de type UNIX créé par Linus Torvalds, souvent désigné comme le noyau Linux. Par extension, Linux...).

A cette étape, l'écran est très différent selon les différentes versions de Windows.

Après cette étape, smss.exe peut ouvrir les différents fichiers nécessaires pour effectuer les actions suivantes :

  • Crée les variables d'environnement (L'environnement est tout ce qui nous entoure. C'est l'ensemble des éléments naturels et artificiels au sein duquel se déroule la vie humaine. Avec les enjeux écologiques actuels, le terme environnement...) (HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment : %PATH%, %PATHEXT%, %TEMP%, %TMP%, %WINDIR%, %OS%, %COMSPEC% (voir (en) ComSpec, %NUMBER_OF_PROCESSORS, %PROCESSOR_ARCHITECTURE%, %PROCESSOR_IDENTIFIER%, ...etc...
  • Commence le sous-système Win32 en mode noyau (win32k.sys). Cela permet à Windows de passer en mode graphique.
  • Crée les fichiers de pagination mémoire virtuelle (Le mécanisme de mémoire virtuelle a été mis au point dans les années 1960. Il est basé sur l'utilisation d'une mémoire de masse (type disque dur ou anciennement un tambour), pour le but, entre autres, de...) (Les paramètres de configuration sont dans HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory managment)
  • Any rename operations queued up are performed. This allows previously in-use files (e.g. drivers) to be replaced as part of a reboot.

Il lance

  • Le Windows Logon Manager (winlogon.exe). Winlogon gère le logon interactif (local ou distant). La bibliothèque GINA (voir (en) Graphical Identification And Authentication) est chargée et utilisée par le processus winlogon

S'il y a plusieurs sessions ouvertes (c'est-à-dire plus d'un utilisateur connecté), alors SMSS.exe lance à chaque fois un processus winlogon .exe supplémentaire.

Winlogon

  • voir (en) en:Windows NT Startup Process#Winlogon
  • Le premier winlogon.exe lance
    • le service sécurité locale lsass.exe (Local Security Authority Subsystem Service)
    • Spouleur d'imprimante (Les imprimantes ont été conçues dès l’apparition des premiers ordinateurs, pour permettre la consultation et la conservation sur support papier des résultats produits par les programmes informatiques. En...) spoolsV.exe

Winlogon réalise l'identification et l'authentification (L'authentification est la procédure qui consiste, pour un système informatique, à vérifier l'identité d'une entité (personne, ordinateur...), afin...) d'un utilisateur via

  • Le service lsass.exe
  • Une bibliothèque GINA (conçue pour l'authentification et l'identification), voir (en) GINA (Graphical Identification aNd Authorization). La plupart des utilisateurs se servent (Servent est la contraction du mot serveur et client.) de la bibliothèque GINA fournie par Microsoft (Microsoft Corporation (NASDAQ : MSFT) est une multinationale américaine de solutions informatiques, fondée par Bill Gates et Paul Allen, dont le revenu annuel a atteint 44,28 milliards...), par défaut.

Si l'utilisateur est identifié et authentifié, alors

  • Lancement de userinit.exe
  • Lancement du shell de l'utilisateur (par défaut, c'est l'Explorateur Windows (L'explorateur Windows (en anglais, Windows Explorer) est l'application utilisée dans les versions modernes du système d'exploitation Windows pour l'affichage, l'exploration et l'utilisation des fichiers et répertoires. Windows Explorer, qui...) (explorer.exe)

Si plus d'une session est ouverte (c'est-à-dire plusieurs utilisateurs connectés en même temps), alors il y aura plusieurs

  • winlogon.exe (1 par utilisateur connecté)
  • csrss.exe (1 par utilisateur connecté)

Logon Phase

  • voir (en) en:Windows NT Startup Process#Logon Phase
    1. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Runonce
    2. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer\Run
    3. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
    4. HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\Run
    5. HKCU\Software\Microsoft\Windows\CurrentVersion\Run
    6. HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
    7. All Users ProfilePath\Start Menu\Programs\Startup\ (Sur une version de Windows anglophone)
    8. Current User ProfilePath\Start Menu\Programs\Startup\ (Sur une version de Windows anglophone)

Installation et boot à distance

  • Le service BINL (Boot Information Negotiation Layer) permet l'installation à distance de Windows pour des ordinateurs équipés de carte(s) réseau (Un réseau informatique est un ensemble d'équipements reliés entre eux pour échanger des informations. Par analogie avec un filet (un réseau est un « petit rets », c'est-à-dire un petit filet), on...) PXE (Preboot Execution Environment).

Voir aussi (en) RIS (Remote Installation Services)

Voir (en) Description of PXE Interaction (Une interaction est un échange d'information, d'affects ou d'énergie entre deux agents au sein d'un système. C'est une action réciproque qui suppose l'entrée en contact de sujets.) Among PXE Client (Le mot client a plusieurs acceptations :), DHCP, and RIS Server

Informations additionnelles

HKEY_Local_Machine\HARDWARE

Page générée en 0.160 seconde(s) - site hébergé chez Amen
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
Ce site est édité par Techno-Science.net - A propos - Informations légales
Partenaire: HD-Numérique