L’évolution de l’architecture du noyau

Microsoft Windows 2000 se compose d’un grand nombre de couches, lesquelles coopèrent pour offrir un système d’exploitation complet à l’utilisateur. Au cœur de cette architecture se trouve le noyau. Ce dernier n’est pas un processus comme les autres, car il dispose de privilèges spéciaux pour accéder au matériel. C’est le noyau qui est chargé d’allouer la mémoire aux applications, de communiquer avec les pilotes de périphérique et de choisir les processus qui sont exécutés à un instant donné. Les applications dépendent du noyau pour l’allocation de la mémoire, du temps processeur et des ressources matérielles. Le noyau de Windows 2000 Server est un héritier direct du noyau de Microsoft Windows NT 4.0, qui, lui-même, dérivait des versions précédentes de Windows NT (figure 1-1). Chaque nouvelle version a été créée pour répondre aux nouveaux besoins des utilisateurs, des administrateurs et des programmeurs.

À chaque fois que les programmeurs ont eu besoin de fonctionnalités que le noyau de Windows NT n’offrait pas, Microsoft a modifié ce dernier. Par exemple, on a ajouté les quotas de processeur et la comptabilité de processus pour répondre aux besoins spécifiques de IIS (Internet Information Server). Le noyau apporte maintenant une meilleure prise en compte des utilisateurs multiples, ce qui permet d’installer les services de terminal (Terminal Services) sans qu’il y ait besoin de grosses modifications du système. Les développeurs sont gagnants, car ils peuvent désormais ajouter des fonctionnalités très demandées. Les administrateurs et les utilisateurs bénéficient, eux aussi, de ces améliorations.

Microsoft a également remanié plusieurs aspects du noyau pour répondre aux besoins spécifiques des administrateurs. Entre autres améliorations, Windows 2000 Server s’adapte beaucoup mieux que ne pouvait le faire Windows NT, grâce à une fonctionnalité appelée évolutivité, scalability en anglais. Les applications réseaux sont plus fiables et plus efficaces qu’auparavant. Pour les utilisateurs d’autres pays, il est plus facile d’utiliser le système d’exploitation et ses applications dans les environnements nationaux. Il est important de comprendre les modifications opérées dans le noyau, avant de passer aux améliorations apportées aux divers services. En vérité, bon nombre des améliorations apportées aux services s’appuient sur des modifications faites au niveau du noyau.

Les quotas et la comptabilité de processeur

Les fournisseurs de services Internet partagent souvent un même serveur web entre plusieurs clients. Jusqu’à présent le site web d’un client pouvait, dans certains cas, monopoliser les processeurs et dégrader les performances des autres clients. De même, le code ASP bogué d’un utilisateur était susceptible de bloquer entièrement un serveur d’intranet. IIS était capable de réguler la largeur de bande, mais le système d’exploitation ne pouvait pas contrôler efficacement la quantité de temps processeur accordée à chaque site web.

Deux nouvelles fonctionnalités optimisent les environnements multiutilisateurs : la comptabilité de processeur et la régulation du temps processeur (CPU Throttling). La comptabilité de processeur permet à IIS d’enregistrer dans un journal le nombre de cycles CPU consommés par chaque requête web. Cela permet aux fournisseurs de services Internet d’établir leur facturation en fonction de l’utilisation du processeur, et aux programmeurs de détecter les pages à optimiser en priorité. La régulation du temps processeur empêche les applications out-of-process d’un site web de monopoliser le temps processeur au détriment d’autres sites web.

L’objet tâche (job object) est la technologie sur laquelle s’appuie la comptabilité de processeur et la régulation du temps processeur. Pour comprendre ce que fait un objet tâche, il faut savoir comment les applications et les services utilisent les processus. Des services comme IIS engendrent de nombreux processus, ce qui permet d’accomplir plusieurs tâches en même temps. Les processus multiples améliorent les performances, mais ils compliquent le suivi (quel processus est associé à quelle tâche ?). Comme IIS 4 pouvait gérer un grand nombre de serveurs virtuels se partageant le même espace d’application, il était impossible d’auditer ou de contrôler la quantité de ressources processeur consommée par chaque serveur virtuel.

Les objets tâches permettent au système d’exploitation de gérer des groupes de processus sous la forme d’une seule unité. Cela facilite pour les applications le contrôle et la régulation du temps processeur consommé par les différentes tâches. Cette fonctionnalité est vitale pour les environnements dans lesquels plusieurs clients se partagent un même serveur.

