Partager via


[Archives des newsletters ^] [< Volume 3, Numéro 2] [Volume 4, Numéro 2 >]

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

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


7 janvier 2002 - Dans ce numéro :

  1. ÉDITORIAL

  2. NOUVEAUTÉS DE SYSINTERNALS

    • Sync v2.1
    • DiskExt v1.0
    • NTFSDOS v3.02
    • PsSuspend v1.2
    • PsLogList v2.2
    • PsInfo v1.2
    • PsExec v1.3
    • BgInfo v2.0
    • Process Explorer v5.2
    • Filemon v4.34 pour Win64/Itanium
    • Filemon v1.1 pour Linux
    • Sysinternals chez Microsoft
  3. INFORMATIONS INTERNES

    • Dans Windows 2000, le DVD interactif
    • Dans Windows 2000/XP : le séminaire
    • Fichiers manifestes Windows XP
    • Qu’est-ce qu’une X-Box ?
    • Statistiques Windows XP aléatoires
    • Nouveau Windbg amélioré
  4. NOUVEAUTÉS À VENIR

    • Utilisation de BootVis pour profiler le processus de démarrage de Windows XP

SPONSOR : WINTERNALS SOFTWARE

Le bulletin Sysinternals 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/XP. Leurs produits comprennent le kit de l'administrateur primé, ERD Commander 2000 et NTFSDOS Professional Edition.

Winternals est fier d’annoncer Defrag Commander version 1.32, le défragmenteur d’entreprise le plus rapide et le plus complet disponible. Vous pouvez désormais gérer les planifications de défragmentation dans l’ensemble de votre entreprise Windows à partir d’un simple composant logiciel enfichable MMC, sans même avoir à installer des logiciels clients sur vos systèmes NT ou Windows 2000. Une licence à 10 systèmes est disponible pour l’achat en ligne pour seulement 169 USD, et des remises de quantité agressive sont disponibles. Visitez http://www.winternals.com/39 pour plus d’informations ou pour télécharger et utiliser gratuitement pendant 30 jours.

Bonjour,

Bienvenue dans le bulletin Sysinternals. Le bulletin compte actuellement 34 000 abonnés. Veuillez transmettre le bulletin d’informations à des amis que vous pensez être intéressés par son contenu.

Windows XP, le système d’exploitation phare de Microsoft, est devenu « gold » à la fin du mois d’août. Windows XP est la dernière version de la ligne Windows NT qui a démarré avec Windows NT 3.1 en 1993, et elle s’appuie sur les évolutions technologiques et les innovations des huit dernières années. Le système d’exploitation représente certainement la pointe de la technologie en termes de fonctionnalités et de fonctionnalités, dont beaucoup David Solomon et moi avons étudié et écrit dans l’article du magazine MSDN de décembre « Windows XP : Les améliorations du noyau créent un système d’exploitation plus robuste, puissant et évolutif » ( http://www.msdn.microsoft.com/msdnmag/issues/01/12/XPKernel/XPKernel.asp ).

Et avec des millions de systèmes Windows NT et Windows 2000 installés, et des centaines de milliers ou millions de testeurs bêta, vous vous attendez à ce que Microsoft ait modifié, réglé et corrigé Windows XP pour qu’il s’exécute pratiquement sans faille. Après tout, leurs publicités vantent XP comme étant « virtuellement à l'épreuve des accidents ». Je ne m’attendais certainement pas à rencontrer des problèmes - mais j’ai eu tort.

J’ai conservé Windows 2000 Professionnel comme système d’exploitation sur mon système principal tout au long du cycle xp bêta et release candidate. J'avais appris du cycle de développement de Windows 2000 que même les versions candidates laissent des traces de débogage après la mise à niveau vers les versions finales. Quand j’ai reçu la build 2600, la version finale, du programme bêta, j’ai décidé qu’il était temps de déménager. L’Assistant de compatibilité XP n’a trouvé que des problèmes mineurs sur mon système Windows 2000 (comme si la version de Partition Magic que j’avais installée ne comprenait pas XP NTFS) j’ai donc poursuivi le chemin de mise à niveau.

Après l’exécution en mode texte et l’installation des fichiers d’installation sur mon disque dur, le programme d’installation XP a redémarré dans mon installation Windows XP partiellement mise à niveau pour terminer la mise à niveau en mode graphique. C’est dans ce mode que vous spécifiez les paramètres régionaux et de fuseau horaire, que le programme d’installation effectue la détection de l’appareil et que vous configurez votre réseau. Les choses se sont déroulées sans problème jusqu’à la phase « Installation des appareils ». Lorsque la barre de progression a atteint environ 2/3 et que le programme d’installation a signalé que le temps restant était de 34 minutes, le programme d’installation a cessé d’être productif. Les bannières « XP est la meilleure chose qui vous soit arrivée » ont continué à alterner et les petits boutons clignotants en bas à droite ont continué à tourner, mais même deux heures plus tard, il me restait encore 34 minutes à parcourir.

C’est à ce moment-là que j’ai commencé à m’inquiéter. J'ai passé plusieurs heures à essayer tout ce que je pouvais pour résoudre le problème, y compris redémarrer pour laisser la Configuration réessayer, mettre à jour le BIOS, consulter la base de connaissances de MS (rien), mais je n'ai obtenu aucun résultat. J'ai finalement cédé, j'ai abandonné l'installation moitié Windows 2000, moitié Windows XP, et j'ai effectué une nouvelle installation de XP, passant la majeure partie de la journée à réinstaller les quelques douzaines d'applications que j'utilise.

Ma nouvelle installation de XP s'est bien déroulée. Cela ne veut pas dire que je n'ai pas été déçu par des plantages inexpliqués, des dysfonctionnements de l'interface graphique et d'autres comportements étranges du système, mais au moins j'ai pu être productif. Je savais que le CD du programme bêta était un CD d’évaluation, et que je devais effectuer une mise à niveau vers la version complète lorsque je l’ai reçu via MSDN, mais je m’attendais à ce que ce ne soit pas un problème.

Exactement 120 jours après ma mise à niveau abandonnée (le délai d’attente, ce n’est pas le hasard, d’une version d’essai), j’ai ressenti un sentiment incroyable de déjà-vu. L'essai de mise à niveau complète agit en fait comme une mise à niveau complète, et (vous l'avez deviné) à 34 minutes de la fin et aux 2/3 de l'étape « Installation des périphériques », l'installation a cessé de progresser. Une fois de plus, mon système se trouvait au milieu du monde de l'installation, totalement inutilisable. Après avoir essayé tout ce que j’avais essayé 120 jours plus tôt, je me suis résigné à une autre réinstallation complète.

