1.2. Architecture du noyau de Windows 7.
Windows 7 est un système d'exploitation
créé par Microsoft pour remédier les problèmes
rencontrés par les utilisateurs de Windows Vista. Construit sur une
version amélioré du noyau de Windows Vista (NT 6.0), le noyau de
Windows 7 (NT 6.1) à une architecture assez complexe qui malgré
tout permet une étroite collaboration entre les ressources
matérielles et logicielles dont a besoin un système
d'exploitation pour bien fonctionné. De la création du premier
système d'exploitation de Microsoft baptisé MS-DOS pour Microsoft
Disk Operating System (système d'exploitation du disque) jusqu'à
la version Windows 3.0 on ne parlait pas du presse-papier qui est un
élément très important qui fonctionne en étroite
collaboration avec le noyau de Windows à partir de la version Windows NT
3.1 jusqu'à la version du noyau de Windows NT 6.1 sous lequel fonctionne
Windows 7. Le but de cette partie est de présenter l'architecture du
noyau de Windows 7 en occurrence le NT 6.1 et de dégager le rapport qui
existe entre le presse-papier de Windows et son noyau (Kernel).
1.2.1. Architecture générale de Windows
NT
Pour mieux parler du noyau Windows NT 6.1 il est
nécessaire de faire une étude globale de l'architecture
générale de Windows NT. Ceci dans le but de mieux nous
éclairer sur la base de l'administration des noyaux des systèmes
d'exploitation de Windows car tous ces derniers sont conçu autour d'un
noyau de base dont les versions diffère selon les besoins du
système d'exploitation. Windows NT fonctionne dans deux modes
différents, le mode utilisateur et le mode
noyau: [3]
· Le mode utilisateur est le mode dans
lequel tournent les programmes qui sont soumis à la
sécurité du système d'exploitation, fournie justement par
les programmes qui
tournent en mode noyau. On y trouvera tous les programmes des
utilisateurs, mais aussi certains programmes du système d'exploitation
qui ont été placés ici pour ne pas trop charger de
programmes en mode noyau (peut-être aussi parce-que leurs programmes ne
sont pas stables et qu'il ne vaut mieux pas qu'ils puissent accéder
à toute la mémoire...).
· Le mode noyau est le mode dans lequel
tournent les fonctions vitales du système d'exploitation. C'est un mode
protégé où le code est très optimisé. Un
programme tournant dans ce mode n'est pas soumis aux divers contrôles de
sécurité, comme par exemple vérifier si la mémoire
à laquelle il accède lui est bien attribuée. Les
programmes ne doivent contenir aucune bogue car la sécurité est
réduite au minimum. Les programmes doivent à tout prix respecter
leur espace d'adressage. On retrouve dans ce mode tous les programmes
utilisés en permanence par le système d'exploitation. Il est
impossible de faire tourner ces propres programmes dans ce mode.
La stabilité de Windows NT est assurée
grâce à ces deux modes. Le mode noyau est le coeur du
système d'exploitation, la partie la plus petite possible, la plus
optimisée et sans aucune bogue. Tout ce qui tourne en mode utilisateur
est contrôlé par les programmes du mode noyau et ne peut donc pas
faire planter le système, en théorie bien sûr. La
Figure 1.1 montre la séparation entre les deux modes.
Cette séparation est matérialisée par une ligne
horizontale en pointillés :
8
Figure 1.1 : Représentation de l'architecture de
Windows NT [3]
9
Tout ce qui est représenté en vert
c'est-à-dire tout ce qui est en mode noyau sauf le matériel,
s'appelle le NT Executive. Il regroupe le noyau, la HAL et les
services systèmes. Les services systèmes sont tous les modules
tournant en mode noyau, autour du noyau (ne pas confondre noyau et
mode noyau) : l'I/O8 Manager, l'Object Manager, le
Security Ressource Manager, le Process Manager, le LPC, le Virtual Memory
Manager et le Graphic Manager. Sur la Figure 1.1, les services
systèmes sont représentés comme une surcouche, c'est en
fait la vision que tout programme tournant en mode utilisateur a du
système d'exploitation. Les programmes vont faire appel aux services
système via des API9 appelées "Native API". Ils ne
vont pas s'adresser directement à tel ou à tel service. Le
rôle de chacune de ces boites noires est détaillé
ci-dessous :
1.2.1.1. Le HAL (Hardware Abstraction Layer)
HAL pour Hardware Abstraction Layer, ou en français,
Couche d'Abstraction Matérielle. C'est grâce à cette couche
que Windows NT est portable sur plusieurs types de machines. Son rôle est
de masquer complètement la partie matérielle au système
d'exploitation lui-même. Tout matériel va être
représenté virtuellement au système d'exploitation. Le
système d'exploitation va utiliser le matériel via une interface
unique, sans se soucier du matériel. C'est à la couche
d'abstraction matérielle de traduire les demandes au système
physique. A un type de machine correspond une couche HAL spécifique.
Grâce à cette couche, Windows NT peut tourner sur plusieurs types
de microprocesseurs : Intel, MIPS, PowerPC, Alpha. C'est encore la couche HAL
qui gère les systèmes multiprocesseurs, en intégrant
l'interface SMP (Symmetric Multi Processing). La couche HAL est
différente suivant le nombre de processeurs dans le système.
La couche HAL représente chaque processeur comme un
processeur virtuel au noyau. Le noyau, allouera ses tâches sur ces
différents processeurs. Que ce soient des processeurs Alpha, Intel ou
autre, le noyau voit toujours des processeurs virtuels. La couche HAL n'est
accessible que par le NT Executive. Pour accéder au matériel, les
programmes utilisateurs sont donc obligés de passer par les Native
APIs.
|