[Archiwum biuletynów ^][< Wolumin 1, Numer 3][Wolumin 1, Liczba 5 >]

System wewnętrzny biuletyn woluminu 1, numer 4

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


5 sierpnia 1999 r. — w tym problemie:

  1. CO NOWEGO W SYSTEMACH WEWNĘTRZNYCH

    • Portmon v3.0
    • Frob v1.5
    • ListDLLs v2.1
    • Nowy ROZRUCH. Opcje INI
    • PsList v1.0
    • Sierpień "NT Internals"
    • Nie tak nowe rzeczy
  2. WIADOMOŚCI WEWNĘTRZNE

    • Korekta re: Ochrona plików systemowych
    • Wydany DDK Win2K RC1
    • Interfejs API AWE win2K
    • WinDev '99 West
  3. CO SIĘ DZIEJE

    • Narzędzie Undocumented DiskEdit z dodatkiem SP4

SPONSOR: WINTERNALS SOFTWARE

Biuletyn Internals Systems 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. Produkty Winternals Software obejmują FAT32 dla systemu Windows NT 4.0, ERD Commander (możliwości rozruchu dla systemu Windows NT) i NTRecover.

Winternals Software ogłasza wydanie najnowszego narzędzia odzyskiwania systemu, Remote Recover. Odzyskiwanie zdalne umożliwia dostęp do dysków komputera, który nie można uruchomić za pośrednictwem protokołu TCP/IP z dowolnego miejsca w przedsiębiorstwie. Oszczędzaj czas i obsługę dolarów dzięki zdalnej poprawienia sterowników, systemu plików i problemów z konfiguracją, które utrzymują systemy NT lub Win9x poza wierszem. Pobierz bezpłatną wersję próbną tylko do odczytu na http://www.sysinternals.com/rrecover.htmstronie i kup wersję do odczytu/zapisu na stronie http://www.winternals.com.


Witam wszystkich,

Witamy w czwartym wydaniu biuletynu Systems Internals. Biuletyn ma obecnie 7000 subskrybentów.

W ostatnim biuletynie wskazałem, że będę obejmować interfejs API AWE systemu Windows 2000 (Win2K). Zwróciłem uwagę, że AWE oznacza "Address Windowing Extensions" (dla początkujących na świecie systemu Windows, interfejs API oznacza "Application Programming Interface"). Ta strona w witrynie sieci Web dla deweloperów sprzętu firmy Microsoft opisuje ją w następujący sposób: http://www.microsoft.com/hwdev/NTDRIVERS/AWE.htm. Jednak czytelnik Laxmikant Gunda wskazał mi inny adres URL w witrynie internetowej firmy Microsoft, http://www.microsoft.com/windows/server/News/fromMS/intelpae.aspgdzie AWE jest wyznaczony interfejs API "Advanced Windowing Extensions". Oczywiście "Address" ma większe znaczenie niż "Advanced" w kontekście interfejsu API (który opisałem później w tym biuletynie), więc myślę, że niektórzy pisarz marketingu mieli oczy grać sztuczkę na nich, ponieważ trawili nieprzetworzone materiały techniczne dla strony wiadomości.

Widziałem to zamieszanie stało się wcześniej w zakresie technicznym firmy Microsoft. Ostatnio na ekranie powitalnym program instalacyjny wersji Beta 3 zestawu Win2K Installable File Systems (IFS) ogłosił się na ekranie powitalnym jako konfiguracja zestawu "Internal File Systems Kit". "I" w IFS zawsze stał na "Installable", a "Wewnętrzny" nie ma tu większego sensu (chyba że przypadkowo wydał niepubliczne wersje zestawu), więc zgaduję, że inny przypadek coś jest wkręcony w tłumaczeniu (lub program instalacyjny nie ma przydatnego członka zespołu systemów plików i używając ich najlepszego zgadnięcia).