Ensuite, j’ai rencontré un autre problème : le CD MSDN XP n’est pas démarrable, car il contient à la fois des sous-répertoires Accueil et Professionnel. Comme je n'ai qu'une seule installation de système d'exploitation (celle qui a été corrompue par l'installation), je n'ai pas pu exécuter la version Win32 de l'installation à partir du CD MSDN, et comme mon système est uniquement NTFS, je n'ai pas pu exécuter l'installation DOS. Le CD ne permet pas non plus de créer des disquettes de démarrage d’installation. Je me suis souvenu que MSDN Subscriber Downloads avait une image ISO de Windows XP Professional, alors je suis allé la chercher (en utilisant un autre système) pour graver un CD amorçable, mais cette ligne d'attaque a été contrecarrée par un « Erreur de lancement du gestionnaire de transfert de fichiers. Réessayez ultérieurement. » message d’erreur du site MSDN.

Comment me suis-je sorti de ce pétrin ? J’ai remplacé les ruches du Registre de la mise à niveau abandonnée par celles d’une sauvegarde que j’avais effectuée il y a quelques semaines. Bien que je n'aie pas pu me connecter au système après un redémarrage parce que l'activation de produit Windows a indiqué qu'elle ne pouvait pas vérifier ma licence, j'ai pu démarrer en mode sans échec et exécuter l'installation du CD MSDN à partir de là. J’ai à peine terminé la réinstallation de mes applications et je suis en mesure d’être à nouveau productif.

Ce que je trouve tout à fait étonnant dans ce qui m’est arrivé (deux fois), c’est que le programme d’installation de Windows XP n’a pas de mécanismes de sécurité de base présents dans les installations de Windows 9x depuis Windows 95. Lorsque le programme d’installation de Windows 95, 98 ou Me s’exécute, il enregistre les points de progression sur le disque. Si le programme d’installation est interrompu de manière inattendue, il redémarre là où il s’est arrêté, et s’il était dans la phase « Installation des appareils », il ignore le dernier pilote qu’il avait exécuté avant d’être interrompu. De cette façon, si le programme d’installation se bloque, vous pouvez redémarrer le système et le programme d’installation fera des progrès au-delà du point de blocage.

Windows 2000 et XP ont emprunté un certain nombre de fonctionnalités intéressantes à la ligne Windows 9x, comme le mode sans échec et la restauration du système. J’aimerais qu’ils empruntent certaines choses au programme d’installation de Windows 9x.

En ce qui concerne le passage à XP, le chroniqueur humoristique Dave Barry envisage de faire le saut : http://www.miami.com/herald/special/features/barry/2002/docs/jan06.htm .

Merci !

Mark

NOUVEAUTÉS DE SYSINTERNALS

SYNC V2.1

« Sync », une applet qui vide les données mises en cache sur le disque, est un utilitaire système de base sur les systèmes Unix, et j’ai donc écrit Sync pour Windows NT/2000/XP il y a plusieurs années. La synchronisation vous permet de s’assurer que les modifications sont reflétées sur le support amovible en lecture/écriture avant d’éjecter le média. Il est également utile pour réduire l’altération du disque lorsque vous l’exécutez avant d’exercer un pilote que vous développez qui risque de bloquer le système. Quelqu’un a récemment suggéré qu’il serait intéressant que Sync ait une option pour éjecter le média après le vidage, de sorte que soit introduit dans la version 2.1.

Téléchargez Sync v2.1 à l’adresse
http://www.sysinternals.com/ntw2k/source/misc.shtml

DISKEXT V1.0

Un autre outil lié au disque abordé dans ce bulletin d’informations est DiskExt, une applet de ligne de commande qui vous indique, en fonction de la lettre de lecteur d’un volume, les emplacements des partitions qui composent le volume ; les volumes multipartition incluent les volumes étalés, mis en miroir et rayés. DiskExt indique également l’emplacement, en termes de secteurs qu’ils occupent, des partitions qu’il répertorie.