Remarque Dit plus simplement, un ou plusieurs processus peuvent coopérer pour former une tâche unique, représentée par un objet tâche.

comptage Spin

Le comptage Spin améliore les performances des machines multiprocesseurs lorsque plusieurs programmes doivent accéder simultanément aux mêmes ressources. Le comptage contrôle le nombre de fois qu’un processus essaie d’accéder à une ressource avant de se mettre en attente. Prenons un exemple : une application de base de données a de multiples requêtes qui s’exécutent en même temps sur différents processeurs. Requête1 essaie d’écrire dans une ligne d’une certaine table mais se voit refuser l’accès parce que Requête2 a verrouillé la ligne. Sans le comptage, Requête1 attendrait un certain temps, ce qui bloquerait l’exécution de la requête. Avec le comptage Spin, Requête1 réessaie un certain nombre de fois d’écrire dans la ligne dans l’espoir que Requête2 aura entre-temps libéré la ligne. Requête1 n’attend que si toutes ses tentatives ont échoué.

Cela n’est utile que sur les machines multiprocesseurs, car il n’y a qu’elles à pouvoir exécuter plusieurs processus simultanément. Sur une machine monoprocesseur, les différents processus doivent attendre que les autres aient fini ; en pareil cas, il ne sert à rien de refaire des tentatives tant que l’autre processus n’a pas libéré la ressource. Les applications utilisant le comptage Spin sur des machines monoprocesseurs ne verront pas leurs performances dégradées ; il n’y aura simplement pas d’amélioration.

regroupement des E/S (scatter/gather)

Cette nouvelle fonctionnalité de Windows 2000 Server améliore les performances des serveurs d’application de votre réseau. C’est une fonctionnalité totalement transparente pour les administrateurs système, car les applications peuvent l’utiliser sans qu’il faille procéder à quelque configuration que ce soit. Cette technique rationalise le processus de transfert des données depuis des portions non contiguës de la RAM vers une partie connexe du disque dur. Les applications utilisant cette technique doivent être écrites de manière spécifique. De ce fait, les services existants ne pourront pas en bénéficier. Cette technique, apparue avec un service pack de Windows NT, a été spécialement conçue pour optimiser les performances de Microsoft SQL Server. Windows 2000 Server est le premier système d’exploitation de Microsoft à intégrer directement cette fonctionnalité.

Les tranches de temps programmables

Un quantum est une propriété de thread qui définit la durée pendant laquelle s’exécute un thread avant que le système passe la main à un autre thread. Les administrateurs et les développeurs peuvent désormais contrôler plus finement le type et la durée des quantums. Comme la commutation entre les threads prend du temps, certaines applications peuvent tirer profit d’un accroissement de la durée du quantum. Toutefois, l’augmentation de la tranche de temps d’un thread peut dégrader le fonctionnement multitâche.

Il existe deux types de quantums : quantum à durée fixe et quantum à durée variable. Le choix se fait dans la boîte de dialogue Performance Options (figure 1-2), accessible via l’onglet « Advanced » de la boîte de dialogue System Properties. Si vous donnez la priorité aux applications, vous faites allouer des quantums courts et variables, ce qui donne un fonctionnement multitâche plus lisse. Si vous donnez la priorité aux services tournant en arrière-plan, vous forcez le système d’exploitation à employer des quantums longs et fixes,. ce qui améliore les performances des services réseaux. Par défaut Windows 2000 Server donne la priorité aux services tournant en arrière-plan, alors que Windows 2000 Professional donne la priorité aux applications.

Figure 1-2. L’administrateur peut désormais configurer le type et la durée du quantum.

modèle de pilote de Windows

Un pilote est un élément logiciel qui permet au système d’exploitation de communiquer avec un composant matériel. Par exemple, chaque modèle de carte vidéo a des capacités et des méthodes de communication différentes ; c’est le pilote qui fait la traduction entre Windows 2000 et la carte vidéo spécifique. Tous les périphériques doivent avoir des pilotes : cartes réseaux, cartes SCSI, modems, scanners et imprimantes. Les versions précédentes de Windows exigeaient des pilotes différents pour chaque version du système. Cela représentait un fardeau pour les fabricants (qui écrivent les pilotes) et pour les administrateurs supervisant plusieurs systèmes d’exploitation.