Co to jest mój punkt? Tak naprawdę nie mam jednego, innego niż wcześniej lub później będziemy mieli overrun akronim, gdzie deweloperzy i osoby marketingowe zaczynają przypadkowo używać tych samych trzyliterowych akronimów do opisania różnych technologii. Ktoś w grupie usług IIS firmy Microsoft (Internet Information Server) będzie nazywać nowy interfejs API o nazwie AIE ("Advanced ISAPI Extensions" - ISAPI oznacza Internet Server API) i ktoś w grupie MTS (Microsoft Transaction Server) pojawi się z innym AIE, "Atomic Interface Exchange". I jestem pewien, że pewnego dnia osoba marketingowa lub pisarz techniczny zostanie przekazany dokument techniczny od zespołu usług IIS, który odnosi się do "AIE", a nie wiedząc różnicy między bazą danych i systemem plików, zgadnie, że oznacza "Advanced Internet Explorer".

Widziałem zamieszanie akronimów w pracy innych miejsc, zbyt. Niedawny artykuł magazynu Windows NT Magazine omawiający porty szeregowe i równoległe używał terminu "Port COM" w tekście. Po przejściu przez edytor kopii z ostatnim przekazaniem i opublikowaniu artykułu fraza stała się portem COM (Component Object Model).

Jak zwykle, przekaż biuletyn do znajomych, że uważasz, że może to interesujące.

Dziękujemy.

-Mark

CO NOWEGO W SYSTEMACH WEWNĘTRZNYCH

PORTMON V3.0

Portmon został ulepszony na główne sposoby dzięki wersji 3.0. Portmon to aplikacja monitorowania portów szeregowych i równoległych dla systemu Windows 95/98/NT/2K. W wersji 3.0 wprowadzono:

  • zaawansowana funkcja filtrowania i wyróżniania danych wyjściowych
  • możliwość monitorowania aktywności portów szeregowych i równoległych w systemach zdalnych
  • Obsługa logowania do pliku i drukowania
  • integracja schowka
  • ustawienie umożliwiające określenie ilości danych odczytu/zapisu w dzienniku

Pobierz portmon v3.0 pod adresem http://www.sysinternals.com/portmon.htm.

FROB V1.5

System Windows NT 4.0 Server zapewnia administratorom możliwość kontrolowania długości kwantowych (kolei), które harmonogram wątków NT daje wątkom. Na stacji roboczej z systemem Windows 4.0 aplet System w Panel sterowania ma kartę Wydajność z suwakiem, który pozwala wyznaczyć impuls kwantowy dla wątków pierwszego planu (suwak jest również obecny na serwerze, ale nie robi nic). Krótsze kwanty zazwyczaj powodują, że aplikacje bardziej reagują na dane wejściowe użytkownika, podczas gdy długie kwanty są dobre dla systemów przeznaczonych do uruchamiania nieinterakcyjnych aplikacji serwerowych.

Program Frob z systemów wewnętrznych zapewnia ten sam bardziej szczegółową kontrolę nad długościami kwantowymi zarówno na stacji roboczej, jak i na serwerze, umożliwiając dostrojenie kwantowych do obciążenia uruchamianego w systemie. Jednak ponieważ Frob modyfikuje ustawienia wewnętrzne w jądrze NT, należy zaktualizować go do pracy z każdym nowym dodatkiem Service Pack. Wersja Frob w wersji 1.5 jest teraz dostępna i zapewnia zgodność z dodatkiem Service Pack 5.

Możesz pobrać plik Frob v1.5 pod adresem http://www.sysinternals.com/ntfrob.htm.

LISTDLLS V2.1

ListDLLs to narzędzie wiersza polecenia, które wyświetla szczegółowe informacje o wersji bibliotek DLL, które zostały załadowane. ListDLLs wyodrębnia informacje o wersji z plików na dysku, które odpowiadają ścieżkom plików załadowanych bibliotek DLL, i uzyskuje nazwy ścieżek przy użyciu nieudokumentowanych interfejsów. Czasami plik DLL na dysku jest aktualizowany po jego załadowaniu przez aplikację, w którym przypadku listDLLs wyświetla nieprawidłowe informacje o wersji.

