[Hírlevelek archívuma ^] [< 1. kötet, 5. szám] [2. kötet, 2. >szám ]
The Systems Internals Newsletter Volume 2, Number 1
Copyright © 2000 Mark Russinovich
2000. január 6. – Ebben a kérdésben:
A SYSTEMS INTERNALS ÚJDONSÁGAI
- PsKill 1.0-s verzió
- PsList v1.1
- WinObj v2.1
- Contig v1.3
- NTFSCHK 1.0-s verzió
- HandleEx v2.1
- Ctrl2cap v2.0
- Filemon v4.26
- Kékvásznú v2.1
- Fundelete v2.01
- Openlist v1.11
- Decemberi NT Internals
BELSŐ HÍREK
- Megjelent a Win2K DDK
- A Win2K összeomlása billentyűleütéssel
- Írásvédett rendszermemória frissítése
- Win2K API-robbanás
- David Solomon szemináriumok
MI VÁRHATÓ?
- Microsoft NT-hez kapcsolódó szabadalmak
SZPONZOR: WINTERNALS SZOFTVER
A Systems Internals Hírlevél által szponzorált Winternals Software, a weben a http://www.winternals.com. A Winternals Software a Windows NT/2K fejlett rendszereszközök vezető fejlesztője és szolgáltatója. A Winternals szoftvertermékek közé tartozik a FAT32 a Windows NT 4.0-hoz, az ERD Commander Professional Edition (a Windows NT speciális rendszerindító lemez képessége) és a Távoli helyreállítás.
A Winternals Software NTFSDOS Professional és NTFS for Win98 szolgáltatása teljes olvasási és írási hozzáférést biztosít az NTFS-meghajtókhoz DOS, Windows 95 és Windows 98 rendszerekről. Az NTFSDOS Pro egy hajlékonylemezes "boot-disk" képességet biztosít a Windows NT/2K-hoz. Az NTFSDOS Pro segítségével törölheti a hibás illesztőprogramokat, frissítheti a fájlokat, és általános fájlrendszer-karbantartást végezhet NTFS-meghajtókon doS-rendszerindító hajlékonylemezről. A Win98-hoz készült NTFS átlátható hozzáférést biztosít az NTFS-meghajtókhoz a Windows 95-ből és a Windows 98-ból. Egyszerűen megoszthatja az alkalmazásokat és fájlokat az NT és a Win9x között NTFS-meghajtókon a kettős rendszerindítású környezetben. Mindkét segédprogram beépített NTFS Chkdsk-képességgel is rendelkezik. Az NTFSDOS Pro ingyenes írásvédett verziója érhető el, http://www.sysinternals.com/ntfspro.htm és a Win98-hoz készült NTFS ingyenes írásvédett verziója a következő címen érhető el: http://www.sysinternals.com/ntfs98.htm.
Üdvözlök mindenkit!
Üdvözöljük a Systems Internals hírlevélben. A hírlevélnek jelenleg 14 000 előfizetője van.
Biztos vagyok benne, hogy tudja, hogy Win2K a lemez-duplikátorban van. A Win2K kiadás-gyártási (RTM) verziója végül a 2195-ös build lett. AZ RC3 2128 volt, és amint azt egy korábbi hírlevélben leírtam, a Microsoft minden éjjel növeli a buildszámot - hétvégeket és ünnepnapokat is beleértve -, amikor lefordítják az aktuális forrásfát.
Novemberben kint voltam a Microsoftnál (lásd a Filemon frissítést a hírlevélben, amiért ott voltam), és a kernel csapatának egy tagja elvitt a 26-os épület bemutatójára a Microsoft campusán. A 26-os épületben található a Windows NT/2K alap kernelcsapata, és itt találhatók a Windows NT/2K buildelési és tesztelési tesztkörnyezetei. A buildelési és tesztelési laborok mérete nagyjából megegyezik (talán 30'-tal 60'), de a tesztlabor számítógépekből álló állványokkal van összezsúfolva, míg a buildlabor asztalteret és helyet biztosít az építők számára. A készítők minden este kinyerik a forrásfát több quad-processzoros rendszerre, és futtatnak egy fordítást. Ha valakinek a kódbeadása (Isten tiltja) megszakítja a buildet, a rendszer meghívja az adott személyt – függetlenül attól, hogy mikor kapják meg a seggüket a probléma megoldásához. November közepére a Win2K-t kódzár alá vették, ahol az egyetlen engedélyezett módosítást a bizottságoknak jóvá kellett hagyniuk, és a "show-stopper" hibajavításokra kellett irányítaniuk.
Miután elkészült a friss build, a tesztelők átveszik és egyidejűleg telepítik a tesztkörnyezet összes gépére. A tesztlabor rendszerállványai tele vannak mindennel, a kis kézi számítógépektől kezdve a mosogatógép méretű többprocesszoros kiszolgálókig minden jelentős PC-gyártótól. A Win2K telepítése után a rendszerek átfogó stressztesztelési szkripteket futtatnak. A fejlesztés későbbi szakaszában a Win2K kilencven százaléknál nagyobb sebességgel teljesítette a stresszteszteket. Az árak sokkal alacsonyabbak voltak számos Win2K megbízhatósági fejlesztés bevezetése előtt, mint például a Driver Verifier, amely segít a fejlesztőknek a problémák megoldásában a saját tesztelésük során.
Függetlenül attól, hogy egy build megfelel-e az összes olyan tesztnek, amelyet feltölt a Microsoft belső terjesztési kiszolgálójára, ahol a Microsoft alkalmazottai letölthetik és telepíthetik. Ha egy fejlesztő jelentős problémát tapasztalt, akkor a következő héten már több száz alkalmazotttól várják az e-maileket. Csak akkor, ha van egy komoly probléma biztosan sújtotta a nagy százaléka a felhasználók, hogy a teszt csapat küld vállalati szintű e-mail figyelmeztetést a vállalat (közvetítés e-mail több mint 25.000 ember valami nem szabad venni könnyedén).
Amíg ott voltam, találkoztam Dave Cutlerrel, a Windows NT főépítészével is. Mire készül mostanában? Novemberben a kernel csapata már keményen dolgozott a Win2K (belső nevén NT 6 vagy Neptune) utódján, és Dave a Win2K 64 bites verziójának telepítésén dolgozott. Dave vezette a 64 bites fejlesztési erőfeszítéseket, és a 64 bites Win2K jó úton halad a befejezéshez. Novembertől a kernel csapata még mindig 64 bites munkát végez az Alfákon, mivel az Intel csak nemrég kezdte el a Merced processzorok mintáinak előállítását, és csak egy volt az egyetemen.
Mint általában, kérjük, adja át a hírlevelet a barátok, hogy úgy gondolja, lehet, hogy érdekes.
Köszönjük!
-Jegy
A SYSTEMS INTERNALS ÚJDONSÁGAI
PSKILL V1.0
A Windows NT és a Win2K erőforráskészletek parancssori "kill" segédprogrammal rendelkeznek, de csak azért, mert a Windows NT és a Win2K nem rendelkezik ilyennel. A helyi folyamatokat leállíthatja a Resource Kit "kill" parancsával, de távoli folyamatokkal nem. Ezért úgy döntöttem, hogy írjon egy szabadon elérhető "kill", hogy, mint az én PsList, távoli képesség. A PsKill egy folyamatazonosítót vagy nevet, valamint egy opcionális számítógépnevet vesz fel, és leállítja az egyező folyamatokat a helyi rendszeren vagy a megadott távoli rendszeren. Még egy ügyfélösszetevőt sem kell telepítenie a távoli számítógépre. Ha a fiók, amelyben fut, nem rendelkezik rendszergazdai jogosultsággal a távoli számítógépen, bejelentkezhet a távoli rendszerbe, hogy végrehajtsa a törlést úgy, hogy hozzáad egy fióknevet és jelszót a PsKill parancssorához.
A PsKill 1.0-s verzió letöltése a http://www.sysinternals.com/pskill.htm.
PSLIST V1.1
Egy ideje unix ps stílusú folyamatként és szálmegjelenítőként jelent meg a PsList. A Windows NT és a Win2K erőforráskészletek hasonló eszközeivel ellentétben a PsList lehetővé teszi a folyamat- és szálinformációk megtekintését a távoli rendszereken és a helyi rendszereken. A PsList a Win NT/2K Teljesítmény API-információinak olvasásával működik, mint a Perfmon. Ez a PsList-változat lehetővé teszi a távoli rendszerbe való bejelentkezést egy fióknév és jelszó megadásával a parancssorban. Ez a beállítás lehetővé teszi olyan távoli számítógépek elérését, amelyek esetében a PsList-et futtató fiók nem rendelkezik rendszergazdai jogosultsággal.
Töltse le a PsList 1.1-et a http://www.sysinternals.com/pslist.htm.
WINOBJ V2.1
A WinObj a Windows NT/2K Object Manager névtérmegjelenítője. Az Object Manager-névtér egy olyan névtér, amely általában nem látható a felhasználók számára, de az összes Win32 (\BaseNamedObjects
és ), névvel \??
ellátott kernel-objektum itt található. Emellett belépési pontként szolgál a fájlrendszer névtereihez (a meghajtóbetűjel szimbolikus hivatkozásai alatt \??
) és a beállításjegyzék névteréhez (a kulcsobjektumon \Key
keresztül).
A WinObj hasonló a Win32 szoftverfejlesztői készlet (SDK) azonos nevű eszközéhez, de a WinObj sokkal többet tesz, mint a Microsoft verziója. Ha például egy objektum tulajdonságait tekinti meg a WinObj-ban, a hivatkozás és a számokat fogja kezelni, nem pedig tetszőleges számokat (az SDK WinObj-nak vannak jelentős hibái). A WinObj a szinkronizálási objektumok állapotát és az objektumbiztonsági információkat is megjeleníti.
Ez a legújabb WinObj-frissítés kijavít egy hibát, amely megakadályozta, hogy megfelelően megjelenítse a Win2K névterében található hosszú szimbolikus hivatkozási értékeket. Emellett az új, barátságosabb Win2K biztonsági szerkesztő párbeszédpaneleket is használja, amikor Win2K-n futtatja (az NT 4-ben a ACLEDIT.DLL által biztosított nem dokumentált biztonsági szerkesztőfelületeket használja). A felhasználói felület fejlesztései közé tartozik a megtekintett könyvtár visszahívása a kilépéskor, hogy a következő alkalommal, amikor elindítja a WinObj-t, hogy a könyvtár ki legyen jelölve, és hogy rendezhesse a címtár tartalomlistájának ablakát.
Töltse le a WinObj 2.1-et a http://www.sysinternals.com/winobj.htm.
CONTIG V1.3
A Microsoft beépített fájltöredezettségmentesítési API-kat tartalmazott az NT 4 kiadásakor. Dokumentálom az API-kat, és megadom az API-t használó mintakódot a következő helyen: http://www.sysinternals.com/defrag.htm. Az általam implementált API-k használatával a Contig parancssori töredezettségmentesítési eszköz, amellyel egyes fájlokat vagy könyvtárakat töredezettségmentesítésre használhat. A Contig kezdeti megjelenése óta számos kérést kaptam, hogy adjak hozzá egy töredezettségelemzési lehetőséget, és végül megkerültem a implementálását. A Contig v1.3 lehetővé teszi, hogy lássa, mennyire töredezettek lettek a megadott fájlok, így megállapíthatja, hogy drágább töredezettségmentesítési folyamatot kell-e végrehajtania.
A fájltöredezettségmentesítésről szólva a Symantec kiadta a legfejlettebb töredezettségmentesítőt, a Speedisk 5.0-t. Annak érdekében, hogy a verseny csúcsán áthaladjon a töredezettségmentesítési API-n, és manuálisan mozgatja a blokkokat a lemez körül, hogy töredezettségmentesítési könyvtárakat és akár az MFT-t is, miközben a rendszer on-line. Ellentétben azzal, amit az Executive Software mond http://www.execsoft.com/diskeeper/infosheet.asp#Q9, a Diskeeper-termékük (mind a 4.0-s, mind az 5.0-s verzió) a töredezettségmentesítési API-t is átengedi (de a töredezettségmentesítési eszközük közel sem olyan fejlett, mint a Nortoné), különösen akkor, amikor rendszerindítási idő szerinti címtár-összevonást végez. Vezetői marketing egy másik lecke, hogy miért nem lehet hinni mindent, amit olvasott.
Töltse le a Contig 1.3-at a http://www.sysinternals.com/contig.htm.
Töltse le a PageDefrag nevű beállításjegyzéket és a lapozófájl töredezettségét a következő címen: http://www.sysinternals.com/pagedfrg.htm.
NTFSCHK V1.0
A Win2K-t a számítógépükre az NT 4 mellett telepítő energiafelhasználók gyakori panasza, hogy a Win2K ntfs meghajtók NTFS v5-re való automatikus frissítése miatt az NT 4 Chkdsk nem tudja ellenőrizni ezeket a meghajtókat. Az NT 4 Chkdsk az NTFS v5-meghajtók vizsgálata és a hibák javítása helyett egyszerűen bejelenti, hogy nem futtatható az NTFS újabb verzióival és kilépéseivel létrehozott meghajtókon. Ehhez be kell indulnia a Win2K-ba, amikor legalább eddig ellenőrizni szeretné ezeket a meghajtókat.
Az NTFSCHK-val futtathatja a Chkdsk Win2K-verzióját az NT 4-ből. Hogyan? Ugyanazt a technológiát használva, amelyet az NT natív Chkdsk doS-ból és Windows 9x-ből történő végrehajtásához fejlesztettünk ki az NTFSDOS Professional és az NTFSDOS for Win98 részeként, az NTFSCHK a Win2K Chkdsk-t egy Win2K-hoz hasonló környezetben csomagolja be.
Az NTFSCHK 1.0-s verzió letöltése a http://www.sysinternals.com/ntfschk.htm.
HANDLEEX V2.1
A HandleEx egy sokoldalú diagnosztikai segédprogram a Windows NT/2K-hoz, amely bemutatja, hogy milyen DLL-folyamatok töltődtek be, és milyen objektumokat nyitottak meg (a fogópontjaikat). A HandleEx hasznos a DLL verziószámozási problémáinak nyomon követéséhez, a szivárgások kezeléséhez, valamint annak meghatározásához, hogy melyik alkalmazás fér hozzá egy adott fájlhoz, könyvtárhoz vagy beállításkulcshoz.
A HandleEx 2.1-es verziója lehetővé teszi a megnyitott objektumok tulajdonságait, beleértve a referenciaszámokat és a szinkronizálási objektumok állapotát. Az objektumbiztonsági attribútumokat az NT biztonsági szerkesztőivel is megtekintheti és módosíthatja.
Töltse le a HandleEx 2.1-et a http://www.sysinternals.com/handleex.htm.
CTRL2CAP 2.0-s verzió
Ha UNIX-háttérrel rendelkezik, akkor egyetértek velem abban, hogy a pc-billentyűzet vezérlőkulcsa rossz helyen van: itt kell lennie a caps-lock billentyűnek. És egyébként ki használja a caps-lock kulcsot? A Ctrl2cap egy billentyűzetszűrő illesztőprogram, amely a caps-lockot bal oldali vezérlőre módosítja, és mellékhatásként eltávolítja a caps-lockot (a Half Life lejátszásakor a standard bal oldali vezérlőt használom tűzkulcsként).
Bár a Ctrl2cap 1.0-s verzió a Win2K-n működik, a használata letiltja a Win2K energiagazdálkodási funkcióit, ami kissé bosszantó a laptopokon. Ezért frissítettem a Ctrl2cap-t, hogy megfeleljen a Windows illesztőprogram-modellnek (WDM), amely magában foglalja az energiagazdálkodást. A teljes forráskódot és ugyanazokat a forrásfájlokat az NT 4 és a Win2K verzió is tartalmazza.
A Ctrl2cap 2.0-s verzió letöltése forráskóddal a http://www.sysinternals.com/ctrl2cap.htm.
FILEMON V4.26
Azért voltam ki a Microsoft novemberben volt, hogy a Microsoft tartott egy "Fájlrendszerszűrő Plugfest" (belső neve "Irp-olooza"). A plugfest összehozta a Windows NT/2K fájlrendszer szűrőillesztőire épülő összes fő terméket, ciklikus időszeleteléses módon párosította őket, és stresszteszteket futtatott a különböző párosításokon. A termékek kilenc különböző vírusszkennert, számos fájltitkosítási eszközt és lemezkvóta-kezelőt tartalmaznak. A fesztivál célja az volt, hogy azonosítsa a különböző szűrőkombinációkkal kapcsolatos együttműködési problémákat, segítsen megtalálni és azonosítani a fő szűrőtermékek hibáit, és talán még egy hibát is találni a Win2K-ban. Mivel a Filemon az egyik leggyakrabban használt szűrő a világon, és a Microsoft számos csoportja támaszkodik rá a fejlesztési és hibaelhárítási munkájukhoz, a plugfest szervezői meghívtak, hogy jöjjek el az eseményre, és képviseljem azt.
Filemon az összes stressztesztet incidens nélkül teljesítette, kivéve egyet. Mivel a Filemon egy dinamikusan betöltött szűrőillesztő, az eseményen jelen lévő összes termék fölé rétegzett, kivéve egyet. A Filemon fölött rétegzett termék egy vírusolvasó, amely szintén dinamikusan betölti, valójában a Filemonon alapuló termék. Mivel a vírusolvasó dinamikusan betöltődik, megpróbáltuk mindkét rétegzési permutációt, és abban az esetben, ahol a Filemon alul volt, a vírusolvasó összeomlott. Amikor a Filemon grafikus felhasználói felülete kilép az illesztőprogramból, törli a szűrőeszköz-objektumokat. Valójában illegális egy szűrőillesztő számára, hogy töröljön egy szűrőeszköz-objektumot, hacsak nem kap egy parancsot az I/O-kezelőtől, amely erre utasítja az iitet (FastIoDetach
a fájlrendszerszűrőkben és IRP_MJ_PN
a P-ben IRP_MN_REMOVE_DEVICE
a WDM-ben). Nem meglepő, hogy a Filemon eszközobjektumainak váratlan eltűnése miatt a vírusolvasó hozzáfért a felszabadított memóriához és összeomlott.
Szerencsére a Filemon összeomlása a plugfest utolsó munkamenetében történt, így minimális zavarom volt, és mivel a tesztelés legalább egy súlyos hibát vagy együttműködési problémát talált minden termékben, amely jelen volt, nem voltam egyedül. A Filemon v4.26 az a verzió, amely kijavítja a plugfesten észlelt hibát.
Még azelőtt, hogy részt vettem a plugfesten, találtam egy hibát a Filemonban, amely érdekelheti az NT eszköz- és fájlrendszer-illesztőprogram-fejlesztőket. Nemrég módosítottam a Filemon-t a rosszul dokumentált Executive Resource (E-Resource) szinkronizálási mechanizmus használatára. A Microsoft fájlrendszer-illesztőprogramjai széles körben használják az e-erőforrásokat, ezért úgy gondoltam, hogy oktatási jellegű lenne a Filemon forráskódjában való használatuk. Az e-erőforrásokat olyan szálaknak kell beszerezniük, amelyeknél az APC-k (aszinkron eljáráshívások) le vannak tiltva. Ezt csak "tudnia" kell, mert a DDK dokumentációja nem mondja el. Sajnos a végrehajtás kivonatában kihagytam a szükséges hívásokat olyan függvényekhez, amelyek letiltják és újra engedélyezik az APCs-eket a Filemon e-erőforrás-beszerzései körül. Ez a hiba csak nagyon ritka körülmények között okoz problémákat, ezért nem észleltem, amíg a Win2K Driver Verifier nem észlelte nekem. A probléma megoldásához hozzáadtam egy hívást a KeEnterCriticalSection-hez, mielőtt e-erőforrást és KeLeaveCriticalSection-et szereznék be egy E-erőforrás kiadása után.
Filemon 4.26-os verzió letöltése: http://www.sysinternals.com/filemon.htm.
BLUESCREEN V2.1
A Bluescreen Screen Saver egy képernyőkímélő írtam, hogy szimulálja a rettegett Windows NT Blue Screen of Death (BSOD). Megírtam az eredeti verziót, mielőtt a Win2K-kiadások elérhetők lettek volna, így szimulálta az NT 4 BSOD-t és újraindult, és a Chkdsk lemezhibákat észlelt. Két verziót tettem elérhetővé: egyet, amely lemez I/O-t hajtott végre a hozzáadott realizmushoz, a másik pedig nem. Miután Win2K Béta 3 volt ki frissítettem Bluescreen szimulálni az új Win2K BSOD és a rendszer újraindítása. Az RC3-ban az újraindítási képernyő megváltozott, ezért újra frissíteni kellett a Bluescreent. Ugyanakkor a lemez I/O-generációját úgy konfiguráltam, hogy két verzió helyett a Bluescreen képernyőkímélő tulajdonságaival konfigurálható legyen.
Töltse le a Bluescreen 2.1-et a http://www.sysinternals.com/bluescrn.htm.
FUNDELETE V2.01
Hosszú, hosszú várakozás után a Windows NT-hez készült Undelete-ünk fundelete-ként tér vissza a Windows NT-hez. A Fundelete egy segédprogram, amely javítja a Windows NT/2K Lomtárat a programokból és a parancssorból törölt fájlok, valamint az Explorerből törölt fájlok rögzítéséhez. Miért változik a név? Néhány hónappal azután, hogy Bryce és én megjelent Undelete a Windows NT, Executive Software megjelent Network Undelete, hasonló segédprogram. Egy évvel később úgy döntöttek, hogy jobban szeretik a segédprogram nevét, mint a sajátjukat, ezért a Windows NT-hez készült Undelete-re változtatták az övéket. Ugyanakkor az ügyvédeik egy levélben figyelmeztettek minket, hogy megsértettük a bejegyzett védjegyet az "undelete" szóra, amelyet 1987 óta birtokolnak. Ahelyett, hogy harcolnánk, megváltoztattuk a segédprogram nevét.
A fejlesztők letölthetik a forráskódot a Fundelete eszközillesztőjének magjába, amely bemutatja az olyan hatékony illesztőprogram-technikákat, mint például a felhasználó SID-jének beszerzése egy illesztőprogramból, a címtár tartalmának felsorolása egy illesztőprogramból, valamint új INTEGRÁCIÓS-címek létrehozása.
A Windows NT 2.01-hez készült Fundelete letöltése a következő címen: http://www.sysinternals.com/fundelete.htm.
OPENLIST V1.11
Az Openlist egy Windows 9x segédprogram, amely megjeleníti a rendszeren megnyitott összes fájlt. Az 1.11-es verzió lehetővé teszi a fájlok részletes információinak megtekintését, beleértve a DLL-ek verzióadatait is.
Töltse le az Openlist 1.11-et a http://www.sysinternals.com/openlist.htm.
DECEMBERI "NT INTERNALS"
A Windows NT Magazine decemberi számában található "NT Internals" oszlopom a következő: "Inside Win2K Scalability Enhancements, Part 2". A kétrészes sorozat második része a Microsoft Win2K-ban a többprocesszoros méretezhetőség érdekében végzett fejlesztéseket ismerteti, beleértve a Feladat objektumot, az új kvantumvezérlőket, az új ütemezési osztályokat és a felhasználói módú szálkészleteket.
Tavaly augusztusban a Windows NT Magazine módosította az online cikkek böngészési szabályzatát, hogy csak az előfizetők férhessenek hozzá. A múlt hónapban enyhítették a szabályzatot, hogy hol volt augusztus előtt. A nem előfizetők mostantól szabadon megtekinthetik a négynél régebbi problémákat tartalmazó cikkeket.
Kiadványaink teljes listáját itt tekintheti meg: http://www.sysinternals.com/publ.htm.
BELSŐ HÍREK
WIN2K DDK MEGJELENT
A Microsoft Win2K Device Driver Development Kit (DDK) végleges kiadása a következő címen érhető el: http://www.microsoft.com/ddk. Töltse le ingyenesen a készletet, vagy keresse meg a dokumentációt online.
ÖSSZEOMLÁSI WIN2K BILLENTYŰLEÜTÉSSEL
Nem, ez nem hiba. David Solomon, a szerző a "Inside Windows NT 2nd Edition" adott nekem ezt a jó tippet. Ha hozzáadja a DWORD
beállításjegyzék-értéket HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\i8042prt\Parameters\CrashOnCtrlScroll
, állítsa az "1" értékre, és indítsa újra, a billentyűzettel összeomlhat a Win2K. A jobb oldali vezérlőbillentyű lenyomása közben egymás után kétszer nyomja le a görgetőbillentyűt. A görgetőbillentyű második lenyomásakor a rendszer kék képernyőre kerül a következő üzenettel: "A végfelhasználó manuálisan generálta a crashdumpot".
A rendszer manuális összeomlásának lehetősége akkor hasznos, ha a kernel vagy az eszközillesztő holtpontra került, és a számítógép már nem válaszol. A holtpont fennállása közben létrehozott összeomlási memóriaképek olyan információkat biztosíthatnak a fejlesztőknek, amelyek jelzik a holtpont okát. Ezt a lehetőséget olyan csendben vezették be, hogy még a Win2K alapvető kernelfejlesztői sem voltak tisztában vele, amíg át nem léptem rajta, amikor a plugfesten voltam.
ÍRÁSVÉDETT RENDSZERMEMÓRIA FRISSÍTÉSE
Egy korábbi hírlevélben beszéltem írásvédett rendszermemória, mint egy új megbízhatósági funkció Win2K. Mint kiderült, a teljes írásvédelem alapértelmezés szerint nem jelenik meg számos konfigurációban. Ha egy számítógép legalább 128 MB fizikai memóriával rendelkezik, a Win2K 4 MB "nagy oldalakat" használ a kernelmemória leképezéséhez. Ha 4 KB-os oldalak helyett 4 MB-ot használ, az oldalfordítás szintjét menti, így javítja a teljesítményt. Mivel az írásvédett kód és az írási/írási adatok is ugyanazon a 4 MB-os lapon lehetnek, a rendszer le van tiltva ezeken a rendszereken, kivéve, ha a felhasználó írásvédettséget kér az Illesztőprogram-ellenőrző használatával. Ha az Illesztőprogram-ellenőrző írásvédelmet kényszerít, akkor a Win2K lassabb, 4KB-os lapokat használ a kernelmemória különböző memóriaterületeinek megfeleltetéséhez, ami azt jelenti, hogy az egyes kódlapok írásvédettként vannak megjelölve.
Így az írásvédelem csak 128 MB-nál kevesebb memóriával rendelkező rendszereken aktív, és azokon, ahol a Driver Verifier engedélyezte azt. Az olyan rendszerek esetében, ahol az írásvédelem nem aktív, a Microsoft fontolgatja, hogy a rendszermemóriát ellenőrző watchdog-létesítmény Win2K-szervizcsomagjába kerül, majd rendszeres időközönként ellenőrzi a memóriát az ellenőrzőösszegen. Az ellenőrzési művelet, bár nem olyan pontos, mint a hardveres írásvédelem, észleli a hibás írásokat olyan területekre, amelyek írásvédettek.
WIN2K API-ROBBANÁS
A Win2K kétségtelenül jelentősen nagyobb, mint az NT 4. A Win2K méretének részeként számos új szolgáltatás és integrált funkció található (Active Directory, MMC, COM+stb.), de még az alapvető operációs rendszer is növekedett. Az operációs rendszer méretének növekedése egyik oka az, hogy az alkalmazásokhoz exportált API-k száma megnőtt. A Win2K alapvető operációsrendszer-DLL-jei közé tartoznak a KERNEL32.DLL, GDI32.DLL, USER32.DLL és ADVAPI32.DLL (NTDLL.DLL az operációs rendszer alapvető DLL-je is, de KERNEL32 a Win32 API-k NTDLL-jén alapul). Tekintsük át az API-robbanást mindegyikben. A nyers számok a következők:
KÖNYVTÁR | NT 4 SP5 | WIN2K | NÖVEKEDÉS |
---|---|---|---|
KERNEL32 | 681 | 823 | 21% |
GDI32 | 401 | 553 | 38% |
USER32 | 629 | 695 | 10% |
ADVAPI32 | 401 | 557 | 39% |
Vegye figyelembe, hogy egyes esetekben a növekedést mesterségesen akár 30%-kal is megnövelik, mivel egyes API-k ANSI és széles sztring formában is előfordulnak, ezért a fenti számokban kétszer számítanak.
KERNEL32 az úgynevezett "alap operációs rendszer" funkciókat exportáló DLL, beleértve a folyamatot, a memóriát, a fájl I/O-t és a területi felügyeleti API-kat. A Win2K újdonságai közé tartoznak az új nyelvi függvények (pl. EnumUILanguages
), a Feladatobjektum függvények (pl. AssignProcessToJobObject
), a memóriakezelési függvények (pl. AllocateUserPhysicalPages
), a fájlfüggvények (pl. FindFirstVolume
) és a ToolHelp32 API-k (pl. Process32First
).
A GDI32 rajzokkal és bitképekkel kapcsolatos rutinokat biztosít. A növekedés oka, hogy többnyire eltérő új függvények jelentek meg, amelyek új betűtípus-kezelési API-kat (például CreateFontIndirectEx
), alfa-keverést és elérésiút-objektumfüggvényeket tartalmaznak.
A USER32 ablakfüggvényeket implementál, és növekedésének jelentős része új, többmonitoros API-kkal történik. Más új USER32 API-k is egy csomó információs függvény (pl. GetWindowInfo
, GetTitleBarInfo
).
Végül ADVAPI32 a fejlett Win32 API-kat biztosító DLL. A növekedéshez számos új API-csoport járul hozzá: az EFS (pl. DecryptFile
), a CryptoAPI (pl. CryptEnumProviders
), a biztonság (pl. CheckTokenMembership
), az eseménykövetés (pl. StartTrace
) és a Windows Felügyeleti felület (WMI) alkotják WmiOpenBlock
az új függvények nagy részét.
DAVID SOLOMON SZEMINÁRIUMOK
David Solomon szakértői szemináriumok jön San Diego - február 21-25. Fejlesztői képzés a Microsoftnál oktató srácoktól.
- Win32 Programozás Jeffrey Richter
- Power Hibakeresés John Robbinstól
- Windows 2000 eszközillesztők Jamie Hanrahantól
- Windows CE-eszközillesztők és -alkalmazások Doug Bolingtól
További részletek: http://www.solsem.com
MI VÁRHATÓ?
MICROSOFT NT-HEZ KAPCSOLÓDÓ SZABADALMAK
A szoftverszabadítás szükséges időtöltéssé vált a szellemi tulajdonukat kihasználni kívánó vállalatok számára. A Microsoft nem idegen a szabadalmi játéktól, és az NT kernele néhány olyan mechanizmussal rendelkezik, amelyeket az Egyesült Államok Szabadalmi és Védjegyhivatala (PTO) érdemesnek ítélt. A kernel azon területei, amelyekhez a Microsoft szabadalmakat szerzett, közé tartozik az I/O Manager és az Object Manager. Legközelebb megadok egy listát azokról a szabadalmakról, amelyeket ki tudtam ásni az NT kernelen.
Köszönjük, hogy elolvasta a Systems Internals Hírlevél.
Közzétéve: 2000. január 06. csütörtök, 19:09
[Hírlevelek archívuma ^] [< 1. kötet, 5. szám] [2. kötet, 2. >szám ]