Noyau Windows NT
Le noyau de Windows NT est le composant noyau de Microsoft qui assure l'accès sécurisé des différentes tâches de Windows à la couche du matériel (Hardware abstraction layer). C'est un des noyaux de Windows.
Pour les articles homonymes, voir noyau.
Sur un système 32 bits classique monoprocesseur, le noyau s'appelle NTOSKRNL.EXE ; c'est le cas le plus fréquent actuellement. Sur un système 32 bits multiprocesseur SMP, le nom est NTKRNLMP.EXE. Sur un système PAE (Physical Address Extension), le nom du noyau Windows est NTKRNLPA.EXE pour un monoprocesseur et NTKRPAMP.EXE sur un multiprocesseur.
Le noyau de Windows NT est multitâche préemptif et multi-utilisateur, de type :
Le présent article concerne, Windows 10 Mobile, Windows 8.x, Windows Phone 8.x, Windows 7, Windows Vista, Windows Server 2003, Windows XP, Windows 2000 et Windows NT.
Les différents composants de la couche d'abstraction matérielle
Le noyau Windows est l'interface du gestionnaire d'objets pour accéder aux composants matériels.
Le noyau de Windows NT est le seul composant de Windows NT à avoir accès directement aux composants matériels suivants de la HAL :
- DMA (Accès direct mémoire)
- bus mapping
- Horloge et timer
- Gestion des interruptions
- Privileged Architecture
Pour la gestion des entrées/sorties (disques et autres...) et de l'interface graphique GDI, il existe d'autres composants qui font un accès direct à la HAL : ce sont les pilotes en mode noyau (KMD : Kernel Mode Drivers) qui respectent le modèle Windows Driver Model (WDM).
Le gestionnaire d'objets a accès à la base de registre de Windows.
Paramétrage du noyau
Le paramétrage du noyau est fait
- par les switch de boot, voir boot.ini, le fichier de configuration de l'amorçage
- par la base de registre (voir gestionnaire de session et les autres composants de base de Windows)
Historique
Le noyau de Windows Millennium, 98, 95 et des versions plus anciennes
Dans le noyau des anciennes versions de Windows, les différents composants pouvaient accéder directement à la couche matérielle via VxD (Virtual Device Driver).
Les plus anciens noyaux de Windows étaient multitâche coopératif et mono-utilisateur. Le nom du noyau était KRNL286.EXE pour le microprocesseur Intel 80286 et KRNL386.exe pour les processeurs Intel 80386, Intel 80486 et autres. Ce composant n'était pas un véritable noyau car il n'y avait pas de partition virtuelle de la mémoire vive physique en deux régions disjointes (espace noyau et espace utilisateur).
La première version du noyau NT
La première version officielle du noyau de Windows NT est la version 3.1, en 1993. L'un des concepteurs du noyau est David Cutler, qui avait travaillé précédemment à la conception du système d'exploitation VMS de la société DEC.
F. van Wensveen indique les points communs suivants entre les noyaux des 2 systèmes d'exploitation :
- Nombre et séparation de niveau de priorité
- Utilisation de mémoire virtuelle paginée sur demande
- Modèle pilote en couche
Windows 64 bits : PatchGuard pour protéger le noyau
Les versions 64 bits de Windows (XP, 2003, Vista et Windows 7) ont un composant PatchGuard dont le but est de protéger le noyau contre toute forme de modification (i.e. un patch) et donc de rendre Windows moins vulnérable à l'introduction d'un rootkit (une porte dérobée).
L'introduction de ce composant pose des problèmes aux éditeurs d'anti-virus. Dans l'état actuel de Vista (), l'API fournie par Microsoft n'est pas assez complète pour les besoins spécifiques des éditeurs d'anti-virus.
Notes et références
Annexes
Articles connexes
Liens externes
- Windows XP : Fonctionnalités du noyau - Thierry Joubert, Theoris 2005 [PDF]
- (en) Windows CE 5.0 : Kernel Overview - Microsoft
- (en) MS Windows NT Kernel-mode User and GDI White Paper - Microsoft
- (en) Kernel.exe INFO: Kernel.exe Describes the Kernel and VxD for Windows 95 - Microsoft
- Portail de Microsoft