[Nieuwsbrievenarchief ^] [< Volume 1, Getal 3] [Volume 1, Getal 5 >]
The Systems Internals Newsletter Volume 1, Number 4
http://www.sysinternals.com
Copyright (C) 1999 Mark Russinovich
5 augustus 1999 - In dit probleem:
WAT IS ER NIEUW IN INTERNE SYSTEMEN
- Portmon v3.0
- Frob v1.5
- ListDLLs v2.1
- Nieuwe BOOT. INI-opties
- PsList v1.0
- Augustus "NT Internals"
- Niet zo nieuw spul
INTERN NIEUWS
- Correctie Re: System File Protection
- Win2K RC1 DDK uitgebracht
- De Win2K AWE-API
- WinDev '99 West
WAT KOMT ER AAN DE DAG?
- SP4's Undocumented DiskEdit Tool
SPONSOR: WINTERNALS SOFTWARE
De Systems Internals Newsletter wordt gesponsord door Winternals Software, op het web op http://www.winternals.com. Winternals Software is de toonaangevende ontwikkelaar en provider van geavanceerde systeemhulpprogramma's voor Windows NT/2K. Winternals Software-producten omvatten FAT32 voor Windows NT 4.0, ERD Commander (opstartschijfmogelijkheid voor Windows NT) en NTRecover.
Winternals Software kondigt de release aan van het nieuwste hulpprogramma voor systeemherstel, Remote Recover. Met Remote Recover kunt u vanaf elke locatie in uw bedrijf toegang krijgen tot de stations van een niet-opstartbare computer via TCP/IP. Bespaar tijd en ondersteuning door stuurprogramma-, bestandssysteem- en configuratieproblemen op afstand te corrigeren die NT- of Win9x-systemen off-line houden. Download een gratis proefversie met het kenmerk Alleen-lezen op http://www.sysinternals.com/rrecover.htmen koop de lees-/schrijfversie op http://www.winternals.com.
Hallo allemaal,
Welkom bij de vierde editie van de systems internals nieuwsbrief. De nieuwsbrief heeft momenteel 7000 abonnees.
In de laatste nieuwsbrief heb ik aangegeven dat ik de AWE-API van Windows 2000 (Win2K) zou behandelen. Ik heb erop gewezen dat AWE staat voor "Address Windowing Extensions" (voor newbies in de wereld van Windows, API staat voor "Application Programming Interface"). Op deze pagina op de website voor hardwareontwikkelaars van Microsoft wordt deze als volgt beschreven: http://www.microsoft.com/hwdev/NTDRIVERS/AWE.htm. Lezer Laxmikant Gunda wees me echter op een andere URL op de website van Microsoft, http://www.microsoft.com/windows/server/News/fromMS/intelpae.aspwaar AWE de API 'Advanced Windowing Extensions' wordt aangewezen. Het is duidelijk dat 'Adres' logischer is dan 'Geavanceerd' in de context van de API (die ik later in deze nieuwsbrief beschrijf), dus het is mijn schatting dat een marketingschrijver hun ogen een truc op ze had laten spelen omdat ze onbewerkte technische materialen voor de nieuwspagina verteerden.
Ik heb deze verwarring al eerder gezien in de technische dekking van Microsoft. Onlangs kondigde het installatieprogramma voor de Bèta 3-release van de Win2K Installable File Systems (IFS) Kit zichzelf aan op het welkomstscherm als installatie voor de "Internal File Systems Kit". De 'I' in IFS staat altijd voor 'Installeerbaar' en 'Intern' is hier niet erg logisch (tenzij ze per ongeluk de niet-openbare versie van de kit hebben vrijgegeven), dus denk ik dat het andere geval van iets dat in de vertaling wordt verknaaid (of de installatiecoder die geen lid van een bestandssystementeam heeft en hun beste schatting gebruikt).
Wat is mijn punt? Ik heb er niet echt een, anders vroeg of later hebben we een acroniem overloop, waar ontwikkelaars en marketingmensen per ongeluk dezelfde drieletterige acroniemen gaan gebruiken om verschillende technologieën te beschrijven. Iemand in de IIS-groep van Microsoft (Internet Information Server) noemt een nieuwe API met de naam AIE ('Geavanceerde ISAPI-extensies' - ISAPI staat voor Internet Server-API) en iemand in de MTS-groep (Microsoft Transaction Server) komt met een andere AIE, 'Atomic Interface Exchange'. En ik weet zeker dat een marketingmedewerker of technisch schrijver op een dag een technisch document van het IIS-team krijgt dat verwijst naar 'AIE', en niet weet wat het verschil is tussen een database en een bestandssysteem, zal raden dat het staat voor 'Advanced Internet Explorer'.
Ik heb ook een acroniem verwarring op het werk gezien. Een recent Artikel van Windows NT Magazine over seriële en parallelle poorten gebruikte de term "COM-poort" in de tekst. Nadat de kopieereditor met een laatste pas is geslaagd en het artikel is gepubliceerd, is de zin 'COM-poort (Component Object Model) geworden'.
Geef zoals gebruikelijk de nieuwsbrief door aan vrienden die u denkt dat het interessant kan zijn.
Hartelijk dank!
-Merken
WAT IS ER NIEUW IN INTERNE SYSTEMEN
PORTMON V3.0
Portmon is uitgebreid op belangrijke manieren met de 3.0-release. Portmon is een seriële en parallelle poortbewakingstoepassing voor Windows 95/98/NT/2K. Versie 3.0 introduceert:
- geavanceerde filter- en uitvoermarkeringsmogelijkheden
- de mogelijkheid om seriële en parallelle poortactiviteit op externe systemen te bewaken
- ondersteuning voor logboek naar bestand en afdrukken
- Klembordintegratie
- een instelling waarmee u kunt opgeven hoeveel lees-/schrijfgegevens moeten worden vastgelegd
Portmon v3.0 downloaden op http://www.sysinternals.com/portmon.htm.
FROB V1.5
Windows NT 4.0 Server biedt beheerders geen mogelijkheid om de lengte van kwantumen (beurten) te beheren die de NT thread scheduler aan threads geeft. Op Het Windows 4.0-werkstation heeft het systeem applet in de Configuratiescherm een tabblad Prestaties met een schuifregelaar waarmee u een kwantumboost kunt aanwijzen voor voorgrondthreads (de schuifregelaar is ook aanwezig op server, maar doet niets). Kortere kwantumen resulteren in het algemeen in toepassingen die meer reageren op gebruikersinvoer, terwijl lange kwantumen geschikt zijn voor systemen die zijn toegewezen aan het uitvoeren van niet-interactieve servertoepassingen.
Het Frob-programma van Systems Internals biedt u dezelfde verfijnde mate van controle over kwantumlengten op zowel werkstation als op server, zodat u kwantumbewerkingen kunt afstemmen op de werkbelasting die u uitvoert op een systeem. Omdat Frob echter instellingen intern wijzigt in de NT-kernel, moet deze worden bijgewerkt om met elk nieuw Service Pack te kunnen werken. Frob v1.5 is nu beschikbaar en biedt compatibiliteit met Service Pack 5.
U kunt Frob v1.5 downloaden op http://www.sysinternals.com/ntfrob.htm.
LISTDLLS V2.1
ListDLLs is een opdrachtregelprogramma met gedetailleerde versie-informatie over de DLL's die zijn geladen. ListDLLs extraheert versiegegevens uit de on-disk-bestanden die overeenkomen met de bestandspaden van geladen DLL's en haalt de padnamen op met behulp van niet-gedocumenteerde interfaces. Soms wordt een DLL-bestand op schijf bijgewerkt nadat een toepassing het al heeft geladen, in welk geval ListDLLs onjuiste versiegegevens tonen.
ListDLLs v2.1 herkent wanneer er een verschil is tussen de on-disk en geladen versies van een DLL, markeert het verschil in de uitvoer. Wanneer er sprake is van een discrepantie in ListDLLs worden de koppelingstijden van het on-disk-bestand en het geladen bestand afgedrukt. Koppelingstijden van uitvoerbare en DLL-bestanden bevinden zich in de header van de PE-bestandsindeling (Portable Executable) die door NT wordt gebruikt om ze te verpakken.
ListDLLs v2.1 downloaden op http://www.sysinternals.com/listdlls.htm.
NIEUWE OPSTARTBEWERKING. INI-OPTIES
Win2K Beta 3 introduceert drie nieuwe BOOT. INI-schakelopties. Alle drie zijn gerelateerd aan Intel Physical Address Extensions (PAE), een technologie die is geïntroduceerd met de Pentium Pro, zodat x86-systemen maximaal 64 GB fysiek geheugen kunnen aanpakken. Traditioneel kunnen x86-systemen slechts 4 GB fysiek geheugen aanpakken, maar met PAE en de 450NX-chipset is deze barrière verbroken. Win2K is het eerste Microsoft-besturingssysteem dat zal profiteren van PAE (Sun Solaris 7 en SCO UnixWare 7 ondersteunen al PAE). Er is eigenlijk een speciale build van de Win2K-kernel, genaamd ntkrnlpa.exe, die de ingebouwde ondersteuning heeft. NTLDR, de Win2K-opstartlaadprogramma, is verantwoordelijk voor het laden van de standaardkernel, ntoskrnl.exe of de PAE-functie, op basis van of het systeem meer dan 4 GB geheugen kan aanpakken en die hoeveelheid aanwezig is.
Alle drie de nieuwe BOOT. INI-switches zijn gericht op het opsporen van fouten in apparaatstuurprogramma's die zijn ontworpen voor gebruik met grote geheugensystemen (systemen met meer dan 4 GB). De eerste, /PAE, heeft NTLDR de PAE-versie van de kernel laden, zelfs als de computer niet meer dan 4 GB geheugen aanwezig heeft. De tweede, /NOPAE, dwingt NTLDR om de standaardkernel te laden. Ten slotte heeft de /NOLOWMEM-switch de Win2K-kernel alleen fysiek geheugen gebruikt boven 4 GB. Dit dwingt alle fysieke adressen die door Win2K worden gebruikt, meer dan 32 bits nodig te hebben om ze te vertegenwoordigen, en oefent dus de verwerking van grote fysieke adressen van apparaatstuurprogramma's uit.
Zoek de meest volledige lijst met BOOT. INI-switches beschikbaar op http://www.sysinternals.com/bootini.htm.
PSLIST V1.0
De meeste varianten van UNIX-verzending met een opdrachtregelprogramma genaamd 'ps' dat beheerders gebruiken om cpu- en geheugenstatistieken weer te geven. NT heeft een equivalent hulpprogramma op basis van gui, Taakbeheer, maar NT wordt geleverd zonder opdrachtregelversie. De Windows NT Resource Kit bevat twee opdrachtregelprogramma's, pstat en pumon. PsList toont een combinatie van de informatie die beschikbaar is met pstat en pumon, maar heeft een mogelijkheid die geen van beide Resource Kit-hulpprogramma's heeft: u kunt PsList gebruiken om gegevens op een extern systeem op te vragen.
PsList gebruikt verschillende vlaggen waarmee u proces-CPU-, geheugen- of threadstatistieken kunt weergeven en een switch waarmee u een andere NT-computer kunt opgeven om query's uit te voeren. PsList maakt gebruik van de ingebouwde prestatiemeteritems van NT om de informatie te verkrijgen die wordt weergegeven en werkt op NT 3.51, 4.0 en Win2K.
PsList downloaden op http://www.sysinternals.com/pslist.htm.
AUGUSTUS "NT INTERNALS"
Mijn kolom "NT Internals" in de uitgave van Augustus van Windows NT Magazine is "Inside Win2K Reliability Enhancements, Part 1". Deze eerste in een driedelige serie beschrijft Win2K-functies die zijn gericht op het helpen van beheerders om een systeem te laten gaan nadat het niet meer kan worden opgestart. Deze omvatten 'safe-mode' opstarten en de herstelconsole.
Vanaf begin augustus zijn on-line versies van Windows NT Magazine-artikelen alleen toegankelijk voor abonnees en artikelen worden online geplaatst met elk nieuw probleem. Als u zich nog niet hebt geabonneerd, gaat u via de abonnementskoppeling om http://www.sysinternals.com/publ.htm de abonnementskorting Systems Internals op te halen.
NIET ZO NIEUW SPUL
Als u een vriend of twee nog niet bang hebt gemaakt, bekijkt u de Systeem internals Bluescreen-schermbeveiliging. Versie 2.0 geeft de Win2K-versie van de BSOD (Blue Screen of Death) en de Win2K-opstartreeks weer wanneer u deze uitvoert op een Win2K-systeem. Ik ben er trots op te zeggen dat de Bluescreen Saver onlangs vijf sterren, de hoogst mogelijke waardering, van Ziff-Davis' Software Library heeft gekregen.
Download Bluescreen Saver v2.0 op http://www.sysinternals.com/bluescrn.htm.
INTERN NIEUWS
CORRECTIE RE: BESTANDSSYSTEEMBESTANDSBEVEILIGING
In de laatste nieuwsbrief zei ik dat Win2K's System File Protection (SFP) toepassingen zoals Service Packs (SPs) en hot-fixes systeembestanden kan bijwerken door een functie-SFP-exports met de naam SfcTerminateWatcherThread aan te roepen. Hoewel SFP deze functie exporteert, gebruiken SP's en hot-fixes de functie niet bij het bijwerken van systeembestanden. In plaats daarvan kunnen ze systeembestanden bijwerken omdat ze bestaande systeembestanden vervangen door systeembestanden die digitaal zijn ondertekend door Microsoft. SFP detecteert de updates, maar staat ze toe om vast te houden, omdat SFP controleert of de nieuwe bestanden digitaal zijn ondertekend. Een andere correctie met betrekking tot mijn SFP-dekking is dat nadat Win2K Beta 3 Microsoft de naam van SFP heeft gewijzigd in Windows File Protection (WFP).
Bekijk het probleem van september van Windows NT Magazine, waar u mijn kolom NT Internals 'Inside Win2K Reliability Enhancements, Part 2' vindt, waarin WFP en Microsoft digital file sign in detail worden beschreven.
WIN2K RC1 DDK UITGEBRACHT
U kunt nu de Win2K RC1-versie van de Device Driver Development Kit (DDK) van Microsoft downloaden op http://www.microsoft.com/ddk/ddk2kRC1.htm. U kunt de kit gratis downloaden of de documentatie online bekijken.
DE WIN2K AWE-API
Ik heb de AWE-API al vermeld in de inleiding tot deze nieuwsbrief en verwijst naar een webpagina bij Microsoft, waar u meer informatie kunt vinden: http://www.microsoft.com/hwdev/NTDRIVERS/AWE.htm. Op systemen met meer dan 4 GB fysiek geheugen kan de PAE-kernel van Win2K - ntkrnlpa.exe - profiteren van al het fysieke geheugen van de computer zonder aanpassingen aan toepassingen. Win2K Advanced Server gebruikt maximaal 8 GB fysiek geheugen en Win2K Datacenter Server gebruikt maximaal 64 GB fysiek geheugen.
Hoewel elke toepassing op een groot geheugensysteem maximaal 2 GB virtueel geheugen ter beschikking heeft (3 GB als de /3 GB BOOT. DE INI-switch wordt opgegeven), de som van het fysieke geheugen dat is toegewezen aan alle uitvoertoepassingen, kan gelijk zijn aan de hoeveelheid fysiek geheugen. Bovendien wordt op Win2K de cache van het bestandssysteem toegewezen aan maximaal 960 MB aan virtueel geheugen, maar de hoeveelheid in de cache opgeslagen bestandsgegevens kan veel groter fysiek geheugen zijn dat aan de cache is toegewezen, kan groter zijn dan 960 MB.
De AWE-API biedt afzonderlijke toepassingen de mogelijkheid om fysiek geheugen rechtstreeks te beheren en meer dan de limiet van 2 GB of 3 GB die wordt geïmpliceerd door de grootte van de virtuele adresruimte. Het basisidee achter de AWE-API is dat een toepassing een deel van de virtuele adresruimte aanwijst als een 'venster' in fysiek geheugen. Vervolgens wordt een deel van het fysieke geheugen toegewezen. De bovengrens voor de hoeveelheid fysiek geheugen die een toepassing kan toewijzen, is in wezen de hoeveelheid fysiek geheugen op het systeem minus alle niet-paginagebonden geheugen die al is toegewezen door de kernel, apparaatstuurprogramma's en andere toepassingen met behulp van de AWE-API. Wanneer de toepassing toegang wil krijgen tot een deel van het fysieke geheugen dat is toegewezen, wordt het geheugen toegewezen aan het virtuele adresvenster. De hoeveelheid fysiek geheugen waartoe de toepassing toegang heeft met een bepaalde toewijzing wordt dus beperkt door de grootte van het venster dat is gereserveerd. Ten slotte, wanneer een toepassing wordt uitgevoerd met het fysieke geheugen, wordt het geheugen vrijgemaakt en wordt het virtuele adresvenster dat is gemaakt (toewijzing ongedaan gemaakt) gesloten.
De API's die overeenkomen met deze acties worden geëxporteerd door kernel32.dll en zijn als volgt:
- Een toepassing roept VirtualAlloc aan met de MEM_PHYSICAL en MEM_RESERVE vlaggen om het virtuele adresvenster te maken
- AllocateUserPhysicalPages wijst fysiek geheugen toe voor een toepassing
- Een toepassing maakt gebruik van MapUserPhysicalPages om delen van het fysieke geheugen in het venster toe te wijzen
- FreeUserPhysicalPages freest het fysieke geheugen dat door de toepassing is toegewezen
De mogelijkheid voor toepassingen om meerdere GB geheugen rechtstreeks te manipuleren, is een zegen voor geheugenintensieve programma's zoals databaseservers, e-mailservers, webservers, financiële analyse en wetenschappelijke toepassingen.
Hoewel de mogelijkheid om meer dan 4 GB fysiek geheugen te gebruiken alleen is toegestaan op bepaalde versies van Win2K, is de AWE-API aanwezig op alle versies. Dit betekent dat op een Win2K Professional-systeem met 4 GB geheugen, de AWE-API bijvoorbeeld nog steeds geheugenintensieve toepassingen de mogelijkheid biedt om meer dan 2 of 3 GB aan gegevens in fysiek geheugen te beheren.
De AWE-API heeft gelijkwaardige kernelmodusinterfaces waarop kernel32.dll de API's voor de gebruikersmodus baseert. Een stuurprogramma kan fysiek geheugen toewijzen met behulp van MmAllocatePagesForMdl. Dit is het kernelmodus-equivalent van AllocateUserPhysicalPages. Deze functie heeft het prototype in het bestand Win2K DDK ntddk.h, maar is niet gedocumenteerd. Het prototype is:
NTKERNELAPI
PMDL
MmAllocatePagesForMdl (
IN PHYSICAL_ADDRESS LowAddress,
IN PHYSICAL_ADDRESS HighAddress,
IN PHYSICAL_ADDRESS SkipBytes,
IN ULONG TotalBytes
);
LowAddress
is het laagste acceptabele fysieke adres dat het wil toewijzen en HighAddress is het hoogste. SkipBytes zijn het aantal bytes dat de kernel vrij moet houden boven LowAddress
en onder het adres waarop het fysieke geheugen begint toe te wijzen. TotalBytes
zijn het aantal bytes dat het stuurprogramma wil toewijzen. De retourwaarde van de functie is een MDL die als niet-nul het fysieke geheugen beschrijft dat de kernel het stuurprogramma heeft gegeven. Voor toegang tot gedeelten van het geheugen moet het stuurprogramma sub-MDL's maken op basis van de geretourneerde MDL die de juiste delen van het fysieke geheugen beschrijven. Wanneer een stuurprogramma toegang wil krijgen tot fysiek geheugen dat wordt beschreven door een sub-MDL, moet de sub-MDL worden toegewezen met behulp van MmGetSystemAddressForMdlSafe
.
Stuurprogramma's gebruiken de MmFreePagesFromMdl
kernelmodus die gelijk is FreeUserPhysicalPages
aan , om het fysieke geheugen te vrij te maken waarmee het is toegewezen MmAllocatePagesForMdl
. Deze functie is ook geproprototypeerd in ntddk.h:
NTKERNELAPI
VOID
MmFreePagesFromMdl (
IN PMDL MemoryDescriptorList
);
Houd er rekening mee dat een stuurprogramma verantwoordelijk is voor het ongedaan maken van de toewijzing van de MDL die is geretourneerd door MmAllocatePagesForMdl
een aanroep naar ExFreePool, omdat MmFreePagesFromMdl
de MDL niet gratis is.
WINDEV '99 WEST
De editie 1999 West Coast van de premier conferentie voor Windows-ontwikkelaars nadert snel. WinDev '99 West vindt plaats op 13-18 september in de Santa Clara Marriot in Californië. Een aantal grote namen in Windows-ontwikkeling spreken, waaronder Jeff Richter, Jeff Prosise en Don Box. Ik ben er met Jamie Hanrahan en Brian Catlin in de baan van de apparaatstuurprogramma. Mijn presentaties bevatten een dagelijkse zelfstudie over interne NT-functies, evenals een zelfstudie over het schrijven van Stuurprogramma's voor Windows NT/2K-bestandssysteem en één over geavanceerde problemen met het ontwikkelen van apparaatstuurprogramma's. Kom en zeg hallo!
Ga naar de winDev West-webpagina op http://www.butrain.bu.edu/windev/.
WAT KOMT ER AAN DE DAG?
NT 4.0 SP4 DISKEDIT
Windows NT 4.0 Service Pack 4 is geleverd met een handig hulpprogramma op de cd dat veel mensen mogelijk niet hebben opgemerkt: DiskEdit. En het is geen wonder: het hulpprogramma wordt niet geïnstalleerd op de harde schijf en wordt geleverd zonder documentatie. Het is bijna zeker dat het een hulpprogramma is dat intern wordt gebruikt door Microsoft-bestandssysteemontwikkelaars die per ongeluk op de cd zijn verzonden. DiskEdit is een schat voor degenen die een Norton Utilities Disk Edit-hulpprogramma voor Windows NT hebben gemist, of gewoon NTFS- en FAT-gegevensstructuren op schijf willen verkennen. De volgende keer dat ik u instructies geef over het gebruik van DiskEdit.
Bedankt voor het lezen van de systems Internals Newsletter.
Gepubliceerd donderdag 05 augustus 1999 199 17:13 door ottoh
[Nieuwsbrievenarchief ^] [< Volume 1, Getal 3] [Volume 1, Getal 5 >]