[Archives des newsletters ^] [< Volume 1, Numéro 5] [Volume 2, Numéro 2 >]
Bulletin d’information System Internals Volume 2, Numéro 1
Copyright © 2000 Mark Russinovich
6 janvier 2000 - Dans ce numéro :
NOUVEAUTÉS DE SYSTEMS INTERNALS
- PsKill v1.0
- PsList v1.1
- WinObj v2.1
- Contig v1.3
- NTFSCHK v1.0
- HandleEx v2.1
- Ctrl2cap v2.0
- Filemon v4.26
- Bluescreen v2.1
- Fundelete v2.01
- Openlist v1.11
- Décembre NT Internals
ACTUALITÉS INTERNALS
- Win2K DDK publié
- Crash Win2K avec une séquence de touches
- Mise à jour de la mémoire système protégée par écriture
- Explosion de l’API Win2K
- Séminaires David Solomon
NOUVEAUTÉS À VENIR
- Brevets Microsoft NT-Related
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 Professional Edition (fonctionnalité avancée de disque de démarrage pour Windows NT) et récupération à distance.
NTFSDOS Professional et NTFS pour Win98 de Winternals Software vous offrent un accès complet en lecture et en écriture à vos lecteurs NTFS à partir de DOS, Windows 95 et Windows 98. NTFSDOS Pro apporte une fonctionnalité de « disque de démarrage » à une seule disquette à Windows NT/2K. Avec NTFSDOS Pro, vous pouvez supprimer les pilotes bogues, actualiser des fichiers et effectuer une maintenance générale du système de fichiers sur les lecteurs NTFS à partir d’une disquette de démarrage DOS. NTFS pour Win98 vous donne un accès transparent aux lecteurs NTFS de Windows 95 et Windows 98. Partagez facilement des applications et des fichiers entre NT et Win9x sur des lecteurs NTFS dans votre environnement à double démarrage. Les deux utilitaires ont même une fonctionnalité NTFS Chkdsk intégrée. Une version gratuite en lecture seule de NTFSDOS Pro est disponible à l’adresse http://www.sysinternals.com/ntfspro.htm et une version gratuite en lecture seule de NTFS pour Win98 est disponible à l’adresse http://www.sysinternals.com/ntfs98.htm.
Bonjour,
Bienvenue dans le bulletin Systems Internal. Le bulletin compte actuellement 14 000 abonnés.
Comme vous le savez, Win2K est sur le duplicateur de disque. La version Release-to-Manufacturing (RTM) de Win2K a fini par être la build 2195. RC3 était 2128, et comme je l’ai décrit dans un bulletin d’informations précédent, Microsoft incrémente le numéro de build tous les soirs (week-ends et jours fériés inclus) quand ils compilent l’arborescence source actuelle.
J’étais chez Microsoft en novembre (voir la mise à jour Filemon plus loin dans le bulletin d’informations pour la raison pour laquelle j’y étais) et un membre de l’équipe noyau m’a emmené pour une visite guidée du bâtiment 26 sur le campus de Microsoft. Le bâtiment 26 est l’emplacement où se trouve l’équipe du noyau de base Windows NT/2K et où se trouvent les laboratoires de build et de test Windows NT/2K. La taille des laboratoires de construction et de test est à peu près égale (peut-être 30' par 60'), mais le laboratoire de test est rempli de racks d’ordinateurs, tandis que le labo de construction dispose d’un espace de bureau et de sièges pour les constructeurs. Chaque nuit, les constructeurs extraient l’arborescence source sur plusieurs systèmes à quatre processeurs et exécutent une compilation. Si la vérification du code de quelqu'un s'avère (Dieu nous en préserve) rompre la construction, cette personne est appelée - quelle que soit l'heure - à se rendre sur place pour résoudre le problème. À la mi-novembre, Win2K était sous un gel du code où les seules modifications autorisées devaient être approuvées par les comités et être dirigées vers les correctifs de bogues « show-stopper ».
Une fois qu’une nouvelle build est produite, les testeurs la prennent et l’installent simultanément sur toutes les machines de leur labo. Les racks de systèmes du laboratoire de test sont remplis de tout, des petits ordinateurs de taille manuelle aux serveurs multiprocesseurs de taille lave-vaisselle de tous les fournisseurs de PC importants. Une fois l’installation de Win2K terminée, les systèmes exécutent des scripts de test de contrainte étendus. Au cours de la dernière partie de son développement, Win2K a réussi des tests de contrainte à des taux supérieurs à 90 pour cent. Les taux étaient beaucoup plus bas avant l'introduction de plusieurs améliorations de la fiabilité de Win2K, comme le Pilote Verifier, un outil qui aide les développeurs à détecter les problèmes au cours de leurs propres tests.
Qu’une build réussisse ou non tous les tests, elle est chargée sur le serveur de distribution interne de Microsoft où les employés de Microsoft peuvent la télécharger et l’installer. Si un développeur a introduit un problème important, il attend avec impatience les e-mails de plusieurs centaines d’employés qui finissent par le rencontrer au cours de la semaine suivante. Ce n’est que lorsqu’il y a un problème grave sûr de frapper un grand pourcentage d’utilisateurs que l’équipe de test envoie des e-mails d’avertissement à l’échelle de l’entreprise l’entreprise (la diffusion d’e-mails à plus de 25 000 personnes est quelque chose à ne pas prendre à la légère).
Pendant que j’y étais, j’ai également rencontré Dave Cutler, l’architecte en chef de Windows NT. Qu’est-ce qu’il fait en ce moment ? En novembre, l’équipe du noyau travaillait déjà dur sur le successeur de Win2K (connu en interne sous le nom de NT 6, ou Neptune), et Dave travaillait à l’installation de la version 64 bits de Win2K. Dave a dirigé l’effort de développement 64 bits et Win2K 64 bits est en bonne voie d’achèvement. En novembre, l’équipe du noyau faisait toujours du travail 64 bits sur les alphas, car Intel n’avait commencé à produire que récemment des échantillons de processeurs Merced et il n’y en avait qu’un sur le campus.
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
PSKILL V1.0
Les kits de ressources Windows NT et Win2K sont fournis avec un utilitaire de ligne de commande « kill », mais uniquement parce que Windows NT et Win2K n’en ont pas un. Vous pouvez arrêter les processus locaux avec le kit de ressources « kill » mais pas les processus distants. J’ai donc décidé d’écrire un « kill » librement disponible qui, comme mon PsList, a la capacité à distance. PsKill prend un ID ou un nom de processus, et un nom d’ordinateur facultatif, et met fin aux processus correspondants sur le système local ou distant que vous spécifiez. Vous n’avez même pas besoin d’installer un composant client sur l’ordinateur distant. Si le compte dans lequel vous exécutez n’a pas de privilège d’administration sur l’ordinateur distant, vous pouvez vous connecter au système distant pour effectuer l’opération d’arrêt en ajoutant un nom de compte et un mot de passe à la ligne de commande PsKill.
Téléchargez PsKill v1.0 à l’adresse http://www.sysinternals.com/pskill.htm.
PSLIST V1.1
J’ai publié PsList il y a quelque temps en tant que processus de style UNIX et visionneuse de threads. Contrairement aux outils similaires des kits de ressources Windows NT et Win2K, PsList vous permet d’afficher les informations sur les processus et les threads sur les systèmes distants ainsi que sur les systèmes locaux. PsList fonctionne en lisant les informations de l’API performance de Win NT/2K, comme le fait Perfmon. Cette révision PsList vous permet de vous connecter à un système distant en spécifiant un nom de compte et un mot de passe sur sa ligne de commande. Cette option vous permet d’accéder aux ordinateurs distants pour lesquels le compte à partir duquel vous exécutez PsList ne dispose pas de privilèges d’administration.
Téléchargez PsList v1.1 à l’adresse http://www.sysinternals.com/pslist.htm.
WINOBJ V2.1
WinObj est une visionneuse d’espace de noms du Gestionnaire d’objets pour Windows NT/2K. L’espace de noms du Gestionnaire d’objets est un espace de noms qui n’est généralement pas visible par les utilisateurs, mais qui est l’endroit où résident tous les objets nommés Win32 (\BaseNamedObjects
et \??
) et le noyau nommé. Il sert également de point d’entrée aux espaces de noms du système de fichiers (via des liens symboliques de lettre de lecteur sous \??
) et à l’espace de noms Registry (via l’objet \Key
clé ).
WinObj est similaire à un outil du Kit de développement logiciel (SDK) Win32 du même nom, mais notre WinObj fait beaucoup plus que la version Microsoft. Par instance, lorsque vous affichez les propriétés d’un objet dans notre WinObj, vous voyez des nombres de références et de handles plutôt que des nombres arbitraires (le KIT SDK WinObj présente des bogues majeurs). Notre WinObj vous montre également l’état des objets de synchronisation et les informations de sécurité des objets.
Cette dernière mise à jour de WinObj corrige un bogue qui l’empêchait d’afficher correctement certaines des valeurs de lien symboliques longues présentes dans l’espace de noms Win2K. Il utilise également les nouvelles boîtes de dialogue d’éditeur de sécurité Win2K plus conviviales lorsque vous l’exécutez sur Win2K (sur NT 4, il utilise des interfaces d’éditeur de sécurité non documentées fournies par ACLEDIT.DLL). Les améliorations apportées à l’interface utilisateur incluent le rappel du répertoire que vous affichez lorsque vous quittez afin que la prochaine fois que vous démarrez WinObj, ce répertoire soit sélectionné et la possibilité pour vous de trier la fenêtre listview du contenu du répertoire.
Téléchargez WinObj v2.1 à l’adresse http://www.sysinternals.com/winobj.htm.
CONTIG V1.3
Microsoft a inclus des API de défragmentation de fichiers intégrées lors de la publication de NT 4. Je documente les API et fournit un exemple de code qui utilise l’API à l’adresse http://www.sysinternals.com/defrag.htm. À l’aide des API que j’ai implémentées Contig, un défragmenteur de ligne de commande que vous pouvez utiliser pour défragmenter des fichiers ou des répertoires individuels. Depuis la version initiale de Contig, j’ai reçu de nombreuses demandes d’ajout d’une option d’analyse de fragmentation, et j’ai fini par l’implémenter. Contig v1.3 vous permet de voir à quel point les fichiers que vous spécifiez sont devenus fragmentés afin de déterminer si vous devez effectuer un processus de défragmentation plus coûteux.
En parlant de défragmentation de fichiers, Symantec a publié le défragmenteur le plus avancé à ce jour, Speedisk 5.0. Pour faire face à la concurrence, il contourne l’API de défragmentation et déplace manuellement les blocs autour du disque afin qu’il puisse défragmenter les répertoires et même la MFT pendant que le système est en ligne. Contrairement à ce qu’indique Executive Software à http://www.execsoft.com/diskeeper/infosheet.asp#Q9, son produit Diskeeper (version 4.0 et version 5.0) contourne également l’API de défragmentation (mais son défragmenteur n’est pas aussi avancé que celui de Norton), en particulier lorsqu’il effectue la consolidation d’annuaires au démarrage. Le marketing de l’exécutif est une autre leçon qui explique pourquoi vous ne pouvez pas croire tout ce que vous lisez.
Téléchargez Contig v1.3 à l’adresse http://www.sysinternals.com/contig.htm.
Téléchargez PageDefrag, un défragmenteur de registre et de fichiers de pagination, à l'adresse suivante http://www.sysinternals.com/pagedfrg.htm.
NTFSCHK V1.0
Une plainte courante des utilisateurs expérimentés qui installent Win2K sur leurs ordinateurs en même temps que NT 4 est que la mise à niveau automatique de Win2K de tous les lecteurs NTFS vers NTFS v5 rend le NT 4 Chkdsk incapable de vérifier ces lecteurs. Au lieu d’analyser les lecteurs NTFS v5 et de corriger les erreurs, NT 4 Chkdsk annonce simplement qu’il ne peut pas s’exécuter sur les lecteurs créés avec des versions plus récentes de NTFS et des sorties. Pour cela, vous devez démarrer dans Win2K chaque fois que vous souhaitez vérifier ces lecteurs au moins jusqu’à présent.
Avec NTFSCHK, vous pouvez exécuter la version Win2K de Chkdsk à partir de NT 4. Comment ? À l’aide de la même technologie que celle que nous avons développée pour l’exécution du Chkdsk natif de NT à partir de DOS et de Windows 9x dans le cadre de NTFSDOS Professional et NTFSDOS pour Win98, NTFSCHK encapsule le Win2K Chkdsk dans un environnement qui ressemble à Win2K.
Téléchargez NTFSCHK v1.0 à l’adresse http://www.sysinternals.com/ntfschk.htm.
HANDLEEX V2.1
HandleEx est un utilitaire de diagnostic multiforme pour Windows NT/2K qui vous montre quels processus DLL ont chargés et quels objets ils ont ouverts (leurs handles). HandleEx est utile pour suivre les problèmes de contrôle de version de DLL, gérer les fuites et déterminer quelle application accède à un fichier, un répertoire ou une clé de Registre particulier.
La version 2.1 de HandleEx vous permet d’afficher les propriétés des objets que les processus ont ouverts, y compris le nombre de références et l’état des objets de synchronisation. Vous pouvez également afficher et modifier les attributs de sécurité des objets à l’aide des éditeurs de sécurité de NT.
Téléchargez HandleEx v2.1 à l’adresse http://www.sysinternals.com/handleex.htm.
CTRL2CAP V2.0
Si vous venez d’un arrière-plan UNIX, vous conviendrez avec moi que la touche de contrôle sur le clavier du PC est au mauvais endroit: elle devrait être là où se trouve la touche de verrouillage des majuscules. Et qui utilise la clé de verrouillage des majuscules de toute façon ? Ctrl2cap est un pilote de filtre clavier qui change caps-lock en left-control, en supprimant caps-lock comme effet secondaire (j’utilise le contrôle gauche standard comme touche de feu quand je joue Half Life).
Bien que Ctrl2cap v1.0 fonctionne sur Win2K, son utilisation désactive les fonctionnalités de gestion de l’alimentation de Win2K quelque chose qui est un peu irritant sur les ordinateurs portables. J’ai donc mis à jour Ctrl2cap pour qu’il soit conforme au modèle de pilote Windows (WDM), qui inclut une gestion de l’alimentation conviviale. Je fournis le code source complet et les mêmes fichiers sources créent les versions NT 4 et Win2K.
Téléchargez Ctrl2cap v2.0 avec le code source à l’adresse http://www.sysinternals.com/ctrl2cap.htm.
FILEMON V4.26
La raison pour laquelle j’étais à Microsoft en novembre était que Microsoft tenait un « Plugfest de filtre de système de fichiers » (en interne, il s’appelait « Irp-olooza »). Le plugfest a rassemblé tous les principaux produits basés sur les pilotes de filtrage du système de fichiers de Windows NT/2K, les a jumelés à la ronde et a effectué des tests de stress avec les différents jumelages. Les produits représentés comprenaient environ neuf analyseurs antivirus différents, un certain nombre d’outils de chiffrement de fichiers et un gestionnaire de quota de disque. L’objectif de la fête était d’identifier les problèmes d’interopérabilité associés à différentes combinaisons de filtres, d’aider à trouver et d’identifier les bogues dans les principaux produits de filtre, et peut-être même de trouver un bogue dans Win2K. Étant donné que Filemon est l’un des filtres les plus largement utilisés dans le monde, et que de nombreux groupes de Microsoft s’appuient sur lui pour leur travail de développement et de résolution des problèmes, les organisateurs du plugfest m’ont invité à venir à l’événement et à le représenter.
Filemon a réussi tous les tests de contrainte sans incident, à l’exception d’un seul. Étant donné que Filemon est un pilote de filtre chargé dynamiquement, il a superposé tous les produits présents lors de l’événement, à l’exception d’un seul. Le produit qui se superpose au-dessus de Filemon est un scanneur de virus qui charge également dynamiquement il s’agit en fait d’un produit basé sur Filemon. Étant donné que le scanneur de virus charge dynamiquement, nous avons essayé les deux permutations de couche, et dans celui où Filemon se trouvait en bas, il a provoqué le blocage du scanneur de virus. Lorsque l’interface utilisateur graphique de Filemon quitte son pilote, elle supprime ses objets de périphérique de filtre. Il est en fait illégal pour un pilote de filtre de supprimer un objet de périphérique de filtre, sauf s’il obtient une commande du Gestionnaire d’E/S indiquant à iit de le faire (FastIoDetach
dans les filtres du système de fichiers et IRP_MJ_PN
P avec IRP_MN_REMOVE_DEVICE
dans WDM). Sans surprise, la disparition inattendue des objets d’appareil de Filemon a provoqué l’accès de l’analyseur de virus à la mémoire libérée et à un blocage.
Heureusement, le crash de Filemon s'est produit lors de la dernière session du plugfest, ce qui a minimisé mon embarras, et comme les tests ont révélé au moins un bogue sérieux ou un problème d'interopérabilité dans chaque produit présent, je n'étais pas le seul. Filemon v4.26 est la version qui corrige le bogue découvert lors du plugfest.
Avant même d’assister au plugfest, j’ai trouvé un bug dans Filemon qui pourrait intéresser les développeurs de pilotes de périphériques et de systèmes de fichiers NT. J’ai récemment modifié Filemon pour utiliser le mécanisme de synchronisation de ressource exécutive (E-Resource) mal documenté. Les pilotes de système de fichiers de Microsoft utilisent largement E-Resources, donc j’ai pensé qu’il serait pédagogique d’inclure leur utilisation dans le code source de Filemon. Les ressources électroniques doivent être acquises par des threads dont les API (appels de procédure asynchrone) sont désactivés. Il vous suffit de « savoir » cela parce que la documentation DDK ne vous le dit pas. Malheureusement, dans la précipitation de l’implémentation, j’ai omis les appels requis aux fonctions qui désactivent et réactivent les API autour des acquisitions de ressources E de Filemon. Ce bogue ne provoque des problèmes que dans des circonstances très rares, donc je ne l’ai pas détecté jusqu’à ce que le vérificateur de pilote de Win2K l’ait intercepté pour moi. Pour résoudre le problème, j’ai ajouté un appel à KeEnterCriticalSection avant d’acquérir une E-Resource et KeLeaveCriticalSection après la publication d’une E-Resource.
Téléchargez Filemon v4.26 à l’adresse http://www.sysinternals.com/filemon.htm.
BLUESCREEN V2.1
L’économiseur d’écran bleu est un économiseur d’écran que j’ai écrit qui simule le redouté Écran bleu Windows NT de la mort (BSOD). J’ai écrit la version d’origine avant que les versions de Win2K ne soient disponibles, donc elle a simulé le BSOD NT 4 et le redémarrage, avec Chkdsk détectant les erreurs de disque. J’ai mis à disposition deux versions : l’une qui effectuait des E/S disque pour plus de réalisme et l’autre qui ne l’a pas fait. Une fois win2K bêta 3 sorti, j’ai mis à jour Bluescreen pour simuler le nouveau Win2K BSOD et le redémarrage du système. Dans RC3, l’écran de redémarrage a changé et j’ai dû à nouveau mettre à jour Bluescreen. En même temps, j’ai fait de la génération d’E/S de disque une option configurable avec les propriétés de l’économiseur d’écran de Bluescreen au lieu d’avoir deux versions.
Téléchargez Bluescreen v2.1 à l’adresse http://www.sysinternals.com/bluescrn.htm.
FUNDELETE V2.01
Après une longue et longue attente, notre Undelete pour Windows NT fait son retour en tant que Fundelete pour Windows NT. Fundelete est un utilitaire qui améliore la Corbeille Windows NT/2K pour capturer les fichiers supprimés à partir des programmes et de la ligne de commande, ainsi que ceux supprimés de Explorer. Pourquoi le nom a-t-il changé ? Plusieurs mois après que Bryce et moi avons publié Undelete pour Windows NT, Executive Software a publié Network Undelete, un utilitaire similaire. Un an plus tard, ils ont décidé qu’ils aimaient mieux le nom de notre utilitaire que le leur, alors ils ont changé le leur en Undelete pour Windows NT. En même temps, leurs avocats nous ont fait parvenir une lettre nous avertissant que nous violions la marque déposée sur le mot « undelete » qu’ils détiennent depuis 1987. Nous avons changé le nom de notre utilitaire plutôt que de nous battre.
Les développeurs peuvent télécharger le code source au cœur du pilote de périphérique de Fundelete, ce qui illustre certaines techniques de pilote puissantes, notamment l’obtention du SID d’un utilisateur à partir d’un pilote, l’énumération du contenu d’un répertoire à partir d’un pilote et la création de nouveaux IRP.
Téléchargez Fundelete pour Windows NT v2.01 à l’adresse http://www.sysinternals.com/fundelete.htm.
OPENLIST V1.11
Openlist est un utilitaire Windows 9x qui affiche tous les fichiers ouverts sur le système. La version 1.11 vous permet d’afficher les informations détaillées sur les fichiers, y compris les informations de version pour les DLL.
Téléchargez Openlist v1.11 à l’adresse http://www.sysinternals.com/openlist.htm.
DÉCEMBRE « NT INTERNALS »
Ma colonne « NT Internals » dans le numéro de décembre de Windows NT Magazine est « Inside Win2K Scalability Enhancements, Part 2 ». Ce deuxième d’une série en deux parties décrit les améliorations apportées par Microsoft dans Win2K pour la scalabilité des multiprocesseurs, notamment l’objet Job, les nouveaux contrôles quantiques, les nouvelles classes de planification et les pools de threads en mode utilisateur.
En août dernier, Windows NT Magazine a modifié sa stratégie de navigation des articles en ligne afin que seuls les abonnés soient autorisés à accéder. Le mois dernier, ils ont assoupli la politique à l’endroit où elle était avant août. Désormais, les non-abonnés peuvent consulter librement les articles qui ont plus de quatre problèmes.
Consultez la liste complète de nos publications à l’adresse http://www.sysinternals.com/publ.htm.
ACTUALITÉS INTERNALS
WIN2K DDK LIBÉRÉ
La version finale du Kit de développement de pilote d’appareil Win2K (DDK) de Microsoft est désormais disponible à l’adresse http://www.microsoft.com/ddk. Vous pouvez télécharger le kit gratuitement ou parcourir la documentation en ligne.
CRASH WIN2K EN UNE FRAPPE
Non, ce n’est pas un bogue. David Solomon, l’auteur de « Inside Windows NT 2nd Edition », m’a fourni cette astuce cool. Si vous ajoutez la DWORD
valeur du Registre, définissez-la HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\i8042prt\Parameters\CrashOnCtrlScroll
sur « 1 » et redémarrez, vous pouvez bloquer Win2K à l’aide du clavier. Tout en maintenant la touche de contrôle droite enfoncée, appuyez deux fois sur la touche de défilement. À la deuxième pression de la touche de défilement, le système affiche un écran bleu avec le message « L’utilisateur final a généré manuellement le crashdump ».
La possibilité de bloquer manuellement le système est utile dans les cas où le noyau ou le pilote de périphérique est bloqué et que l’ordinateur ne répond plus. Un vidage sur incident généré pendant l’interblocage peut fournir aux développeurs des informations qui indiquent la cause de l’interblocage. Cette option a été introduite si discrètement que même les développeurs du noyau principal de Win2K n’en étaient pas conscients jusqu’à ce que je la montre quand j’étais au plugfest.
MISE À JOUR DE LA MÉMOIRE SYSTÈME PROTÉGÉE PAR ÉCRITURE
Dans un précédent bulletin d’informations, j’ai parlé de la mémoire système protégée en écriture comme étant une nouvelle fonctionnalité de fiabilité dans Win2K. Il s’avère que la protection complète en écriture n’est pas présente par défaut dans de nombreuses configurations. Si un ordinateur dispose d’au moins 128 Mo de mémoire physique, Win2K utilise 4 Mo de « grandes pages » pour mapper la mémoire du noyau. L’utilisation de 4 Mo au lieu de 4 Ko de pages permet d’économiser un niveau de traduction de page et d’améliorer ainsi les performances. Étant donné que le code en lecture seule et les données en lecture/écriture peuvent résider sur la même page de 4 Mo, la protection en écriture est désactivée sur ces systèmes, sauf si l’utilisateur demande une protection en écriture à l’aide du vérificateur de pilotes. Si le vérificateur de pilotes applique la protection en écriture, Win2K utilise des pages de 4 Ko plus lentes pour mapper la mémoire du noyau différentes régions de mémoire alignées sur les pages, ce qui signifie qu’il est possible de marquer des pages de code individuelles en lecture seule.
Ainsi, la protection en écriture n’est active que sur les systèmes avec moins de 128 Mo de mémoire et ceux sur lesquels Driver Verifier l’a activée. Pour les systèmes où la protection en écriture n’est pas active, Microsoft envisage l’inclusion dans un Service Pack Win2K d’une installation de surveillance des sommes de contrôle de la mémoire système, puis vérifie régulièrement la mémoire par rapport à la somme de contrôle. L’opération de vérification, bien qu’elle ne soit pas aussi précise que la protection en écriture assistée par le matériel, détecterait les écritures irrégulières dans les zones qui doivent être en lecture seule.
EXPLOSION DE L’API WIN2K
Win2K est sans aucun doute beaucoup plus grand que NT 4. Certes, il existe de nombreux nouveaux services et fonctionnalités intégrées qui sont comptabilisés dans la taille de Win2K (Active Directory, MMC, COM+, etc.), mais même le système d’exploitation principal a augmenté. L’une des raisons pour laquelle la taille du système d’exploitation a augmenté est que le nombre d’API qu’il exporte pour les applications a augmenté. Les DLL de système d’exploitation principales Win2K incluent KERNEL32.DLL, GDI32.DLL, USER32.DLL et ADVAPI32.DLL (NTDLL.DLL est également une DLL de système d’exploitation principale, mais KERNEL32 s’appuie sur NTDLL pour les API Win32). Jetons un coup d'œil rapide à l'explosion de l'API dans chacun d'entre eux. Voici les nombres bruts :
LIBRARY | NT 4 SP5 | WIN2K | GROWTH |
---|---|---|---|
KERNEL32 | 681 | 823 | 21% |
GDI32 | 401 | 553 | 38 % |
USER32 | 629 | 695 | 10 % |
ADVAPI32 | 401 | 557 | 39 |
Notez que dans certains cas, la croissance est artificiellement gonflée jusqu’à 30 %, car certaines API se présentent sous forme ANSI et sous forme de chaîne large et sont donc comptées deux fois dans les nombres ci-dessus.
KERNEL32 est la DLL qui exporte des fonctionnalités appelées « système d’exploitation de base », notamment les API de gestion des processus, de la mémoire, des E/S de fichiers et des paramètres régionaux. Les API qui sont nouvelles dans Win2K incluent de nouvelles fonctions de langage (par exemple EnumUILanguages
, ), des fonctions objet de travail (par exemple AssignProcessToJobObject
), des fonctions de gestion de la mémoire (par exemple AllocateUserPhysicalPages
), des fonctions de fichier (par exemple FindFirstVolume
), et des API ToolHelp32 (par exemple Process32First
).
GDI32 fournit des routines de dessin et de bitmap. Sa croissance est due à l’apparition de nouvelles fonctions pour la plupart diverses qui incluent de nouvelles API de gestion des polices (par exemple CreateFontIndirectEx
), de la fusion alpha et des fonctions path-objet.
USER32 implémente des fonctions de fenêtrage et une partie importante de sa croissance est liée aux nouvelles API à plusieurs moniteurs. D’autres nouvelles API USER32 incluent un ensemble de fonctions d’information (par exemple GetWindowInfo
, GetTitleBarInfo
).
Enfin, ADVAPI32 est la DLL qui fournit les API Win32 avancées. Un certain nombre de nouveaux groupes d’API contribuent à sa croissance : EFS (par exemple DecryptFile
), CryptoAPI (par exemple CryptEnumProviders
), la sécurité (par exemple CheckTokenMembership
), le suivi d’événements (par exemple StartTrace
) et l’interface de gestion Windows (WMI) (par exemple WmiOpenBlock
) constituent la majeure partie des nouvelles fonctions.
SÉMINAIRES DAVID SOLOMON
David Solomon Expert Séminaires arrive à San Diego - 21-25 février. Formation des développeurs par les personnes qui enseignent chez Microsoft.
- Programmation Win32 par Jeffrey Richter
- Débogage de l’alimentation par John Robbins
- Pilotes de périphérique Windows 2000 par Jamie Hanrahan
- Pilotes de périphériques Windows CE & Applications par Doug Boling
Pour plus d’informations, consultez http://www.solsem.com
NOUVEAUTÉS À VENIR
BREVETS MICROSOFT NT
Le brevetage logiciel est devenu un passe-temps obligatoire pour les entreprises qui souhaitent tirer parti de leur propriété intellectuelle. Microsoft n’est pas étranger au jeu des brevets, et le noyau de NT a quelques mécanismes qui ont été jugés dignes par l’Office américain des brevets et des marques (PTO). Les domaines du noyau pour lesquels Microsoft a obtenu des brevets incluent le gestionnaire d’E/S et le gestionnaire d’objets. La prochaine fois, je vous donnerai la liste des brevets que j’ai pu déterrer sur le noyau NT.
Merci d’avoir lu le bulletin d’information Systems Internals.
Publié le jeudi 6 janvier 2000 19:09 par ottoh
[Archives des newsletters ^] [< Volume 1, Numéro 5] [Volume 2, Numéro 2 >]