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

System wewnętrzny wolumin biuletynu 2, numer 1

http://www.sysinternals.com

Copyright © 2000 Mark Russinovich


6 stycznia 2000 r. — w tym problemie:

  1. CO NOWEGO W SYSTEMACH WEWNĘTRZNYCH

    • PsKill v1.0
    • PsList v1.1
    • WinObj, wersja 2.1
    • Contig v1.3
    • NTFSCHK v1.0
    • HandleEx, wersja 2.1
    • Ctrl2cap v2.0
    • Filemon v4.26
    • Bluescreen v2.1
    • Fundelete v2.01
    • Lista openlist v1.11
    • Grudzień NT Internals
  2. WIADOMOŚCI WEWNĘTRZNE

    • Wydany klucz DDK Win2K
    • Awaria win2K za pomocą naciśnięcia klawisza
    • Aktualizacja pamięci systemu chroniona przez zapis
    • Eksplozja interfejsu API Win2K
    • David Solomon Seminaria
  3. CO SIĘ DZIEJE

    • Patenty związane z nt firmy Microsoft

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 Professional Edition (zaawansowane możliwości rozruchu dla systemu Windows NT) i Odzyskiwanie zdalne.

System PLIKÓW NTFSDOS Professional i NTFS firmy Winternals Software dla systemu Win98 zapewnia pełny dostęp do odczytu i zapisu na dyskach NTFS z systemów DOS, Windows 95 i Windows 98. NTFSDOS Pro oferuje możliwość "rozruchu dysku" z jednym dyskietki do systemu Windows NT/2K. Za pomocą systemu PLIKÓW NTFSDOS Pro można usuwać sterowniki błędów, odświeżać pliki i wykonywać ogólną konserwację systemu plików na dyskach NTFS z dyskietki rozruchowej SYSTEMU DOS. System plików NTFS dla systemu Win98 zapewnia przezroczysty dostęp do dysków NTFS z systemów Windows 95 i Windows 98. Łatwe udostępnianie aplikacji i plików między NT i Win9x na dyskach NTFS w środowisku podwójnego rozruchu. Oba narzędzia mają nawet wbudowaną funkcję NTFS Chkdsk. Bezpłatna wersja ntfsDOS Pro tylko do odczytu jest dostępna na stronie http://www.sysinternals.com/ntfspro.htm , a bezpłatna wersja ntfs tylko do odczytu dla Win98 jest dostępna na stronie http://www.sysinternals.com/ntfs98.htm.

Witam wszystkich,

Witamy w biuletynie Systems Internals. Biuletyn ma obecnie 14 000 subskrybentów.

Jak jestem pewien, że wiesz, Win2K jest w duplikatorze dysku. Wersja Win2K typu Release-to-Manufacturing (RTM) zakończyła się kompilacją 2195. RC3 był 2128, a jak opisano we wcześniejszym biuletynie, firma Microsoft zwiększa numer kompilacji każdej nocy - weekendy i święta - podczas kompilowania bieżącego drzewa źródłowego.

Byłem na Microsoft w listopadzie (zobacz aktualizację Filemon później w biuletynie z powodu, dla którego byłem tam) i członek zespołu jądra zabrał mnie na wycieczkę po Budynku 26 w kampusie firmy Microsoft. Budynek 26 jest miejscem, w którym znajduje się podstawowy zespół jądra systemu Windows NT/2K i jest miejscem, w którym znajdują się laboratoria kompilacji i testowania systemu Windows NT/2K. Laboratoria kompilacji i testowania są w przybliżeniu równe (może 30 o 60), ale laboratorium testowe jest zapchane stojakami komputerów, podczas gdy laboratorium kompilacji ma miejsce na biurku i miejsca dla budowniczych. Każdej nocy budowniczowie wyodrębnią drzewo źródłowe na kilka systemów czteroprocesorowych i uruchomią kompilację. Jeśli ktoś się zaewidencjonuje kod (nie daj Boże) przerwa kompilacji, ta osoba jest wywoływana - niezależnie od godziny, aby uzyskać ich butt w celu rozwiązania problemu. Do połowy listopada Win2K był objęty zamrożeniem kodu, gdzie jedyne dozwolone zmiany musiały zostać zatwierdzone przez komitety i być skierowane do "show-stopper" poprawek błędów.

