[Nyhetsbrev arkiv ^] [< Volym 3, nummer 2] [Volym 4, nummer 2 >]
System Internals Newsletter Volym 4, Nummer 1
http://www.sysinternals.com
Copyright (C) 2002 Mark Russinovich
7 januari 2002 – I det här problemet:
REDAKTIONELL
NYHETER PÅ SYSINTERNALS
- Synkronisera 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 för Win64/Itanium
- Filemon v1.1 för Linux
- Sysinternals på Microsoft
INTERN INFORMATION
- Inuti Windows 2000, Den interaktiva DVD:en
- Inuti Windows 2000/XP: Seminariet
- Windows XP-manifestfiler
- Vad finns i en X-Box?
- Slumpmässig Windows XP-statistik
- Ny förbättrad windbg
VAD KOMMER UPP
- Använda BootVis för att profilera Windows XP-startprocessen
SPONSOR: WINTERNALS SOFTWARE
Sysinternals Nyhetsbrev sponsras av Winternals Software, på webben på http://www.winternals.com. Winternals Software är den ledande utvecklaren och leverantören av avancerade systemverktyg för Windows NT/2K/XP. Deras produkter inkluderar den prisbelönta administratörens Pak, ERD Commander 2000 och NTFSDOS Professional Edition.
Winternals är stolta över att kunna meddela Defrag Commander version 1.32, den snabbaste och mest grundliga enterprise-defragmenter som finns tillgänglig. Nu kan du hantera defragmenteringsscheman i hela Windows-företaget från en enkel MMC-snapin - utan att ens behöva installera någon klientprogramvara på dina NT- eller Windows 2000-system. En 10-systemlicens är tillgänglig för onlineköp för endast $ 169, och aggressiva kvantitetsrabatter är tillgängliga. Besök http://www.winternals.com/39 för mer information eller för att ladda ner och använda gratis i 30 dagar.
Hej!
Välkommen till Sysinternals nyhetsbrev. Nyhetsbrevet har för närvarande 34 000 prenumeranter. Skicka nyhetsbrevet till vänner som du tror kan vara intresserade av dess innehåll.
Windows XP, Microsofts flaggskeppsoperativsystem, blev "guld" i slutet av augusti. Windows XP är den senaste versionen av Windows NT-linjen som började med Windows NT 3.1 1993 och bygger vidare på de senaste åtta årens tekniska utveckling och innovationer. Operativsystemet representerar definitivt den banbrytande när det gäller funktioner och funktioner, varav många David Solomon och jag studerade och skrev om i december MSDN Magazine artikel "Windows XP: Kernel Förbättringar Skapa en mer robust, kraftfull och skalbar OS" ( http://www.msdn.microsoft.com/msdnmag/issues/01/12/XPKernel/XPKernel.asp ).
Och med miljontals installerade Windows NT- och Windows 2000-system och hundratusentals eller miljontals betatestare kan du förvänta dig att Microsoft har justerat, finjusterat och fixat Windows XP för att köra praktiskt taget felfritt. Trots allt, deras annonser tout XP som "praktiskt taget krasch bevis". Jag förväntade mig verkligen aldrig att stöta på problem - men jag hade fel.
Jag höll Windows 2000 Professional som operativsystem på mitt primära system i hela XP beta och release kandidat cykel. Jag hade lärt mig från Windows 2000 utvecklingscykeln att även släppa kandidater lämnar bakom felsökning cruft efter uppgradering till de sista bitarna. När jag fick bygga 2600, den slutliga versionen, från betaprogrammet, bestämde jag mig för att det var dags att flytta. XP-kompatibilitetsguiden hittade bara mindre problem på mitt Windows 2000-system (som att versionen av Partition Magic jag hade installerat inte förstod XP NTFS) så jag fortsatte med uppgraderingssökvägen.
När du har kört i textläge och installerat installationsfiler på min hårddisk startade XP-installationen om till min delvis uppgraderade Windows XP-installation för att slutföra uppgraderingen i grafiskt läge. Det är i det här läget som du anger nationella inställningar och tidszonsinställningar, installationsprogrammet utför enhetsidentifiering och du konfigurerar nätverket. Det gick smidigt fram till fasen "Installera enheter". När förloppsindikatorn nådde ungefär 2/3rds och installationsprogrammet rapporterade att den återstående tiden var 34 minuter upphörde installationen att vara produktiv. "XP är det bästa som någonsin happed till dig" banderoller fortsatte att växla och de små blinkande knapparna i nedre högra fortsatte att rotera, men även två timmar senare hade jag fortfarande 34 minuter kvar att gå.
Det var då jag började oroa mig. Flera frenetiska timmar av att försöka allt jag kunde för att komma förbi problemet, inklusive omstart för att låta installationsprogrammet försöka igen, uppdatera BIOS, kontrollera MS Knowledge Base (ingenting), gav inget resultat. Jag gav slutligen i, skrapade hälften Windows 2000-hälften Windows XP installation, och utförde en ny installation av XP, spendera större delen av en dag installera om några dussin program jag använder.
Saker med min nya XP installation var bra. Inte för att säga att jag inte har blivit besviken över oförklarliga krascher, GUI flakiness och annars konstiga systembeteenden, men jag kan åtminstone vara produktiv. Jag visste att betaprogrammet CD var en utvärderings-CD, och att jag skulle behöva uppgradera till den fullständiga versionen när jag fick den via MSDN, men jag förväntade mig att det inte skulle vara några problem.
Exakt 120 dagar efter min avbrutna uppgradering (tidsgränsen, inte av en tillfällighet, av en utvärderingsversion) upplevde jag en otrolig känsla av déjà vu. Utvärderingsversionen fungerar faktiskt som en fullständig uppgradering, och (du gissade det) med 34 minuter kvar och 2/3 av vägen till installationsprogrammet "Installera enheter" slutade att göra framsteg. Återigen var mitt system i mitten av installationen netherworld, helt oanvändbar. Efter att ha provat alla saker jag försökte 120 dagar tidigare, avgick jag mig själv till en annan fullständig ominstallation.
Sedan stötte jag på ett annat problem: MSDN XP CD är inte startbar, eftersom den har både Home och Professional-underkataloger. Eftersom jag bara har en installation av operativsystemet (den som skadades av installationsprogrammet) kunde jag inte köra Win32-versionen av installationsprogrammet från MSDN CD, och eftersom mitt system är endast NTFS kunde jag inte köra DOS-installationen. Cd-skivan ger inte heller något sätt att göra startdisketter för installationsprogrammet. Jag kom ihåg att MSDN-prenumerant nedladdningar har en ISO-avbildning av Windows XP Professional, så jag gick för att få det (med hjälp av ett annat system) för att bränna en startbar CD, men den angreppslinjen omintetgjordes av en "Fel startar File Transfer Manager. Försök igen senare." felmeddelande från MSDN-webbplatsen.
Hur tog jag mig ur den här röran? Jag ersatte registreringsdatafilerna för den avbrutna uppgraderingen med dem från en säkerhetskopia som jag hade gjort för några veckor sedan. Även om jag inte kunde logga in på systemet efter en omstart eftersom Windows Product Activation sa att det inte kunde verifiera min licens, kunde jag starta i felsäkert läge och köra MSDN CD-installationen därifrån. Jag har precis installerat om mina program och kan vara produktiv igen.
Vad jag tycker är helt fantastiskt om vad som hände med mig (två gånger) är att Installationsprogrammet för Windows XP inte har grundläggande säkerhetsmekanismer som har funnits i Windows 9x-installationerna sedan Windows 95. När installationsprogrammet för Windows 95, 98 eller Me kör registrerar det förloppspunkter till disk. Om installationen oväntat avbryts startar den om där den slutade, och om den var i fasen "Installera enheter" hoppar den över den sista drivrutinen som kördes innan den avbröts. Om installationsprogrammet låser sig kan du starta om systemet och installationen kommer att göra framsteg utöver låsningspunkten.
Windows 2000 och XP har lånat ett antal fina funktioner från Windows 9x-linjen, som felsäkert läge och systemåterställning. Jag önskar att de hade lånat några saker från Windows 9x Setup.
På tal om att uppgradera till XP, humor kolumnist Dave Barry funderar på att göra hoppet: http://www.miami.com/herald/special/features/barry/2002/docs/jan06.htm .
Tack!
-Markera
NYHETER PÅ SYSINTERNALS
SYNC V2.1
"Sync", en applet som rensar cachelagrade data tillbaka till disken, är ett kärnsystemverktyg i Unix-system, och jag skrev därför Sync for Windows NT/2000/XP för flera år sedan. Att se till att ändringar återspeglas på läs-/skrivbara medier innan du matar ut mediet är något som Du kan göra med Sync. Det är också användbart för att minimera diskskada när du kör den innan du tränar en drivrutin som du utvecklar som kan krascha systemet. Någon föreslog nyligen att det skulle vara trevligt om Sync hade ett alternativ för att mata ut media efter tömning, så det introduceras i v2.1.
Ladda ned Sync v2.1 på
http://www.sysinternals.com/ntw2k/source/misc.shtml
DISKEXT V1.0
Ett annat diskrelaterat verktyg som beskrivs i det här nyhetsbrevet är DiskExt, en kommandorads applet som talar om för dig, med tanke på en volym enhetsbeteckning, platserna för partitionerna som utgör volymen; multipartitionsvolymer omfattar volymer med spännvidd, spegling och randiga volymer. DiskExt rapporterar också platsen, när det gäller de sektorer som de upptar, för de partitioner som den listar.
Ladda ned DiskExt v1.0 med fullständig källkod på
http://www.sysinternals.com/ntw2k/source/misc.shtml#diskext
NTFSDOS V3.02
NTFSDOS, det verktyg som lanserade Sysinternals (vid tidpunkten för NTFSDOS lansering, "Ntinternals") på datorerna för hundratusentals användare, tillåter DOS att läsa NTFS-enheter. En mindre ändring av Windows XP NTFS-strukturen på disken krävde en justering av NTFSDOS för XP-kompatibilitet.
Ladda ned NTFSDOS v3.02 på
http://www.sysinternals.com/ntw2k/freeware/NTFSDOS.shtml
PSSUSPEND V1.2
Har du någonsin velat pausa en nätverksnedladdning, disksökning eller något annat resursintensivt program så att du kan köra något annat? Suspend är en funktion för processhantering som verkligen saknas i de administrativa verktygen i Windows NT/2000/XP. Det senaste tillägget till PsTools-verktygsuppsättningen är PsSuspend, ett verktyg som pausar och återupptar processer. Precis som alla andra verktyg i PsTools-sviten är PsSuspend ett kommandoradsverktyg som du kan dirigera i det lokala systemet eller ett fjärranslutet verktyg.
Eftersom det inte finns någon suspend-process-funktion i Windows NT/2000/XP (det finns i XP, men den exponeras inte via Win32 API), pausar PsSuspend och återupptar trådarna som körs i en målprocess med Win32 SuspendThread och ResumeThread API:er.
Ladda ned PsSuspend v1.2 på
http://www.sysinternals.com/ntw2k/freeware/pssuspend.shtml
Ladda ned hela PsTools-paketet på
http://www.sysinternals.com/ntw2k/freeware/pstools.shtml
PSLOGLIST V2.2
De verktyg som utgör PsTools-paketet utvecklas kontinuerligt baserat på användarfeedback, och PsLoglist har genererat fler begäranden om funktioner än något av de andra verktygen. Den senaste versionen introducerar ett antal förbättringar, inklusive möjligheten att dumpa posterna i sparade händelseloggfiler, ändra avgränsare för enkelradsformat från ett kommatecken till något annat (för situationer där händelseloggtext innehåller kommatecken), dumpa poster från angivna datumintervall och filtrera efter händelsetyp (fel, varning eller information). Precis som tidigare kan PsLoglist dumpa lokala eller fjärranslutna systemhändelseloggar och har många andra alternativ för att styra dess drift.
Ladda ned PsLoglist v2.2 på
http://www.sysinternals.com/ntw2k/freeware/psloglist.shtml
Ladda ned hela PsTools-paketet på
http://www.sysinternals.com/ntw2k/freeware/pstools.shtml
PSINFO V1.2
Ett PsTools-verktyg som har dragits tillbaka är PsUptime, en applet som rapporterade hur lång tid det lokala systemet eller ett fjärrsystem hade varit igång. Det är inte så att informationen inte är användbar – det är den – men den är mer lämplig för att visas av den relativa nykomlingen till PsTools, PsInfo. Därför rapporterar PsInfo v1.2 nu systemets drifttid, tillsammans med en mängd annan information, till exempel operativsystemversion, processorhastighet, minnesstorlek, snabbkorrigeringsinstallationer, om ett operativsystem är en utvärderingsversion och när det upphör att gälla och, i Windows XP, statusen för Windows Produktaktivering.
Ladda ned PsInfo v1.2 på
http://www.sysinternals.com/ntw2k/freeware/psinfo.shtml
Ladda ned hela PsTools-paketet på
http://www.sysinternals.com/ntw2k/freeware/pstools.shtml
PSEXEC V1.3
PsExec är ett kommandoradsverktyg som gör att du kan köra program på ett fjärrsystem utan att installera någon programvara på systemet. Om programmet som du kör har ett kommandoradsgränssnitt så proxyger PsExec det åt dig, så att du kan köra det interaktivt som om det körde programmet lokalt. De här funktionerna gör PsExec till ett praktiskt lättviktigt fjärrgränssnittsliknande verktyg och gör det enkelt att fjärraktivera kommandoradsprogram som ipconfig.
Med version 1.3 av PsExec kan du starta Windows-program (till skillnad från de som är kommandoradsprogram) på ett fjärrsystem så att de visas på det interaktiva skrivbordet. Jag är inte säker på var detta kan vara användbart, men jag har fått flera förfrågningar om den här funktionen.
Ladda ned PsExec v1.3 på
http://www.sysinternals.com/ntw2k/freeware/psexec.shtml
Ladda ned hela PsTools-paketet på
http://www.sysinternals.com/ntw2k/freeware/pstools.shtml
BGINFO V2.0
Om du hanterar fler än ett fåtal system känner du till "systemförvirring", det sinnestillstånd där du går upp till en dator (eller växlar till den på din KVM) och glömmer datorns namn, operativsystemversionen, installerade Service Pack eller IP-adress. All den här informationen är tillgänglig via olika administrativa gränssnitt, men det kan vara tidskrävande att komma åt den. Det är där Bryce Cogswells BgInfo kommer in: den visar systeminformationen som du hittar viktigast direkt på skrivbordsbakgrunden så att du omedelbart får all information du behöver.
Den senaste uppdateringen av BgInfo gör den mer konfigurerbar än någonsin. Du kan definiera anpassad text i en registernyckel, ange skrivbordsbakgrundsfärgen eller bitmappen, leta upp texten i bakgrunden med mera. Mest användbart för stora organisationer är dock BgInfos möjlighet att spara och läsa in inställningar och till och med exportera dem till en databas. Med någon av dessa funktioner kan du definiera inställningar en gång och sedan använda dem på alla system som du hanterar.
Ladda ned BgInfo v2.0 på
http://www.sysinternals.com/ntw2k/freeware/bginfo.shtml
PROCESS EXPLORER V5.2
Process Explorer är ett processvisningsprogram och kontrollverktyg som tar vid där Aktivitetshanteraren slutar. I den omfattande listan över funktioner visar Process Explorer processskapandeträdet, visar referenser som processer har öppna, listar DLL:er som processer har läst in och gör att du kan söka efter processen eller processerna som har en viss fil öppnad.
Tidigare versioner av Process Explorer har fungerat på både Windows 9x- och NT/2K/XP-system, men endast med version 5.2 visar Process Explorer information om processoranvändning för Windows 9x-system. En annan förbättring för v5.2 hjälper till att spåra läckor i Windows XP- och 2000-system genom att rapportera antalet GDI- och USER-handtag (referenser till Win32 GUI-resurser) som en process har öppnat i dialogrutan för processegenskaper. I motsats till vad många tror är antalet sådana resurser begränsat även i Windows 2000 och XP: det finns en systemomfattande gräns på 65 536 användarhandtag och en gräns per process på 16 384 GDI-handtag.
Ladda ned Process Explorer v5.2 på
http://www.sysinternals.com/ntw2k/freeware/procexp.shtml
FILEMON V4.34 FÖR WIN64/ITANIUM
Microsoft lånade mig vänligen en tidig Itanium box från Intel så att jag kunde börja porta de mest populära Sysinternals-programmen till Win64/Itanium. Lådan är imponerande: den har 2 733 MHz-processorer och 8 GB minne. Jag bestämde mig för Filemon som det första programmet till port. Filemon består av ett Win32(nu Win32/64) GUI och en enhetsdrivrutin, så två olika portningsinsatser krävdes. Något oväntat är att du skapar både Win64-program och 64-bitars drivrutiner på ett 32-bitarssystem som kör Windows NT, 2000 eller XP med hjälp av en korskompilator.
De senaste versionerna av plattforms-SDK (finns som en kostnadsfri nedladdning från Microsoft: http://www.microsoft.com/msdownload/platformsdk/sdkupdate/) innehåller underkataloger som innehåller 64-bitars Itanium-kompilatorn och länkaren, Win64-huvudfiler och Win64-bibliotek. Jag gjorde den här enkla batchfilen för att ställa in min miljö för att skapa Körbara Win64-filer:
@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.
Observera att du inte kan skapa Win64-program från Visual Studio, utan i stället måste göra det från kommandoraden.
Några mindre rollbesättningsproblem var de enda problem jag stötte på under kompilering. Sedan byggde jag drivrutinen. De senaste versionerna av DDK (inte längre tillgänglig som en kostnadsfri nedladdning) innehåller genvägar till kommandotolken som har IA64-drivrutinsgenereringsmiljön konfigurerad. Du skapar helt enkelt drivrutinen i 64-bitars målmiljön på samma sätt som en 32-bitarsdrivrutin.
Kompilatorn informerade mig om att jag behövde mer explicit om några casts. Till exempel är ULONG
de sekvensnummer som Filemon tilldelar till åtgärder s, som kompilatorn inte skulle låta mig casta till en PVOID
för att skicka som en kontextparameter till I/O Manager-funktionen IoSetCompletionRoutine
. Istället var jag tvungen att kasta den först till ULONG_PTR
och sedan PVOID
. I vilket fall som helst kompilerade drivrutinen utan fel inom några minuter.
Sedan kopierade jag 64-bitarsprogrammet och drivrutinen till Itanium-systemet och körde det bara. Filemon GUI dök upp och försvann sedan. Det innebar att jag var tvungen att använda Win64-felsökaren för att ta reda på vad som var fel. Win64-felsökningsprogrammet finns också i Platform SDK och du kan köra det från en 32-bitars- eller 64-bitarsdator. Det ser ut som ett avskalat Visual Studio-felsökningsprogram och fungerar bara i fjärrläge där du installerar en felsökningsklientdel på måldatorn där du kör programmet.
Efter steg genom Filemon kod i en halvtimme eller så kom jag äntligen till insikten att mina Windows-procedurer behövde deklarera sina lparam parametrar som LPARAM
- de hade länge på grund av någon kod kopieras från SDK tillbaka när vi skrev den första versionen av Filemon 1996. Intressant nog hade kompilatorn inte klagat på detta, men det innebar att alla pekare som skickades som en lparam trunkerades. Detta visades i Filemons WM_MEASUREITEM-hanterare, som tolkar lparam-parametern som en pekare till struktur. Filemon felade i koden.
Otroligt, när jag åtgärdat det problemet Filemon körde felfritt på Itanium. Total tid för porten: 1 timme.
Jag arbetar med att portera Regmon nu och kommer sedan att porta DebugView. Båda bör vara utmanande, särskilt DebugView, som har en ganska oortodox drivrutin.
Ladda ned Filemon med fullständig källa på http://www.sysinternals.com/ntw2k/source/filemon.shtml
FILEMON V1.1 FÖR LINUX
Om du har besökt Sysinternals under de senaste månaderna blev du förmodligen chockad över att se en ny post på menyraden: Linux Utilities. Det stämmer, jag bestämde mig för att det skulle vara ganska snyggt att ha Filemon körs på Linux. Jag hade redan använt Borlands Delphi Rapid Application Development (RAD) miljö på Windows, så när Kylix släpptes (i princip Delphi för Linux) insåg jag att GUI skulle vara ganska enkelt.
Frågan som återstod var hur filsystemaktiviteten skulle fångas upp.
De flesta versioner av Unix, inklusive Linux, implementerar ett systemanrop med namnet ptrace()
som gör att en process kan avlyssna alla systemanrop som görs av en målprocess. Jag övervägde att använda ptrace()
för att övervaka filsystemaktivitet, och kan ändra Filemon i framtiden för att använda den av skäl som kommer att bli tydlig, men beslutade mot det.
Nackdelarna med att använda ptrace()
är att Filemon måste räkna upp alla processer som körs och köra en ptrace()
på var och en. Dessutom måste den även ansluta till nyligen skapade processer och ptrace()
funktionen ger inte ett sätt att se till att de första systemanropen som körs av den nya processen inte skulle missas. När en process som spåras kör ett systemanrop blockerar operativsystemet det, skickar en signal till spårningsprocessen och väntar på att spårningsprocessen ska låta processen fortsätta. Detta kan orsaka en allvarlig prestandaförsämring om du vill se all filsystemaktivitet. Slutligen är den största nackdelen att ptrace()
det ändrar beteendet för spårade processer. Medan de spåras är spårningen den överordnade processen, vilket innebär att en spårad process verkliga överordnade inte ser de meddelanden som de normalt skulle se när deras underordnade processer orsakar dem.
Det hade varit trevligt om jag kunde ha skrivit en filsystemfilterdrivrutin (en stackbar drivrutin i Linux-terminologi) som I/O Manager i Windows NT/2000/XP stöder, men den aktuella Linux-filsystemarkitekturen stöder inte stackbara filsystemdrivrutiner. Det finns en korrigering som heter FiST som du kan använda för att stödja den (http://www.cs.columbia.edu/~ezk/research/fist/)och det finns också en spårningsverktyg (http://www.opersys.com/LTT/index.html) för Linux, men båda kräver att slutanvändarna kompilera om sina kärnor, något som jag ville undvika. Så jag bestämde mig för att implementera övervakningen med hjälp av en system call-hooking-drivrutin, ungefär som Regmon fungerar på Windows.
Det finns två problem som gjorde projektet svårare än att göra samma sak i Windows. Den första är att Linus Torvalds, far till Linux och chef för Linux-kernelutveckling, inte tror på användningen av kernelbuggers. Orsakerna är ganska löjliga (se http://www.lib.uaa.alaska.edu/linux-kernel/archive/2000-Week-36/0575.htm jag för att läsa Linus egen förklaring) och det är en av flera anledningar till att Linux-kerneln kommer att ha svårt att hålla jämna steg med Windows. Det finns ett par icke-officiella kernelfelsökare, men de kräver att du korrigerar kerneln och kräver lite arbete att använda. Det andra problemet är att Linus inte tror på att garantera bakåtkompatibilitet med enhetsdrivrutiner när nya kernels släpps. Konsekvensen är att alla exporterade kernel-API:er plötsligt kan ändras, vilket bryter befintliga drivrutiner som använder API:et och kräver att de omkompileras för nya kärnor.
Bristen på ett inbyggt kernelfelsökare innebar att jag debuggade via felsökningsuttryck (jag tänkte att jag skulle ägna lika mycket tid åt att felsöka via printk
"s – kernel-mode prints – som jag skulle installera och lära mig ett kernelfelsökare), och de föränderliga kernel-API:erna och datastrukturerna innebär att Filemon för Linux är kernelberoende. Det fungerar på krymplindade Red Hat 7.1 och 7.2 och SuSE Linux 7.1 och 7.2, och eventuellt på andra kommersiella distributioner, men jag har ännu inte kommit på ett sätt att isolera drivrutinen från godtyckliga kerneländringar (en som bröt en tidig version av drivrutinen var bytet av en kernelfunktions samtalskonvention från standard till snabbanrop).
Filemon för Linux har exakt samma gränssnitt som sin Windows-motsvarighet och det ser anmärkningsvärt likt ut (se skärmbilden på sidan Filemon för Linux). Mina slutsatser om hur enkelt det är att utveckla ett allmänt icke-kernelberoende filsystemfilter för Linux bör vara tydliga: det är svårt om inte omöjligt. Däremot stöddes stackbara (filter) drivrutiner i varje drivrutinsdomän (nätverk, filsystem, lagring, indata osv.) av Windows NT I/O-arkitekturen från början.
Ladda ned Filemon för Linux på http://www.sysinternals.com/linux/utilities/filemon.shtml
SYSINTERNALS AT WWW.MICROSOFT.COM
Här är återigen den senaste delen av Sysinternals-referenser i Microsoft Knowledge Base-artiklar (KB) som släppts sedan det senaste nyhetsbrevet. Observera den som till och med har Filemon i rubriken. Detta ger 31 det totala antalet KB-referenser till Sysinternals. Du hittar en fullständig lista på http://www.sysinternals.com/ntw2k/info/mssysinternals.shtml
Felmeddelande om allvarligt undantag inträffar under installationen http://support.microsoft.com/support/kb/articles/Q273/9/18.ASP
FP2000: Filer av typen Lista för databasdrivrutiner är tom http://support.microsoft.com/default.aspx?scid=kb; EN-US; Q308935
HOWTO: Felsöka fel 1928 "Fel vid registrering av COM+-program" http://support.microsoft.com/default.aspx?scid=kb; EN-US; Q308940
PRB: Konflikt med EOF när du använder #import med ADO http://support.microsoft.com/support/kb/articles/Q166/1/12.ASP
PRB: DLL:er tas inte bort efter anrop till CoFreeUnusedLibraries http://support.microsoft.com/support/kb/articles/Q301/3/57.ASP
PRB: Fel 80004005 "Microsoft Jet Database-motorn kan inte öppna filen (okänd)" http://support.microsoft.com/support/kb/articles/Q306/2/69.ASP
PRB: FileMon visar att DAO360.dll inte kan läsa in MSJet49.dll, MSJet48.dll och andra MSJetxx.dll filer http://support.microsoft.com/support/kb/articles/Q306/3/86.ASP
SMS: Software Inventory Agent genererar ett felmeddelande om ogiltigt sidfel http://support.microsoft.com/support/kb/articles/Q302/6/51.ASP
INTERN INFORMATION
INUTI WINDOWS 2000, DEN INTERAKTIVA DVD-SKIVAN
Om du missade den särskilda förhandsversionen prissättning av INSIDE Windows 2000, den interaktiva DVD-självstudien på Windows 2000 internals, har vi goda nyheter! Ett INTRODUKTIONSPRIS på 950 USD, vilket är mer än 25 % lägre än det normala priset för en enskild användare, är fortfarande tillgängligt. För att BESTÄLLA NU, eller för ytterligare information om denna spännande nya produkt av David Solomon och Mark Russinovich, gå till http://www.solsem.com/dvd.html. Finns även i ett nätverksdistributionsformat för intranätsströmning!
MARKERA DATUMEN: RUSSINOVICH &SOLOMON UNDERVISAR TILLSAMMANS IGEN I SEATTLE OCH BOSTON
Vår 3-dagars Windows 2000/XP internals-klass i Austin förra månaden var en utsåld framgång, så vi har schemalagt ytterligare två erbjudanden: 17-19 april nära Seattle och 12-14 juni i Boston (registreringen kommer snart att vara öppen). Klassen baseras på "Inside Windows 2000, 3rd Edition" och omfattar miljöundersystem, systemanropssändning, systemtrådar, start och avstängning, registerinredning, processer och trådschemaläggning, minneshantering, säkerhet, I/O-system, lagring, NTFS och cachehanteraren. Genom att förstå det inre arbetet i Windows XP & 2000 kan du dra nytta av plattformen mer effektivt och mer effektivt felsöka problem. Mer information finns i http://www.sysinternals.com/seminar.shtml
WINDOWS XP-MANIFESTFILER
En av de mest synliga ändringarna i Windows XP är det nya utseendet och känslan som tillhandahålls av Luna Desktop. Luna är faktiskt ett "tema", och om du kör ett program som inte är temamedveten (något program som inte skrivits specifikt för att dra nytta av Windows XP-teman) har programmet det äldre Utseendet och känslan i Windows 2000-stil. Du kan dock göra så att även äldre program får det nya utseendet mycket enkelt, även om du inte har källkod. Skapa bara en XML-manifestfil för programmet som talar om för Windows XP-inläsaren att programmet vill använda Common Control version 6 DLL (comctl32.dll i ) i %SystemRoot%\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1 df_6.0.0.0_x-ww_1382d70a
stället för den icke-temamedvetna versionen i %SystemRoot%\System32
. Här är manifestfilen som gör Process Explorer v5.2-temat medvetet:
<?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>
Ändra programmets namn, version och beskrivning för det program som du vill göra temamedveten och spara sedan filen så att den har samma namn som programmets körbara fil, förutom med ".manifest" som läggs till den, t.ex. procexp.exe.manifest. Om du är programmets utvecklare kan du bädda in manifestfilen i programmets resurser, som jag har gjort med Process Explorer. Se källkoden till Filemon för ett exempel på hur du gör det.
VAD FINNS I EN X-BOX?
Om du har följt konsolspelvärlden nyligen vet du nästan säkert att Microsofts nya X-Box-konsol kör en modifierad version av Windows 2000. När du är ute på Microsoft för en ny Windows XP-forskning resa för den 4: e upplagan av vår bok, Dave Solomon och jag lärde oss från Windows 2000 / XP utvecklingsteamet att X-Box gruppen beslutade om Windows 2000 för sin drivrutinsstöd. Efter beslutet fattades fick X-Box-utvecklarna en kopia av Källträdet för Windows 2000 och försvann, knappast för att höras från igen av Windows 2000/XP-teamet.
X-Box har en mycket modifierad, avskalad version av Windows 2000 som bara får plats i 512 kB minne. Alla icke-relevanta undersystem har tagits bort (de tog ursprungligen bort plug and play-undersystemet bara för att lägga till det igen efter att ha insett att drivrutinsinläsningen var beroende av det), kör bara en process och har inget Win32-undersystem (endast X-Box-API:et). X-Box har bara 64 MB fysiskt minne och inget stöd för virtuellt minne, så Windows 2000-minnes- och cachehanterare är två undersystem som har tagits bort. Med sådana drastiska ändringar måste du betrakta det som ett nytt operativsystem, inte Windows 2000.
Du kan läsa mer om X-Box, GameCube och PS2 internals på http://www.e-insite.net/ednmag/index.asp?layout=article& articleid=CA185947&pubdate=12-20-01
SLUMPMÄSSIG WINDOWS XP-STATISTIK
Följande statistik publicerades av Microsoft på deras OEM System Builder webbplats (på http://oem.microsoft.com - du kan registrera dig gratis), och jag trodde att du skulle hitta några av dem intressanta och / eller underhållande.
För övrigt föll inte versionsnumret för den slutliga versionen av Windows XP av en tillfällighet till 2600 – det fudged lite (versionsnumret ökas varje gång operativsystemet kompileras i bygglabbet, vanligtvis en gång varje arbetsdag). Inuti källor säger att antalet var riktat mot 2600-communityn, en löst sammansvetsad grupp hackare (http://www.2600.com/)som ett meddelande som visar XP-teamets förtroende för XP: s säkerhet.
- Antal dagar det tog att utveckla Windows XP: 600 (12/20/99 – 8/24/01)
- Antal fokuserade teammedlemmar: 5 736
- Antal testare per utvecklare: 1,4
- Antal barn som fötts under projektet: 452
- Antal anställda praktikanter: 504
- Mängd makaroner som förbrukas under 40 "Windows Info Meetings": 6 000 lbs
- Antal frappuccino serveras®: 86 400
- Dollar som samlats in för Seattle Ronald McDonald House (lokal välgörenhet): $ 2 miljoner
- Antal testfall för funktionen för systemåterställning: 1,6 miljoner
- Antal Direct3D-grafiktestfall som körts sedan Windows XP RC1: 43 114 143
- Antal program som testats för kompatibilitet: 5 500
- Antal enheter som stöds direkt: 12 000
- Procentandel av de mest populära datorprogram som distribuerats under de senaste tre åren som kommer att vara kompatibla med Windows XP: 90 %
- Antal spår i det största testfallet för Digital Media Library: 31 000
- Längd i timmar av den längsta enskilda filen som registrerats av Windows Movie Maker: 114
- Antal språk som vi lokaliserar till: 24 helt och 9 delvis
- Antal länder som deltar i lanseringen den 10/25: Över 50
- Antal personer som deltar i lanseringsevenemang över hela världen: över 580 000 i platser ... plus online-målgrupper 5 120 systembyggare över hela världen
NY FÖRBÄTTRAD WINDBG
Windbg är en grafisk klientdel till kernel-felsökningsstödet som är inbyggt i Windows NT/2000/XP-kerneln. Fram till de senaste åren har Windbg med rätta fått ett rykte om sig att vara flagnande och besvärligt, men det har förändrats eftersom Microsoft har fokuserat på att förbättra det. Den senaste versionen av Windbg, tillgänglig som en gratis nedladdning från http://www.microsoft.com/ddk/Debugging/, är enormt förbättrad jämfört med de gamla versionerna och lättare att använda. Det finns några nya funktioner som även erfarna Windbg-användare kanske inte känner till, och två kommandon som är användbara för systemadministratörer som försöker diagnostisera systemkrascher.
En funktion som gör den senaste Windbg mycket enkel att använda är dess stöd för Microsofts symbolserver. Ett problem med att titta på kraschdumpar eller felsöka program med Windbg har varit att du måste ha installerat rätt felsökningssymbolfiler för installationen. Med servicepaket, snabbkorrigeringar och eventuellt krascher från olika operativsystem (t.ex. Windows NT jämfört med Windows XP) kan detta vara betungande. Med stöd för symbolservern anger du bara URL:en för Microsoft-symbolservern i dialogrutan Sökväg till Windbg-symbolen så laddar Windbg ned symboler från servern på begäran och lagrar dem i den katalog som du anger. Symbolservern har symboler för Windows .NET Server Beta 3, Windows XP- och XP-versionskandidater, Windows 2000 och dess servicepaket och snabbkorrigeringar, Windows NT 4, MDAC 2.1-2.7, IIS och ISA.
De två kommandon som är användbara för felsökning av kraschdumpar är !analyze och .dump. Kör !analyze (ange växeln -v
) för att få en automatisk analys, baserat på heuristik, av en krasch. Det här kommandot är redan ganska kraftfullt, och eftersom Microsoft innehåller mer historiska data från verkliga krascher blir det ännu mer exakt.
Kommandot .dump
är användbart för både felsökning i användarläge och kraschdumpanalys i kernelläge. I vissa servermiljöer, särskilt webbservrar, kan du identifiera en minnesläcka eller något annat problem, men inte vara villig att stoppa och starta om servern förrän orsaken är isolerad. På Windows XP och .NET Server kan du ansluta till serverprocessen med Windbg, köra dumpkommandot .dump för att generera en kraschdumpfil för användarminne och sedan koppla från (med .detach
kommandot) och pausa servern bara en kort stund. Sedan kan en utvecklare ta den genererade dumpfilen och analysera den offline.
Som standard genererar Windows-serversystem en fullständig minnesdump, som är lika stor som mängden fysiskt minne som finns i ett system och därför kan vara mycket stor. Du kan dock läsa in dumpen i Windbg och använda .dump
kommandot för att generera ett mindre kernelminne eller minidumpar från den fullständiga dumpen. De mindre filerna är enklare att utbyta och är ofta allt som behövs för att isolera orsaken till en krasch.
Ladda ned den senaste versionen av Windbg från http://www.microsoft.com/ddk/Debugging/och hitta instruktioner om hur du konfigurerar Windbg för att hämta symboler från Microsoft-symbolservern på http://www.microsoft.com/ddk/debugging/symbols.asp
VAD KOMMER UPP
ANVÄNDA BOOTVIS FÖR ATT PROFILERA WINDOWS XP-STARTPROCESSEN
För att hjälpa dem att justera Windows XP-startprocessen instrumenterade Windows XP-prestandateamet viktiga punkter i operativsystemet och utvecklade ett verktyg som heter BootVis för att visa startspårningar. I ett överraskande drag har de gjort verktyget fritt tillgängligt. Det är mycket enkelt att använda och visar en fantastisk mängd information, inklusive information om när drivrutiner initieras, när och var disk-I/O inträffar och när tjänster och program startar. Nästa gång ska jag visa dig var du kan få det och hur du använder det.
Tack för att du läser Sysinternals nyhetsbrev.
Publicerad måndag 07 januari 2002 19:01 av ottoh
[Nyhetsbrev arkiv ^] [< Volym 3, nummer 2] [Volym 4, nummer 2 >]