Delen via


[Nieuwsbrievenarchief ^] [< Volume 1, getal 5] [volume 2, getal 2 >]

The Systems Internals Newsletter Volume 2, Number 1

http://www.sysinternals.com

Copyright © 2000 Mark Russinovich


6 januari 2000 - In dit probleem:

  1. WAT IS ER NIEUW IN INTERNE SYSTEMEN

    • PsKill v1.0
    • PsList v1.1
    • WinObj v2.1
    • Contig v1.3
    • NTFSCHK v1.0
    • HandleEx v2.1
    • Ctrl2cap v2.0
    • Filemon v4.26
    • Blauwbeeld v2.1
    • Fundelete v2.01
    • Openlist v1.11
    • Interne werking van december NT
  2. INTERN NIEUWS

    • Win2K DDK uitgebracht
    • Crash Win2K met een toetsaanslag
    • Systeemgeheugenupdate met schrijfbeveiliging
    • Win2K API-explosie
    • David Salomons seminars
  3. WAT KOMT ER AAN DE DAG?

    • Microsoft NT-gerelateerde patenten

SPONSOR: WINTERNALS SOFTWARE

De Systems Internals Newsletter wordt gesponsord door Winternals Software, op het web op http://www.winternals.com. Winternals Software is de toonaangevende ontwikkelaar en provider van geavanceerde systeemhulpprogramma's voor Windows NT/2K. Winternals Software-producten omvatten FAT32 voor Windows NT 4.0, ERD Commander Professional Edition (geavanceerde opstartschijfmogelijkheid voor Windows NT) en Remote Recover.

Winternals Software NTFSDOS Professional en NTFS voor Win98 bieden u volledige lees- en schrijftoegang tot uw NTFS-stations vanuit DOS, Windows 95 en Windows 98. NTFSDOS Pro biedt mogelijkheden voor één diskette naar Windows NT/2K. Met NTFSDOS Pro kunt u buggystuurprogramma's verwijderen, bestanden vernieuwen en algemeen bestandssysteemonderhoud uitvoeren op NTFS-stations vanaf een DOS-opstart diskette. NTFS voor Win98 biedt u transparante toegang tot NTFS-stations vanuit Windows 95 en Windows 98. Deel eenvoudig toepassingen en bestanden tussen NT en Win9x op NTFS-stations in uw dual-bootomgeving. Beide hulpprogramma's hebben zelfs ingebouwde NTFS Chkdsk-functionaliteit. Een gratis alleen-lezen versie van NTFSDOS Pro is beschikbaar op http://www.sysinternals.com/ntfspro.htm en een gratis alleen-lezen versie van NTFS voor Win98 is beschikbaar op http://www.sysinternals.com/ntfs98.htm.

Hallo allemaal,

Welkom bij de nieuwsbrief Systems Internals. De nieuwsbrief heeft momenteel 14.000 abonnees.

Zoals ik zeker weet dat u weet, is Win2K bij de schijfduplicator. De RTM-versie (Release-to-Manufacturing) van Win2K is uiteindelijk build 2195. RC3 was 2128 en zoals ik in een eerdere nieuwsbrief heb beschreven, wordt het buildnummer elke nacht verhoogd - weekenden en feestdagen - wanneer ze de huidige bronstructuur compileren.