Po utworzeniu nowej kompilacji testerzy biorą go i instalują go jednocześnie na wszystkich maszynach w ich laboratorium. Stojaki laboratoriów testowych systemów są wypełnione wszystkim, od małych komputerów ręcznych po serwery wieloprocesorowe o wielkości zmywarki od każdego znaczącego dostawcy komputerów. Po zakończeniu instalacji win2K systemy uruchamiają rozbudowane skrypty testowania obciążenia. W dalszej części rozwoju Win2K przeszedł testy obciążeniowe w tempie wyższym niż dziewięćdziesiąt procent. Stawki były znacznie niższe przed wprowadzeniem kilku ulepszeń niezawodności Win2K, takich jak Driver Verifier, narzędzie, które pomaga deweloperom wychwytywać problemy podczas własnych testów.

Niezależnie od tego, czy kompilacja przechodzi wszystkie testy, które są przekazywane do wewnętrznego serwera dystrybucji firmy Microsoft, na którym pracownicy firmy Microsoft mogą go pobrać i zainstalować. Jeśli deweloper wprowadził znaczący problem, z niecierpliwością czekamy na wiadomości e-mail od kilkuset pracowników, którzy napotykają go w ciągu następnego tygodnia. To tylko wtedy, gdy istnieje poważny problem z pewnością trafić duży odsetek użytkowników, że zespół testowy wysyła firmową wiadomość e-mail ostrzegającą firmę (nadawanie wiadomości e-mail do ponad 25.000 osób jest czymś, czego nie należy traktować lekko).

Podczas gdy byłem tam, spotkałem również Dave Cutler, główny architekt Windows NT. Co to jest do tych dni? W listopadzie zespół jądra pracował już ciężko nad następcą Win2K (znany wewnętrznie jako NT 6 lub Neptun), a Dave pracował nad dotknięciem instalacji dla 64-bitowej wersji Win2K. Dave prowadził 64-bitowy wysiłek programistyczny i 64-bitowy Win2K jest dobrze na drodze do ukończenia. Od listopada zespół jądra nadal wykonuje 64-bitową pracę na Alphas, ponieważ Intel dopiero niedawno zaczął produkować próbki procesorów Merced i było tylko jeden na kampusie.

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

Dziękujemy.

-Mark

CO NOWEGO W SYSTEMACH WEWNĘTRZNYCH

PSKILL V1.0

Zestawy Resource Kit systemu Windows NT i Win2K są wyposażone w narzędzie "kill" wiersza polecenia, ale tylko dlatego, że systemy Windows NT i Win2K nie mają jednego. Możesz zakończyć procesy lokalne za pomocą zestawu Resource Kit "kill", ale nie zdalnych. Postanowiłem zatem napisać swobodnie dostępny "kill", który, podobnie jak mój PsList, ma możliwości zdalne. Program PsKill przyjmuje identyfikator lub nazwę procesu oraz opcjonalną nazwę komputera i kończy zgodne procesy w systemie lokalnym lub zdalnym, który określisz. Nie trzeba nawet instalować składnika klienta na komputerze zdalnym. Jeśli konto, w którym działasz, nie ma uprawnień administracyjnych na komputerze zdalnym, możesz zalogować się do systemu zdalnego w celu przeprowadzenia zabójstwa, dodając nazwę konta i hasło do wiersza polecenia PsKill.

Pobierz plik PsKill v1.0 pod adresem http://www.sysinternals.com/pskill.htm.

PSLIST V1.1