Téléchargez DiskExt v1.0 avec le code source complet à l’adresse
http://www.sysinternals.com/ntw2k/source/misc.shtml#diskext

NTFSDOS V3.02

NTFSDOS, l’utilitaire qui a lancé Sysinternals (au moment de la publication de NTFSDOS, « Ntinternals ») sur les ordinateurs de centaines de milliers d’utilisateurs, permet à DOS de lire les lecteurs NTFS. Une modification mineure de la structure sur disque NTFS de Windows XP a nécessité un ajustement de NTFSDOS pour la compatibilité XP.

Téléchargez NTFSDOS v3.02 à l’adresse
http://www.sysinternals.com/ntw2k/freeware/NTFSDOS.shtml

PSSUSPEND V1.2

Avez-vous déjà voulu suspendre temporairement un téléchargement réseau, une recherche sur disque ou une autre application gourmande en ressources afin de pouvoir exécuter autre chose ? La suspension est une fonctionnalité de gestion des processus qui fait cruellement défaut dans les outils d’administration de Windows NT/2000/XP. L’ajout le plus récent à l’ensemble d’outils PsTools est PsSuspend, un utilitaire qui suspend et reprend les processus. Comme tous les autres outils de la suite PsTools, PsSuspend est un outil en ligne de commande que vous pouvez diriger sur le système local ou distant.

Comme il n'y a pas de capacité de suspension de processus dans Windows NT/2000/XP (il y en a une dans XP, mais elle n'est pas exposée via l'API Win32), PsSuspend suspend et reprend les threads en cours d'exécution dans un processus cible avec les API Win32 SuspendThread et ResumeThread.

Téléchargez PsSuspend v1.2 à l’adresse
http://www.sysinternals.com/ntw2k/freeware/pssuspend.shtml
Téléchargez l’intégralité de la suite PsTools à l’adresse
http://www.sysinternals.com/ntw2k/freeware/pstools.shtml

PSLOGLIST V2.2

Les outils qui composent le package PsTools évoluent continuellement en fonction des commentaires des utilisateurs, et PsLoglist a généré plus de demandes de fonctionnalités que tous les autres utilitaires. Cette dernière version introduit un certain nombre d’améliorations, notamment la possibilité de vider les enregistrements dans les fichiers journaux des événements enregistrés, de modifier le délimiteur de format à ligne unique d’une virgule vers autre chose (pour les situations où le texte du journal des événements contient des virgules), de vider les enregistrements à partir de plages de dates spécifiées et de filtrer le type d’événement (erreur, avertissement ou informations). Comme précédemment, PsLoglist peut vider les journaux d’événements système locaux ou distants et dispose de nombreuses autres options pour contrôler son fonctionnement.

Téléchargez PsLoglist v2.2 à l’adresse
http://www.sysinternals.com/ntw2k/freeware/psloglist.shtml
Téléchargez l’intégralité de la suite PsTools à l’adresse
http://www.sysinternals.com/ntw2k/freeware/pstools.shtml

PSINFO V1.2

Un utilitaire PsTools qui a été mis hors service est PsUptime, une applet qui a signalé la durée pendant laquelle le système local ou distant a été mis en service. Ce n’est pas que ces informations ne sont pas utiles, mais elles sont plus appropriées pour l’affichage par le nouveau venu relatif de PsTools, PsInfo. C'est pourquoi PsInfo v1.2 signale désormais la durée de fonctionnement du système, ainsi qu'une série d'autres informations, telles que la version du système d'exploitation, la vitesse du processeur, la taille de la mémoire, les installations de correctifs, l'existence ou non d'une version d'essai du système d'exploitation et sa date d'expiration, et, sous Windows XP, l'état de l'activation du produit Windows.

Téléchargez PsInfo v1.2 à l’adresse
http://www.sysinternals.com/ntw2k/freeware/psinfo.shtml
Téléchargez l’intégralité de la suite PsTools à l’adresse
http://www.sysinternals.com/ntw2k/freeware/pstools.shtml

PSEXEC V1.3

PsExec est un utilitaire de ligne de commande qui vous permet d'exécuter des programmes sur un système distant sans installer de logiciel sur ce système. Si le programme que vous exécutez a une interface de ligne de commande, PsExec le met par proxy pour vous, ce qui vous permet de l’exécuter de manière interactive comme s’il exécutait le programme localement. Ces capacités font de PsExec un utilitaire léger et pratique de type shell à distance, et facilitent l'activation à distance de programmes en ligne de commande tels que ipconfig.

La version 1.3 de PsExec vous permet de lancer des applications Windows (par opposition à celles qui sont en ligne de commande) sur un système distant afin qu’elles s’affichent sur le bureau interactif. Je ne sais pas exactement où cela pourrait être utile, mais j'ai reçu plusieurs demandes pour cette fonctionnalité.

Téléchargez PsExec v1.3 à l’adresse
http://www.sysinternals.com/ntw2k/freeware/psexec.shtml
Téléchargez l’intégralité de la suite PsTools à l’adresse
http://www.sysinternals.com/ntw2k/freeware/pstools.shtml

BGINFO V2.0