ListDLLs w wersji 2.1 rozpoznaje różnicę między dyskami i załadowanych wersji biblioteki DLL, flaguje różnicę w danych wyjściowych. W przypadku niezgodności listDLLs wyświetla czasy łącza pliku na dysku i załadowany plik. Czasy łączenia plików wykonywalnych i DLL znajdują się w nagłówku formatu pliku przenośnego pliku wykonywalnego (PE), którego nt używa do ich spakowania.

Pobierz listyDLLs w wersji 2.1 pod adresem http://www.sysinternals.com/listdlls.htm.

NOWY ROZRUCH. OPCJE INI

Win2K Beta 3 wprowadza trzy nowe BOOT. Przełączniki INI. Wszystkie trzy są związane z rozszerzeniami intel physical address extensions (PAE), technologii intel wprowadzonej z Pentium Pro, aby umożliwić systemom x86 adres do 64 GB pamięci fizycznej. Tradycyjnie systemy x86 mogą zajmować się tylko 4 GB pamięci fizycznej, ale z mikroukładem PAE i 450NX, ta bariera jest uszkodzona. Win2K to pierwszy system operacyjny firmy Microsoft, który będzie korzystać z rozwiązania PAE (Sun Solaris 7 i SCO UnixWare 7 już obsługują rozwiązanie PAE). Istnieje w rzeczywistości specjalna kompilacja jądra Win2K o nazwie ntkrnlpa.exe, która ma wbudowaną obsługę. NTLDR, moduł ładujący rozruchu Win2K, jest odpowiedzialny za ładowanie standardowego jądra, ntoskrnl.exe lub paE włączonego, na podstawie tego, czy system jest w stanie obsłużyć więcej niż 4 GB pamięci i ma taką ilość.

Wszystkie trzy nowe BOOT. Przełączniki INI mają na celu debugowanie sterowników urządzeń przeznaczonych do pracy z dużymi systemami pamięci (systemami z ponad 4 GB). Pierwszy / PAE, ma NTLDR załadować PAE wersji jądra, nawet jeśli komputer nie ma więcej niż 4 GB pamięci obecnej. Drugi , /NOPAE, wymusza NTLDR do załadowania standardowego jądra. Na koniec przełącznik /NOLOWMEM ma jądro Win2K używa tylko pamięci fizycznej powyżej 4 GB. Wymusza to, aby wszystkie adresy fizyczne używane przez win2K wymagały więcej niż 32-bitowych reprezentacji, a tym samym ćwiczą obsługę dużych adresów fizycznych przez sterownik urządzeń.

Znajdź najbardziej pełną listę rozruchu. Przełączniki INI dostępne pod adresem http://www.sysinternals.com/bootini.htm.

PSLIST V1.0

Większość smaków system UNIX dostarczać za pomocą narzędzia wiersza polecenia o nazwie "ps", którego administratorzy używają do wyświetlania listy statystyk procesora CPU i pamięci. NT ma równoważne narzędzie oparte na graficznym interfejsie użytkownika, Menedżer zadań, ale NT nie ma wersji wiersza polecenia. Zestaw Resource Kit systemu Windows NT zawiera dwa polecenia "ps" podobne do narzędzi, pstat i pumon. Narzędzie PsList pokazuje kombinację informacji dostępnych za pomocą narzędzia pstat i pumon, ale ma możliwość, że żadne narzędzie zestawu Resource Kit nie ma: można użyć narzędzia PsList do wykonywania zapytań dotyczących przetwarzania informacji dotyczących systemu zdalnego.

Program PsList przyjmuje kilka flag, które umożliwiają wyświetlanie statystyk procesora CPU, pamięci lub wątku oraz przełącznik, który umożliwia określenie innego komputera NT do wykonywania zapytań. Program PsList używa wbudowanych liczników wydajności NT, aby uzyskać wyświetlane informacje i działa na NT 3.51, 4.0 i Win2K.