Le nouveau modèle de pilote WDM (Windows Driver Model) permet d’utiliser les mêmes pilotes sur Windows 2000 et sur Windows 98. Cette technologie est avantageuse pour les fabricants qui n’ont plus besoin d’écrire deux jeux de pilotes. Elle est également avantageuse pour les utilisateurs, car elle accroît la compatibilité entre les différents systèmes d’exploitation Microsoft. Elle est enfin avantageuse pour les administrateurs, qui n’ont plus besoin de gérer des pilotes distincts pour les utilisateurs de Windows 98 et pour leurs serveurs.

WDM offre d’autres avantages. Microsoft a fait le gros du travail, au niveau de la création des pilotes de périphérique. Les fabricants n’ont plus qu’à écrire un minipilote pour chacun de leurs produits, ce qui demande un temps de programmation sensiblement réduit.

L’architecture WDM Kernel Streaming améliore les performances des supports pour données continues en temps réel. Les versions précédentes de Windows obligeaient les applications gérant ces données à faire le gros de leur travail dans le mode utilisateur. Bon nombre de ces fonctionnalités ont été transférées vers le mode noyau, où elles tournent beaucoup plus rapidement. Il faut écrire les applications de manière spécifique pour qu’elles puissent bénéficier de l’architecture WDM Kernel Streaming. Les applications existantes ne peuvent donc pas en tirer profit.

L’architecture WDM Still Image permet au système d’exploitation de gérer directement les scanners et les appareils photo numériques. Cette prise en compte par Windows 2000 permet d’offrir aux utilisateurs une interface cohérente, étroitement intégrée au système, pour leurs équipements de scannérisation et de photographie. Les versions précédentes de Windows obligeaient les fabricants à écrire des logiciels spécifiques pour greffer leurs matériels sur le système d’exploitation.

L’architecture EMA

L’allocation de mémoire peut créer des goulets d’étranglement pour bon nombre de gros serveurs d’application. C’est particulièrement vrai pour les très gros serveurs de base de données, qui doivent manipuler des centaines de giga-octets de données. L’une des améliorations de Windows 2000 concerne l’architecture EMA (Enterprise Memory Architecture), qui permet de faire adresser jusqu’à 32 Go de mémoire par les serveurs munis de processeurs 64-bit. La plupart des serveurs n’auront jamais besoin d’autant de RAM, mais les entrepôts de données peuvent en bénéficier car la manipulation des données se fait plus rapidement en mémoire que sur les disques durs. Tous les ordinateurs ne sont pas encore prêts pour employer le modèle de mémoire large, mais les puces Alpha et Pentium II Xeon sont déjà compatibles.

Les applications doivent être écrites de manière spécifique pour pouvoir faire appel aux API VLM (Very Large Model). Microsoft SQL Server peut déjà les utiliser, et il ne fait pas de doute que d’autres bases de données relationnelles seront modifiées pour pouvoir employer les nouvelles API. Pour la plupart des applications, il ne suffira pas d’ajouter de la RAM au-delà de 4 Go.

L’amélioration des capacités multiprocesseurs

Aux serveurs pour lesquels la vitesse de processeur est un goulet d’étranglement, Windows 2000 Server offre des fonctionnalités multiprocesseurs fortement améliorées. Windows NT permettait de travailler avec plusieurs processeurs, mais la toute nouvelle génération de systèmes d’exploitation pour serveurs utilise les processeurs multiples de façon plus efficace. Toutes les applications multithreads tournant sur des machines multiprocesseurs auront de meilleures performances, sans que les programmeurs aient à écrire du code spécifique.

Windows 2000 Server peut gérer deux processeurs, mais les utilisateurs de Windows NT 4.0 Server migrant vers Windows 2000 Server pourront utiliser quatre processeurs simultanément. Windows 2000 Advanced Server peut gérer quatre processeurs, mais les utilisateurs de Windows NT 4.0 Server Édition Entreprise migrant vers Windows 2000 Advanced Server pourront continuer à utiliser huit processeurs simultanément. Windows 2000 Advanced Server double le nombre maximal de processeurs par rapport à ce qui existait précédemment : il est possible maintenant de gérer seize processeurs en même temps, et certains fabricants proposeront même des machines à trente-deux processeurs. Pour la première fois dans l’histoire d’un système Windows, il est possible d’affecter un processus à un processeur particulier. Les administrateurs peuvent se servir du Gestionnaire de tâches pour configurer l’affinité d’un processus. Cette propriété force un processus à n’utiliser qu’un certain processeur, ce qui peut améliorer les performances en diminuant le nombre de vidages de cache processeur qui s’effectuent lorsque les processus passent d’un processeur à un autre. Employez cette fonctionnalité à bon escient, car elle risque de dégrader les performances en empêchant qu’un processus ne passe au processeur le plus disponible.

