Partager via


[Archives des newsletters ^] [< Volume 1, Numéro 3] [Volume 1, Numéro 5 >]

Bulletin d’information The Systems Internals Volume 1, Numéro 4

http://www.sysinternals.com
Copyright (C) 1999 Mark Russinovich


5 août 1999 - Dans ce numéro :

  1. NOUVEAUTÉS DE SYSTEMS INTERNALS

    • Portmon v3.0
    • Frob v1.5
    • ListDLLs v2.1
    • Nouvelles options BOOT.INI
    • PsList v1.0
    • Août « NT Internals »
    • Nouveautés pas si nouvelles
  2. ACTUALITÉS INTERNES

    • Correction : Protection des fichiers système
    • Win2K RC1 DDK publié
    • L’API Win2K AWE
    • WinDev '99 Ouest
  3. NOUVEAUTÉS À VENIR

    • Outil DiskEdit non documenté de SP4

SPONSOR : WINTERNALS SOFTWARE

Le bulletin d’informations Systems Internals est parrainé par Winternals Software, sur le web à l’adresse http://www.winternals.com. Winternals Software est le principal développeur et fournisseur d’outils de systèmes avancés pour Windows NT/2K. Les produits Winternals Software incluent FAT32 pour Windows NT 4.0, ERD Commander (fonctionnalité de disque de démarrage pour Windows NT) et NTRecover.

Winternals Software annonce la publication de son dernier utilitaire de récupération de système, Remote Recover. Remote Recover vous permet d’accéder aux lecteurs d’un ordinateur non démarrable via TCP/IP depuis n’importe où dans votre entreprise. Gagnez du temps et de l’argent de support en corrigeant à distance les problèmes de pilote, de système de fichiers et de configuration qui conservent les systèmes NT ou Win9x hors ligne. Téléchargez une version d’évaluation en lecture seule gratuite sur http://www.sysinternals.com/rrecover.htm, puis achetez la version en lecture/écriture à l’adresse http://www.winternals.com.


Bonjour,

Bienvenue dans la quatrième édition du bulletin System Internals. Le bulletin compte actuellement 7000 abonnés.

Dans le dernier bulletin d’informations, j’ai indiqué que je couvrirais l’API AWE de Windows 2000 (Win2K). J’ai souligné qu’AWE est l’acronyme de « Address Windowing Extensions » (pour les débutants dans le monde de Windows, API signifie « Interface de programmation d’application »). Cette page du site web du développeur de matériel de Microsoft la décrit comme suit : http://www.microsoft.com/hwdev/NTDRIVERS/AWE.htm. Toutefois, le lecteur Laxmikant Gunda m’a dirigé vers une autre URL sur le site Web de Microsoft, http://www.microsoft.com/windows/server/News/fromMS/intelpae.asp, où AWE est désigné comme l’API « Advanced Windowing Extensions ». De toute évidence, « Adress » est plus logique que « Advanced » dans le contexte de l’API (que je décris plus loin dans ce bulletin d’informations), donc je suppose que certains rédacteurs marketing ont mal lu lorsqu’ils ont digéré le matériel technique brut pour la page d’actualités.

J’ai déjà vu cette confusion se produire dans la couverture technique de Microsoft. Plus récemment, le programme d’installation de la version bêta 3 du kit IFS (Installable File Systems) Win2K s’est annoncé sur son écran de démarrage en tant que configuration du kit « Internal File Systems ». Le « I » dans IFS a toujours signifié « Installable », et « Internal » n’a pas beaucoup de sens ici (à moins qu’ils n’ont accidentellement publié la version non publique du kit), donc je suppose qu’il s’agit d’un autre cas de mauvaise traduction (ou le codeur d’installation n’ayant pas un membre de l’équipe de systèmes de fichiers à portée de main et faisant donc une meilleure estimation).