Wydałem PsList jakiś czas temu jako system UNIX ps-style proces i podgląd wątków. W przeciwieństwie do podobnych narzędzi w zestawach Resource Kit systemu Windows NT i Win2K program PsList umożliwia wyświetlanie informacji dotyczących procesów i wątków w systemach zdalnych, a także lokalnych. Narzędzie PsList działa przez odczytanie informacji o interfejsie API wydajności systemu Win NT/2K, takich jak narzędzie Perfmon. Ta poprawka PsList dodaje możliwość logowania się do systemu zdalnego, określając nazwę konta i hasło w wierszu polecenia. Ta opcja umożliwia dostęp do komputerów zdalnych, dla których konto uruchomione z programu PsList nie ma uprawnień administracyjnych.

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

WINOBJ V2.1

WinObj to przeglądarka przestrzeni nazw Menedżera obiektów dla systemu Windows NT/2K. Przestrzeń nazw Menedżera obiektów to przestrzeń nazw, która zazwyczaj nie jest widoczna dla użytkowników, ale jest miejscem, w którym znajdują się wszystkie nazwy Win32 (\BaseNamedObjects i \??), i nazwane obiekty jądra. Służy również jako punkt wejścia do przestrzeni nazw systemu plików (za pośrednictwem linków symbolicznych litery dysku w obszarze \??) i przestrzeni nazw rejestru (za pośrednictwem obiektu \Keyklucza ).

WinObj jest podobny do narzędzia w zestawie Sdk (Software Development Kit) Win32 o tej samej nazwie, ale nasz WinObj robi o wiele więcej niż wersja firmy Microsoft. Na przykład podczas wyświetlania właściwości obiektu w naszym winobj zobaczysz odwołania i obsłuż liczbę, a nie dowolne liczby (zestaw SDK WinObj zawiera pewne poważne błędy). Nasze winobj pokazuje również stan obiektów synchronizacji i informacji o zabezpieczeniach obiektów.

Ta najnowsza aktualizacja WinObj naprawia usterkę, która uniemożliwiała prawidłowe wyświetlanie niektórych długich wartości linków symbolicznych znajdujących się w przestrzeni nazw Win2K. Używa również nowych bardziej przyjaznych okien dialogowych edytora zabezpieczeń Win2K podczas uruchamiania go w systemie Win2K (w nt 4 używa nieudokumentowanych interfejsów edytora zabezpieczeń dostarczonych przez ACLEDIT.DLL). Ulepszenia interfejsu użytkownika obejmują przypomnienie, jaki katalog jest wyświetlany podczas zamykania, dzięki czemu przy następnym uruchomieniu winobj jest wybrany katalog i możliwość sortowania okna listy zawartości katalogu.

Pobierz plik WinObj w wersji 2.1 pod adresem http://www.sysinternals.com/winobj.htm.

CONTIG V1.3

Firma Microsoft zawierała wbudowane interfejsy API defragmentowania plików po wydaniu NT 4. Dokumentuję interfejsy API i udostępniam przykładowy kod, który używa interfejsu API w witrynie http://www.sysinternals.com/defrag.htm. Za pomocą interfejsów API, które zaimplementowałem Contig, defragmentator wiersza polecenia, którego można użyć do defragmentacji poszczególnych plików lub katalogów. Od czasu początkowej wersji aplikacji Contig otrzymałem wiele żądań dodania opcji analizy fragmentacji, a w końcu dotarłem do implementacji. Program Contig w wersji 1.3 umożliwia sprawdzenie, jak fragmentowane określone pliki stały się tak, aby można było określić, czy należy wykonać droższy proces defragmentacji.

Mówiąc o defragmentacji plików, firma Symantec wydała jeszcze najbardziej zaawansowane defragmentator, Speedisk 5.0. Aby uwzględnić konkurencję, pomija defragmentację interfejsu API i przenosi bloki wokół dysku ręcznie, aby można było defragmentować katalogi, a nawet MFT, gdy system jest w trybie online. W przeciwieństwie do tego, co stanowi oprogramowanie wykonawcze w http://www.execsoft.com/diskeeper/infosheet.asp#Q9programie , ich produkt Diskeeper (zarówno wersja 4.0, jak i wersja 5.0) pomija również defragmentację interfejsu API (ale ich defragmentator nie jest prawie tak zaawansowany jak Norton), w szczególności podczas przeprowadzania konsolidacji katalogów rozruchu w czasie rozruchu. Marketing kadry kierowniczej jest kolejną lekcją, dlaczego nie możesz uwierzyć we wszystko, co czytasz.