L’architecture I2O

I2O (Intelligent I/O Architecture) est une nouvelle technologie qui diminue la charge de l’unité centrale et optimise les performances des entrées-sorties. Le fonctionnement de I2O repose sur l’ajout d’un processeur dédié. Cette technique permet de rationaliser les activités qui consomment beaucoup de largeur de bande, par exemple les séquences sonores et vidéo temps réel.

L’amélioration du tri

Les grosses bases de données et les applications utilisant des entrepôts de données amélioreront leurs performances en utilisant les fonctionnalités de tri de Windows 2000 Advanced Server. Les performances seront grandement améliorées, grâce à l’exécution en mode noyau de ces algorithmes qui utilisent intensivement le processeur. Les applications doivent être écrites de manière spécifique pour pouvoir utiliser les nouvelles API ; c’est le cas de la dernière version de Microsoft SQL Server.

Les innovations pour ZAW

Nous allons ici présenter les innovations architecturales. La technologie plug and play est désormais prise en compte, ce qui diminue la durée de configuration et de dépannage du matériel. L’interface ACPI (Advanced Configuration and Power Interface) optimise la consommation électrique de toutes les machines Windows 2000 ; elle permet de réduire les exigences électriques, diminuant d’autant les coûts. Les quotas de disque aident les administrateurs à optimiser la consommation d’espace disque, ce qui permet de diminuer les achats de matériels complémentaires. La fonctionnalité d’amorçage à distance réduit les délais d’installation des machines clientes.

Plug and Play

En matière d’administration des réseaux informatiques, l’une des tâches les plus délicates concerne la gestion des configurations matérielles. Traditionnellement, la configuration du matériel exigeait de la part des administrateurs une connaissance profonde des interruptions, des ports d’E/S et de l’accès direct à la mémoire (DMA). La technologie plug and play simplifie la configuration du matériel, mais tous les systèmes d’exploitation ne la gèrent pas intégralement. Alors que Windows 95/98 offre une prise en compte complète du plug and play, Windows NT 4.0 n’offre qu’une prise en compte minime. Windows 2000 Server dispose d’un Gestionnaire de périphériques (Device Manager) et d’un Assistant Matériel (Hardware Wizard) plus puissants que sur les autres versions de Windows. Ces outils détectent et résolvent les conflits matériels d’une manière plus fiable, diminuant ainsi les délais d’administration. Les administrateurs passant moins de temps à batailler avec la configuration du matériel quand ils ajouteront des cartes réseaux, des modems ou des disques durs, les serveurs seront donc arrêtés moins longtemps.

Au démarrage le système d’exploitation détecte automatiquement les nouveaux équipements matériels, et il lance l’Assistant Matériel quand un administrateur ouvre une session. La détection et la résolution des conflits se font automatiquement le plus souvent, et des fichiers d’aide en ligne sont accessibles rapidement lorsque l’administrateur doit procéder à une configuration manuelle.

technologie OnNow/ACPI

L’initiative OnNow/ACPI permet de contrôler plus finement la consommation électrique. Les utilisateurs de portables sont ceux qui en profitent le plus ; typiquement, les administrateurs ne se soucient pas de la consommation électrique d’un serveur. Néanmoins, les nouvelles normes sont intégrées au modèle WDM (Windows Driver Model). Elles sont donc reconnues par tous les membres des familles Windows 2000 et Windows 98.

Les quotas de disque

La nouvelle version de Windows apporte une nouvelle mouture du système de fichiers NTFS. L’une des fonctionnalités les plus intéressantes est la capacité à restreindre l’espace disque attribué aux utilisateurs sur certaines partitions. Cela permet aux administrateurs des serveurs de fichiers de contrôler finement la manière dont les utilisateurs stockent leurs fichiers. Il est même possible de configurer une unité pour que les utilisateurs ne puissent pas remplir la partition !

L’amorçage à distance

