[Archiwum biuletynów ^][< Wolumin 3, Liczba 2][Wolumin 4, Liczba 2 >]

System wewnętrzny biuletyn woluminu 4, numer 1

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


7 stycznia 2002 r. — w tym problemie:

  1. REDAKCJI

  2. CO NOWEGO W SYSINTERNALS

    • Synchronizacja w wersji 2.1
    • DiskExt v1.0
    • NTFSDOS v3.02
    • PsSuspend v1.2
    • PsLogList v2.2
    • PsInfo v1.2
    • PsExec v1.3
    • BgInfo v2.0
    • Eksplorator procesów w wersji 5.2
    • Filemon v4.34 for Win64/Itanium
    • Filemon v1.1 dla systemu Linux
    • Sysinternals w firmie Microsoft
  3. INFORMACJE WEWNĘTRZNE

    • Wewnątrz systemu Windows 2000, interactive DVD
    • Wewnątrz systemu Windows 2000/XP: Seminarium
    • Pliki manifestu systemu Windows XP
    • Co znajduje się w usłudze X-Box?
    • Losowe statystyki systemu Windows XP
    • Nowa ulepszona windbg
  4. CO SIĘ DZIEJE

    • Używanie bootVis do profilowania procesu rozruchu systemu Windows XP

SPONSOR: WINTERNALS SOFTWARE

Biuletyn Sysinternals jest sponsorowany przez Winternals Software, w Sieci Web http://www.winternals.com. Winternals Software jest wiodącym deweloperem i dostawcą zaawansowanych narzędzi systemów dla systemu Windows NT/2K/XP. Ich produkty obejmują wielokrotnie nagradzany Administracja istrator's Pak, ERD Commander 2000 i NTFSDOS Professional Edition.

Winternals jest dumny z ogłoszenia Defrag Commander w wersji 1.32, najszybszej, najbardziej dokładnej przedsiębiorstwa defragmentator dostępne. Teraz można zarządzać harmonogramami defragmentacji w całym przedsiębiorstwie systemu Windows za pomocą prostego przystawki MMC — nawet bez konieczności instalowania dowolnego oprogramowania klienckiego w systemach NT lub Windows 2000. Licencja 10-systemowa jest dostępna do zakupu online tylko za 169 USD, a agresywne rabaty na ilość są dostępne. Odwiedź stronę http://www.winternals.com/39 , aby uzyskać więcej informacji lub pobrać bezpłatnie przez 30 dni.

Witam wszystkich,

Witamy w biuletynie Sysinternals. Biuletyn ma obecnie 34 000 subskrybentów. Przekaż biuletyn do znajomych, którzy mogą cię zainteresować.