Pobierz aplikację Contig v1.3 pod adresem http://www.sysinternals.com/contig.htm.

Pobierz defragmetr PageDefrag, rejestr i plik stronicowania, na http://www.sysinternals.com/pagedfrg.htm.

NTFSCHK V1.0

Powszechna skarga od użytkowników zasilania, którzy instalują Win2K na swoich komputerach wraz z NT 4, jest to, że automatyczne uaktualnianie wszystkich dysków NTFS do systemu PLIKÓW NTFS w wersji 5 renderuje NT 4 Chkdsk nie może sprawdzić tych dysków. Zamiast skanować dyski NTFS v5 i naprawiać błędy NT 4 Chkdsk po prostu ogłasza, że nie może działać na dyskach utworzonych przy użyciu nowszych wersji systemu plików NTFS i kończy działanie. Wymaga to rozruchu do win2K za każdym razem, gdy chcesz sprawdzić te dyski przynajmniej do tej pory.

Za pomocą zestawu NTFSCHK można uruchomić wersję Win2K Chkdsk z NT 4. W jaki sposób? Korzystając z tej samej technologii, którą opracowaliśmy do wykonywania natywnych nt Chkdsk z DOS i Windows 9x w ramach NTFSDOS Professional i NTFSDOS dla Win98, NTFSCHK opakowuje Win2K Chkdsk w środowisku, które wygląda jak Win2K.

Pobierz plik NTFSCHK v1.0 pod adresem http://www.sysinternals.com/ntfschk.htm.

HANDLEEX V2.1

HandleEx to wielowymiarowe narzędzie diagnostyczne dla systemu Windows NT/2K, które pokazuje, jakie procesy bibliotek DLL zostały załadowane i jakie obiekty zostały otwarte (ich uchwyty). Narzędzie HandleEx jest przydatne do śledzenia problemów z przechowywaniem wersji bibliotek DLL, obsługi przecieków i określania, która aplikacja uzyskuje dostęp do określonego pliku, katalogu lub klucza rejestru.

Wersja 2.1 programu HandleEx umożliwia wyświetlanie właściwości otwartych obiektów, w tym liczby odwołań i stanu obiektów synchronizacji. Atrybuty zabezpieczeń obiektu można również wyświetlać i modyfikować przy użyciu edytorów zabezpieczeń NT.

Pobierz narzędzie HandleEx w wersji 2.1 pod adresem http://www.sysinternals.com/handleex.htm.

CTRL2CAP w wersji 2.0

Jeśli pochodzisz z system UNIX tle, zgadzasz się ze mną, że klawisz sterowania na klawiaturze komputera jest w niewłaściwym miejscu: powinien to być miejsce, w którym znajduje się klawisz caps-lock. A kto mimo to używa klawisza caps-lock? Ctrl2cap to sterownik filtru klawiatury, który zmienia caps-lock na lewą kontrolkę, usuwając caps-lock jako efekt uboczny (używam standardowej lewej kontrolki jako klawisz ognia, gdy gram Half Life).

Mimo że ctrl2cap v1.0 działa na Win2K, przy użyciu wyłącza zarządzanie energią Win2K funkcje coś, co jest trochę irytujące na laptopach. Dlatego zaktualizowałem klawisze Ctrl2cap tak, aby były zgodne z modelem sterowników systemu Windows (WDM), który zawiera przyjazne zarządzanie energią. Dostarczam pełny kod źródłowy i te same pliki źródłowe kompilują wersje NT 4 i Win2K.

Pobierz klawisze Ctrl2cap v2.0 z kodem źródłowym pod adresem http://www.sysinternals.com/ctrl2cap.htm.

FILEMON V4.26