Ik was in november uit bij Microsoft (zie de Filemon-update later in de nieuwsbrief om de reden waarom ik er was) en een lid van het kernelteam nam me mee op een rondleiding door building 26 op de campus van Microsoft. Gebouw 26 is waar het Windows NT/2K-basiskernelteam zich bevindt en waar de Windows NT/2K-build- en testlabs zich bevinden. De build- en testlabs zijn ongeveer gelijk aan grootte (misschien 30' bij 60), maar het testlab is vol met rekken van computers, terwijl het bouwlab bureauruimte en stoelen voor de bouwers heeft. Elke nacht halen de bouwers de bronboom uit op verschillende quadprocessorsystemen en voeren ze een compile uit. Als iemands code check-in toevallig (God verbiedt) de build te breken, wordt die persoon aangeroepen , ongeacht het uur om hun billen in te halen om het probleem op te lossen. Tegen half november was Win2K onder een codeblokkering waar de enige wijzigingen door commissies moesten worden goedgekeurd en gericht waren op 'show-stopper'-bugfixes.

Zodra een nieuwe build is geproduceerd, nemen de testers deze en installeren ze deze tegelijkertijd op alle machines in hun lab. De rekken van de testlabs van systemen zijn gevuld met alles, van kleine hand-held-size computers tot vaatwasmachine multiprocessorservers van elke belangrijke pc-leverancier. Nadat de Installatie van Win2K is voltooid, voeren de systemen uitgebreide scripts voor stresstests uit. Tijdens het latere deel van de ontwikkeling heeft Win2K stresstests met een snelheid hoger dan negentig procent doorstaan. De tarieven waren veel lager vóór de introductie van verschillende Win2K-betrouwbaarheidsverbeteringen, zoals de Driver Verifier, een hulpprogramma waarmee ontwikkelaars problemen kunnen ondervangen tijdens hun eigen tests.

Ongeacht of een build alle tests doorstaat die wordt geüpload naar de interne distributieserver van Microsoft, waar Microsoft-werknemers deze kunnen downloaden en installeren. Als een ontwikkelaar een aanzienlijk probleem heeft geïntroduceerd, kijken ze ernaar uit om e-mails te verzenden van de honderden werknemers die het in de volgende week tegenkomen. Het is alleen wanneer er een ernstig probleem is dat een groot percentage gebruikers raakt dat het testteam bedrijfsbrede e-mailwaarschuwing verzendt (het uitzenden van e-mail naar meer dan 25.000 mensen is iets dat niet licht moet worden genomen).

Terwijl ik daar was ontmoette ik Dave Cutler, de hoofdarchitect van Windows NT. Wat is hij tot nu toe? In november werkte het kernelteam al hard aan de opvolger van Win2K (intern bekend als NT 6 of Neptune) en Dave werkte aan het aanraken van de installatie voor de 64-bits versie van Win2K. Dave leidde de 64-bits ontwikkelingsinspanning en 64-bits Win2K is goed op weg naar voltooiing. Vanaf november deed het kernelteam nog steeds 64-bits werk aan Alphas omdat Intel pas onlangs begon met het produceren van monsters van Merced-processors en er slechts één op de campus was.

Geef zoals gebruikelijk de nieuwsbrief door aan vrienden die u denkt dat het interessant kan zijn.

Hartelijk dank!

-Merken

WAT IS ER NIEUW IN INTERNE SYSTEMEN

PSKILL V1.0

De Windows NT- en Win2K-resourcekits worden geleverd met een opdrachtregelprogramma 'kill', maar alleen omdat Windows NT en Win2K er geen hebben. U kunt lokale processen beëindigen met de Resource Kit 'kill' maar niet met externe processen. Daarom besloot ik een vrij beschikbare "kill" te schrijven die, zoals mijn PsList, externe mogelijkheden heeft. PsKill neemt een proces-id of -naam, en een optionele computernaam, en beëindigt overeenkomende processen op het lokale systeem of het externe proces dat u opgeeft. U hoeft zelfs geen clientonderdeel op de externe computer te installeren. Als het account waarin u werkt, geen beheerdersbevoegdheden heeft op de externe computer, kunt u zich aanmelden bij het externe systeem om de kill uit te voeren door een accountnaam en wachtwoord toe te voegen aan de PsKill-opdrachtregel.

PsKill v1.0 downloaden op http://www.sysinternals.com/pskill.htm.

PSLIST V1.1

Ik heb PsList enige tijd geleden uitgebracht als een UNIX ps-style proces en thread viewer. In tegenstelling tot de vergelijkbare hulpprogramma's in de Windows NT- en Win2K-resourcekits, kunt u met PsList proces- en threadgegevens op externe systemen en lokale systemen bekijken. PsList werkt door de prestatie-API-informatie van Win NT/2K te lezen, zoals Perfmon. Met deze PsList-revisie kunt u zich aanmelden bij een extern systeem door een accountnaam en wachtwoord op te geven op de opdrachtregel. Met deze optie hebt u toegang tot externe computers waarvoor het account waarvan u PsList uitvoert, geen beheerdersbevoegdheden heeft.

PsList v1.1 downloaden op http://www.sysinternals.com/pslist.htm.

WINOBJ V2.1

WinObj is een Object Manager-naamruimteviewer voor Windows NT/2K. De objectbeheer-naamruimte is een naamruimte die over het algemeen niet zichtbaar is voor gebruikers, maar is waar alle benoemde Win32 (\BaseNamedObjects en \??) en benoemde kernelobjecten zich bevinden. Het fungeert ook als het toegangspunt voor de bestandssysteemnaamruimten (via symbolische stationsletterkoppelingen onder \??) en de registernaamruimte (via het sleutelobject \Key).

WinObj is vergelijkbaar met een hulpprogramma in de Win32 Software Development Kit (SDK) met dezelfde naam, maar onze WinObj doet veel meer dan de Microsoft-versie. Wanneer u bijvoorbeeld de eigenschappen van een object in onze WinObj bekijkt, ziet u verwijzings- en afhandelingsaantallen in plaats van willekeurige getallen (de SDK WinObj heeft enkele belangrijke bugs). Onze WinObj toont u ook de status van synchronisatieobjecten en objectbeveiligingsgegevens.

Deze meest recente WinObj-update lost een fout op die verhinderde dat bepaalde lange symbolische koppelingswaarden die aanwezig zijn in de naamruimte van Win2K correct worden weergegeven. Het maakt ook gebruik van de nieuwe meer beschrijvende Win2K-beveiligingseditor-dialoogvensters wanneer u deze uitvoert op Win2K (op NT 4 maakt het gebruik van niet-gedocumenteerde beveiligingseditorinterfaces die worden geleverd door ACLEDIT.DLL). Verbeteringen in de gebruikersinterface omvatten het intrekken van de map die u bekijkt wanneer u afsluit, zodat de volgende keer dat u WinObj start die map is geselecteerd en de mogelijkheid voor het sorteren van de lijstweergave van de inhoud van de map.

WinObj v2.1 downloaden op http://www.sysinternals.com/winobj.htm.

CONTIG V1.3

Microsoft heeft een ingebouwde API's voor het defragmenteren van bestanden opgenomen bij de release van NT 4. Ik documenteer de API's en geef voorbeeldcode op die gebruikmaakt van de API op http://www.sysinternals.com/defrag.htm. Met behulp van de API's heb ik Contig geïmplementeerd, een opdrachtregeldefragmentatie die u kunt gebruiken om afzonderlijke bestanden of mappen te defragmenteren. Sinds de eerste release van Contig heb ik veel aanvragen ontvangen om een fragmentatieanalyseoptie toe te voegen, en ik ben er eindelijk aan gekomen om deze te implementeren. Met Contig v1.3 kunt u zien hoe gefragmenteerde bestanden die u opgeeft, zijn geworden, zodat u kunt bepalen of u een duurder defragmentatieproces moet uitvoeren.

Over bestandsdefragmentatie gesproken, heeft Symantec de meest geavanceerde defragmentatie uitgebracht, Speedisk 5.0. Om de concurrentie te kunnen behalen, wordt de defragmenterende API omzeild en worden blokken handmatig over de schijf verplaatst, zodat de mappen en zelfs de MFT kunnen worden gedefragmenteerd terwijl het systeem on-line is. In tegenstelling tot wat Executive Software opgeeft http://www.execsoft.com/diskeeper/infosheet.asp#Q9, slaat hun Diskeeper-product (zowel versie 4.0 als versie 5.0) ook de defragmentatie-API over (maar hun defragmentatie is niet bijna zo geavanceerd als Norton's), met name wanneer er opstarttijd directoryconsolidatie wordt uitgevoerd. Executive's marketing is een andere les in waarom je niet alles kunt geloven wat je leest.

Contig v1.3 downloaden op http://www.sysinternals.com/contig.htm.

Download PageDefrag, een register- en wisselbestanddefragmentatiemeter, op http://www.sysinternals.com/pagedfrg.htm.

NTFSCHK V1.0

Een veelvoorkomende klacht van hoofdgebruikers die Win2K op hun computers naast NT 4 installeren, is dat de automatische upgrade van ntfs-stations naar NTFS v5 de NT 4 Chkdsk niet kan controleren. In plaats van NTFS v5-stations te scannen en fouten te corrigeren, kondigt de NT 4 Chkdsk aan dat het niet kan worden uitgevoerd op stations die zijn gemaakt met nieuwere versies van NTFS en wordt afgesloten. Hiervoor moet u in Win2K opstarten wanneer u deze stations ten minste tot nu toe wilt controleren.

Met NTFSCHK kunt u de Win2K-versie van Chkdsk uitvoeren vanaf NT 4. En hoe? Met dezelfde technologie die we hebben ontwikkeld voor het uitvoeren van de systeemeigen Chkdsk van NT van DOS en Windows 9x als onderdeel van NTFSDOS Professional en NTFSDOS voor Win98, verpakt NTFSCHK de Win2K Chkdsk in een omgeving die lijkt op Win2K.

NTFSCHK v1.0 downloaden op http://www.sysinternals.com/ntfschk.htm.

HANDLEEX V2.1

HandleEx is een diagnostisch hulpprogramma met meerdere facetten voor Windows NT/2K dat laat zien welke DLL-processen zijn geladen en welke objecten ze hebben geopend (hun ingangen). HandleEx is handig voor het opsporen van problemen met DLL-versiebeheer, het afhandelen van lekken en het bepalen van welke toepassing toegang heeft tot een bepaalde bestand, map of registersleutel.

Met versie 2.1 van HandleEx kunt u de eigenschappen bekijken van de objecten die zijn geopend, inclusief referentieaantallen en de status van synchronisatieobjecten. U kunt ook objectbeveiligingskenmerken weergeven en wijzigen met behulp van de beveiligingseditors van NT.

HandleEx v2.1 downloaden op http://www.sysinternals.com/handleex.htm.

CTRL2CAP V2.0

Als u afkomstig bent van een UNIX-achtergrond, gaat u akkoord met mij dat de besturingstoets op het pc-toetsenbord zich op de verkeerde plaats bevindt: het moet de plaats zijn waar de caps-lock-toets zich bevindt. En wie gebruikt de caps-lock-toets toch? Ctrl2cap is een toetsenbordfilterstuurprogramma dat caps-lock wijzigt in linkerbesturingselement, waardoor caps-lock als neveneffect wordt verwijderd (ik gebruik de standaard linkerbesturing als de vuurtoets wanneer ik Half Life speel).

Hoewel Ctrl2cap v1.0 werkt op Win2K, schakelt het gebruik van win2K's energiebeheer functies iets wat een beetje irritant is op laptops. Daarom heb ik Ctrl2cap bijgewerkt om te voldoen aan het Windows Driver Model (WDM), dat omvat dat energiebeheer vriendelijk is. Ik geef volledige broncode op en dezelfde bronbestanden bouwen zowel de NT 4- als Win2K-versies.

Download Ctrl2cap v2.0 met broncode op http://www.sysinternals.com/ctrl2cap.htm.

FILEMON V4.26

De reden dat ik in november bij Microsoft was, was dat Microsoft een "File System Filter Plugfest" (intern "Irp-olooza" werd genoemd). Het plugfest bracht alle belangrijke producten samen die zijn gebaseerd op windows NT/2K bestandssysteemfilterstuurprogramma's, koppelden ze op een round robin-manier en voer stresstests uit op de verschillende koppelingen. Producten vertegenwoordigd rond negen verschillende virusscanners, een aantal hulpprogramma's voor bestandsversleuteling en een schijfquotumbeheer. Het doel van het feest was om interoperabiliteitsproblemen te identificeren die zijn gekoppeld aan verschillende filtercombinaties, om fouten in de belangrijkste filterproducten te vinden en te identificeren, en misschien zelfs een bug in Win2K te vinden. Omdat Filemon een van de meest gebruikte filters ter wereld is en veel van de Groepen van Microsoft erop vertrouwen voor hun ontwikkel- en probleemoplossingswerk, nodigden de plugfest-organisatoren mij uit om naar het evenement te komen en het te vertegenwoordigen.

Filemon heeft alle stresstests zonder incident doorstaan, behalve één. Omdat Filemon een dynamisch geladen filterstuurprogramma is dat boven alle producten aanwezig is op de gebeurtenis, behalve één. Het product dat boven Filemon ligt, is een virusscanner die het ook dynamisch laadt, is in feite een product op basis van Filemon. Omdat de virusscanner dynamisch laadt, probeerden we beide lagen permutaties uit te proberen, en in de plaats waar Filemon onderaan stond, werd de virusscanner vastgelopen. Wanneer de GUI van Filemon het stuurprogramma heeft afgesloten, worden de filterapparaatobjecten verwijderd. Het is eigenlijk illegaal voor een filterstuurprogramma om een filterapparaatobject te verwijderen, tenzij het een opdracht krijgt van de I/O-beheer die aangeeft dat iit dit moet doen (FastIoDetach in bestandssysteemfilters en IRP_MJ_PNP met IRP_MN_REMOVE_DEVICE in WDM). Het is niet verrassend dat de onverwachte verdwijning van de apparaatobjecten van Filemon ervoor zorgde dat de virusscanner toegang heeft tot het toegewezen geheugen en crash.

Gelukkig is de crash van Filemon opgetreden in de laatste sessie van het plugfest, dus ik had minimale gênantheid, en sinds de test ten minste één ernstige bug of interoperabiliteitsprobleem in elk product aanwezig vond, was ik niet alleen. Filemon v4.26 is de versie die de fout corrigeert die is gedetecteerd bij het plugfest.

Zelfs voordat ik bij het plugfest was, vond ik een bug in Filemon die mogelijk interessant is voor ontwikkelaars van NT-apparaten en stuurprogramma's van het bestandssysteem. Ik heb Filemon onlangs gewijzigd om het slecht gedocumenteerde E-Resource-synchronisatiemechanisme (Executive Resource) te gebruiken. De stuurprogramma's van het bestandssysteem van Microsoft gebruiken E-Resources uitgebreid, dus ik dacht dat het onderwijs zou zijn om hun gebruik op te nemen in de broncode van Filemon. E-Resources moeten worden verkregen door threads waarvoor Asynchrone procedureaanroepen (Asynchrone procedureaanroepen) zijn uitgeschakeld. U hoeft dit alleen te 'weten', omdat de DDK-documenten u dat niet vertellen. Helaas heb ik in de haast van de implementatie vereiste aanroepen weggelaten naar functies die API's uitschakelen en opnieuw inschakelen rond E-Resource-overnames van Filemon. Deze bug veroorzaakt alleen problemen in zeer zeldzame omstandigheden, dus ik heb het pas gedetecteerd nadat Win2K's Driver Verifier het voor mij heeft gepakt. Om het probleem op te lossen, heb ik een aanroep toegevoegd aan KeEnterCriticalSection voordat ik een E-Resource en KeLeaveCriticalSection verkrijgt nadat een E-Resource is uitgebracht.

Filemon v4.26 downloaden op http://www.sysinternals.com/filemon.htm.

BLUESCREEN V2.1

De Bluescreen-schermbeveiliging is een schermbeveiliging die ik schreef die het gevreesde Windows NT Blue Screen of Death (BSOD) simuleert. Ik schreef de oorspronkelijke versie voordat Win2K-releases beschikbaar waren, dus het simuleerde de NT 4 BSOD en start opnieuw, compleet met Chkdsk detecteren van schijffouten. Ik heb twee versies beschikbaar gesteld: een met schijf-I/O voor extra realisme en een die niet. Nadat Win2K Beta 3 uitkwam, heb ik Bluescreen bijgewerkt om het nieuwe Win2K BSOD te simuleren en het systeem opnieuw op te starten. In RC3 is het scherm voor opnieuw opstarten gewijzigd, zodat ik Bluescreen opnieuw moest bijwerken. Tegelijkertijd heb ik de I/O-schijf een optie gemaakt die kan worden geconfigureerd met de eigenschappen van schermbeveiliging van Bluescreen in plaats van twee versies te hebben.

Download Bluescreen v2.1 op http://www.sysinternals.com/bluescrn.htm.

FUNDELETE V2.01

Na een lange, lange wachttijd maakt onze undelete voor Windows NT zijn terugkeer als Fundelete voor Windows NT. Fundelete is een hulpprogramma dat de Prullenbak van Windows NT/2K verbetert om bestanden vast te leggen die zijn verwijderd uit programma's en de opdrachtregel, evenals bestanden die zijn verwijderd uit Explorer. Waarom de naam wijzigen? Enkele maanden nadat Bryce en ik Undelete voor Windows NT hebben uitgebracht, heeft Executive Software Network Undelete uitgebracht, een vergelijkbaar hulpprogramma. Een jaar later besloten ze de naam van ons hulpprogramma beter te vinden dan hun eigen, dus ze hebben hun gewijzigd in Ongedaan maken voor Windows NT. Tegelijkertijd lieten ze hun advocaten ons een brief sturen waarin wordt aangegeven dat we het gedeponeerde handelsmerk schenden op het woord "undelete" dat ze sinds 1987 hebben gehouden. We hebben de naam van ons hulpprogramma gewijzigd in plaats van te vechten.

Ontwikkelaars kunnen broncode downloaden naar de kern van het apparaatstuurprogramma van Fundelete, dat enkele krachtige stuurprogrammatechnieken demonstreert, waaronder het verkrijgen van de SID van een gebruiker van een stuurprogramma, het inventariseren van de inhoud van een directory van een stuurprogramma en het maken van nieuwe IR's.

Fundelete voor Windows NT v2.01 downloaden op http://www.sysinternals.com/fundelete.htm.

OPENLIST V1.11

Openlist is een Windows 9x-hulpprogramma waarin alle bestanden worden weergegeven die op het systeem worden geopend. Met versie 1.11 kunt u de gedetailleerde informatie over de bestanden bekijken, inclusief versie-informatie voor DLL's.

Openlist v1.11 downloaden op http://www.sysinternals.com/openlist.htm.

DECEMBER "NT INTERNALS"

Mijn kolom "NT Internals" in het decembernummer van Windows NT Magazine is "Inside Win2K Scalability Enhancements, Part 2". In deze tweedelige reeks worden de verbeteringen beschreven die Microsoft heeft aangebracht in Win2K voor schaalbaarheid met meerdere processors, waaronder het taakobject, nieuwe kwantumbesturingselementen, nieuwe planningsklassen en threadgroepen in de gebruikersmodus.

Afgelopen augustus heeft Windows NT Magazine het browsebeleid voor online artikelen gewijzigd, zodat alleen abonnees toegang kregen. Vorige maand hebben ze het beleid teruggezet naar waar het vóór augustus was. Nu kunnen niet-abonnees artikelen die meer dan vier problemen oud zijn, vrij bekijken.

Bekijk een volledige lijst met onze publicaties op http://www.sysinternals.com/publ.htm.

INTERN NIEUWS

WIN2K DDK UITGEBRACHT

De definitieve release van de Win2K Device Driver Development Kit (DDK) van Microsoft is nu beschikbaar op http://www.microsoft.com/ddk. U kunt de kit gratis downloaden of de documentatie online bekijken.

CRASH WIN2K MET TOETSAANSLAG

Nee, het is geen bug. David Salomon, de auteur van "Inside Windows NT 2nd Edition", leverde me deze coole tip. Als u de DWORD registerwaarde HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\i8042prt\Parameters\CrashOnCtrlScrolltoevoegt, stelt u deze in op '1' en start u opnieuw op, dan kunt u Win2K vastlopen met behulp van het toetsenbord. Terwijl u de rechter control-toets ingedrukt houdt, drukt u tweemaal achter elkaar op de schuiftoets. Bij de tweede druk op de schuiftoets wordt het blauwe scherm van het systeem weergegeven met het bericht 'De eindgebruiker heeft het crashdump handmatig gegenereerd'.

De mogelijkheid om het systeem handmatig te crashen is handig in gevallen waarin het kernel- of apparaatstuurprogramma is vastgelopen en de computer niet meer reageert. Een crashdump die wordt gegenereerd terwijl de impasse bestaat, kan ontwikkelaars informatie geven die de oorzaak van de impasse aangeeft. Deze optie is zo rustig geïntroduceerd dat zelfs de kernontwikkelaars van Win2K zich er pas van bewust waren toen ik het doorkwam toen ik bij het plugfest was.

SYSTEEMGEHEUGENUPDATE MET SCHRIJFBEVEILIGING

In een vorige nieuwsbrief heb ik het gehad over systeemgeheugen met schrijfbeveiliging als een nieuwe betrouwbaarheidsfunctie in Win2K. Zoals blijkt, is volledige schrijfbeveiliging niet standaard aanwezig in veel configuraties. Als een computer ten minste 128 MB fysiek geheugen heeft, gebruikt Win2K 4 MB 'grote pagina's' om kernelgeheugen toe te wijzen. Als u 4 MB gebruikt in plaats van 4 KB-pagina's, wordt een paginaomzettingsniveau opgeslagen en worden de prestaties hierdoor verbeterd. Omdat zowel alleen-lezencode als alleen-lezen/schrijven-gegevens zich op dezelfde 4 MB-pagina-schrijfbeveiliging bevinden, is op deze systemen uitgeschakeld, tenzij de gebruiker schrijfbeveiliging aanvraagt met behulp van de stuurprogrammaverifier. Als de stuurprogrammaverifier schrijfbeveiliging afdwingt, gebruikt Win2K tragere 4 KB-pagina's om kernelgeheugen in verschillende geheugenregio's toe te wijzen, wat betekent dat het geen probleem is om afzonderlijke codepagina's als alleen-lezen te markeren.

Schrijfbeveiliging is dus alleen actief op systemen met minder dan 128 MB geheugen en de systemen waarop Driver Verifier dit heeft ingeschakeld. Voor systemen waarbij schrijfbeveiliging niet actief is, overweegt Microsoft de opname in een Win2K-servicepack van een watchdog-faciliteit die het systeemgeheugen controleert en vervolgens periodiek het geheugen verifieert tegen de controlesom. De verificatiebewerking, maar niet zo nauwkeurig als door hardware ondersteunde schrijfbeveiliging, detecteert foutieve schrijfbewerkingen naar gebieden die alleen-lezen moeten zijn.

WIN2K API-EXPLOSIE

Win2K is zonder twijfel aanzienlijk groter dan NT 4. Er zijn veel nieuwe services en geïntegreerde functies die worden meegeteld als onderdeel van de grootte van Win2K (Active Directory, MMC, COM+, enzovoort), maar zelfs het kern-besturingssysteem is gegroeid. Een van de redenen waarom het besturingssysteem is toegenomen, is dat het aantal API's dat wordt geëxporteerd voor toepassingen is toegenomen. De Win2K-kern-DLL's van het besturingssysteem zijn KERNEL32.DLL, GDI32.DLL, USER32.DLL en ADVAPI32.DLL (NTDLL.DLL is ook een CORE OS DLL, maar KERNEL32 is afhankelijk van NTDLL voor Win32-API's). Laten we eens kijken naar API-explosie in elk. Dit zijn de onbewerkte getallen:

BIBLIOTHEEK NT 4 SP5 WIN2K GROEI
KERNEL32 681 823 21%
GDI32 401 553 38%
GEBRUIKER32 629 695 10%
ADVAPI32 401 557 39%

Houd er rekening mee dat in sommige gevallen de groei kunstmatig wordt verhoogd met maar liefst 30%, omdat sommige API's zowel ansi- als brede tekenreeksvormen bevatten en daarom tweemaal worden geteld in de bovenstaande getallen.

KERNEL32 is het DLL-bestand dat de zogenaamde 'basisbesturingssysteem'-functionaliteit exporteert, waaronder proces, geheugen, bestands-I/O- en landinstellingenbeheer-API's. De API's die nieuw zijn voor Win2K, bevatten nieuwe taalfuncties (bijvoorbeeld EnumUILanguagesjobobjectfuncties (bijvoorbeeld AssignProcessToJobObject), geheugenbeheerfuncties (bijvoorbeeld AllocateUserPhysicalPages), bestandsfuncties (bijvoorbeeld FindFirstVolume) en ToolHelp32-API's (bijvoorbeeld Process32First).

GDI32 levert teken- en bitmapgerelateerde routines. De groei is te wijten aan het verschijnen van voornamelijk diverse nieuwe functies met nieuwe lettertypebeheer-API's (bijvoorbeeld CreateFontIndirectExalfamixing en path-object-functies).

USER32 implementeert vensterfuncties en een belangrijk deel van de groei is met nieuwe API's voor meerdere beeldschermen. Andere nieuwe USER32-API's bevatten een aantal informatieve functies (bijvoorbeeld GetWindowInfo). GetTitleBarInfo

Ten slotte is ADVAPI32 het DLL-bestand dat geavanceerde Win32-API's levert. Er zijn een aantal nieuwe API-groepen die bijdragen aan de groei: EFS (bijvoorbeeld DecryptFile), CryptoAPI (bijvoorbeeld CryptEnumProviders), beveiliging (bijvoorbeeld CheckTokenMembership), gebeurtenistracering (bijvoorbeeld StartTrace), en Windows Management Interface (WMI) vormen WmiOpenBlockhet grootste deel van de nieuwe functies.

DAVID SALOMOE SEMINARS

David Salomon Expert Seminars komt naar San Diego - 21-25 februari. Ontwikkelaarstraining door de jongens die les geven bij Microsoft.

  • Win32 Programmeren door Jeffrey Richter
  • Power Debugging door John Robbins
  • Windows 2000-apparaatstuurprogramma's door Jamie Hanrahan
  • Windows CE-apparaatstuurprogramma's en toepassingen door Doug Boling

Zie http://www.solsem.com voor meer informatie

WAT KOMT ER AAN DE DAG?

Softwareoctrooi is een vereiste tijdverdrijf geworden voor bedrijven die hun intellectuele eigendom willen benutten. Microsoft is geen vreemdeling van het patentspel en de kernel van NT heeft een aantal mechanismen die door het Amerikaanse Patent and Trademark Office (PTO) als waardig zijn beschouwd. Gebieden van de kernel waarvoor Microsoft octrooien heeft verkregen, omvatten de I/O Manager en objectbeheer. Volgende keer geef ik je een lijst met de octrooien die ik heb kunnen graven op de NT kernel.


Bedankt voor het lezen van de systems Internals Newsletter.

Gepubliceerd donderdag 06 januari 2000 17:09 door ottoh

[Nieuwsbrievenarchief ^] [< Volume 1, getal 5] [volume 2, getal 2 >]