La nouvelle fonctionnalité d’amorçage à distance intégrée à Windows 2000 Server facilite le contrôle du démarrage des machines clientes. Alors que les serveurs sont en général allumés en permanence, il est bon d’arrêter les machines clientes lorsqu’elles ne sont plus utilisées. Gérer l’amorçage des machines depuis un serveur facilite aussi la configuration d’un parc de machines clientes, car il est possible de les démarrer et de les configurer sans devoir aller devant chacune d’elles.

Pour pouvoir gérer l’amorçage à distance, il faut naturellement modifier les cartes réseaux et leurs pilotes. Les nouvelles cartes réseaux doivent être en mesure de détecter les requêtes d’amorçage, même quand la machine est éteinte. Microsoft a contribué à la standardisation de cette fonctionnalité, qu’il a intégrée au système d’exploitation. Pour plus de détails sur l’amorçage à distance, reportez-vous au chapitre 3, consacré à ZAW (Zéro administration pour Windows).

Les fonctionnalités de grappe (clustering)

Les entreprises qui dépendent de leurs réseaux ont besoin que ceux-ci soient disponibles à 100 p.100 ou presque. L’interruption du fonctionnement du réseau est l’un des facteurs les plus importants en matière de coût global de possession (TCO, Total Cost of Ownership). L’interruption du fonctionnement peut tenir à plusieurs causes :

· Problème matériel

· Problème au niveau d’une application

· Redémarrage rendu nécessaire par des modifications de la configuration

· Mise à niveau ou patch

Les nouvelles fonctionnalités de grappe de Windows 2000 Datacenter Server permettent à deux serveurs de se relayer mutuellement. Quand l’un des serveurs tombe en panne, le second prend le relais en moins d’une minute (processus baptisé redondance ou fail-over). Les services de surveillance détectent l’incident et transfèrent tout le travail vers le serveur de secours.

Pour les arrêts planifiés, l’un des serveurs peut remplacer l’autre quand ce dernier n’est plus en ligne. Ce processus, appelé rolling upgrade, minimise les interruptions de fonctionnement lors de l’installation d’un patch. Les plus gros bénéficiaires sont les administrateurs qui ne sont plus obligés d’attendre les heures creuses pour faire les mises à niveau ! Cela donne des services réseaux extrêmement fiables et minimise le coût global (TCO).

L’un des objectifs d’une grappe est d’améliorer l’évolutivité (scalability) en équilibrant la charge entre plusieurs machines. Même si le principal objectif d’une grappe Microsoft est de fournir des capacités de redondance pour minimiser les périodes d’arrêt, il faut savoir que bien des aspects du système d’exploitation sont susceptibles d’amélioration via l’équilibrage de charge. Par exemple, il est possible de miroiter sur plusieurs machines les disques et les imprimantes partagés. Les requêtes peuvent être automatiquement distribuées sur deux ou plusieurs machines, sachant que les clients choisiront automatiquement un autre serveur si l’un des serveurs de la grappe tombe en panne.

Les services de grappe sont directement intégrés au système d’exploitation. Cela facilite aux développeurs de logiciels tierce partie l’utilisation du modèle COM (Component Object Model) pour mettre en oeuvre des solutions personnalisées en matière de disponibilité intensive. Il est aisé d’administrer les grappes, car des outils d’administration compatibles avec les grappes (cluster-aware) permettent de reconfigurer simultanément plusieurs serveurs. Contrairement à bon nombre de solutions tierce partie, Windows 2000 Server n’exige pas l’achat de matériels coûteux ou non standards. Vous pouvez employer toutes les fonctionnalités de grappe de Windows 2000 Server sans être obligé d’acheter des matériels spéciaux. Les serveurs d’une grappe peuvent même avoir des configurations matérielles différentes, ce qui permet de prendre une machine moins onéreuse comme serveur de secours.

Plusieurs composants standards ont été améliorés pour gérer la redondance entre les machines d’une grappe :

· WINS (Windows Internet Naming Service)

· DHCP (Dynamic Host Configuration Protocol)

· DFS (Distributed File System)

D’autres chapitre des cet ouvrage traitent de ces services distribués.

Les services de Terminal

Windows 2000 Server est le premier système Windows à intégrer les services de terminal. Ces services permettent aux clients d’exécuter des applications interactives sur un serveur distant. La machine cliente se contente de recevoir les saisies de l’utilisateur puis de lui afficher les résultats. C’est l’infrastructure réseau qui transporte les données entre la machine cliente et le serveur. Tous les traitements se font sur le serveur lui-même (figure 1-4). Pour Windows 2000 Server, cette technologie est souvent baptisée Hydra (ancien nom du projet).