Powodem, dla którego byłem obecnie w firmie Microsoft w listopadzie, było to, że firma Microsoft zorganizowała "Plugfest filtru systemu plików" (wewnętrznie nosiła nazwę "Irp-olooza"). Plugfest połączył wszystkie główne produkty, które są oparte na sterownikach filtrów systemu plików Windows NT/2K, połączył je w sposób okrężny i prowadził testy obciążeniowe na różnych parach. Produkty reprezentowane obejmowały około dziewięciu różnych skanerów wirusów, wiele narzędzi szyfrowania plików i menedżera przydziałów dysków. Celem fest było zidentyfikowanie problemów z współdziałaniem związanych z różnymi kombinacjami filtrów, pomoc w znalezieniu i zidentyfikowaniu błędów w głównych produktach filtrów, a może nawet znaleźć usterkę w win2K. Ponieważ Filemon jest jednym z najczęściej używanych filtrów na świecie, a wiele grup firmy Microsoft polega na nim do ich prac programistycznych i rozwiązywania problemów, organizatorzy plugfest zaprosili mnie do wydarzenia i reprezentują go.

Filemon przeszedł wszystkie testy obciążeniowe bez incydentu z wyjątkiem jednego. Ponieważ Filemon jest dynamicznie załadowanym sterownikiem filtru, jest on nakładany przede wszystkim na produkty obecne w zdarzeniu z wyjątkiem jednego. Produkt, który warstwowy powyżej Filemon jest skaner wirusów, który również dynamicznie ładuje go jest w rzeczywistości produktem opartym na Filemon. Ponieważ skaner wirusów dynamicznie ładuje, próbowaliśmy zarówno permutacji warstwowych, jak i w tym, gdzie Filemon był na dole, spowodował awarię skanera wirusów. Gdy graficzny interfejs użytkownika Filemon zakończył działanie, jego sterownik usunąłby jego obiekty urządzenia filtru. Jego faktycznie niedozwolone dla sterownika filtru do usunięcia obiektu urządzenia filtru, chyba że pobiera polecenie z Menedżera we/wy z informacją iit, aby to zrobić (FastIoDetach w filtrach systemu plików i IRP_MJ_PNP z IRP_MN_REMOVE_DEVICE w WDM). Nic dziwnego, że nieoczekiwane zniknięcie obiektów urządzeń Filemon spowodowało, że skaner wirusów uzyskuje dostęp do cofniętych przydziałów pamięci i awarii.

Na szczęście awaria Filemona miała miejsce w ostatniej sesji plugfest, więc miałem minimalne zakłopotanie, a ponieważ testy wykazały co najmniej jedną poważną usterkę lub problem współdziałania w każdym produkcie, który był nie sam. Filemon v4.26 jest wersją, która naprawia usterkę wykrytą w plugfest.

Jeszcze przed udziałem plugfest, znalazłem usterkę w Filemon, która może być interesująca dla deweloperów urządzeń i sterowników systemu plików NT. Niedawno zmodyfikowałem plikmon, aby użyć źle udokumentowanego mechanizmu synchronizacji zasobów wykonawczych (E-Resource). Sterowniki systemu plików firmy Microsoft intensywnie korzystają z zasobów E-Resources, więc myślałem, że będzie to edukacja, aby uwzględnić ich użycie w kodzie źródłowym Filemona. Zasoby E-Resources muszą być uzyskiwane przez wątki, które mają wyłączone wywołania asynchronicznych procedur. Musisz po prostu "wiedzieć", ponieważ dokumenty DDK nie mówią Ci. Niestety, w ramach skrótu implementacji pominięto wymagane wywołania funkcji, które wyłączają i ponownie włączają interfejsy API wokół pozyskiwania zasobów e-filemon. Ta usterka powoduje tylko problemy w bardzo rzadkich okolicznościach, więc nie wykryłem go, dopóki weryfikator sterownika Win2K nie złapał go dla mnie. Aby rozwiązać problem, dodano wywołanie do keEnterCriticalSection przed uzyskaniem E-Resource i KeLeaveCriticalSection po wydaniu zasobu E-Resource.