Si vous gérez plus de quelques systèmes, vous connaissez la « confusion du système », cet état d'esprit dans lequel vous vous approchez d'une machine (ou basculez sur votre KVM) et oubliez le nom de l'ordinateur, la version du système d'exploitation, le service pack installé ou l'adresse IP. Bien que toutes ces informations soient accessibles via diverses interfaces d’administration, l’accès à ces informations peut prendre du temps. C’est là qu’intervient BgInfo de Bryce Cogswell : il affiche les informations système que vous trouvez les plus importantes directement sur l’arrière-plan du bureau afin que vous disposiez instantanément de toutes les informations dont vous avez besoin.

Cette dernière mise à jour de BgInfo le rend plus configurable que jamais. Vous pouvez définir du texte personnalisé dans une clé de Registre, spécifier la couleur d’arrière-plan ou l’image bitmap du bureau, localiser le texte sur l’arrière-plan, etc. Toutefois, le plus utile pour les grandes organisations est la capacité de BgInfo à enregistrer et charger des paramètres, et même à les exporter vers une base de données. À l’aide de l’une de ces fonctionnalités, vous pouvez définir des paramètres une seule fois, puis les utiliser sur tous les systèmes que vous gérez.

Téléchargez BgInfo v2.0 à l’adresse
http://www.sysinternals.com/ntw2k/freeware/bginfo.shtml

PROCESS EXPLORER V5.2

Process Explorer est une visionneuse de processus et un utilitaire de contrôle qui reprend là où le Gestionnaire des tâches s’en va. Parmi sa liste complète de fonctionnalités, Process Explorer vous montre l’arborescence de création de processus, affiche les handles que les processus ont ouverts, répertorie les DLL que les processus ont chargés et vous permet de rechercher le ou les processus pour lesquels un fichier particulier est ouvert.

Les versions antérieures de Process Explorer ont travaillé sur les systèmes Windows 9x et NT/2K/XP, mais ce n’est qu’avec la version 5.2 que Process Explorer affiche les informations d’utilisation du processeur des processus pour les systèmes Windows 9x. Une autre amélioration de la version 5.2 permet de traquer les fuites sur les systèmes Windows XP et 2000 en signalant le nombre de descripteurs GDI et USER (descripteurs vers les ressources de l’interface graphique Win32) qu’un processus a ouverts dans la boîte de dialogue des propriétés du processus. Contrairement aux idées reçues, même sur Windows 2000 et XP, le nombre de ces ressources est limité : il existe une limite à l’échelle du système de 65 536 handles utilisateur et une limite par processus de 16 384 handles GDI.

Télécharger Process Explorer v5.2 à l’adresse
http://www.sysinternals.com/ntw2k/freeware/procexp.shtml

FILEMON V4.34 POUR WIN64/ITANIUM

Microsoft m'a gentiment prêté un des premiers boîtiers Itanium d'Intel pour que je puisse commencer à porter les applications Sysinternals les plus populaires sur Win64/Itanium. Le boîtier est impressionnant : il a 2 733 MHz processeurs et 8 Go de mémoire. J’ai choisi Filemon comme première application à porter. Filemon se compose d’une interface graphique utilisateur Win32 (maintenant Win32/64) et d’un pilote de périphérique. Deux efforts de portage différents ont donc été nécessaires. Ce qui est quelque peu inattendu, c’est que vous générez à la fois des applications Win64 et des pilotes 64 bits sur un système 32 bits exécutant Windows NT, 2000 ou XP à l’aide d’un compilateur croisé.

Les dernières versions du kit de développement logiciel (SDK) de plateforme (disponibles en téléchargement gratuit auprès de Microsoft ) :http://www.microsoft.com/msdownload/platformsdk/sdkupdate/) incluent des sous-répertoires contenant le compilateur et l’éditeur de liens Itanium 64 bits, les fichiers d’en-tête Win64 et les bibliothèques Win64. J’ai créé ce fichier de commandes simple pour définir mon environnement afin de générer des exécutables Win64 :

@echo off
set PATH=D:\Mssdk\Bin\win64;%PATH%
set INCLUDE=D:\Mssdk\include\win64;D:\Mssdk\include\win64\crt
set LIB=D:\Mssdk\lib\ia64
echo 64-bit environment set.

Notez que vous ne pouvez pas générer d’applications Win64 à partir de Visual Studio, mais que vous devez le faire à partir de la ligne de commande.

Quelques problèmes mineurs de casting ont été les seuls problèmes que j’ai rencontrés pendant la compilation. Ensuite, j’ai construit le pilote. Les dernières versions du DDK (qui n’est plus disponible en téléchargement gratuit) incluent des raccourcis vers les invites de commandes qui ont l’environnement de génération du pilote IA64 configuré. Vous créez simplement le pilote dans l’environnement cible 64 bits comme vous le feriez pour un pilote 32 bits.

Le compilateur m’a informé que je devais être plus explicite sur certains casts. Par exemple, les numéros de séquence que Filemon affecte aux opérations sont des ULONG, que le compilateur ne me laisserait pas convertir en un PVOID pour passer en tant que paramètre de contexte à la fonction IoSetCompletionRoutineGestionnaire d’E/S . Au lieu de cela, j’ai dû le lancer d’abord dans ULONG_PTR et ensuite PVOID. Dans tous les cas, en quelques minutes, le pilote a compilé sans erreur.