Windows XP, flagowy system operacyjny Microsoft, poszedł "złoto" pod koniec sierpnia. Windows XP to najnowsza wersja systemu Windows NT, która rozpoczęła się z systemem Windows NT 3.1 w 1993 roku i opiera się na ewolucji technologicznej i innowacjach z ostatnich ośmiu lat. System operacyjny zdecydowanie reprezentuje najnowocześniejsze pod względem funkcjonalności i funkcji, z których wiele David Solomon i ja studiowałem i pisałem o artykule "Windows XP: Kernel Improvements Create a More Robust, Powerful and Scalable OS" ( http://www.msdn.microsoft.com/msdnmag/issues/01/12/XPKernel/XPKernel.asp ).

I z milionami zainstalowanych systemów Windows NT i Windows 2000, a setki tysięcy lub milionów testerów beta, można oczekiwać, że firma Microsoft dostosuje, dostroić i naprawić windows XP, aby działał praktycznie bezbłędnie. W końcu ich reklamy tout XP jako "praktycznie dowód awarii". Z pewnością nigdy nie spodziewałem się napotkać problemów - ale myliłem się.

Byłem windows 2000 Professional jako system operacyjny w moim systemie podstawowym w całym cyklu XP beta i release candidate. Nauczyłem się z cyklu programowania systemu Windows 2000, że nawet kandydaci wydania pozostawiają za cruft debug po uaktualnieniu do ostatnich bitów. Kiedy otrzymałem kompilację 2600, ostateczne wydanie, z programu beta, zdecydowałem, że nadszedł czas, aby przejść. Kreator zgodności XP znalazł tylko drobne problemy w moim systemie Windows 2000 (tak jak w przypadku zainstalowanej wersji Partition Magic nie rozumie XP NTFS), więc kontynuowałem ścieżkę uaktualniania.

Po uruchomieniu w trybie tekstowym i zainstalowaniu plików instalacyjnych na moim dysku twardym instalator XP został ponownie uruchomiony w mojej częściowo uaktualnionej instalacji systemu Windows XP, aby ukończyć uaktualnianie w trybie graficznym. W tym trybie określasz ustawienia regionalne i strefy czasowej, Instalator przeprowadza wykrywanie urządzeń i konfiguruje sieć. Wszystko poszło płynnie do fazy "Instalowanie urządzeń". Gdy pasek postępu osiągnie około 2/3 i Instalator zgłosił, że pozostały czas wynosił 34 minuty, Instalacja przestała być produktywna. "XP jest najlepszą rzeczą, która kiedykolwiek zawężona do Ciebie" banery nadal naprzemiennie, a małe migające przyciski w prawym dolnym rogu nadal obracają się, ale nawet dwie godziny później nadal miałem 34 minuty w lewo, aby przejść.

Wtedy zacząłem się martwić. Kilka szaleńczych godzin próby każdej rzeczy, którą mogłem przeminąć problem, w tym ponowne uruchomienie, aby umożliwić Instalatorowi ponowić próbę, zaktualizowanie systemu BIOS, sprawdzenie bazy wiedzy MS (nic), nie przyniosły żadnych wyników. W końcu poddałem się, porysował połowę instalacji systemu Windows 2000-half Windows XP i wykonał nową instalację XP, spędzając lepszą część dnia ponownej instalacji kilku tuzinów aplikacji, których używam.

Elementy z moją nową instalacją XP były dobre. Nie powiedzieć, że nie byłem rozczarowany niewyjaśnionych awarii, flakiness GUI i w inny sposób dziwne zachowania systemowe, ale przynajmniej mógłbym być produktywny. Wiedziałem, że dysk CD programu beta był wersją próbną cd i że będę musiał uaktualnić do pełnej wersji, gdy otrzymałem go za pośrednictwem MSDN, ale spodziewałem się, że nie będzie to problem.

Dokładnie 120 dni po przerwaniu uaktualnienia (przekroczenie limitu czasu, nie przypadkowo, wersji próbnej) doświadczyłem niesamowite poczucie déjà vu. Uaktualnienie w wersji próbnej do pełnej działa jako pełne uaktualnienie i (jak się domyśliłeś) z 34 minut w lewo i 2/3 w drodze do "Instalowanie urządzeń" Konfiguracja przestała robić postępy. Po raz kolejny, mój system był w środku konfiguracji netherworld, całkowicie bezużyteczny. Po wypróbowaniu wszystkich rzeczy, które próbowałem 120 dni wcześniej, zrezygnowałem z kolejnej pełnej instalacji.

Potem wpadłem na inny problem: CD MSDN XP nie jest rozruchowy, ponieważ ma zarówno podkatalogi Home i Professional. Ponieważ mam tylko jedną instalację systemu operacyjnego (uszkodzoną przez Instalatora), nie mogłem uruchomić wersji Win32 Instalatora z dysku CD MSDN, a ponieważ mój system jest tylko NTFS, nie mogłem uruchomić Instalatora systemu DOS. Dysk CD nie zapewnia też sposobu, aby skonfigurować dyskietki rozruchowe. Pamiętam, że pliki do pobrania subskrybentów MSDN mają obraz ISO systemu Windows XP Professional, więc poszedłem go (za pomocą innego systemu) do nagrywania rozruchowego dysku CD, ale ta linia ataku została udaremniony przez "Błąd podczas uruchamiania Menedżera transferu plików. Spróbuj ponownie później." komunikat o błędzie z witryny MSDN.

Jak się z tego bałaganu wysiąść? Zastąpiłem gałąź rejestru przerwanego uaktualnienia z kopii zapasowej wykonanej kilka tygodni temu. Chociaż nie mogłem zalogować się do systemu po ponownym uruchomieniu, ponieważ aktywacja produktu systemu Windows powiedziała, że nie może zweryfikować mojej licencji, mogę uruchomić tryb awaryjny i uruchomić instalatora CD MSDN stamtąd. Właśnie skończyłem ponowne instalowanie aplikacji i jestem w stanie wrócić do produktywności.

To, co uważam za całkowicie niesamowite o tym, co się ze mną stało (dwa razy) jest to, że Instalator systemu Windows XP nie ma podstawowych mechanizmów bezpieczeństwa, które były obecne w instalatorach systemu Windows 9x od systemu Windows 95. W systemie Windows 95, 98 lub Me Setup jest uruchamiany rejestruje postęp punktów na dysku. Jeśli instalator zostanie nieoczekiwanie przerwany, uruchomi ponownie miejsce, w którym został przerwany, a jeśli był w fazie "Instalowanie urządzeń", pomija ostatni sterownik, który został uruchomiony, zanim został przerwany. W ten sposób, jeśli instalator zawiesza się, można ponownie uruchomić system, a Instalator będzie się rozwijać poza punktem zawieszenia.

Systemy Windows 2000 i XP pożyczyły wiele miłych funkcji z linii systemu Windows 9x, takich jak tryb Sejf i przywracanie systemu. Chciałbym, aby pożyczyli kilka rzeczy z Systemu Windows 9x Setup.

Mówiąc o uaktualnieniu do XP, humor felietonista Dave Barry myśli o dokonaniu skoku: http://www.miami.com/herald/special/features/barry/2002/docs/jan06.htm .

Dziękujemy.

-Mark

CO NOWEGO W SYSINTERNALS

SYNC V2.1

"Sync", aplet, który opróżnia buforowane dane z powrotem na dysk, jest podstawowym narzędziem systemowym w systemach Unix, i tak napisałem Sync for Windows NT/2000/XP kilka lat temu. Upewnienie się, że modyfikacje są odzwierciedlane na nośniku wymiennym do odczytu/zapisu przed wyrzuceniem nośnika, jest czymś, co umożliwia synchronizacja. Przydatne jest również zminimalizowanie uszkodzenia dysku podczas jego uruchamiania przed wykonaniem sterownika, który jest opracowywany, co może spowodować awarię systemu. Ktoś zasugerował niedawno, że byłoby miło, gdyby synchronizacja miała możliwość wyrzucenia nośnika po opróżnieniu, tak aby został wprowadzony w wersji 2.1.

Pobierz program Sync w wersji 2.1 pod adresem
http://www.sysinternals.com/ntw2k/source/misc.shtml

DISKEXT V1.0

Innym narzędziem powiązanym z dyskiem opisanym w tym biuletynie jest DiskExt, aplet wiersza polecenia, który informuje o litery dysku woluminu, lokalizacjach partycji, które składają się na wolumin; woluminy wielopartycyjne obejmują woluminy rozpięte, dublowane i rozłożone. DiskExt raportuje również lokalizację, pod względem sektorów, które zajmują, partycji, które zawiera.

Pobierz plik DiskExt w wersji 1.0 z pełnym kodem źródłowym pod adresem
http://www.sysinternals.com/ntw2k/source/misc.shtml#diskext

NTFSDOS V3.02

NTFSDOS, narzędzie, które uruchomiło systemInternals (w momencie wydania NTFSDOS, "Ntinternals") na komputerach setek tysięcy użytkowników, umożliwia systemowi DOS odczytywanie dysków NTFS. Niewielka zmiana struktury systemu Plików NTFS systemu Windows XP na dysku wymagała dostosowania do systemu PLIKÓW NTFSDOS w celu zapewnienia zgodności z systemem XP.

Pobierz system NTFSDOS w wersji 3.02 pod adresem
http://www.sysinternals.com/ntw2k/freeware/NTFSDOS.shtml

PSSUSPEND V1.2

Czy kiedykolwiek chcesz tymczasowo zawiesić pobieranie sieci, wyszukiwanie dysków lub inną aplikację intensywnie korzystającą z zasobów, aby można było uruchomić coś innego? Wstrzymanie to jedna z funkcji zarządzania procesami, której bardzo brakuje w narzędziach administracyjnych w systemie Windows NT/2000/XP. Najnowszym dodatkiem do zestawu narzędzi PsTools jest PsSuspend, narzędzie, które zawiesza i wznawia procesy. Podobnie jak wszystkie inne narzędzia w pakiecie PsTools, PsSuspend jest narzędziem wiersza polecenia, które można kierować w systemie lokalnym lub zdalnym.

Ponieważ nie ma możliwości wstrzymania procesu w systemie Windows NT/2000/XP (jest w xp, ale nie jest uwidoczniony za pośrednictwem interfejsu API Win32), PsSuspend zawiesza i wznawia wątki uruchomione w procesie docelowym za pomocą interfejsów API Win32 SuspendThread i ResumeThread.

Pobierz plik PsSuspend v1.2 pod adresem
http://www.sysinternals.com/ntw2k/freeware/pssuspend.shtml
Pobierz cały pakiet PsTools pod adresem
http://www.sysinternals.com/ntw2k/freeware/pstools.shtml

PSLOGLIST V2.2

Narzędzia tworzące pakiet PsTools stale ewoluują w oparciu o opinie użytkowników, a program PsLoglist wygenerował więcej żądań dotyczących funkcji niż którekolwiek z innych narzędzi. Ta najnowsza wersja wprowadza szereg ulepszeń, w tym możliwość zrzutu rekordów w zapisanych plikach dziennika zdarzeń, zmiana ogranicznika formatu jednowierszowego z przecinka na coś innego (w sytuacjach, gdy tekst dziennika zdarzeń zawiera przecinki), zrzut rekordów z określonych zakresów dat i filtrowanie według typu zdarzenia (błąd, ostrzeżenie lub informacje). Tak jak wcześniej program PsLoglist może zrzucić dzienniki zdarzeń lokalnego lub zdalnego systemu i ma wiele innych opcji kontrolowania jego działania.

Pobierz plik PsLoglist w wersji 2.2 pod adresem
http://www.sysinternals.com/ntw2k/freeware/psloglist.shtml
Pobierz cały pakiet PsTools pod adresem
http://www.sysinternals.com/ntw2k/freeware/pstools.shtml

PSINFO V1.2

Narzędzie PsTools, które zostało wycofane, to PsUptime, aplet, który zgłosił czas, że lokalny lub zdalny system był uruchomiony. Nie jest tak, że informacje nie są przydatne — jest to , ale bardziej odpowiednie do wyświetlania przez względnego przybysza do PsTools, PsInfo. W związku z tym program PsInfo w wersji 1.2 zgłasza teraz czas działania systemu operacyjnego wraz z innymi informacjami, takimi jak wersja systemu operacyjnego, szybkość procesora, rozmiar pamięci, instalacje poprawek, czy system operacyjny jest wersją próbną i kiedy wygaśnie, oraz, w systemie Windows XP, stan aktywacji produktu systemu Windows.

Pobierz plik PsInfo w wersji 1.2 pod adresem
http://www.sysinternals.com/ntw2k/freeware/psinfo.shtml
Pobierz cały pakiet PsTools pod adresem
http://www.sysinternals.com/ntw2k/freeware/pstools.shtml

PSEXEC V1.3

PsExec to narzędzie wiersza polecenia, które umożliwia uruchamianie programów w systemie zdalnym bez instalowania jakiegokolwiek oprogramowania w tym systemie. Jeśli uruchomiony program ma interfejs wiersza polecenia, serwer proxy PsExec jest przeznaczony dla Ciebie, dzięki czemu można go uruchomić interaktywnie tak, jakby program był wykonywany lokalnie. Dzięki tym funkcjom program PsExec jest wygodnym narzędziem typu powłoki zdalnej o lekkiej wadze i ułatwia zdalne włączanie programów wiersza polecenia, takich jak ipconfig.

Wersja 1.3 programu PsExec umożliwia uruchamianie aplikacji systemu Windows (w przeciwieństwie do tych, które są wiersza polecenia) w systemie zdalnym, tak aby były wyświetlane na pulpicie interaktywnym. Nie jestem pewien, gdzie może to być przydatne, ale otrzymałem kilka żądań dotyczących tej funkcji.

Pobierz program PsExec v1.3 pod adresem
http://www.sysinternals.com/ntw2k/freeware/psexec.shtml
Pobierz cały pakiet PsTools pod adresem
http://www.sysinternals.com/ntw2k/freeware/pstools.shtml

BGINFO V2.0

Jeśli zarządzasz więcej niż kilkoma systemami, wiesz o "zamieszaniu systemowym", ten stan umysłu, w którym przechodzisz do maszyny (lub przełączasz się do niego na maszynie KVM) i zapomnisz nazwę komputera, wersję systemu operacyjnego, zainstalowany dodatek Service Pack lub adres IP. Chociaż wszystkie te informacje są dostępne za pośrednictwem różnych interfejsów administracyjnych, uzyskanie ich może być czasochłonne. W tym miejscu pojawia się BgInfo Bryce Cogswell: wyświetla informacje o systemie, które znajdziesz bezpośrednio w tle pulpitu, aby natychmiast uzyskać wszystkie potrzebne informacje.

Ta najnowsza aktualizacja narzędzia BgInfo sprawia, że jest ona bardziej konfigurowalna niż kiedykolwiek wcześniej. Możesz zdefiniować tekst niestandardowy w kluczu rejestru, określić kolor tła pulpitu lub mapę bitową, zlokalizować tekst w tle i nie tylko. Najbardziej przydatne w przypadku dużych organizacji jest jednak możliwość zapisywania i ładowania ustawień bgInfo, a nawet eksportowania ich do bazy danych. Przy użyciu jednej z tych funkcji można zdefiniować ustawienia raz, a następnie użyć ich we wszystkich zarządzanych systemach.

Pobierz BgInfo v2.0 pod adresem
http://www.sysinternals.com/ntw2k/freeware/bginfo.shtml

PROCESS EXPLORER V5.2

Eksplorator procesów to narzędzie do przeglądania procesów i sterowania, które pobiera miejsce, w którym Menedżer zadań odchodzi. Wśród szerokiej listy możliwości Eksplorator procesów pokazuje drzewo tworzenia procesu, wyświetla dojścia, które procesy mają otwarte, wyświetla listę bibliotek DLL ładowanych i umożliwia wyszukiwanie procesu lub procesów, które mają otwarty plik.

Poprzednie wersje Eksploratora procesów pracowały zarówno w systemach Windows 9x, jak i NT/2K/XP, ale tylko w wersji 5.2 Eksplorator procesów wyświetla informacje o użyciu procesora CPU dla systemów Windows 9x. Kolejne ulepszenie dla wersji 5.2 pomaga w śledzeniu przecieków w systemach Windows XP i 2000 przez raportowanie liczby dojść GDI i USER (dojścia do zasobów systemu Win32 GUI), które proces został otwarty w oknie dialogowym właściwości procesu. W przeciwieństwie do popularnego przekonania, nawet w systemie Windows 2000 i XP liczba takich zasobów jest ograniczona: istnieje limit dla całego systemu 65.536 uchwytów użytkownika i limit na proces 16 384 uchwytów GDI.

Pobierz Eksploratora procesów w wersji 5.2 pod adresem
http://www.sysinternals.com/ntw2k/freeware/procexp.shtml

FILEMON V4.34 DLA WIN64/ITANIUM

Microsoft uprzejmie pożyczył mi wczesne pole Itanium z Intel, abym mógł rozpocząć przenoszenie najpopularniejszych aplikacji Sysinternals do Win64 / Itanium. Pudełko jest imponujące: ma 2 733 procesory MHz i 8 GB pamięci. Zdecydowałem się na Filemon jako pierwszą aplikację do portu. Filemon składa się z interfejsu GUI Win32 (teraz Win32/64) i sterownika urządzenia, więc wymagane były dwa różne operacje przenoszenia. Co jest nieco nieoczekiwane, to tworzenie zarówno aplikacji Win64, jak i sterowników 64-bitowych w 32-bitowym systemie z systemem Windows NT, 2000 lub XP przy użyciu kompilatora krzyżowego.

Najnowsze wersje zestawu SDK platformy (dostępne do bezpłatnego pobrania od firmy Microsoft: http://www.microsoft.com/msdownload/platformsdk/sdkupdate/) obejmują podkatalogi zawierające 64-bitowy kompilator Itanium i konsolidator, pliki nagłówków Win64 i biblioteki Win64. Utworzono ten prosty plik wsadowy, aby ustawić środowisko w celu skompilowania plików wykonywalnych Win64:

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

Pamiętaj, że nie można tworzyć aplikacji Win64 z poziomu programu Visual Studio, ale zamiast tego należy to zrobić z poziomu wiersza polecenia.

Kilka drobnych problemów z rzutowaniem było jedynymi problemami, które napotkałem podczas kompilacji. Następnie zbudowałem sterownik. Najnowsze wersje zestawu DDK (nie są już dostępne jako bezpłatne pobieranie) zawierają skróty do wierszy polecenia, które mają skonfigurowane środowisko kompilacji sterownika IA64. Wystarczy skompilować sterownik w środowisku docelowym 64-bitowym, tak jak sterownik 32-bitowy.

Kompilator poinformował mnie, że muszę bardziej jawnie o niektórych rzutach. Na przykład numery sekwencji, które Filemon przypisuje do operacji, to ULONGs, które kompilator nie pozwoli mi rzutować do PVOID elementu w celu przekazania jako parametru kontekstu do funkcji IoSetCompletionRoutineMenedżera we/wy . Zamiast tego musiałem go najpierw rzucić, ULONG_PTR a następnie PVOID. W każdym razie w ciągu kilku minut sterownik skompilowany bez błędów.

Następnie skopiowano 64-bitową aplikację i sterownik do systemu Itanium i właśnie go uruchomiono. Pojawił się graficzny interfejs użytkownika Filemon, a następnie zniknął. Oznaczało to, że musiałem użyć debugera Win64, aby dowiedzieć się, co było złe. Debuger Win64 jest również dostępny w zestawie SDK platformy i można go uruchomić z 32-bitowej lub 64-bitowej maszyny. Wygląda na to, że debuger programu Visual Studio jest usuwany i działa tylko w trybie zdalnym, w którym instalujesz debugowanie elementu klienta na komputerze docelowym, na którym jest uruchamiana aplikacja.

Po przejściu przez kod Filemon przez pół godziny lub tak w końcu doszedłem do realizacji, że moje procedury systemu Windows potrzebne do zadeklarowania ich parametrów lparam jako LPARAM - były długie z powodu kodu skopiowanego z zestawu SDK z powrotem, kiedy napisaliśmy pierwszą wersję Filemon w 1996 roku. Co ciekawe, kompilator nie skarżył się na to, ale oznaczało to, że każdy wskaźnik przekazany jako lparam został obcięty. Ta funkcja pojawiła się w procedurze obsługi WM_MEASUREITEM Filemon, która interpretuje parametr lparam jako wskaźnik do struktury. Plikmon był błędny w tym kodzie. Niesamowicie, kiedy rozwiązałem ten problem Filemon pobiegł bezbłędnie na Itanium. Łączny czas portu: 1 godzina.

Pracuję teraz nad przenoszeniem regmonu, a następnie port DebugView. Oba powinny być trudne, zwłaszcza DebugView, który ma dość niekonwencjonalne sterownik.

Pobierz plik Filemon z pełnym źródłem pod adresem http://www.sysinternals.com/ntw2k/source/filemon.shtml

FILEMON V1.1 DLA SYSTEMU LINUX

Jeśli odwiedziłeś sysinternals w ciągu ostatnich kilku miesięcy, prawdopodobnie byłeś zszokowany, aby zobaczyć nowy wpis na pasku menu: Linux Utilities. To prawda, zdecydowałem, że byłoby całkiem schludne, aby Filemon działa w systemie Linux. Używałem już środowiska Borlanda Delphi Rapid Application Development (RAD) w systemie Windows, więc kiedy Kylix został wydany (w zasadzie, Delphi dla Systemu Linux) zdałem sobie sprawę, że graficzny interfejs użytkownika będzie dość prosty.

Pytanie, które pozostało, było jak przechwycić aktywność systemu plików. Większość wersji systemu Unix, w tym Linux, implementuje wywołanie systemowe o nazwie ptrace() , które umożliwia procesowi przechwytywanie wszystkich wywołań systemowych wykonanych przez proces docelowy. Rozważałem użycie ptrace() do monitorowania aktywności systemu plików i może zmodyfikować Filemon w przyszłości, aby użyć go z powodów, które staną się jasne, ale postanowił przeciwko niemu.

Wadą użycia ptrace() jest to, że Filemon musiałby wyliczyć wszystkie uruchomione procesy i wykonać na ptrace() każdym z nich. Ponadto konieczne byłoby również dołączenie do nowo utworzonych procesów, a ptrace() funkcjonalność nie zapewnia możliwości zapewnienia, że pierwsze wywołania systemowe wykonywane przez nowy proces nie zostaną pominięte. Gdy śledzony proces wykonuje wywołanie systemu, które go blokuje, wysyła sygnał do procesu śledzenia i czeka na proces śledzenia, aby umożliwić kontynuowanie procesu śledzenia. Może to spowodować poważne obniżenie wydajności, jeśli chcesz zobaczyć wszystkie działania systemu plików. Na koniec największą wadą jest to, że ptrace() zmienia zachowanie śledzonych procesów. Chociaż są one śledzone, śledzenie jest procesem nadrzędnym, co oznacza, że rzeczywisty element nadrzędny procesu śledzenia nie będzie widzieć powiadomień, które zwykle będą widoczne, gdy ich procesy podrzędne powodują.

Byłoby miło, gdybym mógł napisać sterownik filtru systemu plików (sterownik stosowy w terminologii systemu Linux), taki jak Menedżer we/wy w systemie Windows NT/2000/XP obsługuje, ale bieżąca architektura systemu plików Linux nie obsługuje sterowników systemu plików stosowych. Istnieje poprawka o nazwie FiST, którą można zastosować, aby ją obsługiwać (http://www.cs.columbia.edu/~ezk/research/fist/)i istnieje również zestaw narzędzi śledzenia (http://www.opersys.com/LTT/index.html) dla systemu Linux, ale oba wymagają, aby użytkownicy końcowi ponownie skompilowali swoje jądra, coś, czego chciałem uniknąć. Postanowiłem więc zaimplementować monitorowanie przy użyciu systemowego sterownika podłączania wywołań, podobnie jak Regmon działa w systemie Windows.

Istnieją dwa obawy, które utrudniły projekt niż robi to samo w systemie Windows. Po pierwsze, Linus Torvalds, ojciec systemu Linux i dyrektor rozwoju jądra systemu Linux, nie wierzy w korzystanie z debugerów jądra. Powody są dość śmieszne (zobacz http://www.lib.uaa.alaska.edu/linux-kernel/archive/2000-Week-36/0575.htm l, aby przeczytać własne wyjaśnienie Linusa) i jest to jeden z kilku powodów, że jądro Systemu Linux będzie miał trudności z utrzymaniem się z systemem Windows. Istnieje kilka nieoficjalnie debugerów jądra, ale wymagają one poprawki jądra i wymagają pewnego nakładu pracy. Drugim problemem jest to, że Linus nie wierzy w zagwarantowanie zgodności z poprzednimi wersjami sterowników urządzeń jako nowe jądra wydania. Konsekwencją jest to, że każdy wyeksportowany interfejs API jądra może nagle ulec zmianie, powodując niezgodność istniejących sterowników korzystających z interfejsu API i wymagających ponownego skompilowania ich dla nowych jąder.

Brak wbudowanego debugera jądra oznaczało, że debugowałem za pomocą instrukcji drukowania debugowania (pomyślałem, że spędzam tyle czasu na debugowaniu za pośrednictwem printkdrukarek w trybie jądra — jak bym instalował i uczyć debugera jądra), a zmieniające się interfejsy API jądra i struktury danych oznacza, że Filemon dla systemu Linux jest zależny od jądra. Działa na shrink-wrapped Red Hat 7.1 i 7.2 i SuSE Linux 7.1 i 7.2, a ewentualnie na innych dystrybucji komercyjnych, ale muszę jeszcze opracować sposób izolowania sterownika od dowolnych zmian jądra (jeden, który złamał wczesną wersję sterownika była zmiana konwencji wywoływania funkcji jądra z standardu do szybkiego wywołania).

Plikmon dla systemu Linux ma dokładnie taki sam interfejs jak jego odpowiednik systemu Windows i wygląda niezwykle podobnie (zobacz zrzut ekranu na stronie Filemon for Linux). Moje wnioski dotyczące łatwości opracowywania ogólnego filtru systemu plików zależnych od jądra dla systemu Linux powinny być jasne: trudno, jeśli nie niemożliwe. Z kolei sterowniki stosowe (filtr) w każdej domenie sterownika (sieci, systemach plików, magazynie, danych wejściowych itp.) były obsługiwane przez architekturę we/wy systemu Windows NT od początku.

Pobierz plikmon dla systemu Linux pod adresem http://www.sysinternals.com/linux/utilities/filemon.shtml

SYSINTERNALS AT WWW.MICROSOFT.COM

Po raz kolejny oto najnowsza odsłona odwołań sysinternals w artykułach bazy wiedzy Microsoft Knowledge Base (KB) wydanych od ostatniego biuletynu. Zwróć uwagę na ten, który ma nawet Filemon w tytule. Spowoduje to wyświetlenie 31 całkowitej liczby odwołań KB do programu Sysinternals. Pełną listę można znaleźć na stronie http://www.sysinternals.com/ntw2k/info/mssysinternals.shtml

  • Komunikat o błędzie wyjątku krytycznego występuje podczas instalacji http://support.microsoft.com/support/kb/articles/Q273/9/18.ASP

  • FP2000: Pliki listy typów sterowników bazy danych są puste http://support.microsoft.com/default.aspx?scid=kb; EN-US; Q308935

  • INSTRUKCJE: Rozwiązywanie problemów z błędem 1928 "Błąd podczas rejestrowania aplikacji COM+" http://support.microsoft.com/default.aspx?scid=kb; EN-US; Q308940

  • PRB: Konflikt z EOF podczas korzystania z #import z ADO http://support.microsoft.com/support/kb/articles/Q166/1/12.ASP

  • ŻĄDANIE ściągnięcia: biblioteki DLL nie są zwalniane po wywołaniu funkcji CoFreeUnusedLibraries http://support.microsoft.com/support/kb/articles/Q301/3/57.ASP

  • ŻĄDANIE ściągnięcia: błąd 80004005 "Aparat bazy danych Microsoft Jet nie może otworzyć pliku "(nieznany)" http://support.microsoft.com/support/kb/articles/Q306/2/69.ASP

  • PRB: FileMon pokazuje, że nie można załadować DAO360.dll MSJet49.dll, MSJet48.dll i innych plików MSJetxx.dll http://support.microsoft.com/support/kb/articles/Q306/3/86.ASP

  • SMS: Agent spisu oprogramowania generuje nieprawidłowy komunikat o błędzie strony http://support.microsoft.com/support/kb/articles/Q302/6/51.ASP

INFORMACJE WEWNĘTRZNE

WEWNĄTRZ SYSTEMU WINDOWS 2000, INTERAKTYWNY DYSK DVD

Jeśli pominięto specjalne ceny wersji wstępnej INSIDE Windows 2000, interaktywny samouczek DVD w systemie Windows 2000 wewnętrznych, mamy dobrą wiadomość! CENA WSTĘPNA w wysokości 950 USD, która jest większa niż 25% od normalnej ceny pojedynczego użytkownika, jest nadal dostępna. Aby ZAMÓWIĆ TERAZ, lub aby uzyskać więcej informacji na temat tego ekscytującego nowego produktu David Solomon i Mark Russinovich, przejdź do http://www.solsem.com/dvd.html. Dostępny również w formacie dystrybucji sieci na potrzeby przesyłania strumieniowego intranetu!

OZNACZ DATY: RUSSINOVICH I SOLOMON UCZĄ SIĘ PONOWNIE W SEATTLE I BOSTONIE

Nasza 3-dniowa klasa wewnętrzna Windows 2000/XP w Austin w zeszłym miesiącu była sukcesem wyprzedaży, więc planujemy jeszcze dwie oferty: 17-19 kwietnia w pobliżu Seattle i 12-14 czerwca w Bostonie (rejestracja zostanie otwarta wkrótce). Klasa jest oparta na "Inside Windows 2000, 3rd Edition" i obejmuje podsystemy środowiska, wysyłanie wywołań systemowych, wątki systemowe, uruchamianie i zamykanie, wewnętrzne rejestry, procesy i planowanie wątków, zarządzanie pamięcią, zabezpieczenia, system we/wy, magazyn, NTFS i menedżer pamięci podręcznej. Dzięki zrozumieniu działania wewnętrznego systemu Windows XP i 2000 można korzystać z platformy wydajniej i efektywniej debugować i rozwiązywać problemy. Aby uzyskać szczegółowe informacje, zobacz http://www.sysinternals.com/seminar.shtml

PLIKI MANIFESTU SYSTEMU WINDOWS XP

Jedną z najbardziej widocznych zmian w systemie Windows XP jest nowy wygląd i działanie zapewniane przez pulpit Luna. Luna jest w rzeczywistości "motywem", a jeśli uruchamiasz aplikację, która nie jest świadoma motywu (żadna aplikacja nie została napisana specjalnie, aby korzystać z motywów systemu Windows XP), aplikacja ma starszy wygląd i działanie w stylu systemu Windows 2000. Jednak nawet starsze aplikacje mają bardzo łatwy wygląd, nawet jeśli nie masz kodu źródłowego. Wystarczy utworzyć plik manifestu XML dla aplikacji, który informuje moduł ładujący systemu Windows XP, że aplikacja chce użyć biblioteki DLL Common Control w wersji 6 (comctl32.dll w %SystemRoot%\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1 df_6.0.0.0_x-ww_1382d70asystemie ) zamiast wersji obsługującej motyw w programie %SystemRoot%\System32. Oto plik manifestu, który uwzględnia motyw Eksploratora procesów w wersji 5.2:

<?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>

Zmień nazwę aplikacji, wersję i opis aplikacji, którą chcesz rozpoznać motyw, a następnie zapisz plik, tak aby miał taką samą nazwę jak plik wykonywalny aplikacji, z wyjątkiem dołączania do niej pliku ".manifest", np. procexp.exe.manifest. Jeśli jesteś deweloperem aplikacji, możesz osadzić plik manifestu w zasobach aplikacji, podobnie jak w przypadku eksploratora procesów. Zobacz kod źródłowy pliku Filemon, aby zapoznać się z przykładem tego, jak to zrobić.

CO ZNAJDUJE SIĘ W X-BOX?

Jeśli ostatnio obserwujesz świat gier konsolowych, prawie na pewno wiesz, że nowa konsola X-Box firmy Microsoft korzysta ze zmodyfikowanej wersji systemu Windows 2000. Podczas gdy obecnie w Firmie Microsoft na niedawną podróż badawczą systemu Windows XP na 4 wydanie naszej książki, Dave Solomon i nauczyłem się od zespołu deweloperów Systemu Windows 2000/XP, że grupa X-Box zdecydowała się na system Windows 2000 za wsparcie sterowników. Po podjęciu decyzji deweloperzy X-Box uzyskali kopię drzewa źródłowego systemu Windows 2000 i odeszli, prawie nie słychać od zespołu systemu Windows 2000/XP.

X-Box ma wysoce zmodyfikowaną, rozłożoną w dół wersję systemu Windows 2000, która mieści się w zaledwie 512 KB pamięci. Wszystkie nieistotne podsystemy zostały usunięte (pierwotnie pozbawiły podsystem Plug and Play tylko w celu dodania go z powrotem po uświadomieniu sobie, że ładowanie sterownika zależy od niego), działa tylko jeden proces i nie ma podsystemu Win32 (tylko interfejs API X-Box). Urządzenie X-Box ma tylko 64 MB pamięci fizycznej i nie obsługuje pamięci wirtualnej, więc menedżerowie pamięci i pamięci podręcznej systemu Windows 2000 są dwoma podsystemami, które zostały usunięte. W przypadku takich drastycznych modyfikacji należy wziąć pod uwagę nowy system operacyjny, a nie Windows 2000.

Więcej informacji o urządzeniach X-Box, GameCube i PS2 można dowiedzieć się na stronie http://www.e-insite.net/ednmag/index.asp?layout=article& articleid=CA185947&pubdate=12-20-01

LOSOWE STATYSTYKI SYSTEMU WINDOWS XP

Poniższe statystyki zostały opublikowane przez firmę Microsoft w witrynie internetowej producenta OEM System Builder (pod adresem http://oem.microsoft.com — możesz zarejestrować się bezpłatnie) i myślałem, że znajdziesz niektóre z nich interesujące i/lub zabawne.

Nawiasem mówiąc, numer kompilacji końcowej wersji systemu Windows XP nie spadnie przypadkowo na 2600 — został rozmyty trochę (numer kompilacji jest zwiększany za każdym razem, gdy system operacyjny kompiluje się w laboratorium kompilacji, zwykle raz dziennie pracy). Źródła wewnętrzne twierdzą, że liczba została skierowana do 2600-społeczności, luźno dzianinej grupy hakerów (http://www.2600.com/)jako komunikat demonstrujący zaufanie zespołu XP do bezpieczeństwa XP.

  • Liczba dni opracowywania systemu Windows XP: 600 (12/20/99 – 8/24/01)
  • Liczba skoncentrowanych członków zespołu: 5736
  • Liczba testerów na dewelopera: 1,4
  • Liczba dzieci urodzonych podczas projektu: 452
  • Liczba zatrudnionych stażystów: 504
  • Ilość makaronu zużywanego podczas 40 "Spotkań informacji systemu Windows": 6000 funtów
  • Liczba obsługiwanych® przez Frappuccino: 86 400
  • Dolary zebrane dla Seattle Ronald McDonald House (lokalna organizacja charytatywna): 2 miliony dolarów
  • Liczba przypadków testowych funkcji przywracania systemu: 1,6 mln
  • Liczba przypadków testowych grafiki Direct3D uruchamianych od systemu Windows XP RC1: 43,114,143
  • Liczba aplikacji przetestowanych pod kątem zgodności: 5500
  • Liczba urządzeń obsługiwanych w pudełku: 12 000
  • Procent najpopularniejszych aplikacji komputerowych dystrybuowanych w ciągu ostatnich trzech lat, które będą zgodne z systemem Windows XP: 90%
  • Liczba utworów w największym przypadku testowym biblioteki multimediów cyfrowych: 31 000
  • Długość najdłuższego pojedynczego pliku przechwyconego przez program Windows Movie Maker: 114
  • Liczba języków, które lokalizujemy na: 24 w pełni i 9 częściowo
  • Liczba krajów uczestniczących w rozpoczęciu 10/25: Ponad 50
  • Liczba osób uczestniczących w wydarzeniach startowych na całym świecie: ponad 580 000 miejsc ... plus publiczność online 5120 budowniczych systemów na całym świecie

NOWA ULEPSZONA WINDBG

Windbg to graficzny fronton do obsługi debugowania jądra wbudowanego w jądro Windows NT/2000/XP. Do ostatnich kilku lat Windbg słusznie zdobył reputację bycia flakey i kłopotliwe, ale to zmieniło się od czasu, gdy Microsoft skupił się na jego poprawie. Najnowsza wersja Windbg, dostępna jako bezpłatna wersja z http://www.microsoft.com/ddk/Debugging/witryny , jest znacznie ulepszona w porównaniu ze starymi wersjami i łatwiejsza w użyciu. Istnieją pewne nowe funkcje, które nawet doświadczonych użytkowników Windbg mogą nie być świadomi, i dwa polecenia, które są przydatne dla administratorów systemów próbujących zdiagnozować awarie systemu.

Funkcja, która sprawia, że najnowsza wersja Windbg jest bardzo łatwa w użyciu, jest jego obsługa serwera symboli firmy Microsoft. Problem z przeglądaniem zrzutów awaryjnych lub debugowania aplikacji z usługą Windbg jest to, że musisz zainstalować poprawne pliki symboli debugowania dla instalacji. W przypadku dodatków Service Pack, poprawek i ewentualnie awarii z różnych systemów operacyjnych (np. Windows NT i Windows XP) może to być uciążliwe. Dzięki obsłudze serwera symboli wystarczy wprowadzić adres URL serwera symboli firmy Microsoft w oknie dialogowym Ścieżka symboli Windbg, a windbg pobierze symbole z serwera na żądanie i zapisze je w określonym katalogu. Serwer symboli zawiera symbole dla kandydatów wersji systemu Windows .NET Server Beta 3, Windows XP i XP, Windows 2000 i jego dodatków Service Pack oraz gorących poprawek, Windows NT 4, MDAC 2.1-2.7, IIS i ISA.

Dwa polecenia, które są przydatne do debugowania zrzutów awaryjnych, to !analyze i .dump. Uruchom polecenie !analyze (określ -v przełącznik), aby uzyskać automatyczną analizę na podstawie heurystyki awarii. To polecenie jest już dość zaawansowane, a firma Microsoft uwzględnia więcej historycznych danych z rzeczywistych awarii stanie się jeszcze bardziej dokładna.

Polecenie .dump jest przydatne zarówno w przypadku debugowania trybu użytkownika, jak i analizy zrzutu awaryjnego trybu jądra. W niektórych środowiskach serwerów, zwłaszcza serwerów internetowych, można zidentyfikować przeciek pamięci lub inny problem, ale nie być skłonnym do zatrzymania i ponownego uruchomienia serwera, dopóki przyczyna nie zostanie odizolowana. W systemach Windows XP i .NET Server można dołączyć do procesu serwera przy użyciu narzędzia Windbg, uruchomić polecenie zrzutu .dump, aby wygenerować plik zrzutu awaryjnego pamięci użytkownika, a następnie odłączyć (za .detach pomocą polecenia ), wstrzymując serwer tylko krótko. Następnie deweloper może przejąć wygenerowany plik zrzutu i przeanalizować go w trybie offline.

Domyślnie systemy Windows Server generują zrzut pełnej pamięci, który jest tak duży, jak ilość pamięci fizycznej obecnej w systemie i dlatego może być bardzo duża. Można jednak załadować zrzut do narzędzia Windbg i użyć .dump polecenia , aby wygenerować mniejszą pamięć jądra lub minidump z pełnego zrzutu. Mniejsze pliki są łatwiejsze do wymiany i często są potrzebne do odizolowania przyczyny awarii.

Pobierz najnowszą wersję narzędzia Windbg z http://www.microsoft.com/ddk/Debugging/witryny i znajdź instrukcje dotyczące konfigurowania narzędzia Windbg w celu pobrania symboli z serwera symboli firmy Microsoft pod adresem http://www.microsoft.com/ddk/debugging/symbols.asp

CO SIĘ DZIEJE

PROFILOWANIE PROCESU ROZRUCHU SYSTEMU WINDOWS XP PRZY UŻYCIU USŁUGI BOOTVIS

Aby ułatwić im dostrajanie procesu rozruchu systemu Windows XP, zespół wydajności systemu Windows XP instrumentował kluczowe punkty w systemie operacyjnym i opracował narzędzie o nazwie BootVis do wyświetlania śladów rozruchu. Zaskakujący ruch sprawił, że narzędzie było swobodnie dostępne. Jest bardzo łatwy w użyciu i wyświetla niesamowitą ilość szczegółów, w tym informacje o tym, kiedy sterowniki inicjują, kiedy i gdzie występuje we/wy dysku, oraz kiedy są uruchamiane usługi i aplikacje. Następnym razem pokażę, gdzie można go uzyskać i jak go używać.


Dziękujemy za przeczytanie biuletynu Sysinternals.

Opublikowano poniedziałek, 07 stycznia 2002 19:01 przez ottoh

[Archiwum biuletynów ^][< Wolumin 3, Liczba 2][Wolumin 4, Liczba 2 >]