Pobierz plikmon v4.26 pod adresem http://www.sysinternals.com/filemon.htm.

BLUESCREEN V2.1

Wygaszacz ekranu Bluescreen to wygaszacz ekranu, który napisałem, że symuluje przerażone Windows NT Blue Screen of Death (BSOD). Napisałem oryginalną wersję przed udostępnieniem wydań Win2K, więc symulował NT 4 BSOD i uruchom ponownie, wraz z wykrywaniem błędów dysku Chkdsk. Udostępniono dwie wersje: jedną, która wykonała operacje we/wy dysku w celu dodania realizmu i jednej, która tego nie zrobiła. Po tym, jak system Win2K Beta 3 został zaktualizowany bluescreen, aby zasymulować nowy system Win2K BSOD i ponownie uruchomić system. W RC3 ekran ponownego uruchamiania zmienił się, więc musiałem ponownie zaktualizować bluescreen. W tym samym czasie zrobiłem generowanie we/wy dysku opcję konfigurowalną z właściwościami wygaszacza ekranu Bluescreen zamiast mieć dwie wersje.

Pobierz ekran Bluescreen w wersji 2.1 pod adresem http://www.sysinternals.com/bluescrn.htm.

FUNDELETE V2.01

Po długim, długim oczekiwaniu nasz Cofnij usunięcie systemu Windows NT sprawia, że jego powrót jako Fundelete dla Systemu Windows NT. Fundelete to narzędzie, które rozszerza Kosz systemu Windows NT/2K do przechwytywania plików usuniętych z programów i wiersza polecenia, a także tych usuniętych z Eksploratora. Dlaczego nazwa się zmienia? Kilka miesięcy po tym, jak Bryce i ja wydaliśmy Undelete dla Systemu Windows NT, Executive Software wydała Network Undelete, podobne narzędzie. Rok później zdecydowali, że lubili nazwę naszego narzędzia lepiej niż własne, więc zmienili swoje, aby cofnąć usunięcie systemu Windows NT. Jednocześnie mieli swoich prawników wysłać nam list ostrzegający nas, że naruszamy zarejestrowany znak towarowy w słowie "cofanie", że posiadali od 1987 roku. Zmieniliśmy nazwę naszego narzędzia, a nie walki.

Deweloperzy mogą pobrać kod źródłowy do rdzenia sterownika urządzenia Fundelete, który demonstruje niektóre zaawansowane techniki sterowników, w tym uzyskanie identyfikatora SID użytkownika ze sterownika, wyliczanie zawartości katalogu ze sterownika i tworzenie nowych środowisk IRPs.

Pobierz aplikację Fundelete dla systemu Windows NT w wersji 2.01 pod adresem http://www.sysinternals.com/fundelete.htm.

OPENLIST V1.11

Openlist to narzędzie systemu Windows 9x, które pokazuje wszystkie pliki, które są otwierane w systemie. Wersja 1.11 umożliwia wyświetlenie szczegółowych informacji o plikach, w tym informacje o wersji bibliotek DLL.

Pobierz plik Openlist w wersji 1.11 pod adresem http://www.sysinternals.com/openlist.htm.

GRUDZIEŃ "NT INTERNALS"

Moja kolumna "NT Internals" w grudniowym wydaniu Magazynu Windows NT to "Inside Win2K Scalability Enhancements, Part 2". W tej drugiej części serii opisano ulepszenia wprowadzone przez firmę Microsoft w systemie Win2K na potrzeby skalowalności wieloprocesorowej, w tym obiektu Zadania, nowych kontrolek kwantowych, nowych klas planowania i pul wątków trybu użytkownika.

W sierpniu ubiegłego roku Magazyn Windows NT zmienił zasady przeglądania artykułów online, tak aby tylko subskrybenci mieli dostęp. W zeszłym miesiącu złagodzili politykę z powrotem do tego, gdzie to było przed sierpniem. Teraz subskrybenci mogą swobodnie wyświetlać artykuły, które mają więcej niż cztery problemy.