Qu’est-ce que je veux dire ? Rien de spécial, si ce n’est que tôt ou tard, nous allons avoir un dépassement d’acronyme, où les développeurs et les gens du marketing commencent par inadvertance à utiliser les mêmes acronymes de trois lettres pour décrire différentes technologies. Une personne dans le groupe IIS (Internet Information Server) de Microsoft nommera une nouvelle API appelée AIE (« Advanced ISAPI Extensions », où ISAPI signifie Internet Server API, et quelqu’un dans le groupe MTS (Microsoft Transaction Server) créera un autre AIE, « Atomic Interface Exchange ». Et je suis sûr qu’un jour, une personne marketing ou un rédacteur technique va se faire remettre un document technique de l’équipe IIS qui fait référence à « AIE », et ne connaissant pas la différence entre une base de données et un système de fichiers, va deviner qu’il signifie « Advanced Internet Explorer ».

J’ai vu la confusion des acronymes au travail dans d’autres endroits, aussi. Un récent article du magazine Windows NT traitant des ports série et parallèles utilisait le terme « port COM » dans son texte. Une fois que l’éditeur de copie a terminé une dernière passe et que l’article a été publié, l’expression était devenue « port COM (Component Object Model) ».

Comme d’habitude, s’il vous plaît transmettre le bulletin à des amis que vous pensez trouver intéressant.

Merci !

- Mark

NOUVEAUTÉS DE SYSTEMS INTERNALS

PORTMON V3.0

Portmon a été amélioré de manière majeure avec sa version 3.0. Portmon est une application de surveillance des ports en série et parallèle pour Windows 95/98/NT/2K. La version 3.0 présente :

  • une fonctionnalité avancée de filtrage et de mise en surbrillance des sorties
  • la possibilité de surveiller l’activité des ports en série et en parallèle sur les systèmes distants
  • la prise en charge de la journalisation dans un fichier et de l’impression
  • l’intégration du presse-papiers
  • un paramètre qui vous permet de spécifier la quantité de données en lecture/écriture à journaliser

Téléchargez Portmon v3.0 à l’adresse http://www.sysinternals.com/portmon.htm.

FROB V1.5

Windows NT 4.0 Server ne permet pas aux administrateurs de contrôler la longueur des quantums (tours) que le planificateur de threads NT donne aux threads. Sur la Windows 4.0 Workstation, l’applet Système dans le Panneau de configuration a un onglet Performances avec un curseur qui vous permet de désigner une augmentation quantique pour les threads de premier plan (le curseur est également présent sur Server, mais il ne fait rien). Les quantums plus courts entraînent généralement des applications plus réactives aux entrées utilisateur, tandis que les quantums longs conviennent aux systèmes dédiés à l’exécution d’applications serveur non interactives.

Le programme Frob de Systems Internals vous offre le même degré de contrôle plus précis sur les longueurs quantiques sur Workstation et sur Server, ce qui vous permet d’ajuster les quantums à la charge de travail que vous exécutez sur un système. Toutefois, étant donné que Frob modifie les paramètres internes au noyau NT, il doit être mis à jour pour fonctionner avec chaque nouveau Service Pack. Frob v1.5 est désormais disponible et offre une compatibilité avec le Service Pack 5.

Vous pouvez télécharger Frob v1.5 à l’adresse http://www.sysinternals.com/ntfrob.htm.

LISTDLLS V2.1

ListDLLs est un utilitaire de ligne de commande qui vous montre des informations détaillées sur les versions des DLL que les processus ont chargées. ListDLLs extrait les informations de version des fichiers sur disque qui correspondent aux chemins d’accès des DLL chargées, et obtient les noms de chemin à l’aide d’interfaces non documentées. Parfois, un fichier DLL sur disque est mis à jour après qu’une application l’a déjà chargé, auquel cas ListDLLs affiche des informations de version incorrectes.

ListDLLs v2.1 reconnaît quand il existe une différence entre les versions sur disque et chargées d’une DLL et signale la différence dans sa sortie. En cas de différence, ListDLLs imprime les heures de liaison du fichier sur disque et du fichier chargé. Les heures de liaison des fichiers exécutables et DLL se trouvent dans l’en-tête du format de fichier exécutable portable (PE) que NT utilise pour les empaqueter.

Téléchargez ListDLLs v2.1 à l’adresse http://www.sysinternals.com/listdlls.htm.

NOUVELLES OPTIONS BOOT.INI

Win2K Beta 3 introduit trois nouveaux commutateurs BOOT.INI. Tous les trois sont liés à Intel Physical Address Extensions (PAE), une technologie Intel introduite avec le Pentium Pro pour permettre aux systèmes x86 de traiter jusqu’à 64 Go de mémoire physique. Traditionnellement, les systèmes x86 ne peuvent traiter que 4 Go de mémoire physique, mais avec PAE et le chipset 450NX, cette barrière est brisée. Win2K est le premier système d’exploitation Microsoft qui tirera parti de PAE (Sun Solaris 7 et SCO UnixWare 7 prennent déjà en charge PAE). Il existe en fait une build spéciale du noyau Win2K, nommée ntkrnlpa.exe, qui a la prise en charge intégrée. NTLDR, le chargeur de démarrage Win2K, est responsable du chargement du noyau standard, ntoskrnl.exe ou compatible PAE, selon que le système est capable de traiter plus de 4 Go de mémoire et dispose de cette quantité.

Les trois nouveaux commutateurs BOOT.INI sont destinés au débogage des pilotes de périphérique conçus pour fonctionner avec des systèmes de mémoire volumineux (systèmes avec plus de 4 Go). Le premier, /PAE, pousse NTLDR à charger la version PAE du noyau même si l’ordinateur n’a pas plus de 4 Go de mémoire présente. Le second, /NOPAE, force NTLDR à charger le noyau standard. Enfin, le commutateur /NOLOWMEM pousse le noyau Win2K à utiliser uniquement la mémoire physique supérieure à 4 Go. Cela force toutes les adresses physiques utilisées par Win2K à exiger plus de 32 bits pour les représenter, et exerce ainsi la gestion par pilote de périphérique des adresses physiques volumineuses.

Recherchez la liste la plus complète des commutateurs BOOT.INI disponibles à l’adresse http://www.sysinternals.com/bootini.htm.

PSLIST V1.0

La plupart des versions d’UNIX sont fournies avec un outil en ligne de commande appelé « ps » que les administrateurs utilisent pour répertorier les statistiques du processeur et de la mémoire des processus. NT a un outil équivalent basé sur l’interface graphique utilisateur, le Gestionnaire des tâches, mais NT n’est fourni avec aucune version de ligne de commande. Le kit de ressources Windows NT comprend deux outils de type « ps » en ligne de commande : pstat et pumon. PsList montre une combinaison des informations disponibles avec pstat et pumon, mais a une fonctionnalité qu’aucun outil du kit de ressources ne possède : vous pouvez utiliser PsList pour interroger les informations de processus sur un système distant.

PsList prend plusieurs indicateurs qui vous permettent d’afficher les statistiques du processeur, de la mémoire ou des threads de processus, ainsi qu’un commutateur qui vous permet de spécifier un autre ordinateur NT à interroger. PsList utilise les Compteurs de performances intégrés de NT pour obtenir les informations qu’il affiche, et fonctionne sur NT 3.51, 4.0 et Win2K.

Téléchargez PsList à l’adresse http://www.sysinternals.com/pslist.htm.

Août « NT Internals »

Ma colonne « NT Internals » dans le numéro d’août du magazine Windows NT est « Inside Win2K Reliability Enhancements, Part 1 ». Ce premier d’une série en trois parties décrit les fonctionnalités Win2K destinées à aider les administrateurs à démarrer un système après qu’il est devenu indémarrable. Elles comprennent notamment le démarrage en « mode sans échec » et la Console de récupération.

Depuis le début du mois d’août, les versions en ligne des articles du magazine Windows NT sont accessibles uniquement aux abonnés, et les articles sont publiés en ligne à chaque nouveau numéro. Si vous ne vous êtes pas abonné, veuillez parcourir le lien d’abonnement à l’adresse pour http://www.sysinternals.com/publ.htm obtenir la remise d’abonnement Systems Internals.

NOUVEAUTÉS PAS SI NOUVELLES

Si vous n’avez pas déjà fait peur à un ami ou deux, consultez l’écran de veille Bluescreen de Systems Internals. La version 2.0 affiche la version Win2K de l’écran bleu de la mort (BSOD) et la séquence de démarrage Win2K lorsque vous l’exécutez sur un système Win2K. Je suis fier de dire que l’écran de veille Bluescreen a récemment reçu cinq étoiles, la meilleure note possible, de la bibliothèque de logiciels de Ziff-Davis.

Téléchargez l’écran de veille Bluescreen v2.0 à l’adresse http://www.sysinternals.com/bluescrn.htm.

ACTUALITÉS INTERNES

CORRECTION : PROTECTION DES FICHIERS SYSTÈME

Dans le dernier bulletin d’informations, j’ai indiqué que la protection des fichiers système (SFP) de Win2K permet à des applications telles que les Service Packs (SP) et les correctifs à chaud de mettre à jour les fichiers système en appelant une fonction SFP exports nommée SfcTerminateWatcherThread. Bien que SFP exporte cette fonction, les SP et les correctifs à chaud n’utilisent pas la fonction lors de la mise à jour des fichiers système. Au lieu de cela, ils peuvent mettre à jour les fichiers système, car ils remplacent les fichiers système existants par des fichiers signés numériquement par Microsoft. SFP détecte les mises à jour, mais les autorise à rester, car SFP vérifie que les nouveaux fichiers sont signés numériquement. Une autre correction concernant ma couverture SFP est qu’après Win2K Beta 3, Microsoft a changé le nom de SFP en Windows File Protection (WFP).

Veillez à consulter le numéro de septembre du magazine Windows NT, où vous trouverez ma colonne NT Internals « Inside Win2K Reliability Enhancements, Part 2 », qui décrit en détail WPF et la connexion de fichiers numériques Microsoft.

WIN2K RC1 DDK PUBLIÉ

Vous pouvez télécharger la version Win2K RC1 du kit de développement de pilotes de périphériques (DDK) de Microsoft à l’adresse http://www.microsoft.com/ddk/ddk2kRC1.htm. Vous pouvez télécharger le kit gratuitement ou parcourir la documentation en ligne.

L’API WIN2K AWE

J’ai déjà mentionné l’API AWE dans l’introduction de ce bulletin d’informations et référencé une page web chez Microsoft où vous pouvez en savoir plus : http://www.microsoft.com/hwdev/NTDRIVERS/AWE.htm. Sur les systèmes avec plus de 4 Go de mémoire physique, le noyau compatible PAE de Win2K, ntkrnlpa.exe, est en mesure de tirer parti de toute la mémoire physique de l’ordinateur sans modification des applications. Win2K Advanced Server utilise jusqu’à 8 Go de mémoire physique et Win2K Datacenter Server utilise jusqu’à 64 Go de mémoire physique.

Bien que chaque application sur un système à mémoire volumineuse dispose d’au plus 2 Go de mémoire virtuelle (3 Go si le commutateur de BOOT.INI /3GB est spécifié), la somme de la mémoire physique affectée à toutes les applications en cours d’exécution peut être égale à la quantité de mémoire physique. En outre, sur Win2K, le cache du système de fichiers se voit attribuer un maximum de 960 Mo de mémoire virtuelle, mais la quantité de données de fichier mises en cache peut être beaucoup plus grande, la mémoire physique affectée au cache peut dépasser 960 Mo.

L’API AWE donne aux applications individuelles la possibilité de contrôler directement la mémoire physique, et plus que la limite de 2 Go ou 3 Go impliquée par leur taille d’espace d’adressage virtuel. L’idée de base derrière l’API AWE est qu’une application désigne une partie de son espace d’adressage virtuel en tant que « fenêtre » dans la mémoire physique. Ensuite, il alloue un morceau de mémoire physique. La limite supérieure de la quantité de mémoire physique qu’une application peut allouer est essentiellement la quantité de mémoire physique sur le système moins toute mémoire non paginée déjà allouée par le noyau, les pilotes de périphérique et d’autres applications utilisant l’API AWE. Lorsque l’application souhaite accéder à une partie de la mémoire physique qu’elle a allouée, elle mappe la mémoire dans sa fenêtre d’adresse virtuelle. Ainsi, la quantité de mémoire physique à laquelle l’application peut accéder avec un mappage donné est limitée par la taille de la fenêtre qu’elle a réservée. Enfin, lorsqu’une application est terminée avec la mémoire physique, elle libère simplement la mémoire et ferme (libère) la fenêtre d’adresse virtuelle qu’elle a créée.

Les API qui correspondent à ces actions sont exportées par kernel32.dll et sont les suivantes :

  • Une application appelle VirtualAlloc avec les indicateurs MEM_PHYSICAL et MEM_RESERVE pour créer la fenêtre d’adresse virtuelle
  • AllocateUserPhysicalPages alloue de la mémoire physique pour une application
  • Une application utilise MapUserPhysicalPages pour mapper des parties de la mémoire physique dans sa fenêtre
  • FreeUserPhysicalPages libère la mémoire physique allouée par l’application

La possibilité pour les applications de manipuler directement plusieurs Go de mémoire est une aubaine pour les programmes gourmands en mémoire tels que les serveurs de base de données, les serveurs de messagerie, les serveurs Web, l’analyse financière et les applications scientifiques.

Bien que la possibilité d’utiliser plus de 4 Go de mémoire physique n’est autorisée que sur certaines versions de Win2K, l’API AWE est présente sur toutes les versions. Cela signifie que sur un système Win2K Professional avec 4 Go de mémoire, par exemple, l’API AWE offre toujours aux applications gourmandes en mémoire la possibilité de gérer plus de 2 ou 3 Go de données en mémoire physique.

L’API AWE a des interfaces équivalentes en mode noyau sur lesquelles kernel32.dll base les API en mode utilisateur. Un pilote peut allouer de la mémoire physique à l’aide de MmAllocatePagesForMdl, qui est l’équivalent en mode noyau de AllocateUserPhysicalPages. Cette fonction a son prototype dans le fichier win2K DDK ntddk.h, mais n’est pas documenté. Son prototype est :

NTKERNELAPI
PMDL
MmAllocatePagesForMdl (
    IN PHYSICAL_ADDRESS LowAddress,
    IN PHYSICAL_ADDRESS HighAddress,
    IN PHYSICAL_ADDRESS SkipBytes,
    IN ULONG TotalBytes
    );

LowAddress est l’adresse physique la plus basse acceptable qu’elle souhaite allouer et HighAddress est la plus élevée. SkipBytes est le nombre d’octets que le noyau doit conserver libre au-dessus de LowAddress et en dessous de l’adresse à laquelle il commence à allouer de la mémoire physique. TotalBytes est le nombre d’octets que le pilote souhaite allouer. La valeur de retour de la fonction est une MDL qui, si différente de zéro, décrit la mémoire physique que le noyau a donnée au pilote. Pour accéder à des parties de la mémoire, le pilote doit créer des sous-MDL à partir de la MDL retournée qui décrivent les parties appropriées de la mémoire physique. Lorsqu’un pilote souhaite accéder à la mémoire physique décrite par un sous-MDL, il doit mapper la sous-MDL à l’aide de MmGetSystemAddressForMdlSafe.

Les pilotes utilisent le MmFreePagesFromMdl, l’équivalent en mode noyau de FreeUserPhysicalPages, pour libérer la mémoire physique allouée avec MmAllocatePagesForMdl. Cette fonction est également prototypée dans ntddk.h :

NTKERNELAPI
VOID
MmFreePagesFromMdl (
    IN PMDL MemoryDescriptorList
    );

Notez qu’un pilote est responsable de la désaffectation de la MDL retournée par MmAllocatePagesForMdl avec un appel à ExFreePool, car MmFreePagesFromMdl ne libère pas la MDL.

WINDEV '99 OUEST

L’édition 1999 de la côte Ouest de la première conférence pour les développeurs Windows approche à grands pas. WinDev '99 Ouest aura lieu du 13 au 18 septembre au Marriot Santa Clara en Californie. Un certain nombre de grands noms du développement Windows parlent, notamment Jeff Richter, Jeff Prosise et Don Box. Je serai là avec Jamie Hanrahan et Brian Catlin sur la piste des pilotes de périphérique. Mes présentations incluent un tutoriel d’une journée sur les composants internes NT, ainsi qu’un tutoriel sur l’écriture de pilotes de système de fichiers Windows NT/2K et un autre sur les problèmes de développement de pilotes de périphérique avancés. Venez dire bonjour.

Visitez la page Web WinDev Ouest à l’adresse http://www.butrain.bu.edu/windev/.

NOUVEAUTÉS À VENIR

NT 4.0 SP4 DISKEDIT

Windows NT 4.0 Service Pack 4 a été fourni avec un utilitaire pratique sur son CD que de nombreuses personnes n’ont peut-être pas remarqué : DiskEdit. Et ce n’est pas étonnant : l’outil ne s’installe pas sur le disque dur, et il est fourni sans documentation. Il est presque certain qu’il s’agit d’un outil utilisé en interne par les développeurs de systèmes de fichiers Microsoft qui a été accidentellement inclus sur le CD. DiskEdit est un trésor pour les personnes qui ont manqué un outil de type Norton Utilities Disk Edit pour Windows NT, ou qui veulent simplement explorer les structures de données sur disque NTFS et FAT. La prochaine fois, je vous donnerai quelques instructions sur l’utilisation de DiskEdit.


Merci d’avoir lu le bulletin d’information Systems Internals.

Publié le jeudi 5 août 1999 à 19h13 par ottoh

[Archives des newsletters ^] [< Volume 1, Numéro 3] [Volume 1, Numéro 5 >]