Cette nouvelle fonctionnalité permet d’utiliser des clients « minces » et contribue à diminuer le coût global d’un réseau. Un client mince est une machine dotée d’une configuration matérielle minimale. Plus besoin de processeurs rapides, d’énormes RAM et de gros disques durs sur les machines des utilisateurs, car les services de terminal font tout le travail. Le client mince se contente d’acheminer les requêtes au serveur. L’utilisateur n’y voit que du feu : pour lui, tout se passe comme s’il avait un ordinateur habituel. Les exigences matérielles du client sont minimales, et les services de terminal peuvent s’utiliser avec n’importe quelle machine.

Figure 1-4. Les services de terminal déchargent les clients en transférant vers le serveur l’exécution des applications.

Les contraintes minimales imposées aux clients procurent un avantage supplémentaire aux entreprises qui ont des parcs installés. Les machines Windows pour Workgroups 3.11 et Windows 95 peuvent servir de clients, avec leurs systèmes d’exploitation existants. Les matériels un peu anciens peuvent ainsi exécuter des applications 32-bit modernes, ce qui permet de garder les machines plus longtemps. Bien évidemment, Windows 2000 Server est fourni avec les clients des services de terminal pour Windows NT 4.0, Windows 95, Windows 98 et Windows 2000 Édition Professionnelle.

Le serveur prenant à sa charge tous les traitements pour le compte des clients, les services de terminal exigent naturellement que le serveur ait une configuration matérielle des plus musclées. Toutefois, le coût du serveur est compensé par les économies faites au niveau des clients. Cette architecture apporte d’autres avantages en matière de diminution des coûts. Les applications étant stockées sur les serveurs eux-mêmes, les administrateurs ont moins de machines à mettre à niveau quand ils installent une nouvelle version d’une application. En outre, ils peuvent contrôler plus finement l’environnement de l’utilisateur, car cet environnement est entièrement stocké sur le serveur.

Plusieurs modifications ont été apportées au noyau de Windows 2000 pour qu’il puisse gérer les services de terminal. Les systèmes Windows traditionnels n’autorisaient qu’une seule session interactive, celle de l’utilisateur travaillant directement sur le clavier de la machine. Pour que plusieurs utilisateurs puissent avoir chacun une session sur le réseau, Windows 2000 incorpore un sous-système Win32 fortement modifié. Ce nouveau sous-système peut gérer plusieurs sessions utilisateurs séparées. Les entrées au clavier et à la souris sont reliées non seulement à la bonne application, mais aussi à la bonne session. Chaque utilisateur travaille à l’intérieur de ses propres frontières de sécurité. La figure 1-5 illustre ces différences.

Figure 1-5. Le sous-système Win32 de Windows 2000 peut gérer plusieurs sessions.

Voici la façon la plus logique de comprendre la nouvelle architecture. Techniquement, un processus Win32 distinct est lancé pour chaque session utilisateur. Cela garantit que les applications ne communiquent pas entre les sessions, éliminant ainsi les violations de l’intimité d’un utilisateur. Ces modifications du noyau n’affectent pas les administrateurs n’utilisant pas les services de terminal. Il est toutefois important de bien comprendre ces modifications, si vous prévoyez de faire appel aux services de terminal.

mondialisation

Les systèmes d’exploitation de Microsoft furent, à l’origine, conçus pour le public américain. Ils fournissaient uniquement l’alphabet romain et les caractères de l’anglais, et ils ne faisaient rien pour aider les programmeurs à écrire des applications ciblant d’autres langues et d’autres cultures. Le monde entier réclamant Windows, les développeurs ont dû toutefois se résoudre à écrire des applications pour d’autres pays. Ce développement était difficile, car les créateurs du système d’exploitation n’avaient pas initialement pensé en termes de mondialisation. Au fur et à mesure de l’évolution de Windows, chaque génération a ajouté des fonctionnalités pour aider les usagers d’autres pays et pour aider les programmeurs écrivant des applications pour ces mêmes usagers. Windows 2000 dispose des fonctionnalités de mondialisation les plus importantes de toute la famille des systèmes Windows.