Zobacz pełną listę naszych publikacji na stronie http://www.sysinternals.com/publ.htm.

WIADOMOŚCI WEWNĘTRZNE

WYDANY KLUCZ DDK WIN2K

Ostatnia wersja zestawu Microsoft Win2K Device Driver Development Kit (DDK) jest teraz dostępna pod adresem http://www.microsoft.com/ddk. Możesz pobrać zestaw bezpłatnie lub przejrzeć dokumentację online.

AWARIA WIN2K Z NACIŚNIĘCIEM KLAWISZY

Nie, to nie jest usterka. David Solomon, autor "Inside Windows NT 2nd Edition", dostarczył mi tę chłodną poradę. Jeśli dodasz DWORD wartość HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\i8042prt\Parameters\CrashOnCtrlScrollRejestru , ustaw ją na wartość "1" i uruchom ponownie, będziesz mieć możliwość awarii win2K przy użyciu klawiatury. Przytrzymując prawy klawisz sterujący, naciśnij klawisz przewijania dwa razy z rzędu. Na drugim naciśnięciu klawisza przewijania system będzie niebieski ekran z komunikatem "Użytkownik końcowy ręcznie wygenerował awarię".

Możliwość ręcznego awarii systemu jest przydatna w przypadkach, gdy jądro lub sterownik urządzenia został zakleszczone, a komputer nie odpowiada. Zrzut awaryjny wygenerowany, gdy istnieje impas, może dostarczyć deweloperom informacji, które wskazują przyczynę zakleszczenia. Ta opcja została wprowadzona tak cicho, że nawet core deweloperzy jądra Win2K nie byli świadomi tego, dopóki nie przekazałem go, kiedy byłem w plugfest.

AKTUALIZACJA PAMIĘCI SYSTEMOWEJ CHRONIONEJ PRZED ZAPISEM

W poprzednim biuletynie mówiłem o pamięci systemu chronionego przed zapisem jako nowej funkcji niezawodności w systemie Win2K. Jak się okazuje, pełna ochrona zapisu nie jest domyślnie obecna w wielu konfiguracjach. Jeśli komputer ma co najmniej 128 MB pamięci fizycznej Win2K używa 4 MB "dużych stron" do mapowania pamięci jądra. Użycie 4 MB zamiast 4 KB stron zapisuje poziom tłumaczenia strony i w związku z tym zwiększa wydajność. Ponieważ zarówno kod tylko do odczytu, jak i dane odczytu/zapisu mogą znajdować się w tej samej ochronie zapisu na stronie 4 MB, jest wyłączona w tych systemach, chyba że użytkownik żąda ochrony zapisu przy użyciu weryfikatora sterowników. Jeśli weryfikator sterowników wymusza ochronę zapisu, win2K używa wolniejszych stron 4 KB do mapowania pamięci jądra różne regiony pamięci są wyrównane do strony, co oznacza, że jest w porządku oznaczać poszczególne strony kodu jako tylko do odczytu.

W związku z tym ochrona zapisu jest aktywna tylko w systemach z mniej niż 128 MB pamięci i tych, w których weryfikator sterowników go włączył. W przypadku systemów, w których ochrona zapisu nie jest aktywna, firma Microsoft rozważa włączenie dodatku Service Pack Win2K obiektu watchdog, który sprawdza pamięć systemową sum kontrolnych, a następnie okresowo weryfikuje pamięć względem sumy kontrolnej. Operacja weryfikacji, choć nie tak precyzyjna, jak ochrona zapisu wspomagana sprzętowo, wykrywa błędne zapisy w obszarach, które powinny być tylko do odczytu.

EKSPLOZJA INTERFEJSU API WIN2K

