Vérifié contenu

Architecture de Windows NT

Sujets connexes: Logiciel

À propos de ce écoles sélection Wikipedia

Enfants SOS ont produit une sélection d'articles de wikipedia pour les écoles depuis 2005. enfants SOS a regardé des enfants en Afrique depuis quarante ans. Pouvez-vous aider dans leur travail en Afrique ?

De la famille de systèmes d'exploitation Windows NT l'architecture est constituée de deux couches ( mode utilisateur et mode noyau), avec plusieurs modules différents dans ces deux couches.

L'architecture de Windows NT, une ligne de systèmes d'exploitation fabriqués et vendus par Microsoft , est une conception en couches qui se compose de deux éléments principaux, mode utilisateur et mode noyau. C'est un préventive, système d'exploitation rentrante, qui a été conçu pour fonctionner avec monoprocesseur et symétrique plusieurs processeur (SMP) -en ordinateurs. Procéder entrée / sortie (I / O) demandes, ils utilisent entraîné paquet-I / O, qui utilise / Paquets de requêtes I S (IRP) et E / S asynchrones. À partir de Windows 2000 , Microsoft a commencé à faire Les versions 64 bits de Windows disponibles avant cela, ces systèmes d'exploitation ne existaient que dans Les versions 32 bits.

Programmes et sous-systèmes en mode utilisateur sont limités en termes de ce que les ressources système, ils ont accès à, tandis que le mode noyau a un accès illimité à la mémoire système et les périphériques externes. Le Windows NT noyau est connu comme un noyau hybride. L'architecture comprend un noyau simples , couche d'abstraction matérielle (HAL), les pilotes et une gamme de services (collectivement nommé exécutif ), qui existent tous en mode noyau.

