# 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.
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 :
* micro-noyau enrichi ;
* hybride.
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 KRNL385.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 deux 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 (janvier 2007), l'API fournie par Microsoft n'est pas assez complète pour les besoins spécifiques des éditeurs d'anti-virus.