Ensuite, j’ai copié l’application 64 bits et le pilote dans le système Itanium et je viens de l’exécuter. L’interface utilisateur de Filemon s’est affichée, puis a disparu. Cela signifiait que j’ai dû utiliser le débogueur Win64 pour déterminer ce qui n’allait pas. Le débogueur Win64 est également disponible dans le Kit de développement logiciel (SDK) de plateforme et vous pouvez l’exécuter à partir d’un ordinateur 32 bits ou 64 bits. Il ressemble à un débogueur Visual Studio dépouillé et fonctionne uniquement en mode distant où vous installez un élément client de débogage sur l’ordinateur cible sur lequel vous exécutez l’application.

Après avoir parcouru le code de Filemon pendant une demi-heure environ, j'ai finalement réalisé que mes procédures Windows devaient déclarer leurs paramètres lparam comme LPARAM - ils avaient été LONG à cause d'un code copié du SDK lorsque nous avons écrit la première version de Filemon en 1996. Fait intéressant, le compilateur ne s’était pas plaint de cela, mais cela signifiait que tout pointeur passé en tant que lparam était tronqué. Cela s’est affiché dans le gestionnaire WM_MEASUREITEM de Filemon, qui interprète le paramètre lparam comme un pointeur vers la structure. Filemon a été défaillant dans ce code. Étonnamment, quand j’ai résolu ce problème Filemon s’est parfaitement exécuté sur Itanium. Durée totale du port : 1 heure.

Je travaille sur le portage de Regmon maintenant et je porterai ensuite DebugView. Ils devraient tous les deux être difficiles, en particulier DebugView, qui a un pilote assez peu orthodoxe.

Téléchargez Filemon avec la source complète à l’adresse http://www.sysinternals.com/ntw2k/source/filemon.shtml

FILEMON V1.1 FOR LINUX

Si vous avez visité Sysinternals au cours des deux derniers mois, vous avez probablement été choqué de voir une nouvelle entrée dans la barre de menus : Utilitaires Linux. C'est vrai, j'ai décidé qu'il serait intéressant d'avoir Filemon sous Linux. J’avais déjà utilisé l’environnement Delphi Rapid Application Development (RAD) de Borland sur Windows, donc quand Kylix a été publié (en gros, Delphi pour Linux), j’ai réalisé que l’interface graphique serait assez simple.

La question qui restait était de savoir comment intercepter l’activité du système de fichiers. La plupart des versions d’Unix, y compris Linux, implémentent un appel système nommé ptrace() qui permet à un processus d’intercepter tous les appels système effectués par un processus cible. J’ai envisagé d’utiliser ptrace() pour surveiller l’activité du système de fichiers, et je pourrais modifier Filemon à l’avenir pour l’utiliser pour des raisons qui deviendront claires, mais j’ai décidé de ne pas l’utiliser.

Les inconvénients de l’utilisation ptrace() sont que Filemon doit énumérer tous les processus en cours d’exécution et exécuter un ptrace() sur chacun d’eux. En outre, il doit également s’attacher aux processus nouvellement créés et la fonctionnalité ptrace() ne permet pas de garantir que les premiers appels système exécutés par le nouveau processus ne seront pas manqués. Lorsqu’un processus suivi exécute un appel système, le système d’exploitation le bloque, envoie un signal au processus de suivi et attend que le processus de suivi continue. Cela peut entraîner une dégradation grave des performances si vous souhaitez voir toute l’activité du système de fichiers. Enfin, le plus grand inconvénient est que ptrace() change le comportement des processus suivis. Pendant qu’ils sont suivis, le traceur est le processus parent, ce qui signifie que le parent réel d’un processus suivi ne voit pas les notifications qu’il voit normalement lorsque les processus enfants les provoquent.