Win2K jest znacznie większy niż NT 4. Przyznaje się, że istnieje wiele nowych usług i zintegrowanych funkcji, które są liczone jako część rozmiaru win2K (Active Directory, MMC, COM+itp.), ale nawet podstawowy system operacyjny wzrosła. Jednym z powodów zwiększenia rozmiaru systemu operacyjnego jest zwiększenie liczby interfejsów API, które eksportuje dla aplikacji. Podstawowe biblioteki DLL systemu operacyjnego Win2K obejmują KERNEL32.DLL, GDI32.DLL, USER32.DLL i ADVAPI32.DLL (NTDLL.DLL jest również podstawową biblioteką DLL systemu operacyjnego, ale KERNEL32 opiera się na NTDLL dla interfejsów API Win32). Przyjrzyjmy się szybkiej eksplozji interfejsu API w każdym z nich. Oto nieprzetworzone liczby:

BIBLIOTEKA NT 4 SP5 WIN2K WZROSTU
KERNEL32 681 823 21%
GDI32 401 553 38%
USER32 629 695 10%
ADVAPI32 401 557 39%

Należy zauważyć, że w niektórych przypadkach wzrost jest sztucznie zawyżony o aż 30%, ponieważ niektóre interfejsy API są dostępne zarówno w postaci ANSI, jak i szerokociągowych, dlatego są liczone dwa razy w powyższych liczbach.

KERNEL32 to biblioteka DLL, która eksportuje tak zwane funkcje "podstawowego systemu operacyjnego", w tym proces, pamięć, we/wy plików i interfejsy API zarządzania ustawieniami regionalnymi. Interfejsy API, które są nowe w systemie Win2K, obejmują nowe funkcje językowe (np. EnumUILanguages), funkcje obiektu zadania (npAssignProcessToJobObject. ), funkcje zarządzania pamięcią (np. ), funkcje plików (AllocateUserPhysicalPagesFindFirstVolumenp. ) i interfejsy API ToolHelp32 (np. Process32First).

GDI32 dostarcza procedury związane z rysowaniem i mapami bitowymi. Jego wzrost wynika z pojawienia się głównie różnych nowych funkcji, które obejmują nowe interfejsy API zarządzania czcionkami (np. CreateFontIndirectEx), funkcje łączenia alfa i obiektów ścieżki.

UŻYTKOWNIK32 implementuje funkcje okien, a znaczną częścią jego wzrostu jest użycie nowych interfejsów API z wieloma monitorami. Inne nowe interfejsy API USER32 obejmują kilka funkcji informacyjnych (np. GetWindowInfo, GetTitleBarInfo).

Na koniec ADVAPI32 to biblioteka DLL dostarczająca zaawansowane interfejsy API Win32. Istnieje wiele nowych grup interfejsów API przyczyniających się do jej wzrostu: EFS (np. DecryptFile), CryptoAPI (np CryptEnumProviders. ), security (np CheckTokenMembership. ), event-tracing StartTrace(np. ), i Windows Management Interface (WMI) (np. WmiOpenBlock) stanowią większość nowych funkcji.

DAVID SOLOMON SEMINARIA

David Solomon Expert Seminaria przychodzi do San Diego - 21-25 lutego. Szkolenie deweloperów przez facetów, którzy uczą się w firmie Microsoft.

  • Programowanie Win32 autorstwa Jeffreya Richtera
  • Debugowanie zasilania przez Johna Robbinasa
  • Sterowniki urządzeń z systemem Windows 2000 firmy Jamie Hanrahan
  • Sterowniki urządzeń z systemem Windows CE i aplikacje firmy Doug Boling

Aby uzyskać szczegółowe informacje, zobacz http://www.solsem.com

CO SIĘ DZIEJE

Patentowanie oprogramowania stało się wymaganym czasem pracy dla firm, które chcą wykorzystać swoją własność intelektualną. Microsoft nie jest obcy grze patentowej, a jądro NT ma kilka mechanizmów, które zostały uznane za godne przez US Patent and Trademark Office (PTO). Obszary jądra, dla których firma Microsoft uzyskała patenty, obejmują Menedżera we/wy i Menedżera obiektów. Następnym razem dam wam listę patentów, które udało mi się wykopać na jądro NT.


Dziękujemy za przeczytanie biuletynu Systems Internals.

Opublikowano czwartek, 06 stycznia 2000 19:09 przez ottoh

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