[Hírlevelek archívuma ^] [1. kötet, 2. >szám ]
The Systems Internals Newsletter Volume 1, Number 1
1999. április 14. – Ebben a kérdésben:
A SYSTEMS INTERNALS ÚJDONSÁGAI
- VolumeID windows 9x-hez
- EFSDump
- ListDLLs for Compaq Alpha
- "A rendszerindítási folyamaton belül, 2. rész"
- Saját áprilisi Windows NT Magazin cikk
- Nincs jóváírás, ha annak esedékessége
- Nem annyira új dolgok
BELSŐ HÍREK
- Win2K-illesztőprogram-ellenőrző
- Y2K-tesztelés Boot.ini
MI VÁRHATÓ?
- Várólistára helyezett spinlockok a Win2K-ban
- Tokenmon
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 (a Windows NT rendszerindító lemezes képessége) és az NTRecover.
Üdvözlök mindenkit!
Üdvözöljük a Systems Internals Hírlevél első részletében. Örömmel mondhatom, hogy a hírlevél már 1000 előfizetőt szerzett a bejelentése óta egy kicsit több mint egy héttel ezelőtt.
A célom a hírlevélben az, hogy időben tájékoztatást adjon az új segédprogramokról és cikkekről, amelyek megjelennek a Systems Internals-ben, valamint olyan információkat biztosítson a Windows belső rendszerekről, amelyek nem rendelkeznek megfelelő fórummal a Systems Internals webhelyén. Ha bármilyen megjegyzése vagy javaslata van a hírlevélre vonatkozóan, nyugodtan adja át őket nekem a mark@.... Kérjük, küldje el a hírlevelet bárkinek, akiről tudja, hogy érdekli. A feliratkozásra, a leiratkozásra vagy az előfizetés módosítására vonatkozó utasításokat a hírlevél végén találhatja meg.
Köszönjük!
-Jegy
A SYSTEMS INTERNALS ÚJDONSÁGAI
VOLUMEID FOR WINDOWS 9X
Bár a Windows NT és a Windows 9x lehetővé teszi a címke módosítását egy logikai meghajtón vagy hajlékonylemezen a "label" paranccsal, ezek nem biztosítanak lehetőséget arra, hogy a meghajtók formázásakor tetszőlegesen hozzárendelt kötetazonosítókat módosítsa. A VolumeID program, amely több mint egy éve érhető el a Windows NT-hez a Systems Internals webhelyen, most portolva lett a Windows 9x-be. Ez az applet lehetővé teszi, hogy a merevlemezeken és hajlékonylemezeken lévő kötetazonosítókat tetszés szerint módosítsa.
A VolumeID olyan API-kat használ, amelyek lehetővé teszik az alkalmazások számára, hogy közvetlenül logikai meghajtókra, valamint Win9x rendszerű fizikai meghajtókra (hajlékonylemezekre) írjanak, és megkerüljék a fájlrendszereket. Windows NT/2K-n a VolumeID normál ReadFile és WriteFile használatával fér hozzá a nyers meghajtók adataihoz – a trükk az, hogy hogyan adja meg annak a kötetnek a nevét, amelyhez hozzá szeretne férni. A Microsoft Tudásbázis Q100027 című cikkéből megtudhatja, hogyan férhet hozzá egy alkalmazás fizikai vagy logikai meghajtóihoz a Windows NT/2K alatt. A Logikai meghajtókhoz való Windows 9x-hozzáférés esetén a kódot a Microsoft Tudásbázis Q174569. Ha közvetlen hajlékonylemez-meghajtó-hozzáférést kell végeznie az alkalmazásból Windows 9x rendszeren, használja az MSDN-ben dokumentált Win32 IOCTL-VWIN32_DIOC_DOS_INT13.
VolumeID letöltése: http://www.sysinternals.com/misc.htm.
EFSDUMP
A Windows 2000 a Microsoft beépített fájltitkosítási technológiájának, a Titkosító fájlrendszernek a debütálása lesz. Az EFS-ben számos új API érhető el a titkosított fájlok manipulálására, köztük egy QueryUsersOnEncryptedFile, amely lehetővé teszi, hogy mely felhasználók legyenek regisztrálva a titkosított fájlokhoz való hozzáféréshez, és mely felhasználók vannak regisztrálva helyreállítási ügynökökként ezekhez a fájlokhoz. Írtam egy efSDump nevű kis programot, amely lehetővé teszi, hogy könnyen láthassa ezeket az információkat a titkosított fájlokhoz a rendszeren.
Bár az EFS API-król van szó, az áprilisi MSDN óta nem dokumentált új API-k száma van, ami elég zavaró a Windows 2000 kiadási ciklusának ezen késői szakaszában. Az OpenEncryptedFileRaw, a ReadFileEncryptedRaw, a WriteFileEncryptedRaw és a CloseEncryptedFileRaw (ezeket a Win2K ADVAPI32.DLL exportálja) jelenleg nem dokumentált. Ezeknek az API-knak a használatához minden olyan alkalmazásnak szüksége van, amely titkosított fájlok biztonsági mentését szeretné elvégezni, ami azt jelenti, hogy vagy a Microsoft csak a partnerek kiválasztásához ad át adatokat róluk, vagy a biztonsági mentési szoftvereket gyártó vállalatoknak ki kell firkálniuk a termékeiket az ajtóból, amikor a Microsoft végül nyilvánosan dokumentálja őket. Egy dolog biztos, a Windows 2000 NTBACKUP programjának fejlesztői már hozzáfértek az API dokumentációjához: a Win2K Beta 3 NTBACKUP-ja aktívan használja az API-kat.
Ha érdekli EFS belső, győződjön meg róla, hogy nézd meg a közelgő június/ július kétrészes sorozat EFS az én "NT Internals" oszlop a Windows NT Magazine. A cikkben pontosan ismertetem a FEK-k (fájltitkosítási kulcsok) és a felhasználói EFS-kulcsok tárolási helyét, a titkosítási folyamat NTFS, az EFS-illesztőprogram és az LSASRV (a helyi biztonsági hatóság alrendszerkiszolgálója) általi végrehajtását, és természetesen a visszafejtés működését.
Az EFSDump letöltése teljes forráskóddal: http://www.sysinternals.com/misc.htm.
LISTDLLS FOR COMPAQ ALPHA
A Systems Internals alfa verziójához elérhető segédprogramok száma folyamatosan nő. A legújabb kiegészítés a ListDLLs, egy parancssori segédprogram, amely lehetővé teszi a folyamatok futtatásához szükséges DLL-információk megtekintését. A HandleEx eszköz segítségével megtekintheti ezeket az információkat, valamint azokat a leírókat (fájlokat, folyamatokat, szálakat, szinkronizálási objektumokat), amelyeket a folyamatok megnyitottak, de a HandleEx egy grafikus felhasználói felületi eszköz, így nem mindig kényelmes (például nem futtatható kötegelt fájlban).
Kíváncsi a tipikus Systems Internals segédprogram x86-os verziójának letöltési arányára a megfelelő Alfa verzióhoz? A körülbelül 20:1, amely szorosan nyomon követi az iparág becslései a telepített Alpha NT felhasználói bázis, hogy 5%-a a teljes NT piac.
A ListDLL-eket és más Alfa-portokat, köztük a HandleEx-et a következő címen töltheti le: http://www.sysinternals.com/alpha.htm.
"A RENDSZERINDÍTÁSI FOLYAMATON BELÜL, 2. RÉSZ"
A Windows NT Magazine januári "NT Internals" oszlopa mostantól online elérhető a Windows NT Magazine webhelyén keresztül. Erre mutató hivatkozást, valamint az 1. rész és a régebbi "NT Internals" oszlopokra mutató hivatkozást a Systems Internals Kiadványok oldalán talál: http://www.sysinternals.com/publ.htm.
AZ ÁPRILISI WINDOWS NT MAGAZINCIKKEM
Továbbá, győződjön meg róla, hogy nézd meg a funkció cikk áprilisi számában a Windows NT Magazine, "Linux és a Nagyvállalat". Számos jelentős problémát tárok fel a Linux 2.2 kernel- és hálózati kiszolgálóalkalmazások ("vállalati" alkalmazások) tekintetében, amelyek végső soron megakadályozzák, hogy a Linux kernel ezen verziója fejről-fejre versengjen az NT-vel és más UNIX-változatokkal a teljesítmény szempontjából.
NINCS JÓVÁÍRÁS, HA ANNAK ESEDÉKESSÉGE
Egy kapcsolódó megjegyzés, lehet, hogy hallott a nemrég kiadott D.H. Brown (elemző cég) a Linux képes vállalati operációs rendszer. Kiderül, hogy a jelentés szerzője erősen "kölcsönvett" egy e-mail az enyém, hogy valaki nyilvánosan közzétett a Linux kernel Usenet hírcsoport még januárban. Ha rendelkezik hozzáféréssel a jelentéshez, és elolvassa a Linuxot és a többprocesszort tárgyaló oldalakat (a jelentés nem nyilvánosan érhető el , meg kell vásárolnia egy nagy összegért), majd elolvasni az e-mailemet a Deja News-ben, egy közvetlen párhuzamosságot fog látni, egészen a kis részletekig.
NEM ÚJ DOLGOK
Én használom ezt a szakaszt a hírlevél, hogy a legutóbbi változások a Systems Internals oldalon, hogy lehet, hogy nem tud, és / vagy hogy több információt egy segédprogram, mint amit az oldalon. Néhány héttel ezelőtt például kiadtuk a Filemon 4.1-et. A Filemon ezen verziója képes a nevesített cső- és postahelytevékenységek figyelésére a Windows NT/2K rendszerben. Ennek támogatásához szükséges kód fejlesztése viszonylag kis mértékű volt, mivel a Named Pipes és a Mailslots fájlrendszer-illesztőprogramként lett implementálva. A nehéz rész (unalmas) volt kitalálni a privát IOCTLs (I/O Control Commands), hogy ezek a speciális fájlrendszerek támogatják, hogy Filemon tudja megjeleníteni őket. A Filemon (amely Windows NT/2K és Windows 9x rendszeren működik) a http://www.sysinternals.com/filemon.htm.
Ha többet szeretne megtudni a Filemon belső működéséről, tekintse meg a Februári Windows NT Magazine "NT Internals" oszlopomat, amelynek címe "Inside NT Utilities". A cikk bemutatja a Filemon, a Regmon, az NTFSDOS, a NewSID és a HandleEx használatát, és egy kicsit ismerteti azok működését.
BELSŐ HÍREK
WINDOWS 2000 DRIVER VERIFIER
A Windows 2000 3. bétaverziója egy nagyon hatékony eszközillesztő fejlesztési támogatást vezet be, amelyet Driver Verifiernek hívnak. Ez az eszköz a kernel kódjával működik, hogy átvehesse az irányítást az illesztőprogram felett, és a kernel módú szabályok betartatása érdekében olyan módon gyakorolja, amely korábban még nem volt lehetséges. A hibás eszközillesztők messze a legfontosabbak a jó hírnevéhez sok ember körében, hogy az NT instabil operációs rendszer, és ez az eszköz célja, hogy javítsa ezt a hírnevét azáltal, hogy segít az illesztőprogram-íróknak megtalálni a hibákat, mielőtt a felhasználók tennék.
A finom problémák számos típusa okozhatja alkalmi sofőrtesztelést (a leggyakoribb tesztelési típus, amelyet szoros piaci időkorlátok mellett végeznek), és akár súlyos stresszteszteken is átcsúszhat. Az egyik gyakori illesztőprogram-probléma az, hogy az illesztőprogram "emelt szintű IRQL" (magas megszakítási prioritás) mellett fér hozzá a lapozott memóriához. Ha az illesztőprogram által elért memória fizikailag jelen van a hozzáférés időpontjában (a lapozófájlra nem osztották ki), akkor az illegális hozzáférés észrevétlen marad. Engedjen ki egy olyan illesztőprogramot, amely megsérti ezt a szabályt a felhasználók vadon élő világába, és a megjelenéséhez kötötten jelenik meg, ami kék képernyő összeomlásához vezet.
Az illesztőprogramok másik gyakori programozási hibája, hogy a fejlesztő megírja a kódot azzal a feltételezéssel, hogy a lapszámozott és/vagy nem oldalszámozott memória mindig elérhető lesz, azaz nem ellenőrzik a kiosztások visszatérési értékeit. Ha a készlet elfogy, és az illesztő NULL puffercímet kap, az illesztő óvatosan elhalasztja a rendszert egy kék képernyőre. Bár a készlet kimerülése ritkán fordul elő, a rendszeradminisztrátornak nem kell kék képernyőt adnia. A kapcsolódó memóriahiba puffertúlcsordulás vagy aláfutás, ahol az illesztő a lefoglalt pufferen kívül olvas vagy ír.
Az Illesztőprogram-ellenőrző az IRQL-problémákat úgy oldja meg, hogy a hívásokat lecseréli az összes olyan függvényre, amely módosítja az illesztőben lévő IRQL-eket (pl. KeRaiseIrql
, KeAcquireSpinLock
) a megfelelő hitelesítő kernelfüggvényekkel (VerifierKeRaiseIrql
, VerifierKeAcquireSpinLock
) az illesztőprogram betöltésekor. Amikor az IRQL-t emeli vagy magasabbra DISPATCH_LEVEL
emeli, a hitelesítő kód belső Memóriakezelő-függvényt hív meg, MmTrimAllPageableSystemMemory()
hogy az összes lapozott adatot kivezényelje a fizikai memóriából. Így, amikor egy illesztőprogram megszegi az IRQL-szabályt, amely szerint nem fér hozzá a lapozható adatokhoz vagy kódokhoz DISPATCH_LEVEL
, a Memóriakezelő észleli a nem jelen lap elérésére tett kísérletet, és kék képernyőt küld. Ez lehetővé teszi, hogy a fejlesztő gyorsan elkapja az ilyen típusú hibákat, mielőtt az illesztőprogram kijön az ajtón, mivel hibakeresést végezhet az összeomláson, és láthatja, hogy az illesztőprogram a tartalék veremen ül.
Az Illesztőprogram-ellenőrző elvégzi a memóriahasználati tesztelést azzal, hogy kijavítja az illesztőprogram importálási tábláját, hogy az illesztőprogram a standard kernelverziók helyett hitelesítő memóriafüggvényeket hívjon meg. A hívás ExAllocatePool
például a következő hívásra VerifierAllocatePool
lesz lecserélve: A Verifier két technikával segíti a fejlesztőket a memóriahibák gyors megtalálásában. Az első az, hogy egy speciális memóriakészletet használ, ahol egy védőoldal (az őrlap érvénytelen oldal) a puffer végén található. Ezenkívül a lap azon része, amelyben a puffer ki van foglalva, amely megelőzi a puffert, aláírással van kitöltve. A puffer végén túlfutott oldalakat a rendszer azonnal észleli, mivel azok a védőoldalon szabálytalan oldalhibákat eredményeznek. A puffer előtti adatok módosításával járó aláfutásokat a Hitelesítő észleli, amikor az illesztőprogram felszabadítja a memóriát, mivel az aláírás módosul.
Azok az illesztőprogramok, amelyek mindig nem üres készletre számítanak, a Verifier a "memóriahiba-injektálás" használatával becsapja az összeomlásokat. Konfigurálhatja a Hitelesítőt úgy, hogy véletlenszerűen meghiúsuljon egy illesztőprogram készletfoglalása.
Van néhány egyéb hibatípus, amelyeket az illesztőprogram-ellenőrző ellenőriz, beleértve az IRP (I/O-kéréscsomag) konzisztenciáját, valamint a rendszer- és illesztőprogram-kódlapok írásvédett védelmét.
Ha Ön eszközillesztő-fejlesztő, akkor a Verifier tesztelésével saját magát, a vállalatát és az NT-közösséget fogja előnyben részesíteni. Vegye figyelembe, hogy a Win2K-val kompatibilis NT 4.0-s illesztőprogramokat is tesztelnie kell, amint hozzáfér a Driver Verifierhez (a legtöbb fejlesztő április végén vagy májusban megkapja az MSDN Win2K Béta 3-as csomagjával).
További információ: Driver Verifier.
Y2K-TESZTELÉS A RENDSZERINDÍTÁSSAL. INI
Ha gyakran ellenőrzi a Systems Internals webhelyet, akkor valószínűleg már ismeri az új Win2K nem dokumentált RENDSZERINDÍTÁSt. INI kapcsoló, /YEAR. Nem említettem a webhelyen, hogy a kapcsolót az NT 4.0 Service Pack 4 is támogatja. Ez a kapcsoló lehetővé teszi az NT és az NT-rendszerek összes szoftverének meghamisítását, hogy azt gondolja, hogy ez egy másik év. A /YEAR=2001 például 1999 helyett 2001-esnek tekintené a rendszert. Így a kapcsoló ideális az Y2K-problémák teszteléséhez bármilyen szoftverszinten, és annak az előnye, hogy a BIOS-óra manuális alaphelyzetbe állítása helyett (például az Óra kisalkalmazáson keresztül) használja, az az, hogy a módosítás ideiglenes és csak akkor aktív, amikor olyan telepítésre indul, amelyben a kapcsoló megtalálható a BOOT-ban. INI sor. Így egyszerűen létrehozhat egy speciális Y2K-telepítést úgy, hogy egy meglévő rendszerindító vonalat vesz fel a BOOT-ból. INI, duplikálás, majd a /YEAR kapcsoló hozzáadása.
MI VÁRHATÓ?
Várjuk a következő hírlevél néhány hét múlva. A belső tipp lesz az Ön számára legközelebb körülbelül Queued Spinlocks, egy új típusú spinlock, hogy a Windows 2000 használja a globális spinlocks. A Windows 2000 rendszerben a következő globális spinlockok léteznek:
- KiDispatcherLock: az ütemező adatbázisának zárolása
- KiContext-SwapLock: a futófelület felcserélésének zárolása
- MmPfnLock: a fizikai lapkeret adatbázisának zárolása
- MmSystemSpaceLock: a kernel módú címtérzár
- CcMasterSpinLock: a Cache Manager globális spinlockja
- CcVacbSpinLock: a Cache Manager leképezési tömbzárolása
Ahelyett, hogy normál kernel-spinlockokat (KeAcquireSpinLock, KeReleaseSpinLock) használ az NT 4.0-hoz hasonló globális zárolásokhoz, a Windows 2000 kernel várólistás spinlockokat (KeAcquireQueuedSpinLock, KeReleaseQueuedSpinLock) használ. Ezek a zárak érdekes tulajdonságokkal rendelkeznek, amelyek minimalizálják a busztevékenységet a KKV-kon. Legközelebb elmondom, hogyan implementálják az üzenetsoros spinlockokat.
Hamarosan megjelenik a Systems Internalsben a Tokenmon, egy újabb monitorozási eszköz. A Tokenmon részletes információkat jelenít meg a rendszer összes jogkivonattal kapcsolatos tevékenységéről, beleértve a bejelentkezéseket, a kijelentkezéseket, a jogosultságok használatát és a megszemélyesítést.
Köszönjük, hogy elolvasta a Systems Internals Hírlevél.
Közzétéve: 1999. április 14. szerda, 19:16