Le noyau de Windows 2000 a été spécifiquement écrit pour qu’il puisse prendre en compte la mondialisation. Unicode s’utilise partout en interne, ce qui facilite l’adaptation du système d’exploitation à d’autres langues. NLS (Native Language Support) permet de stocker dans le Registre les données d’emplacement et de langue, et il offre en outre une interface homogène de localisation que les applications peuvent interroger. Ces fonctionnalités aident les programmeurs à écrire des applications pouvant fonctionner dans toutes sortes de contextes locaux, et elles aident les utilisateurs à personnaliser leur environnement en fonction de leurs besoins.

Unicode

Unicode est une norme créée par le consortium Unicode, un organisme dont le travail consiste à créer des normes pour l’intercommunication entre les ordinateurs du monde entier. Cette norme, semblable en cela à la norme ANSI, définit des correspondances entre des octets et des caractères. Elle représente toutefois une amélioration par rapport à ANSI, car un même jeu de caractères sert pour toutes les langues. ANSI exigeait un jeu de caractères différents pour chaque langue ayant un alphabet particulier.

Remarque Pour plus de détails sur le consortium Unicode, visitez le site web https://www.unicode.org.

Unicode peut gérer beaucoup plus de caractères que ne le fait ANSI. Avec ANSI, les caractères sont codés sur 8-bit, ce qui donne en tout 256 caractères (c’est déjà presque insuffisant pour représenter toutes les majuscules et toutes les minuscules de nombreuses langues). Unicode code les caractères sur 16-bit, ce qui donne en tout 65 536 possibilités. Pour l’instant, on a codé 38 887 caractères, qui recouvrent les principales langues écrites d’Afrique, d’Inde, d’Asie, d’Europe, du Moyen-Orient, d’Amérique du Nord et d’Amérique du Sud.

Des polices Unicode ?

Unicode gère environ 40 000 caractères. Aucune police ne peut toutefois représenter une telle variété. Il existe donc toutes sortes de polices pour différents sous-ensembles du jeu de caractères Unicode. Chaque langue exige que soient installées des polices adaptées au contexte local.

Windows 2000 s’appuie sur Unicode pour tous les mécanismes internes du système d’exploitation. Par exemple, tous les noms NTFS de fichiers se composent de caractères Unicode. Cela permet au même système de fichiers d’être utilisé, quelle que soit la langue du système local. On peut écrire les applications pour qu’elles puissent tirer profit d’Unicode, mais sachez que toutes les applications n’en ont pas besoin.

(Native Language Support)

NLS permet aux administrateurs de configurer un système d’exploitation avec des données spécifiques à un pays. Cette API fait partie de Windows NT depuis la toute première version. Elle stocke une centaine de données de configuration dans le Registre et offre une interface vers ces données, ce qui permet aux applications de retrouver aisément les paramètres de localisation à utiliser sur une certaine machine.

Les données de localisation n’indiquent pas seulement la langue utilisée. Chaque pays a ses propres formats pour les dates, les heures, les jours de la semaine, les symboles monétaires, etc. L’emploi d’API standards évite aux utilisateurs de devoir configurer pour leur environnement chaque application prise individuellement. On configure une seule fois le système d’exploitation, et ensuite toutes les applications peuvent connaître les paramètres du système.

Seuls sont installés les fichiers requis par la langue et le pays concernés. L’espace occupé par ces fichiers est petit, comparé à celui qui serait utilisé si l’on installait les paramètres de localisation pour tous les pays reconnus par Windows 2000.

Résumé

Au cœur de Windows 2000 Server se trouve le noyau. Le noyau s’appuie sur la même architecture fondamentale que celle qui existait dans Windows NT Advanced Server 3.1, mais il intègre un certain nombre de modifications qui ont été apportées pour répondre aux exigences des réseaux modernes. Le noyau permet maintenant au système d’exploitation de mieux évoluer (scalability) ; ainsi, il permet de gérer 32 processeurs et 32 Go de RAM. Les bases de données comme Microsoft SQL Server peuvent tirer profit de ces améliorations matérielles, en exécutant en mode noyau une partie de leurs traitements pour optimiser leurs performances. Des fonctionnalités comme les quotas de processeur et la comptabilité de processus font de Windows 2000 Server une plate-forme très intéressante pour les environnements exécutant des services web. Les fonctionnalités de grappe sont maintenant intégrées au noyau, ce qui permet de diminuer sensiblement les périodes de non-fonctionnement du réseau pour peu que l’on mette en oeuvre la redondance. Enfin, Windows 2000 Server offre la meilleure prise en compte au sein de la famille Windows en matière de mondialisation et de localisation ; cela permet d’exploiter toutes les particularités linguistiques et locales.