[Nieuwsbrievenarchief ^] [< Volume 3, Getal 2] [Volume 4, Getal 2 >]
The Systems Internals Newsletter Volume 4, Number 1
http://www.sysinternals.com
Copyright (C) 2002 Mark Russinovich
7 januari 2002 - In dit probleem:
HOOFDARTIKEL
WAT IS ER NIEUW IN SYSINTERNALS
- Synchronisatie 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 voor Win64/Itanium
- Filemon v1.1 voor Linux
- Sysinternals bij Microsoft
INFORMATIE OVER INTERNE GEGEVENS
- In Windows 2000, de interactieve dvd
- Binnen Windows 2000/XP: The Seminar
- Windows XP-manifestbestanden
- Wat zit er in een X-Box?
- Willekeurige Windows XP-statistieken
- Nieuwe verbeterde windbg
WAT KOMT ER AAN DE DAG?
- BootVis gebruiken om het opstartproces van Windows XP te profilen
SPONSOR: WINTERNALS SOFTWARE
De Sysinternals 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/XP. Hun producten omvatten de bekroonde Administrator's Pak, ERD Commander 2000 en NTFSDOS Professional Edition.
Winternals is trots om Defrag Commander versie 1.32 aan te kondigen, de snelste, meest grondige enterprise-defragmentatie beschikbaar. U kunt nu defragmentatieschema's in uw hele Windows-onderneming beheren vanuit een eenvoudige MMC-module, zonder dat u zelfs clientsoftware hoeft te installeren op uw NT- of Windows 2000-systemen. Er is een licentie van 10 systemen beschikbaar voor online aankoop voor slechts $ 169 en er zijn agressieve hoeveelheidskortingen beschikbaar. Bezoek http://www.winternals.com/39 voor meer informatie of om 30 dagen gratis te downloaden en te gebruiken.
Hallo allemaal,
Welkom bij de Sysinternals nieuwsbrief. De nieuwsbrief heeft momenteel 34.000 abonnees. Geef de nieuwsbrief door aan vrienden die u denkt geïnteresseerd te zijn in de inhoud.
Windows XP, het vlaggenschipbesturingssysteem van Microsoft, is eind augustus 'goud' gegaan. Windows XP is de nieuwste versie van de Windows NT-lijn die in 1993 is gestart met Windows NT 3.1 en bouwt voort op de technologische ontwikkelingen en innovaties van de afgelopen acht jaar. Het besturingssysteem vertegenwoordigt zeker de geavanceerde functionaliteit en functies, waarvan velen David Salomon en ik hebben bestudeerd en ik hebben geschreven in het artikel "Windows XP: Kernel Improvements a More Robust, Powerful and Scalable OS" () van december MSDN Magazine ( http://www.msdn.microsoft.com/msdnmag/issues/01/12/XPKernel/XPKernel.asp ).
En met miljoenen geïnstalleerde Windows NT- en Windows 2000-systemen, en honderdduizenden of miljoenen bètatesters, zou u verwachten dat Microsoft Windows XP heeft aangepast, afgestemd en opgelost om vrijwel foutloos te worden uitgevoerd. Immers, hun advertenties tout XP als "virtueel crash proof". Ik had zeker nooit verwacht problemen te ondervinden - maar ik had het mis.
Ik heb Windows 2000 Professional bewaard als het besturingssysteem op mijn primaire systeem gedurende de bètaversie van XP en de release kandidaatcyclus. Ik heb geleerd uit de ontwikkelingscyclus van Windows 2000 dat zelfs releasekandidaten debug cruft achterlaten na een upgrade naar de laatste bits. Toen ik build 2600 kreeg, de definitieve release van het bètaprogramma, besloot ik dat het tijd was om te verhuizen. De wizard XP-compatibiliteit heeft alleen kleine problemen gevonden op mijn Windows 2000-systeem (zoals dat de versie van Partition Magic die ik had geïnstalleerd, heeft geen inzicht in XP NTFS) dus ik ging verder met het upgradepad.
Na uitvoering in de tekstmodus en installatiebestanden op mijn harde schijf is XP Setup opnieuw opgestart in mijn gedeeltelijk bijgewerkte Windows XP-installatie om de upgrade in de grafische modus te voltooien. In deze modus geeft u landinstellingen en tijdzone-instellingen op, voert Setup apparaatdetectie uit en configureert u uw netwerk. Alles ging soepel tot de fase 'Apparaten installeren'. Wanneer de voortgangsbalk ongeveer 2/3rds bereikt en Setup heeft gemeld dat de resterende tijd 34 minuten was, was Setup niet meer productief. De "XP is het beste wat ooit aan je is overgeslagen" banners blijven wisselen en de kleine knipperende knoppen in de rechterbenedenhoek blijven draaien, maar zelfs twee uur later had ik nog steeds 34 minuten om te gaan.
Toen begon ik me zorgen te maken. Enkele onzinnige uren na het proberen van alles wat ik kon om het probleem te voltooien, waaronder opnieuw opstarten om Setup opnieuw te laten proberen, het BIOS bij te werken, de MS Knowledge Base (niets) te controleren, heeft geen resultaat opgeleverd. Ik heb eindelijk de halve Windows 2000-half Windows XP-installatie gekrabd en een nieuwe installatie van XP uitgevoerd, het beste deel van een dag opnieuw installeren van de paar tientallen toepassingen die ik gebruik.
Dingen met mijn nieuwe XP-installatie waren goed. Niet te zeggen dat ik niet teleurgesteld ben over onverklaarbare crashes, GUI flakiness en anderszins vreemd systeemgedrag, maar ik zou in ieder geval productief kunnen zijn. Ik wist dat de bètaprogramma-CD een proef-CD was en dat ik moest upgraden naar de volledige versie toen ik het via MSDN ontving, maar ik verwachtte dat dat geen probleem zou zijn.
Precies 120 dagen na mijn afgebroken upgrade (de time-out, niet toevallig, van een proefversie) heb ik een ongelooflijk gevoel van déjà vu ervaren. De evaluatie-naar-volledige upgrade fungeert eigenlijk als een volledige upgrade en (u raadt het) met 34 minuten nog en 2/3rden van de manier in 'Installatie van apparaten' is gestopt met het maken van voortgang. Nogmaals, mijn systeem was in het midden van setup netherworld, volledig onbruikbaar. Nadat ik alle dingen heb geprobeerd die ik 120 dagen eerder heb geprobeerd, heb ik mezelf ontslag genomen bij een andere volledige installatie.
Toen kwam ik een ander probleem tegen: de MSDN XP CD is niet opstartbaar, omdat het zowel Home als Professional submappen heeft. Omdat ik slechts één besturingssysteeminstallatie heb (het besturingssysteem dat is beschadigd door Setup), kan ik de Win32-versie van Setup niet uitvoeren vanaf de MSDN-cd en omdat mijn systeem alleen NTFS is, kan ik de DOS Setup niet uitvoeren. De cd biedt ook geen manier om opstart floppies van Setup te maken. Ik herinner me dat MSDN Subscriber Downloads een ISO-installatiekopie van Windows XP Professional heeft, dus ik ging het downloaden (met een ander systeem) om een opstartbare cd te branden, maar die aanvalsregel werd gedwarsboomd door een fout bij het starten van File Transfer Manager. Probeer het later opnieuw.' foutbericht van de MSDN-site.
Hoe heb ik mezelf uit deze puinhoop gestoken? Ik heb de register hives van de afgebroken upgrade vervangen door de hives van een back-up die ik een paar weken geleden heb gemaakt. Hoewel ik me na het opnieuw opstarten niet kon aanmelden bij het systeem omdat Windows-productactivering zei dat mijn licentie niet kon worden geverifieerd, kon ik opstarten in de veilige modus en de MSDN CD-installatie daar uitvoeren. Ik ben net klaar met het opnieuw installeren van mijn toepassingen en kan weer productief zijn.
Wat ik heel verbazingwekkend vind aan wat er met mij is gebeurd (twee keer) is dat Windows XP Setup geen basisbeveiligingsmechanismen heeft die aanwezig zijn in de Windows 9x Setups sinds Windows 95. Als Windows 95, 98 of Mij Setup wordt uitgevoerd, worden de voortgangspunten naar de schijf vastgelegd. Als de installatie onverwacht wordt onderbroken, wordt het opnieuw opgestart waar het was gebleven en als deze zich in de fase 'Apparaten installeren' bevond, wordt het laatste stuurprogramma overgeslagen dat het was uitgevoerd voordat het werd onderbroken. Als Setup vastloopt, kunt u het systeem opnieuw opstarten en wordt setup verder dan het vastlopen.
Windows 2000 en XP hebben een aantal leuke functies geleend van de Windows 9x-lijn, zoals de veilige modus en systeemherstel. Ik wou dat ze wat dingen van Windows 9x Setup hadden geleend.
Over upgraden naar XP, humor columnist Dave Barry denkt aan het maken van de sprong: http://www.miami.com/herald/special/features/barry/2002/docs/jan06.htm .
Hartelijk dank!
-Merken
WAT IS ER NIEUW IN SYSINTERNALS
SYNC V2.1
"Sync", een applet die gegevens in de cache terug naar schijf leegmaakt, is een kernsysteemhulpprogramma op Unix-systemen, en ik schreef dus Sync voor Windows NT/2000/XP enkele jaren geleden. Ervoor zorgen dat wijzigingen worden doorgevoerd op verwisselbare media voor lezen/schrijven voordat u de media uitwerpt, is iets dat u met Sync kunt doen. Het is ook handig voor het minimaliseren van schijfbeschadiging wanneer u deze uitvoert voordat u een stuurprogramma traint dat u ontwikkelt dat het systeem vastloopt. Iemand stelde onlangs voor dat het leuk zou zijn als Sync een optie had om media uit te werpen na het leegmaken, dus dat wordt geïntroduceerd in v2.1.
Sync v2.1 downloaden op
http://www.sysinternals.com/ntw2k/source/misc.shtml
DISKEXT V1.0
Een ander schijfgerelateerd hulpprogramma dat in deze nieuwsbrief wordt behandeld, is DiskExt, een opdrachtregel-applet die u vertelt, op basis van de stationsletter van een volume, de locaties van de partities waaruit het volume bestaat; volumes met meerdere partities zijn gespiegelde, gespiegelde en gestreepte volumes. DiskExt rapporteert ook de locatie, in termen van de sectoren die ze innemen, van de partities die worden vermeld.
DiskExt v1.0 downloaden met volledige broncode op
http://www.sysinternals.com/ntw2k/source/misc.shtml#diskext
NTFSDOS V3.02
NTFSDOS, het hulpprogramma dat Sysinternals heeft gestart (op het moment van de release van NTFSDOS, 'Ntinternals') op de computers van honderdduizenden gebruikers, staat DOS toe NTFS-stations te lezen. Een kleine wijziging in de Windows XP NTFS-structuur op schijf vereist een aanpassing aan NTFSDOS voor XP-compatibiliteit.
NTFSDOS v3.02 downloaden op
http://www.sysinternals.com/ntw2k/freeware/NTFSDOS.shtml
PSSUSPEND V1.2
Wilt u ooit een netwerkdownload, schijfzoekopdracht of een andere resource-intensieve toepassing tijdelijk onderbreken, zodat u iets anders kunt uitvoeren? Suspend is een procesbeheerfunctie die nauwelijks ontbreekt in de beheerprogramma's in Windows NT/2000/XP. De nieuwste toevoeging aan de PsTools tool set is PsSuspend, een hulpprogramma dat processen onderbreekt en hervat. Net als alle andere hulpprogramma's in de PsTools-suite is PsSuspend een opdrachtregelprogramma dat u rechtstreeks op het lokale systeem of een externe kunt richten.
Omdat er geen mogelijkheid tot onderbreken is in Windows NT/2000/XP (er is in XP, maar deze niet beschikbaar is via de Win32-API), onderbreekt En hervat PsSuspend de threads die in een doelproces worden uitgevoerd met de Win32 SuspendThread- en ResumeThread-API's.
PsSuspend v1.2 downloaden op
http://www.sysinternals.com/ntw2k/freeware/pssuspend.shtml
Download het volledige PsTools-pakket op
http://www.sysinternals.com/ntw2k/freeware/pstools.shtml
PSLOGLIST V2.2
De hulpprogramma's die het PsTools-pakket opstellen, ontwikkelen zich voortdurend op basis van feedback van gebruikers en PsLoglist heeft meer aanvragen voor functies gegenereerd dan een van de andere hulpprogramma's. Deze nieuwste versie introduceert een aantal verbeteringen, waaronder de mogelijkheid om de records in opgeslagen gebeurtenislogboekbestanden te dumpen, het scheidingsteken met één regel te wijzigen van een komma in iets anders (voor situaties waarin gebeurtenislogboektekst komma's bevat), dumprecords uit opgegeven datumbereiken en filteren op gebeurtenistype (fout, waarschuwing of informatie). Net als voorheen kan PsLoglist lokale of externe systeemgebeurtenislogboeken dumpen en heeft veel andere opties voor het beheren van de bewerking.
PsLoglist v2.2 downloaden op
http://www.sysinternals.com/ntw2k/freeware/psloglist.shtml
Download het volledige PsTools-pakket op
http://www.sysinternals.com/ntw2k/freeware/pstools.shtml
PSINFO V1.2
Een PsTools-hulpprogramma dat buiten gebruik is gesteld, is PsUptime, een applet die de tijd heeft gerapporteerd dat het lokale of externe systeem actief was geweest. Het is niet dat informatie niet nuttig is – het is – maar het is beter geschikt voor weergave door de relatieve nieuwkomer in PsTools, PsInfo. Daarom rapporteert PsInfo v1.2 nu systeemtijd, samen met een reeks andere informatie, zoals versie van het besturingssysteem, processorsnelheid, geheugengrootte, hotfix-installaties, of een besturingssysteem een evaluatieversie is en wanneer het verloopt, en, op Windows XP, de status van Windows-productactivering.
Download PsInfo v1.2 op
http://www.sysinternals.com/ntw2k/freeware/psinfo.shtml
Download het volledige PsTools-pakket op
http://www.sysinternals.com/ntw2k/freeware/pstools.shtml
PSEXEC V1.3
PsExec is een opdrachtregelprogramma waarmee u programma's op een extern systeem kunt uitvoeren zonder software op dat systeem te installeren. Als het programma dat u uitvoert een opdrachtregelinterface heeft, wordt het door PsExec voor u proxy's gebruikt, zodat u het interactief kunt uitvoeren alsof het programma lokaal wordt uitgevoerd. Deze mogelijkheden maken PsExec een handig lichtgewicht extern shell-type hulpprogramma en maken het eenvoudig om op afstand opdrachtregelprogramma's zoals ipconfig in te schakelen.
Met versie 1.3 van PsExec kunt u Windows-toepassingen (in tegenstelling tot toepassingen die opdrachtregels zijn) op een extern systeem starten, zodat ze worden weergegeven op het interactieve bureaublad. Ik weet niet zeker waar dit nuttig kan zijn, maar ik heb verschillende aanvragen voor deze functionaliteit ontvangen.
PsExec v1.3 downloaden op
http://www.sysinternals.com/ntw2k/freeware/psexec.shtml
Download het volledige PsTools-pakket op
http://www.sysinternals.com/ntw2k/freeware/pstools.shtml
BGINFO V2.0
Als u meer dan een paar systemen beheert, weet u over 'systeemverwarring', die status van gedachten waar u naar een computer loopt (of overschakelt naar de computer op uw KVM) en vergeet de naam van de computer, de versie van het besturingssysteem, het geïnstalleerde servicepack of IP-adres. Hoewel al deze informatie toegankelijk is via verschillende beheerinterfaces, kan het tijdrovend zijn om er gebruik van te maken. Daar komt Bryce Cogswell's BgInfo binnen: het geeft de systeeminformatie weer die u het belangrijkst vindt op de bureaubladachtergrond, zodat u direct alle informatie hebt die u nodig hebt.
Met deze nieuwste update voor BgInfo kan deze beter worden geconfigureerd dan ooit. U kunt aangepaste tekst definiëren in een registersleutel, de achtergrondkleur of bitmap van het bureaublad opgeven, de tekst op de achtergrond zoeken en meer. Het handigst voor grote organisaties is echter de mogelijkheid van BgInfo om instellingen op te slaan en te laden, en zelfs om ze te exporteren naar een database. Met een van deze mogelijkheden kunt u instellingen eenmaal definiëren en vervolgens gebruiken op alle systemen die u beheert.
BgInfo v2.0 downloaden op
http://www.sysinternals.com/ntw2k/freeware/bginfo.shtml
PROCESS EXPLORER V5.2
Process Explorer is een hulpprogramma voor procesviewers en besturingselementen dat wordt opgehaald waar Taakbeheer weggaat. In de uitgebreide lijst met mogelijkheden ziet u in Process Explorer de structuur voor het maken van processen, worden ingangen weergegeven met geopende processen, lijsten met DLL's die processen hebben geladen en kunt u zoeken naar het proces of de processen waarop een bepaald bestand is geopend.
Eerdere versies van Process Explorer hebben gewerkt aan zowel Windows 9x- als NT/2K/XP-systemen, maar alleen met versie 5.2 toont Process Explorer proces-CPU-gebruiksgegevens voor Windows 9x-systemen. Een andere uitbreiding voor v5.2 helpt bij het opsporen van lekken op Windows XP- en 2000-systemen door het aantal GDI- en USER-ingangen (ingangen naar Win32 GUI-resources) te rapporteren dat een proces is geopend in het dialoogvenster met proceseigenschappen. In tegenstelling tot populaire overtuiging, zelfs in Windows 2000 en XP is het aantal van dergelijke resources beperkt: er is een systeembrede limiet van 65.536 gebruikershandgrepen en een limiet per proces van 16.384 GDI-ingangen.
Process Explorer v5.2 downloaden op
http://www.sysinternals.com/ntw2k/freeware/procexp.shtml
FILEMON V4.34 VOOR WIN64/ITANIUM
Microsoft heeft me een vroege Itanium-doos van Intel geleend, zodat ik de populairste Sysinternals-toepassingen kon overzetten naar Win64/Itanium. De doos is indrukwekkend: het heeft 2 733 MHz-processors en 8 GB geheugen. Ik heb Filemon als eerste toepassing naar poort besloten. Filemon bestaat uit een Win32-GUI (nu Win32/64) en een apparaatstuurprogramma, dus er zijn twee verschillende overdrachtsinspanningen vereist. Wat enigszins onverwacht is, is dat u zowel Win64-toepassingen als 64-bits stuurprogramma's bouwt op een 32-bits systeem met Windows NT, 2000 of XP met behulp van een cross-compiler.
De nieuwste versies van de platform-SDK (beschikbaar als gratis download van Microsoft: http://www.microsoft.com/msdownload/platformsdk/sdkupdate/) bevatten submappen met de 64-bits Itanium-compiler en linker-, Win64-headerbestanden en Win64-bibliotheken. Ik heb dit eenvoudige batchbestand gemaakt om mijn omgeving in te stellen op het bouwen van Win64-uitvoerbare bestanden:
@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.
Houd er rekening mee dat u geen Win64-toepassingen kunt bouwen vanuit Visual Studio, maar dat u dit moet doen vanaf de opdrachtregel.
Enkele kleine cast-problemen waren de enige problemen die ik tijdens het compileren tegenkwamen. Vervolgens heb ik de chauffeur gebouwd. De nieuwste versies van de DDK (niet meer beschikbaar als gratis download) bevatten snelkoppelingen naar opdrachtprompts waarop de buildomgeving voor IA64-stuurprogramma's is geconfigureerd. U bouwt gewoon het stuurprogramma in de 64-bits doelomgeving, net als een 32-bits stuurprogramma.
De compiler vertelde me dat ik explicieter moest zijn over enkele casts. De reeksnummers die Filemon aan bewerkingen toewijst, zijn ULONG
bijvoorbeeld s, waardoor de compiler me niet zou laten casten naar een PVOID
parameter voor het doorgeven als een contextparameter aan de I/O Manager-functie IoSetCompletionRoutine
. In plaats daarvan moest ik het eerst casten naar ULONG_PTR
en dan PVOID
. In ieder geval, binnen een paar minuten het stuurprogramma gecompileerd zonder fouten.
Vervolgens heb ik de 64-bits toepassing en het stuurprogramma gekopieerd naar het Itanium-systeem en heb ik het zojuist uitgevoerd. De Filemon-GUI is verscheen en verdween. Dat betekende dat ik het Win64-foutopsporingsprogramma moest gebruiken om erachter te komen wat er mis was. Het Win64-foutopsporingsprogramma wordt ook geleverd in de Platform-SDK en u kunt het uitvoeren vanaf een 32-bits of 64-bits computer. Het lijkt op een stripped down Visual Studio-foutopsporingsprogramma en werkt alleen in de externe modus waar u een foutopsporingsclientstuk installeert op de doelcomputer waarop u de toepassing uitvoert.
Nadat ik een half uur lang de code van Filemon heb doorlopen, kwam ik eindelijk tot de realisatie dat mijn Windows-procedures nodig waren om hun parameters voor lparam te declareren als LPARAM
- ze lang waren geweest vanwege een code die is gekopieerd uit de SDK toen we de eerste versie van Filemon in 1996 schreven. Interessant genoeg had de compiler hierover niet geklaagd, maar het betekende dat elke aanwijzer die als een lparam werd doorgegeven, werd afgekapt. Dit is te zien in de WM_MEASUREITEM handler van Filemon, die de parameter lparam interpreteert als een aanwijzer naar structuur. Filemon is in die code defect.
Verbazingwekkend, toen ik dat probleem opgelost Filemon foutloos op het Itanium. Totale tijd voor de poort: 1 uur.
Ik werk nu aan het overzetten van Regmon en zal dan poort DebugView. Ze moeten allebei lastig zijn, met name DebugView, die een behoorlijk onnorthodox stuurprogramma heeft.
Filemon met volledige bron downloaden op http://www.sysinternals.com/ntw2k/source/filemon.shtml
FILEMON V1.1 VOOR LINUX
Als u Sysinternals in de afgelopen maanden hebt bezocht, hebt u waarschijnlijk een nieuwe vermelding in de menubalk gezien: Linux Utilities. Dat klopt, ik besloot dat het vrij netjes zou zijn om Filemon uit te voeren op Linux. Ik had borland's Delphi Rapid Application Development (RAD)-omgeving al gebruikt in Windows, dus toen Kylix werd uitgebracht (in principe Delphi voor Linux) besefte ik dat de GUI vrij eenvoudig zou zijn.
De vraag die bleef bestaan was het onderscheppen van de activiteit van het bestandssysteem.
De meeste versies van Unix, inclusief Linux, implementeren een systeemoproep met de naam ptrace()
waarmee een proces alle systeemoproepen kan onderscheppen die door een doelproces worden gedaan. Ik heb overwogen ptrace()
om de activiteit van het bestandssysteem te controleren en kan Filemon in de toekomst wijzigen om deze te gebruiken om redenen die duidelijk zullen worden, maar besloten tegen het.
De nadelen van het gebruik ptrace()
zijn dat Filemon alle actieve processen moet inventariseren en een ptrace()
op elk proces moet uitvoeren. Verder zou het ook moeten worden gekoppeld aan nieuw gemaakte processen en de ptrace()
functionaliteit biedt geen manier om ervoor te zorgen dat de eerste systeemoproepen die door het nieuwe proces worden uitgevoerd, niet worden gemist. Wanneer een proces dat wordt getraceerd, het besturingssysteem aanroept, blokkeert dit, verzendt u een signaal naar het traceringsproces en wacht u totdat het traceringsproces wordt voortgezet. Dit kan leiden tot een ernstige prestatievermindering als u alle activiteiten van het bestandssysteem wilt zien. Ten slotte is het grootste nadeel dat ptrace()
het gedrag van traceerde processen wordt gewijzigd. Terwijl ze worden getraceerd, is de tracer het bovenliggende proces, wat betekent dat een getraceerd proces de meldingen die ze normaal gesproken niet zien wanneer hun onderliggende processen ervoor zorgen.
Het zou leuk zijn geweest als ik een bestandssysteemfilterstuurprogramma (een stapelbaar stuurprogramma in Linux-terminologie) zoals I/O-beheer in Windows NT/2000/XP had kunnen schrijven, maar de huidige architectuur van het Linux-bestandssysteem biedt geen ondersteuning voor stackable bestandssysteemstuurprogramma's. Er is een patch met de naam FiST die u kunt toepassen om deze te ondersteunen (http://www.cs.columbia.edu/~ezk/research/fist/)en er is ook een traceringstoolkit (http://www.opersys.com/LTT/index.html) voor Linux, maar beide vereisen dat eindgebruikers hun kernels opnieuw compileren, iets wat ik wilde vermijden. Daarom besloot ik de bewaking te implementeren met behulp van een systeemoproep-hooking stuurprogramma, net zoals Regmon werkt in Windows.
Er zijn twee zorgen die het project moeilijker maakten dan hetzelfde doen in Windows. Het eerste is dat Linus Torvalds, de vader van Linux en directeur van linux-kernelontwikkeling, niet gelooft in het gebruik van kernelfoutopsporingsprogramma's. De redenen zijn behoorlijk belachelijk (zie http://www.lib.uaa.alaska.edu/linux-kernel/archive/2000-Week-36/0575.htm ik om de eigen uitleg van Linus te lezen) en het is een van de verschillende redenen dat de Linux-kernel een moeilijke tijd zal hebben om windows bij te houden. Er bestaan een aantal niet-officiële kernelfoutopsporingsprogramma's, maar ze vereisen dat u de kernel patcht en wat moeite kost om te gebruiken. Het tweede probleem is dat Linus niet gelooft in het garanderen van achterwaartse compatibiliteit met apparaatstuurprogramma's als nieuwe kernels release. Het gevolg is dat elke geëxporteerde kernel-API plotseling kan veranderen, waardoor bestaande stuurprogramma's die gebruikmaken van de API, kunnen worden gewijzigd en dat ze opnieuw moeten worden gecompileerd voor nieuwe kernels.
Het ontbreken van een ingebouwd kernelfoutopsporingsprogramma betekende dat ik debugged via foutopsporingsinstructies (ik dacht dat ik net zoveel tijd zou besteden aan foutopsporing via printk
's – kernelmodus prints – omdat ik een kerneldebugger zou installeren en leren), en de veranderende kernel-API's en gegevensstructuren betekent dat Filemon voor Linux kernelafhankelijk is. Het werkt op verkleinde Red Hat 7.1 en 7.2 en SuSE Linux 7.1 en 7.2, en mogelijk op andere commerciële distributies, maar ik moet nog een manier bedenken om het stuurprogramma te isoleren van willekeurige kernelwijzigingen (een die een vroege versie van het stuurprogramma heeft verbroken, was het wijzigen van de oproepconventie van een kernelfunctie van standaard naar fast-call).
Filemon voor Linux heeft dezelfde interface als zijn Windows-tegenhanger en ziet er opmerkelijk vergelijkbaar uit (zie de schermopname op de pagina Filemon voor Linux). Mijn conclusies over het gemak van het ontwikkelen van een algemeen niet-kernelafhankelijk bestandssysteemfilter voor Linux moet duidelijk zijn: het is moeilijk als dat niet onmogelijk is. Stackable (filter) stuurprogramma's in elk stuurprogrammadomein (netwerken, bestandssystemen, opslag, invoer, enzovoort) worden daarentegen vanaf het begin ondersteund door de Windows NT I/O-architectuur.
Filemon voor Linux downloaden op http://www.sysinternals.com/linux/utilities/filemon.shtml
SYSINTERNALS AT WWW.MICROSOFT.COM
Hier is nogmaals de nieuwste installatie van Sysinternals-verwijzingen in Microsoft Knowledge Base-artikelen (KB) die zijn uitgebracht sinds de laatste nieuwsbrief. Let op het bestand dat zelfs Filemon in de titel heeft. Dit brengt tot 31 het totale aantal KB-verwijzingen naar Sysinternals. U vindt een volledige vermelding op http://www.sysinternals.com/ntw2k/info/mssysinternals.shtml
Foutbericht over fatale uitzondering treedt op tijdens de installatie http://support.microsoft.com/support/kb/articles/Q273/9/18.ASP
FP2000: Bestanden van typelijst voor databasestuurprogramma's is leeg http://support.microsoft.com/default.aspx?scid=kb; EN-US; Q308935
PROCEDURE: Fout 1928 'Fout bij het registreren van COM+ toepassing' http://support.microsoft.com/default.aspx?scid=kboplossen; EN-US; Q308940
PRB: Conflicteren met EOF bij gebruik van #import met ADO http://support.microsoft.com/support/kb/articles/Q166/1/12.ASP
PRB: DLL's niet uitgeladen na het aanroepen van CoFreeUnusedLibraries http://support.microsoft.com/support/kb/articles/Q301/3/57.ASP
PRB: Fout 80004005 'De Microsoft Jet Database Engine kan het bestand '(onbekend)' niet openen http://support.microsoft.com/support/kb/articles/Q306/2/69.ASP
PRB: FileMon laat zien dat DAO360.dll MSJet49.dll, MSJet48.dll en andere MSJetxx.dll-bestanden niet kan laden http://support.microsoft.com/support/kb/articles/Q306/3/86.ASP
SMS: Software-inventarisagent genereert een ongeldig foutbericht over paginafouten http://support.microsoft.com/support/kb/articles/Q302/6/51.ASP
INFORMATIE OVER INTERNE GEGEVENS
BINNEN WINDOWS 2000, DE INTERACTIEVE DVD
Als u de speciale pre-release prijzen van INSIDE Windows 2000 mist, de interactieve dvd-zelfstudie over Windows 2000 internals, hebben we goed nieuws! Een INLEIDENDE PRIJS van $ 950, die meer dan 25% van de normale prijs voor één gebruiker bedraagt, is nog steeds beschikbaar. Om NU TE BESTELLEN, of voor meer informatie over dit spannende nieuwe product door David Salomon en Mark Russinovich, gaat u naar http://www.solsem.com/dvd.html. Ook beschikbaar in een netwerkdistributieindeling voor intranetstreaming.
MARKEER DE DATUMS: RUSSINOVICH & SALOMON LEERT SAMEN OPNIEUW IN SEATTLE EN BOSTON
Onze 3-daagse Interne windows 2000/XP-klasse in Austin vorige maand was een verkoopsucces, dus we hebben nog twee aanbiedingen gepland: 17-19 april in Seattle en 12-14 juni in Boston (registratie zal binnenkort open zijn). De klasse is gebaseerd op 'Inside Windows 2000, 3rd Edition' en behandelt omgevingssubsystemen, systeemoproepverzending, systeemthreads, opstarten en afsluiten, interne registers, processen en threadplanning, geheugenbeheer, beveiliging, het I/O-systeem, opslag, NTFS en de cachebeheer. Door inzicht te krijgen in de interne werking van Windows XP & 2000, kunt u profiteren van het platform effectiever en effectiever fouten opsporen en problemen oplossen. Zie http://www.sysinternals.com/seminar.shtml voor meer informatie
WINDOWS XP-MANIFESTBESTANDEN
Een van de meest zichtbare wijzigingen in Windows XP is het nieuwe uiterlijk van het Luna-bureaublad. Luna is eigenlijk een 'thema', en als u een toepassing uitvoert die niet themabewust is (een toepassing die niet specifiek is geschreven om te profiteren van Windows XP-thema's) heeft de toepassing het oudere uiterlijk van Windows 2000. U kunt echter zelfs oudere toepassingen het nieuwe uiterlijk heel eenvoudig maken, zelfs als u geen broncode hebt. Maak gewoon een XML-manifestbestand voor de toepassing dat de Windows XP-laadprogramma vertelt dat die toepassing de COMMON Control versie 6 DLL (de comctl32.dll in %SystemRoot%\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1 df_6.0.0.0_x-ww_1382d70a
) wil gebruiken in plaats van de niet-themabewuste versie in %SystemRoot%\System32
. Hier volgt het manifestbestand dat process explorer v5.2 themabewust maakt:
<?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>
Wijzig de naam, versie en beschrijving van de toepassing die u themabewust wilt maken en sla het bestand op zodat het bestand dezelfde naam heeft als het uitvoerbare bestand van de toepassing, met uitzondering van '.manifest' dat eraan is toegevoegd, bijvoorbeeld procexp.exe.manifest. Als u de ontwikkelaar van de toepassing bent, kunt u het manifestbestand insluiten in de bronnen van de toepassing, zoals ik heb gedaan met Process Explorer. Zie de broncode voor Filemon voor een voorbeeld van hoe u dit doet.
WAT ZIT ER IN EEN X-BOX?
Als u de gamewereld van de console onlangs hebt gevolgd, weet u bijna zeker dat de nieuwe X-Box-console van Microsoft een gewijzigde versie van Windows 2000 uitvoert. Terwijl u bij Microsoft bent voor een recente Windows XP-onderzoeksreis voor de 4e editie van ons boek, hebt Dave Salomon en ik geleerd van het Windows 2000/XP-ontwikkelteam dat de X-Box-groep heeft besloten op Windows 2000 voor de ondersteuning van het stuurprogramma. Nadat de beslissing is genomen, hebben de X-Box-ontwikkelaars een kopie van de Windows 2000-bronstructuur gekregen en zijn ze bijna niet meer gehoord van het Windows 2000/XP-team.
De X-Box heeft een zeer aangepaste, gestripte versie van Windows 2000 die in slechts 512 kB geheugen past. Het heeft alle niet-relevante subsystemen verwijderd (ze hebben oorspronkelijk het Plug en Play subsysteem verwijderd om het opnieuw toe te voegen nadat het laden van stuurprogramma's ervan afhankelijk is geworden), slechts één proces wordt uitgevoerd en geen Win32-subsysteem (alleen de X-Box-API). De X-Box heeft slechts 64 MB fysiek geheugen en geen ondersteuning voor virtueel geheugen, dus de Windows 2000-geheugen- en cachebeheerders zijn twee subsystemen die zijn verwijderd. Met dergelijke drastische wijzigingen moet u het beschouwen als een nieuw besturingssysteem, niet Windows 2000.
Meer informatie over X-Box, GameCube en PS2 internals vindt u op http://www.e-insite.net/ednmag/index.asp?layout=article& articleid=CA185947&pubdate=12-20-01
WILLEKEURIGE STATISTIEKEN VAN WINDOWS XP
De volgende statistieken zijn gepubliceerd door Microsoft op hun OEM System Builder-website (op http://oem.microsoft.com - u kunt zich gratis registreren) en ik dacht dat u een aantal van hen interessant en/of amusant zou vinden.
Trouwens, het buildnummer van de definitieve release van Windows XP viel niet toevallig op 2600 - het werd een beetje verdampt (het buildnummer wordt verhoogd telkens wanneer het besturingssysteem wordt gecompileerd in het buildlab, meestal eenmaal per werkdag). Binnen bronnen zeggen dat het nummer gericht was op de 2600-community, een losjes gebreide groep hackers (http://www.2600.com/)als een bericht dat het XP-team vertrouwen in de beveiliging van XP aangeeft.
- Aantal dagen dat het duurde om Windows XP te ontwikkelen: 600 (12-20-99 - 24-8-01)
- Aantal gerichte teamleden: 5.736
- Aantal testers per ontwikkelaar: 1.4
- Aantal baby's geboren tijdens het project: 452
- Aantal werknemers: 504
- Hoeveelheid macaroni verbruikt tijdens 40 "Windows Info Meetings": 6.000 lbs
- Aantal frappuccino's® geserveerd: 86.400
- Dollars verhoogd voor Seattle Ronald McDonald House (lokale liefdadigheidsinstelling): $ 2 miljoen
- Aantal testcases voor systeemherstelfunctie: 1,6 miljoen
- Aantal direct3D-grafische testcases worden uitgevoerd sinds Windows XP RC1: 43.114.143
- Aantal toepassingen dat is getest op compatibiliteit: 5.500
- Aantal apparaten dat standaard wordt ondersteund: 12.000
- Percentage van de populairste pc-toepassingen die in de afgelopen drie jaar zijn gedistribueerd, die compatibel zijn met Windows XP: 90%
- Aantal sporen in de grootste digital mediabibliotheek-testcase: 31.000
- Lengte in uren van langste enkele bestand dat is vastgelegd door Windows Movie Maker: 114
- Aantal talen dat we lokaliseren: 24 volledig en 9 gedeeltelijk
- Aantal landen dat deelneemt aan de lancering op 10/25: Meer dan 50
- Aantal mensen die wereldwijd deelnemen aan lanceringsevenementen: meer dan 580.000 in zitplaatsen ... plus online doelgroepen 5.120 systeembouwers wereldwijd
NIEUWE VERBETERDE WINDBG
Windbg is een grafische front-end voor de kernelfoutopsporingsondersteuning die is ingebouwd in de Windows NT/2000/XP-kernel. Tot de laatste paar jaar verdiende Windbg terecht een reputatie om flakey en omslachtig te zijn, maar dat is veranderd sinds Microsoft zich heeft gericht op het verbeteren ervan. De nieuwste versie van Windbg, beschikbaar als gratis download van http://www.microsoft.com/ddk/Debugging/, is enorm verbeterd ten opzichte van de oude versies en eenvoudiger te gebruiken. Er zijn enkele nieuwe functies die zelfs ervaren Windbg-gebruikers niet op de hoogte zijn en twee opdrachten die nuttig zijn voor systeembeheerders die systeemcrashes proberen te diagnosticeren.
Een functie die de nieuwste Windbg zeer eenvoudig te gebruiken maakt, is de ondersteuning voor de symboolserver van Microsoft. Een probleem met het bekijken van crashdumps of foutopsporingstoepassingen met Windbg is dat u de juiste foutopsporingssymboolbestanden voor uw installatie moet hebben geïnstalleerd. Met servicepacks, hotfixes en mogelijk crashes van verschillende besturingssystemen (bijvoorbeeld Windows NT versus Windows XP), kan dit onerwijs zijn. Met de ondersteuning voor de symboolserver voert u gewoon de URL van de Microsoft-symboolserver in het dialoogvenster Pad van het Windbg-symbool in. Windbg downloadt symbolen van de server op aanvraag en slaat deze op in de map die u opgeeft. De symboolserver heeft symbolen voor Windows .NET Server Beta 3, Windows XP en XP release kandidaten, Windows 2000 en de bijbehorende servicepacks en hot fixes, Windows NT 4, MDAC 2.1-2.7, IIS en ISA.
De twee opdrachten die handig zijn voor het opsporen van fouten in crashdumps zijn !analyze en .dump. Voer !analyze uit (geef de -v
switch op) om een automatische analyse te krijgen, op basis van heuristiek, van een crash. Deze opdracht is al heel krachtig en omdat Microsoft meer historische gegevens van echte crashes opneemt, wordt deze nog nauwkeuriger.
De .dump
opdracht is handig voor foutopsporing in de gebruikersmodus en crashdumpanalyse in de kernelmodus. In sommige serveromgevingen, met name webservers, kunt u een geheugenlek of ander probleem identificeren, maar niet bereid zijn om de server te stoppen en opnieuw op te starten totdat de oorzaak is geïsoleerd. Op Windows XP en .NET Server kunt u koppelen aan het serverproces met behulp van Windbg, de .dump-opdracht uitvoeren om een crashdumpbestand voor gebruikersgeheugen te genereren en vervolgens loskoppelen (met de .detach
opdracht), de server slechts kort onderbreken. Vervolgens kan een ontwikkelaar het gegenereerde dumpbestand meenemen en offline analyseren.
Windows-serversystemen genereren standaard een dump voor volledig geheugen, die net zo groot is als de hoeveelheid fysiek geheugen dat aanwezig is op een systeem en daarom zeer groot kan zijn. U kunt de dump echter laden in Windbg en de .dump
opdracht gebruiken om een kleiner kernelgeheugen of minidump te genereren vanaf de volledige dump. De kleinere bestanden zijn gemakkelijker te uitwisselen en zijn vaak alles wat nodig is om de oorzaak van een crash te isoleren.
Download de nieuwste versie van Windbg van http://www.microsoft.com/ddk/Debugging/en zoek instructies voor het configureren van Windbg om symbolen op te halen van de Microsoft-symboolserver op http://www.microsoft.com/ddk/debugging/symbols.asp
WAT KOMT ER AAN DE DAG?
BOOTVIS GEBRUIKEN OM HET OPSTARTPROCES VAN WINDOWS XP TE PROFILEEREN
Om ze te helpen bij het afstemmen van het Windows XP-opstartproces, heeft het Windows XP-prestatieteam belangrijke punten in het besturingssysteem geïnstrumenteerd en een hulpprogramma met de naam BootVis ontwikkeld om opstarttraceringen weer te geven. In een verrassende beweging hebben ze het gereedschap vrij beschikbaar gemaakt. Het is zeer eenvoudig te gebruiken en toont een geweldige hoeveelheid details, waaronder informatie over wanneer stuurprogramma's worden geïnitialiseerd, wanneer en waar schijf-I/O plaatsvindt, en wanneer services en toepassingen worden gestart. De volgende keer laat ik je zien waar je het kunt krijgen en hoe je het kunt gebruiken.
Bedankt voor het lezen van de Sysinternals Nieuwsbrief.
Gepubliceerd maandag 07 januari 2002 17:01 door ottoh
[Nieuwsbrievenarchief ^] [< Volume 3, Getal 2] [Volume 4, Getal 2 >]