Pobierz plik PsList pod adresem http://www.sysinternals.com/pslist.htm.

AUGUST "NT INTERNALS"

Moja kolumna "NT Internals" w sierpniowym wydaniu windows NT Magazine jest "Inside Win2K Reliability Enhancements, Part 1". Po raz pierwszy w trzyczęściowej serii opisano funkcje Win2K mające na celu pomoc administratorom w przejściu systemu po tym, jak stał się nie do uruchomienia. Obejmują one rozruch "tryb awaryjny" i konsolę odzyskiwania.

Od początku sierpnia wersje online artykułów windows NT Magazine są dostępne tylko dla subskrybentów, a artykuły są publikowane zgodnie z każdym nowym wydaniem. Jeśli subskrypcja nie została zasubskrybowana, przejdź za pośrednictwem linku subskrypcji pod adresem http://www.sysinternals.com/publ.htm , aby uzyskać rabat na subskrypcję Systemów wewnętrznych.

NIE TAK NOWE RZECZY

Jeśli jeszcze nie przestraszyłeś znajomego lub dwóch z nim, zapoznaj się z modułem wygaszającym ekranu Internals Internals Bluescreen. Wersja 2.0 wyświetla wersję Win2K blue screen of Death (BSOD) i sekwencję uruchamiania Win2K po uruchomieniu go w systemie Win2K. Jestem dumny, że Bluescreen Screen Saver został niedawno nagrodzony pięć gwiazdek, najwyższa ocena możliwa, z Ziff-Davis's Software Library.

Pobierz program Bluescreen Screen Saver v2.0 pod adresem http://www.sysinternals.com/bluescrn.htm.

WIADOMOŚCI WEWNĘTRZNE

KOREKTA RE: OCHRONA PLIKÓW SYSTEMOWYCH

W ostatnim biuletynie stwierdziłem, że systemowa ochrona plików Win2K (SFP) umożliwia aplikacjom, takim jak Dodatki Service Pack (SPs) i hot-fixs, aktualizując pliki systemu przez wywołanie funkcji eksport SFP o nazwie SfcTerminateWatcherThread. Podczas gdy SFP eksportuje tę funkcję, dostawcy SPS i poprawki na gorąco nie używają funkcji podczas aktualizowania plików systemowych. Zamiast tego mogą aktualizować pliki systemowe, ponieważ zastępują istniejące pliki systemowe tymi, które są podpisane cyfrowo przez firmę Microsoft. SFP wykrywa aktualizacje, ale pozwala im trzymać się, ponieważ SFP sprawdza, czy nowe pliki są podpisane cyfrowo. Kolejną korektą dotyczącą mojego pokrycia SFP jest to, że po Win2K Beta 3 Microsoft zmienił nazwę SFP na Windows File Protection (WFP).

Pamiętaj, aby zapoznać się z wrześniowym wydaniem magazynu Windows NT, gdzie znajdziesz moją kolumnę NT Internals "Inside Win2K Reliability Enhancements, Part 2", w której opisano szczegółowo podpisywanie plików cyfrowych WFP i Microsoft.

WYDANY DDK WIN2K RC1

Teraz możesz pobrać wersję Win2K RC1 zestawu Device Driver Development Kit (DDK) firmy Microsoft pod adresem http://www.microsoft.com/ddk/ddk2kRC1.htm. Zestaw można pobrać bezpłatnie lub przejrzeć dokumentację online.

INTERFEJS API AWE WIN2K

Już wspomniałem o interfejsie API AWE we wprowadzeniu do tego biuletynu i odwołuje się do strony internetowej firmy Microsoft, w której można dowiedzieć się więcej: http://www.microsoft.com/hwdev/NTDRIVERS/AWE.htm. W systemach z ponad 4 GB pamięci fizycznej jądra PAE z obsługą systemu Win2K - ntkrnlpa.exe - jest w stanie wykorzystać całą pamięć fizyczną komputera bez modyfikacji aplikacji. Serwer Win2K Advanced będzie używać do 8 GB pamięci fizycznej, a serwer Win2K Datacenter będzie używać do 64 GB pamięci fizycznej.