mode utilisateur dans Windows NT est faite de sous-systèmes capables de demandes d'E / S en passant au mode noyau approprié pilotes logiciels en utilisant le gestionnaire E / S. Deux sous-systèmes forment la couche en mode utilisateur de Windows NT: le sous-système de l'environnement (qui exécute des applications écrites pour de nombreux types de systèmes d'exploitation), et le sous-système intégré fonctionne fonctions spécifiques du système, au nom du sous-système de l'environnement. Mode noyau de Windows NT dispose d'un accès complet aux ressources matérielles et du système de l'ordinateur. Le mode noyau arrête les services et les applications en mode utilisateur d'accéder à des zones critiques du système d'exploitation qui ne devraient pas avoir accès.

Les interfaces exécutifs, avec tous les sous-systèmes en mode utilisateur, traite des E / S, gestion des objets, la sécurité et la gestion des processus. Le noyau se trouve entre la couche d'abstraction matérielle et l'exécutif pour fournir la synchronisation multiprocesseur, le fil et interrompre horaires des expéditions, et la manipulation de piège et l'exception dispatching. Le noyau est également responsable de l'initialisation des pilotes de périphériques au démarrage. Les pilotes en mode noyau existent en trois niveaux: les pilotes de niveau plus élevé, les pilotes intermédiaires et les pilotes de bas niveau. De Windows Driver Model (WDM) existe dans la couche intermédiaire et a été principalement conçu pour être binaire et source compatible entre Windows 98 et Windows 2000 . Les pilotes de niveau plus bas sont soit des pilotes de périphériques Windows NT existants qui contrôlent un dispositif directement ou peut être un PnP bus matériel.

Mode d'utilisation

Le mode utilisateur est composé de sous-systèmes qui peuvent passer des demandes d'E / S pour les pilotes en mode noyau appropriés via le gestionnaire d'E / S (qui existe en mode noyau). Deux sous-systèmes constituent la couche en mode utilisateur de Windows NT: le sous-système de l'environnement et du sous-système intégré.

Le sous-système de l'environnement a été conçu pour exécuter des applications écrites pour de nombreux types de systèmes d'exploitation. Aucun des sous-systèmes de l'environnement peut directement accéder au matériel, et doit demander l'accès aux ressources de la mémoire par le gestionnaire de mémoire virtuelle qui se exécute en mode noyau. En outre, les applications se exécutent à une priorité inférieure à celle des processus en mode noyau.

Il existe trois principaux sous-systèmes de l'environnement: la Win32 sous-système, un 2 sous-système OS / et un Sous-système POSIX.

  • L'environnement sous-système Win32 peut exécuter les applications 32 bits de Windows. Il contient la console ainsi que le soutien de la fenêtre de texte, d'arrêt et de manutention pour tous les autres sous-systèmes de l'environnement dur erreur. Il prend également en charge Machines virtuelles DOS (VDM), qui permettent MS-DOS et Windows 16 bits ( Win16) applications de se exécuter sur Windows NT. Il ya un spécifique MS-DOS VDM qui se exécute dans son propre espace d'adressage et qui émule une Intel 80486 fonctionnant sous MS-DOS 5.0. Programmes Win16, cependant, se exécutent dans un Win16 VDM. Chaque programme, par défaut, se exécute dans le même processus, en utilisant ainsi le même espace d'adressage, et Win16 VDM donne chaque programme son propre fil pour fonctionner. Toutefois, Windows NT ne permettent aux utilisateurs d'exécuter un programme Win16 dans un Win16 VDM séparé, qui permet au programme d'être préventivement multitâche que Windows NT préempter l'ensemble du processus VDM, dont un seul contient exécutant l'application. Le processus de sous-système de l'environnement Win32 ( csrss.exe) comprend également la fonctionnalité de gestion de fenêtre, parfois dénommé un " gestionnaire de fenêtres ". Il gère les événements d'entrée (tels que le clavier et la souris), puis transmet les messages aux applications qui ont besoin de recevoir cette entrée. Chaque application est responsable pour le dessin ou de l'actualisation de ses propres fenêtres et menus, en réponse à ces messages .
  • Le / 2 l'environnement sous-système OS prend en charge 16 bits à base de caractères applications OS / 2 et émule OS / 2 1.x, mais pas 32 bits ou graphiques applications OS / 2 tel qu'il est utilisé avec OS / 2 2.x ou plus tard.
  • L'environnement sous-système POSIX supporte les applications qui sont strictement écrits à la norme POSIX.1 ou connexes ISO / Normes CEI. Le sous-système POSIX a été une zone de développement actif récente et est une caractéristique majeure de Windows Compute Cluster Server 2003.

Le sous-système intégrante se occupe des fonctions spécifiques du système d'exploitation au nom du sous-système de l'environnement. Il se compose d'un sous-système de sécurité, un service de poste et un service de serveur. Le sous-système de sécurité traite de jetons de sécurité, accorde ou refuse l'accès à des comptes d'utilisateurs basés sur les autorisations de ressources, gère les demandes de connexion et lance l'authentification de connexion et détermine les ressources système doivent être vérifiés par Windows NT. Il se occupe aussi Active Directory. Le service à la station de travail est une API pour le redirecteur de réseau, qui fournit un accès au réseau informatique. Le service de serveur est une API qui permet à l'ordinateur de fournir des services de réseau.

Mode noyau

Windows NT mode noyau a un accès complet aux ressources matérielles et de système de code informatique et se exécute dans une zone de mémoire protégée. Il contrôle l'accès à la programmation, le fil de priorités, la gestion de la mémoire et de l'interaction avec le matériel. Le mode noyau arrête les services en mode utilisateur et les applications d'accéder zones critiques du système d'exploitation qui ne devraient pas avoir accès; processus en mode utilisateur doit demander à la mode noyau pour effectuer ces opérations en leur nom.

Tandis que le l'architecture x86 prend en charge quatre niveaux de privilèges différents (numérotés de 0 à 3), seuls les deux niveaux de privilèges extrêmes sont utilisés. programmes en mode utilisateur sont organisées avec CPL 3, et le noyau fonctionne avec CPL 0. Ces deux niveaux sont souvent désignés comme "anneau 3" et "ring 0", respectivement. Une telle décision de conception avait été fait pour assurer la portabilité de code Plates-formes RISC qui ne supportent que deux niveaux de privilège, si cela rompt la compatibilité avec Applications OS / 2 qui contiennent I / segments de privilèges de O qui tentent d'accéder directement au matériel.

Mode noyau se compose des services exécutifs, qui est lui-même composé de plusieurs modules qui font des tâches spécifiques, pilotes du noyau, un noyau et une couche d'abstraction matérielle, ou HAL.

Exécutif

Les services exécutifs fenêtres constituent la partie en mode noyau de bas niveau, et sont contenues dans le fichier NTOSKRNL.EXE. Il traite des E / S, gestion des objets, la sécurité et la gestion des processus. Ceux-ci sont divisés en plusieurs sous-systèmes, parmi lesquels le gestionnaire de cache, Configuration Manager, / O Gestionnaire I, Local Procedure Call (LPC), gestionnaire de mémoire, Gestionnaire d'objets, Processus Structure et sécurité Moniteur de référence (SRM). Regroupés, les composants peuvent être appelés services exécutifs (nom interne Ex). Les services système (nom interne Nt), ce est à dire, appels système, sont mises en œuvre à ce niveau aussi, sauf très peu qui appellent directement dans la couche de noyau pour une meilleure performance.

Le terme «service» dans ce contexte se réfère généralement à une routine appelable, ou un ensemble de routines appelables. Cela est différent de la notion de "processus de service", qui est une composante de mode d'utilisateur quelque peu analogue à une daemon dans Les systèmes d'exploitation de type Unix.

Gestionnaire d'objets
Le Gestionnaire d'objets (nom interne Ob) est un sous-système de direction que tous les autres sous-systèmes de direction, en particulier les appels système, doivent passer à travers pour accéder à Windows NT-ressources essentiellement ce qui en fait un service de l'infrastructure de gestion des ressources. Le gestionnaire d'objet est utilisé pour réduire la duplication des fonctionnalités de gestion des ressources de l'objet dans d'autres sous-systèmes de direction, ce qui pourrait conduire à des bugs et faire du développement de Windows NT plus difficile. Pour le gestionnaire d'objets, chaque ressource est un objet, que cette ressource est une ressource physique (comme un système de fichiers ou périphérique) ou une ressource logique (comme un fichier). Chaque objet a une structure ou d'un objet de type que le gestionnaire d'objet doit connaître.
Création d'objet est un processus en deux phases, la création et l'insertion. Création provoque l'attribution d'un objet vide et la réservation de toutes les ressources nécessaires par le gestionnaire d'objets, comme un nom (facultatif) dans l'espace. Si la création a réussi, le sous-système responsable de la création remplit l'objet vide. Enfin, si le sous-système estime l'initialisation réussie, elle charge le gestionnaire d'objet pour insérer l'objet, ce qui le rend accessible par son nom (facultatif) ou d'un cookie appelé une poignée. Dès lors, la durée de vie de l'objet est géré par le gestionnaire d'objet, et ce est le sous-système pour maintenir l'objet dans une condition de travail avant d'être signalée par le gestionnaire d'objets d'en disposer.
Les poignées sont des identificateurs qui représentent une référence à une ressource du noyau par une valeur opaque. De même, l'ouverture d'un objet par son nom est soumis à des contrôles de sécurité, mais agissant par l'intermédiaire, une poignée ouvert existant est seulement limitée au niveau de l'accès demandé lorsque l'objet a été ouvert ou créé.
Les types d'objets définissent les procédures d'objets et toutes les données spécifiques à l'objet. De cette façon, le gestionnaire d'objet permet à Windows NT d'être un opposer système d'exploitation orienté, en tant que types d'objets peuvent être considérés comme des polymorphes classes qui définissent objets. La plupart des sous-systèmes, cependant, avec une exception notable dans le gestionnaire E / S, se appuient sur la mise en œuvre par défaut pour toutes les procédures de type d'objet.
Chaque instance d'un objet qui est créé stocke son nom, paramètres qui sont passés à la fonction de création d'objet, les attributs de sécurité et un pointeur vers son type d'objet. L'objet contient également un objet près procédure et un nombre de référence de dire au gestionnaire d'objet combien d'autres objets dans la référence de système qui se oppose et détermine ainsi si l'objet peut être détruit lors d'une demande de fermeture est envoyé à elle. Chaque objet nommé existe dans un objet hiérarchique espace de noms.
Controller Cache
Coordonne étroitement avec le gestionnaire de mémoire, / O Gestionnaire d'E / S et de pilotes I à fournir un cache commun pour fichier régulier I / O. Unique, le gestionnaire de cache de Windows opère sur des blocs de fichiers (plutôt que des blocs de périphériques), pour un fonctionnement cohérent entre les fichiers locaux et distants, et assure un certain degré de cohérence avec vues mappés en mémoire de fichiers, depuis les blocs de cache sont un cas particulier de vues mappés en mémoire cache et manque un cas particulier de défauts de page.
Configuration Manager
Met en œuvre la Registre de Windows.
Moi Manager / O
Permet aux périphériques de communiquer avec les sous-systèmes en mode utilisateur. Il traduit en mode utilisateur lire et écrire des commandes dans IRP lire ni écrire lesquels il passe aux pilotes de périphériques. Il accepte système de fichiers I demandes d'E / S et les traduit en appels spécifiques de l'appareil, et peut intégrer des pilotes de périphériques de bas niveau qui manipulent directement au matériel ni lire ni écrire entrée sortie. Il comprend également un gestionnaire de cache pour améliorer les performances des disques en demandes de lecture de cache et d'écrire sur le disque dans le fond.
Local Procedure Call (LPC)
Fournit des ports de communication inter-processus avec la sémantique de connexion. ports LPC sont utilisés par les sous-systèmes en mode utilisateur pour communiquer avec leurs clients, par sous-systèmes exécutif de communiquer avec les sous-systèmes en mode utilisateur, et comme base pour le transport local pour MSRPC.
Gestionnaire de mémoire
Gère la mémoire virtuelle, le contrôle de protection de mémoire et le pagination de mémoire dans et hors de la mémoire physique vers le stockage secondaire, et met en oeuvre un allocateur d'usage général de la mémoire physique. Il met également en œuvre un analyseur des exécutables PE qui permet un exécutable être mappés ou non mappé en une seule étape, atomique.
A partir de Windows NT Server 4.0, Édition Terminal Server, le gestionnaire de mémoire met en œuvre un espace dite session, une plage de mémoire en mode noyau qui est soumis à changement de contexte comme mémoire en mode utilisateur. Cela permet plusieurs instances du mode noyau sous-système Win32 GDI et les pilotes côte-à-côté de fonctionner, malgré les lacunes dans leur conception initiale. Chaque espace de session est partagée par plusieurs processus, collectivement dénommées une "session".
Pour assurer un degré d'isolement entre les sessions sans introduire un nouveau type d'objet, l'association entre les processus et les séances est assurée par le Moniteur de référence de sécurité, comme un attribut d'un sujet de sécurité (jeton), et il ne peut être modifié tout en maintenant des privilèges spéciaux .
La nature relativement simples et ad hoc des sessions est dû au fait qu'ils ne faisaient pas partie de la conception initiale, et a dû être mis au point, avec une perturbation minimale à la ligne principale, par un tiers ( Citrix) comme une condition préalable pour leur produit de serveur Terminal Server pour Windows NT, appelé WinFrame. À partir de Windows Vista, cependant, sessions est finalement devenu un aspect propre de l'architecture Windows. Non plus un gestionnaire construction de la mémoire qui se insinue en mode utilisateur indirectement par Win32, ils ont été élargis dans une abstraction généralisée qui affecte les plus sous-systèmes de direction. En fait, l'utilisation régulière de Windows Vista se traduit toujours dans un environnement multi-session.
Processus Structure
Poignées processus et la création de threads et la résiliation, et il met en œuvre le concept de Job, un groupe de processus qui peuvent être résiliés dans son ensemble, ou être placé sous restrictions partagés (un tel total maximum de mémoire allouée, ou le temps de CPU). objets d'emplois ont été introduites dans Windows 2000 .
PNP Manager
Poignées Plug and Play et supporte la détection de l'appareil et l'installation au moment du démarrage. Il a également la responsabilité d'arrêter et de démarrer des périphériques sur la demande ce qui peut arriver quand un bus (comme USB ou FireWire) gagne un nouveau périphérique et doit avoir un pilote de périphérique chargé pour le soutenir. Sa masse est effectivement mis en œuvre en mode utilisateur, dans le service Plug and Play, qui gère les tâches souvent complexes de l'installation des pilotes appropriés, avertir les services et applications de l'arrivée de nouveaux appareils, et l'affichage de l'interface graphique pour l'utilisateur.
Power Manager
Offres avec un événement de puissance (power-off, stand-by, hibernate, etc.) et informe les conducteurs affectés avec IRP spéciaux (Puissance IRP).
Moniteur de sécurité de référence (SRM)
L'autorité principale pour faire respecter les règles du sous-système de sécurité intégré de sécurité. Il détermine si un objet ou une ressource peuvent être accessibles, via l'utilisation de listes de contrôle d'accès (ACL), qui sont eux-mêmes constitués d'entrées de contrôle d'accès (ACE). ACE contiennent une identificateur de sécurité (SID) et une liste des opérations que l'ACE donne un groupe de fiduciaires-un compte d'utilisateur, compte de groupe, ou de session permission identifier (allow, deny ou audit) à cette ressource.
GDI
Le Device Interface graphique est responsable de tâches telles que dessiner des lignes et des courbes, le rendu des polices et de manutention des palettes. Le Windows NT 3.x série des rejets avait placé le composant GDI dans le mode utilisateur Client / Serveur Runtime Subsystem, mais cela a été déplacé en mode noyau avec Windows NT 4.0 pour améliorer les performances graphiques.

Noyau

Le noyau se trouve entre le HAL et l'exécutif et assure la synchronisation multiprocesseur, le fil et interrompre horaires des expéditions, et la manipulation de piège et l'exception de répartition; il est également responsable de l'initialisation des pilotes de périphériques à l'amorçage qui sont nécessaires pour obtenir le système d'exploitation et en cours d'exécution. Autrement dit, le noyau effectue presque toutes les tâches d'un traditionnel micronoyau; la distinction stricte entre exécutif et Kernel est le vestige le plus important de la conception du micro-noyau d'origine, et de la documentation de conception historique se réfère constamment à la composante du noyau comme "le micronoyau".

Le noyau interface souvent avec le gestionnaire de processus. Le niveau d'abstraction est telle que le noyau ne appelle jamais dans le gestionnaire de processus, que dans l'autre sens (sauf pour une poignée de cas d'angle, encore jamais au point d'une dépendance fonctionnelle).

Pilotes en mode noyau

Windows NT utilise en mode noyau les pilotes de périphérique pour lui permettre d'interagir avec périphériques matériels. Chacun des pilotes routines du système et des routines internes qu'il exporte vers le reste du système d'exploitation a bien défini. Tous les appareils sont considérés par l'utilisateur code de mode comme un objet de fichier dans le gestionnaire E / S, si le gestionnaire I / O se les dispositifs sont considérés comme des objets de l'appareil, qu'il définit comme étant l'un des fichiers, un dispositif ou les objets de pilote. Les pilotes en mode noyau existent en trois niveaux: les pilotes de niveau plus élevé, les pilotes intermédiaires et les pilotes de bas niveau. Les pilotes au plus haut niveau, comme les pilotes de système de fichiers pour FAT et NTFS, basent sur des pilotes intermédiaires. Pilotes intermédiaires constitués de conducteurs fonction OU principal moteur d'un appareil qui sont éventuellement pris en sandwich entre les pilotes de filtre niveau inférieur et supérieur. Le pilote de fonction se appuie alors sur un pilote ou un pilote de bus qui dessert une Contrôleur de bus, l'adaptateur, ou d'un pont, qui peut avoir un pilote de filtre de bus optionnel qui se trouve entre lui-même et le pilote de fonction. Pilotes intermédiaires se appuient sur les pilotes plus bas niveau à la fonction. Le Windows Driver Model (WDM) existe dans la couche intermédiaire. Les pilotes de niveau plus bas sont soit héritage pilotes de périphériques Windows NT qui contrôlent un dispositif directement ou peut être un bus matériel PnP. Ces pilotes de niveau inférieur contrôlent directement le matériel et ne reposent pas sur tous les autres pilotes.

Couche d'abstraction matérielle

Le Windows NT couche d'abstraction matérielle, ou HAL, est une couche entre le matériel physique de l'ordinateur et le reste du système d'exploitation. Il a été conçu pour cacher les différences de matériel et donc fournir une plate-forme cohérente sur laquelle le noyau est exécuté. Le HAL inclut le code spécifique au matériel qui contrôle les interfaces d'E / S, interrompre contrôleurs et processeurs multiples.

Cependant, malgré son but et le lieu désigné dans l'architecture, le HAL ne est pas une couche qui se trouve entièrement sous le noyau, la façon dont le noyau se trouve ci-dessous l'Exécutif: toutes les implémentations de HAL connus dépendent dans une certaine mesure sur le noyau, ou même le exécutif. Dans la pratique, cela signifie que le noyau et HAL variantes viennent dans les ensembles qui sont spécifiquement conçus pour fonctionner ensemble correspondant.

Dans l'abstraction matérielle particulière ne implique pas abstraction du jeu d'instructions, qui relève généralement de la notion plus large de portabilité. Abstraction faite le jeu d'instructions, lorsque cela est nécessaire (comme pour la manipulation des plusieurs révisions à la jeu d'instructions x86, ou l'émulation d'un coprocesseur mathématique manquante), est effectuée par le noyau, ou via plate-forme de virtualisation.

Récupéré à partir de " http://en.wikipedia.org/w/index.php?title=Architecture_of_Windows_NT&oldid=526841565 "