J’aurais pu écrire un pilote de filtre de système de fichiers (pilote empilable dans la terminologie Linux) comme le Gestionnaire d’E/S dans Windows NT/2000/XP pris en charge, mais l’architecture actuelle du système de fichiers Linux ne prend pas en charge les pilotes de système de fichiers empilables. Il existe un correctif appelé FiST que vous pouvez appliquer pour le prendre en charge (http://www.cs.columbia.edu/~ezk/research/fist/)et il existe également un kit de ressources de trace (http://www.opersys.com/LTT/index.html) pour Linux, mais les deux exigent que les utilisateurs finaux recompilent leurs noyaux, ce que je voulais éviter. J’ai donc décidé d’implémenter la surveillance à l’aide d’un pilote de raccordement d’appel système, un peu comme Regmon fonctionne sur Windows.

Il existe deux problèmes qui ont rendu le projet plus difficile que d’effectuer la même chose sur Windows. La première est que Linus Torvalds, le père de Linux et directeur du développement du noyau Linux, ne croit pas à l’utilisation des débogueurs de noyau. Les raisons sont assez ridicules (voir http://www.lib.uaa.alaska.edu/linux-kernel/archive/2000-Week-36/0575.htm l pour lire la propre explication de Linus) et c’est l’une des nombreuses raisons pour lesquelles le noyau Linux aura du mal à suivre Windows. Il existe quelques débogueurs de noyau non officiels, mais ils nécessitent que vous corrigiez le noyau et nécessitent un effort d’utilisation. La deuxième préoccupation est que Linus ne croit pas à la garantie de la compatibilité descendante avec les pilotes de périphérique lors de la publication de nouveaux noyaux. La conséquence est que n’importe quelle API de noyau exportée peut changer soudainement, cassant les pilotes existants qui utilisent l’API et exigeant leur recompilation pour les nouveaux noyaux.

L’absence d’un débogueur de noyau intégré signifie que j’ai débogué par le biais d’instructions d’impression de débogage (je me suis dit que je passerais autant de temps à déboguer via printkles impressions en mode noyau qu’à installer et à apprendre un débogueur de noyau), et la modification des API et des structures de données du noyau signifie que Filemon pour Linux dépend du noyau. Il fonctionne sur Red Hat 7.1 et 7.2 et SuSE Linux 7.1 et 7.2, et peut-être sur d'autres distributions commerciales, mais je n'ai pas encore trouvé le moyen d'isoler le pilote des modifications arbitraires du noyau (l'une d'entre elles, qui a cassé une première version du pilote, était le changement de la convention d'appel d'une fonction du noyau, qui est passée de standard à fast-call).

Filemon pour Linux a exactement la même interface que son équivalent Windows et il est remarquablement similaire (voir la capture d’écran sur la page Filemon pour Linux). Mes conclusions sur la facilité de développement d’un filtre général de système de fichiers non dépendant du noyau pour Linux doivent être claires : c’est difficile, voire impossible. En revanche, les pilotes empilables (filtres) dans chaque domaine de pilote (mise en réseau, systèmes de fichiers, stockage, entrée, etc.) étaient pris en charge par l’architecture d’E/S Windows NT depuis le début.

Téléchargez Filemon pour Linux à l’adresse http://www.sysinternals.com/linux/utilities/filemon.shtml

SYSINTERNALS AT WWW.MICROSOFT.COM

Une fois de plus, voici la dernière version des références Sysinternals dans les articles de la Base de connaissances Microsoft (KB) publiés depuis la dernière lettre d’information. Notez celui qui a même Filemon dans son titre. Cela porte à 31 le nombre total de références de base de connaissances à Sysinternals. Vous trouverez une liste complète à l’adresse http://www.sysinternals.com/ntw2k/info/mssysinternals.shtml

  • Message d’erreur d’exception irrécupérable se produit pendant l’installation http://support.microsoft.com/support/kb/articles/Q273/9/18.ASP

  • FP2000 : La liste des fichiers de type pour les pilotes de base de données est vide http://support.microsoft.com/default.aspx?scid=kb; EN-US; Q308935

  • PROCÉDURE : Résoudre l’erreur 1928 « Erreur d’inscription de l’application COM+ » http://support.microsoft.com/default.aspx?scid=kb; EN-US; Q308940

  • PRB : Conflit avec EOF lors de l’utilisation de #import avec ADO http://support.microsoft.com/support/kb/articles/Q166/1/12.ASP

  • PRB : DLL non déchargées après l’appel de CoFreeUnusedLibraries http://support.microsoft.com/support/kb/articles/Q301/3/57.ASP

  • PRB : Erreur 80004005 « Le moteur de base de données Microsoft Jet ne peut pas ouvrir le fichier '(Inconnu)' » http://support.microsoft.com/support/kb/articles/Q306/2/69.ASP

  • PRB : FileMon indique que DAO360.dll ne parvient pas à charger MSJet49.dll, MSJet48.dll et autres fichiers MSJetxx.dll http://support.microsoft.com/support/kb/articles/Q306/3/86.ASP

  • SMS : L’agent d’inventaire logiciel génère un message d’erreur d’erreur de page non valide http://support.microsoft.com/support/kb/articles/Q302/6/51.ASP

INFORMATIONS INTERNES

DANS WINDOWS 2000, LE DVD INTERACTIF

Si vous avez manqué la tarification spéciale de la préversion de INSIDE Windows 2000, le tutoriel de DVD interactif sur les composants internes de Windows 2000, nous avons de bonnes nouvelles ! Un prix d’introduction de 950 USD, soit plus de 25% de moins que le prix d’utilisateur unique normal, est toujours disponible. Pour COMMANDER MAINTENANT, ou pour plus d’informations sur ce nouveau produit passionnant de David Solomon et Mark Russinovich, accédez à http://www.solsem.com/dvd.html. Également disponible dans un format de distribution réseau pour le streaming intranet !

MARQUER LES DATES : RUSSINOVICH & SOLOMON ENSEIGNENT À NOUVEAU ENSEMBLE À SEATTLE ET BOSTON

Notre cours de 3 jours sur les aspects internes de Windows 2000/XP, qui s'est tenu à Austin le mois dernier, a fait salle comble, c'est pourquoi nous avons programmé deux autres sessions : du 17 au 19 avril près de Seattle et du 12 au 14 juin à Boston (les inscriptions seront bientôt ouvertes). Le cours est basé sur « Inside Windows 2000, 3rd Edition » et couvre les sous-systèmes d'environnement, la répartition des appels système, les threads système, le démarrage et l'arrêt, le registre interne, les processus et l'ordonnancement des threads, la gestion de la mémoire, la sécurité, le système d'E/S, le stockage, NTFS, et le gestionnaire de cache. En comprenant le fonctionnement interne de Windows XP & 2000, vous pouvez tirer parti de la plateforme plus efficacement et plus efficacement déboguer et résoudre les problèmes. Pour plus d’informations, consultez http://www.sysinternals.com/seminar.shtml

FICHIERS MANIFESTES WINDOWS XP

L’un des changements les plus visibles dans Windows XP est la nouvelle apparence fournie par le bureau Luna. Luna est en fait un « thème », et si vous exécutez une application qui ne prend pas en charge les thèmes (toute application qui n’est pas écrite spécifiquement pour tirer parti des thèmes Windows XP), l’application a l’aspect Windows 2000 plus ancien. Toutefois, vous pouvez faire en sorte que les applications plus anciennes aient le nouveau look très facilement, même si vous n’avez pas de code source. Créez simplement un fichier manifeste XML pour l’application qui indique au chargeur Windows XP que cette application souhaite utiliser la DLL Common Control version 6 (le comctl32.dll dans %SystemRoot%\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1 df_6.0.0.0_x-ww_1382d70a) au lieu de la version non compatible avec le thème dans %SystemRoot%\System32. Voici le fichier manifeste qui rend le thème Process Explorer v5.2 sensible :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly
xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
name="Process Explorer"
processorArchitecture="x86"
version="5.1.0.0"
type="win32"/>
<description>Process handle and DLL viewer</description> <dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="x86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>

Modifiez le nom, la version et la description de l’application que vous souhaitez rendre compatible avec le thème, puis enregistrez le fichier afin qu’il ait le même nom que l’exécutable de l’application, à l’exception de l’ajout de « . manifest « , par exemple, procexp.exe.manifest. Si vous êtes le développeur de l’application, vous pouvez incorporer le fichier manifeste dans les ressources de l’application, comme je l’ai fait avec Process Explorer. Consultez le code source de Filemon pour obtenir un exemple de procédure.

QU’EST-CE QU’UNE X-BOX ?

Si vous avez suivi le monde des jeux sur console récemment, vous savez presque certainement que la nouvelle console X-Box de Microsoft exécute une version modifiée de Windows 2000. Lors d'un récent voyage de recherche sur Windows XP organisé par Microsoft pour la 4e édition de notre livre, Dave Solomon et moi-même avons appris de l'équipe de développement de Windows 2000/XP que le groupe X-Box avait opté pour Windows 2000 pour la prise en charge de ses pilotes. Une fois la décision prise, les développeurs de la X-Box ont reçu une copie de l'arbre des sources de Windows 2000 et sont partis, sans que l'équipe de Windows 2000/XP n'en entende plus parler.

La X-Box a une version fortement modifiée et supprimée de Windows 2000 qui ne s’intègre qu’à 512 Ko de mémoire. Tous les sous-systèmes non pertinents ont été supprimés (à l'origine, le sous-système Plug and Play a été supprimé, puis rajouté après avoir réalisé que le chargement des pilotes en dépendait), un seul processus est exécuté et il n'y a pas de sous-système Win32 (seulement l'API de la X-Box). La X-Box ne dispose que de 64 Mo de mémoire physique et ne prend pas en charge la mémoire virtuelle. Les gestionnaires de mémoire et de cache Windows 2000 sont donc deux sous-systèmes qui ont été supprimés. Avec de telles modifications drastiques, vous devez le considérer comme un nouveau système d’exploitation, et non Windows 2000.

Pour en savoir plus sur les composants internes X-Box, GameCube et PS2, consultez http://www.e-insite.net/ednmag/index.asp?layout=article&articleid=CA185947pubdate=12-20-01

STATISTIQUES WINDOWS XP ALÉATOIRES

Les statistiques suivantes ont été publiées par Microsoft sur son site web OEM System Builder (à http://oem.microsoft.com – vous pouvez vous inscrire gratuitement), et j’ai pensé que vous trouveriez certaines d’entre elles intéressantes et/ou amusantes.

Par ailleurs, le numéro de build de la version finale de Windows XP n'est pas tombé par hasard à 2600 - il a été légèrement falsifié (le numéro de build est incrémenté chaque fois que le système d'exploitation est compilé dans le laboratoire de build, en général une fois par jour ouvrable). Des sources internes indiquent que le nombre a été ciblé sur la communauté 2600, un groupe de pirates informatiques uni à la fois (http://www.2600.com/), comme un message illustrant la confiance de l’équipe XP dans la sécurité de XP.

  • Nombre de jours nécessaire au développement de Windows XP : 600 (20/12/99 – 24/08/01)
  • Nombre de membres de l’équipe ciblée : 5 736
  • Nombre de testeurs par développeur : 1,4
  • Nombre de bébés nés pendant le projet : 452
  • Nombre de stagiaires employés : 504
  • Quantité de macaroni consommée pendant 40 « réunions Windows Info » : 2 721 kg
  • Nombre de Frappuccino® servis : 86 400
  • Dollars amassés pour Seattle Ronald McDonald House (organisme de bienfaisance local) : 2 millions USD
  • Nombre de cas de test pour la fonctionnalité de restauration du système : 1,6 million
  • Nombre de cas de test de graphiques Direct3D exécutés depuis Windows XP RC1 : 43 114 143
  • Nombre d’applications testées pour la compatibilité : 5 500
  • Nombre d’appareils pris en charge : 12 000
  • Pourcentage des applications PC les plus populaires distribuées au cours des trois dernières années qui seront compatibles avec Windows XP : 90 %
  • Nombre de pistes dans le plus grand cas de test de bibliothèque multimédia numérique : 31 000
  • Durée en heures du fichier unique le plus long capturé par Windows Movie Maker : 114
  • Nombre de langues vers lesquelles nous localisons : 24 entièrement et 9 partiellement
  • Nombre de pays participant au lancement le 25/10 : Plus de 50
  • Nombre de personnes participant aux événements de lancement dans le monde entier : plus de 580 000 places ... plus audiences en ligne 5 120 générateurs de systèmes dans le monde entier

NOUVEAU WINDBG AMÉLIORÉ

Windbg est un front-end graphique de la prise en charge du débogage du noyau intégré au noyau Windows NT/2000/XP. Jusqu'à ces deux dernières années, Windbg a eu la réputation d'être maladroit et encombrant, mais cela a changé depuis que Microsoft s'est attaché à l'améliorer. La dernière version de Windbg, disponible en téléchargement gratuit à partir de http://www.microsoft.com/ddk/Debugging/, est considérablement améliorée par rapport aux anciennes versions et plus facile à utiliser. Il existe de nouvelles fonctionnalités que même les utilisateurs Windbg expérimentés peuvent ne pas connaître, et deux commandes utiles pour les administrateurs système qui tentent de diagnostiquer les incidents système.

Une fonctionnalité qui rend le dernier Windbg très facile à utiliser est sa prise en charge du serveur de symboles de Microsoft. Un problème lié à l’analyse des vidages sur incident ou au débogage d’applications avec Windbg est que vous devez avoir installé les fichiers de symboles de débogage appropriés pour votre installation. Avec les Service Packs, les correctifs logiciels et éventuellement les blocages à partir de différents systèmes d’exploitation (par exemple, Windows NT par rapport à Windows XP), cela peut être coûteux. Avec la prise en charge du serveur de symboles, il vous suffit d’entrer l’URL du serveur de symboles Microsoft dans la boîte de dialogue chemin de symbole Windbg et Windbg télécharge les symboles à partir du serveur à la demande et les stocke dans le répertoire que vous spécifiez. Le serveur de symboles contient des symboles pour Windows .NET Server Beta 3, Windows XP et XP release candidates, Windows 2000 et ses Service Packs et correctifs à chaud, Windows NT 4, MDAC 2.1-2.7, IIS et ISA.

Les deux commandes utiles pour le débogage des vidages sur incident sont !analyze et .dump. Exécutez !analyze (spécifiez le -v commutateur) pour obtenir une analyse automatique, basée sur l’heuristique, d’un incident. Cette commande est déjà assez puissante et, à mesure que Microsoft incorpore des données historiques provenant de plantages réels, elle deviendra encore plus précise.

La commande .dump est utile à la fois pour le débogage en mode utilisateur et l’analyse du vidage sur incident en mode noyau. Dans certains environnements de serveurs, en particulier les serveurs web, vous pouvez identifier une fuite de mémoire ou un autre problème, mais ne pas vouloir arrêter et redémarrer le serveur jusqu'à ce que la cause soit isolée. Sous Windows XP et .NET Server, vous pouvez vous attacher au processus serveur à l'aide de Windbg, exécuter la commande .dump pour générer un fichier de vidage de la mémoire utilisateur, puis vous détacher (à l'aide de la commande .detach), en n'interrompant le serveur que brièvement. Ensuite, un développeur peut prendre le fichier de vidage généré et l’analyser hors connexion.

Par défaut, les systèmes serveur Windows génèrent un vidage de mémoire complète, qui est aussi volumineux que la quantité de mémoire physique présente sur un système et peut donc être très volumineux. Toutefois, vous pouvez charger le vidage dans Windbg et utiliser la commande .dump pour générer une mémoire noyau ou un minidump plus petit à partir du vidage complet. Les fichiers plus petits sont plus faciles à échanger et sont souvent tout ce qui est nécessaire pour isoler la cause d'un incident.

Téléchargez la dernière version de Windbg à partir de http://www.microsoft.com/ddk/Debugging/, et trouvez des instructions sur la configuration de Windbg pour obtenir des symboles à partir du serveur de symboles Microsoft à l’adresse http://www.microsoft.com/ddk/debugging/symbols.asp

NOUVEAUTÉS À VENIR

UTILISATION DE BOOTVIS POUR PROFILER LE PROCESSUS DE DÉMARRAGE DE WINDOWS XP

Afin de les aider à régler le processus de démarrage de Windows XP, l’équipe de performances Windows XP a instrumenté des points clés dans le système d’exploitation et a développé un outil appelé BootVis pour afficher les traces de démarrage. De manière surprenante, ils ont mis cet outil à disposition gratuitement. Il est très facile à utiliser et affiche une quantité étonnante de détails, notamment des informations sur l'initialisation des pilotes, le moment et l'endroit où se produisent les entrées/sorties du disque, et le démarrage des services et des applications. La prochaine fois, je vous montrerai où vous pouvez l’obtenir et comment l’utiliser.


Merci d'avoir lu la newsletter Sysinternals.

Publié lundi, janvier 07, 2002 19:01 pm par ottoh

[Archives des newsletters ^] [< Volume 3, Numéro 2] [Volume 4, Numéro 2 >]