Podczas gdy każda aplikacja w dużym systemie pamięci ma do dyspozycji co najwyżej 2 GB pamięci wirtualnej (3 GB, jeśli /3GB ROZRUCHu. Określono przełącznik INI), suma pamięci fizycznej przypisanej do wszystkich wykonywanych aplikacji może być równa ilości pamięci fizycznej. Ponadto w systemie Win2K pamięć podręczna systemu plików jest przypisana maksymalnie 960 MB pamięci wirtualnej, ale ilość buforowanych danych plików może być znacznie większa niż pamięć fizyczna przypisana do pamięci podręcznej może przekroczyć 960 MB.

Interfejs API AWE zapewnia poszczególnym aplikacjom możliwość bezpośredniego kontrolowania pamięci fizycznej i więcej niż limit 2 GB lub 3 GB implikowany przez rozmiar wirtualnej przestrzeni adresowej. Podstawową ideą interfejsu API AWE jest to, że aplikacja wyznacza część wirtualnej przestrzeni adresowej jako "okno" do pamięci fizycznej. Następnie przydziela fragment pamięci fizycznej. Górny limit ilości pamięci fizycznej, którą może przydzielić aplikacja, jest zasadniczo ilością pamięci fizycznej w systemie, pomniejszoną o wszelkie niestronicowane pamięci przydzielone przez jądro, sterowniki urządzeń i inne aplikacje korzystające z interfejsu API AWE. Gdy aplikacja chce uzyskać dostęp do części przydzielonej pamięci fizycznej, mapuje pamięć do okna adresów wirtualnych. W związku z tym ilość pamięci fizycznej, do którego aplikacja może uzyskać dostęp za pomocą danego mapowania, jest ograniczona przez rozmiar zarezerwowanego okna. Na koniec, gdy aplikacja zostanie wykonana z pamięci fizycznej, po prostu zwolni pamięć i zamknie (cofnięć przydział) utworzonego przez nią okna adresu wirtualnego.

Interfejsy API, które odpowiadają tym akcjom, są eksportowane przez plik kernel32.dll i są następujące:

  • Aplikacja wywołuje element VirtualAlloc z flagami MEM_PHYSICAL i MEM_RESERVE w celu utworzenia okna adresu wirtualnego
  • PrzydzielenieuserPhysicalPages przydziela pamięć fizyczną dla aplikacji
  • Aplikacja używa mapUserPhysicalPages do mapowania części pamięci fizycznej do okna
  • FreeUserPhysicalPages zwalnia pamięć fizyczną przydzieloną przez aplikację

Możliwość bezpośredniego manipulowania wieloma GB pamięci przez aplikacje to dobrodziejstwem dla programów intensywnie korzystających z pamięci, takich jak serwery baz danych, serwery poczty e-mail, serwery sieci Web, analiza finansowa i aplikacje naukowe.

Chociaż możliwość korzystania z więcej niż 4 GB pamięci fizycznej jest dozwolona tylko w niektórych wersjach win2K, interfejs API AWE jest obecny we wszystkich wersjach. Oznacza to, że w systemie Win2K Professional z 4 GB pamięci, na przykład interfejs API AWE nadal zapewnia aplikacjom intensywnie korzystającym z pamięci możliwość zarządzania ponad 2 lub 3 GB danych w pamięci fizycznej.

Interfejs API AWE ma równoważne interfejsy trybu jądra, w których kernel32.dll opiera interfejsy API trybu użytkownika. Sterownik może przydzielić pamięć fizyczną przy użyciu mmAllocatePagesForMdl, który jest odpowiednikiem trybu jądra PrzydzieluserPhysicalPages. Ta funkcja ma swój prototyp w pliku Ntddk.h win2K DDK, ale jest nieudokumentowana. Jego prototyp to:

NTKERNELAPI
PMDL
MmAllocatePagesForMdl (
    IN PHYSICAL_ADDRESS LowAddress,
    IN PHYSICAL_ADDRESS HighAddress,
    IN PHYSICAL_ADDRESS SkipBytes,
    IN ULONG TotalBytes
    );

LowAddress jest najniższym akceptowalnym adresem fizycznym, który chce przydzielić, a wartość HighAddress jest najwyższa. SkipBytes to liczba bajtów, które jądro powinno zachować wolne powyżej LowAddress i poniżej adresu, pod którym rozpoczyna przydzielanie pamięci fizycznej. TotalBytes to liczba bajtów, które sterownik chce przydzielić. Zwracana wartość funkcji jest MDL, że jeśli wartość inna niż zero opisuje pamięć fizyczną, jądro dało sterownik. Aby uzyskać dostęp do części pamięci, sterownik musi utworzyć podrzędne listy MDL z zwróconego MDL, który opisuje odpowiednie części pamięci fizycznej. Jeśli sterownik chce uzyskać dostęp do pamięci fizycznej opisanej przez sub-MDL, musi mapować pod-MDL przy użyciu polecenia MmGetSystemAddressForMdlSafe.

Sterowniki używają MmFreePagesFromMdl, odpowiednika FreeUserPhysicalPagestrybu jądra , aby zwolnić pamięć fizyczną przydzieloną za pomocą MmAllocatePagesForMdlpolecenia . Ta funkcja jest również prototypowana w ntddk.h:

NTKERNELAPI
VOID
MmFreePagesFromMdl (
    IN PMDL MemoryDescriptorList
    );

Należy pamiętać, że sterownik jest odpowiedzialny za cofnięcie przydziału MDL zwróconego przez MmAllocatePagesForMdl wywołanie exFreePool, ponieważ MmFreePagesFromMdl nie zwalnia MDL.

WIATR '99 ZACHÓD

Wydanie West Coast z 1999 roku premier konferencji dla deweloperów systemu Windows szybko zbliża się. WinDev '99 West odbywa się 13-18 września w Santa Clara Marriot w Kalifornii. Mówi wiele wielkich nazwisk w rozwoju systemu Windows, w tym Jeff Richter, Jeff Prosise i Don Box. Będę tam z Jamie Hanrahan i Brian Catlin na torze kierowcy urządzenia. Moje prezentacje obejmują codzienny samouczek dotyczący wewnętrznych NT, a także jeden na piśmie sterowników systemu plików Windows NT/2K i jeden w zaawansowanych problemach z opracowywaniem sterowników sterowników urządzeń. Przyjdź i powiedz cześć!

Odwiedź stronę internetową WinDev West pod adresem http://www.butrain.bu.edu/windev/.

CO SIĘ DZIEJE

NT 4.0 SP4 DISKEDIT

Windows NT 4.0 z dodatkiem Service Pack 4 dostarczanym z niewygodnym narzędziem na swoim dysku CD, którego wiele osób mogło nie zauważyć: DiskEdit. Nic dziwnego: narzędzie nie instaluje się na dysku twardym i nie zawiera żadnej dokumentacji. Jest prawie pewne, że jest to narzędzie używane wewnętrznie przez deweloperów systemu plików firmy Microsoft, które zostało przypadkowo wysłane na dysku CD. DiskEdit to skarb dla tych osób, które przegapiły narzędzie do edycji dysku Norton Utilities disk dla systemu Windows NT, lub po prostu chcesz eksplorować struktury danych NTFS i FAT na dysku. Następnym razem przekażę kilka instrukcji dotyczących korzystania z narzędzia DiskEdit.


Dziękujemy za przeczytanie biuletynu Systems Internals.

Opublikowano czwartek, 05 sierpnia 1999 19:13 pm przez ottoh

[Archiwum biuletynów ^][< Wolumin 1, Numer 3][Wolumin 1, Liczba 5 >]