Condividi tramite


[Archivio newsletter ^] [< Volume 1, Numero 5] [Volume 2, Numero 2 >]

Newsletter Systems Internals Volume 2, Numero 1

http://www.sysinternals.com

Copyright © 2000 Mark Russinovich


6 gennaio 2000 - In questo numero:

  1. NOVITÀ DI SYSTEMS INTERNALS

    • PsKill v1.0
    • PsList v1.1
    • WinObj v2.1
    • Contig v1.3
    • NTFSCHK v1.0
    • HandleEx v2.1
    • Ctrl2cap v2.0
    • Filemon v4.26
    • Bluescreen v2.1
    • Fundelete v2.01
    • Openlist v1.11
    • NT Internals - Numero di dicembre
  2. NOVITÀ DI INTERNALS

    • Rilascio del DDK di Win2K
    • Arresto anomalo di Win2K con una sequenza di tasti
    • Aggiornamento della memoria di sistema protetta da scrittura
    • Crescita esplosiva delle API di Win2K
    • Seminari di David Solomon
  3. SVILUPPI FUTURI

    • Brevetti correlati a Microsoft NT

SPONSOR: WINTERNALS SOFTWARE

La newsletter Systems Internals è sponsorizzata da Winternals Software, presente sul Web all'indirizzo http://www.winternals.com. Winternals Software è il principale sviluppatore e provider di strumenti avanzati di sistemi per Windows NT/2K. I prodotti di Winternals Software includono FAT32 per Windows NT 4.0, ERD Commander Professional Edition (funzionalità avanzata del disco di avvio per Windows NT), e Remote Recover.

NtfsDOS Professional e NTFS di Winternals Software per Win98 forniscono l'accesso completo in lettura e scrittura alle unità NTFS da DOS, Windows 95 e Windows 98. NTFSDOS Pro offre funzionalità di "disco di avvio" su singolo floppy in Windows NT/2K. Con NTFSDOS Pro è possibile eliminare driver con bug, aggiornare i file ed eseguire operazioni generali di manutenzione del file system su unità NTFS da un disco floppy di avvio DOS. NTFS per Win98 consente di accedere in modo trasparente alle unità NTFS da Windows 95 e Windows 98. È possibile condividere con facilità applicazioni e file tra NT e Win9x in unità NTFS nell'ambiente a doppio avvio. Entrambe le utilità hanno anche funzionalità Chkdsk NTFS incorporate. Una versione gratuita di sola lettura di NTFSDOS Pro è disponibile all'indirizzo http://www.sysinternals.com/ntfspro.htm e una versione gratuita di sola lettura di NTFS per Win98 è disponibile all'indirizzo http://www.sysinternals.com/ntfs98.htm.

Ciao a tutti.

Benvenuti nella newsletter System Internals. La newsletter conta attualmente 14.000 abbonati.

Come tutti sapranno, Win2K si trova nel duplicatore del disco. La versione RTM (Release-to-Manufacturing) di Win2K è arrivata alla build 2195. RC3 era 2128 e, come descritto in una newsletter precedente, Microsoft incrementa il numero di build ogni notte - fine settimana e festivi inclusi - quando compila l'albero di origine corrente.

Ero in Microsoft a novembre (il motivo lo spiego nell'aggiornamento su Filemon più avanti in questa newsletter) e un membro del team di kernel mi ha portato a fare un giro nel Building 26 del campus Microsoft. Il Building 26 è l'edificio che ospita il team di kernel di base di Windows NT/2K ed è dove si trovano i lab ti compilazione e test di Windows NT/2K. I lab di compilazione e di test hanno dimensioni quasi uguali (circa 9x18 m), ma il lab di test è pieno di rack di computer, mentre quello di compilazione ha spazio per le scrivanie e postazioni per gli sviluppatori. Ogni notte gli sviluppatori estraggono l'albero di origine in diversi sistemi con quattro processori ed eseguono una compilazione. Se capita che l'archiviazione del codice di qualcuno interrompa la compilazione (speriamo di no), quella persona viene chiamata, a qualsiasi ora, per risolvere il problema. A metà novembre la scrittura di codice per Win2K era stata bloccata e le uniche modifiche consentite dovevano essere approvate dai comitati ed essere indirizzate a correzioni di bug bloccanti.

Una volta prodotta una nuova build, i tester la installano contemporaneamente in tutte le modifiche del loro lab. I rack di sistemi del lab di test contengono di tutto, da computer palmari di piccole dimensioni a server multiprocessore grandi come lavastoviglie di ogni fornitore importante di PC. Al termine dell'installazione di Win2K, i sistemi eseguono script completi di test di stress. Durante la parte successiva dello sviluppo, Win2K ha superato i test di stress con valutazioni superiori al novanta percento. Le valutazioni erano di molto inferiori prima dell'introduzione di diversi miglioramenti dell'affidabilità di Win2K, come Driver Verifier, uno strumento che consente agli sviluppatori di intercettare i problemi durante i loro test.

Indipendentemente dal fatto che superi o meno tutti i test, una build viene caricata nel server di distribuzione interno di Microsoft da cui i dipendenti Microsoft possono scaricarla e installarla. Se uno sviluppatore ha introdotto un problema significativo, riceverà email dalle diverse centinaia di dipendenti che finiranno per riscontrarlo la settimana successiva. Solo quando si verifica un problema serio che inciderà su una grande percentuale di utenti, il team di test invia email di avviso a livello dell'intera azienda (la trasmissione di email a oltre 25.000 persone non è qualcosa da prendere alla leggera).

Mentre ero lì ho anche incontrato Dave Cutler, il capo architetto di Windows NT. Di cosa si occupa in questi giorni? A novembre il team di kernel stava già lavorando intensamente al successore di Win2K (noto internamente come NT 6 o Neptune) e Dave si occupava di ritoccare l'installazione della versione a 64 bit di Win2K. Dave ha diretto il lavoro di sviluppo a 64 bit e Win2K a 64 bit è sulla buona strada per il completamento. A novembre il team di kernel stava ancora lavorando alle versioni Alfa a 64 bit, perché Intel aveva solo di recente iniziato a produrre campioni dei processori Merced e ce ne era solo uno nel campus.

Come di consueto, si invita a condividere la newsletter con amici che si pensa potrebbero trovarla interessante.

Grazie.

- Mark

NOVITÀ DI SYSTEMS INTERNALS

PSKILL V1.0

I Resource Kit di Windows NT e Win2K includono una utilità "kill" da riga di comando, ma solo perché non è presente in questi sistemi operativi. Con l'utilità "kill" del Resource Kit è possibile terminare i processi locali, ma non quelli remoti. Ho deciso quindi di scrivere una utilità "kill" disponibile gratuitamente che, come PsList, include funzionalità remote. PsKill accetta un ID o un nome di processo e un nome di computer facoltativo e termina i processi corrispondenti nel sistema locale o in quello remoto specificato. Non è neanche necessario installare un componente client nel computer remoto. Se l'account in esecuzione non ha privilegi amministrativi nel computer remoto, è possibile accedere al sistema remoto per eseguire l'operazione di terminazione aggiungendo un nome account e una password alla riga di comando di PsKill.

Scaricare PsKill v1.0 all'indirizzo http://www.sysinternals.com/pskill.htm.

PSLIST V1.1

Ho rilasciato PsList qualche tempo fa come processo in stile ps UNIX e visualizzatore di thread. A differenza di strumenti simili disponibili nei Resource Kit di Windows NT e Win2K, PsList consente di visualizzare informazioni sui processi e sui thread nei sistemi remoti oltre che in quelli locali. PsList funziona leggendo le informazioni dell'API Prestazioni di Win NT/2K come Perfmon. Questa revisione di PsList consente di accedere a un sistema remoto specificando un nome account e una password nella relativa riga di comando. Questa opzione consente di accedere ai computer remoti per cui l'account da cui si esegue PsList non ha privilegi amministrativi.

Scaricare PsList v1.1 all'indirizzo http://www.sysinternals.com/pslist.htm.

WINOBJ V2.1

WinObj è un visualizzatore dello spazio dei nomi Object Manager per Windows NT/2K. Lo spazio dei nomi Object Manager non è in genere visibile agli utenti, ma è quello in cui risiedono tutti gli oggetti Win32 (\BaseNamedObjects e \??) denominati e gli oggetti kernel denominati. Serve anche da punto di ingresso per gli spazi dei nomi del file system (tramite collegamenti simbolici a lettere di unità in \??) e per lo spazio dei nomi del Registro di sistema (tramite l'oggetto chiave \Key).

WinObj è simile a uno strumento dell'SDK (Software Development Kit) di Win32 con lo stesso nome, ma offre molte più funzionalità rispetto alla versione Microsoft. Ad esempio, quando si visualizzano le proprietà di un oggetto in WinObj, si vedranno i conteggi di riferimenti e handle invece di numeri arbitrari (l'SDK WinObj presenta alcuni bug importanti). Il nostro WinObj mostra anche lo stato degli oggetti di sincronizzazione e le informazioni di sicurezza degli oggetti.

Questo aggiornamento più recente di WinObj corregge un bug che impediva la visualizzazione corretta dei valori dei collegamenti simbolici lungi presenti nello spazio dei nomi di Win2K. Usa anche le nuove finestre di dialogo più descrittive dell'editor di sicurezza di Win2K quando viene eseguito in Win2K (in NT 4 usa interfacce dell'editor di sicurezza non documentate fornite da ACLEDIT.DLL). I miglioramenti dell'interfaccia utente includono la memorizzazione della visualizzata al momento dell'uscita, in modo che al successivo avvio di WinObj venga visualizzata tale directory, oltre alla possibilità di ordinare la finestra listview dei contenuti della directory.

Scaricare WinObj v2.1 all'indirizzo http://www.sysinternals.com/winobj.htm.

CONTIG V1.3

Al rilascio di NT4 Microsoft ha incluso API predefinite di deframmentazione dei file. Le API sono documentate, insieme a codice di esempio che le usa, all'indirizzo http://www.sysinternals.com/defrag.htm. Usando le API ho implementato Contig, un deframmentatore da riga di comando che è possibile usare per deframmentare singoli file o directory. Dal rilascio iniziale di Contig ho ricevuto molte richieste di aggiungere un'opzione di analisi della frammentazione, e ho finalmente avuto modo di implementarla. Contig v1.3 consente di visualizzare l'entità della frammentazione dei file specificati in modo che sia possibile determinare se è necessario o meno eseguire un processo di deframmentazione più completo.

Parlando della deframmentazione dei file, Symantec ha rilasciato il deframmentatore più avanzato finora disponibile, Speedisk 5.0. Per superare la concorrenza, questo strumento ignora l'API di deframmentazione e sposta i blocchi intorno al disco manualmente in modo che possa deframmentare le directory e anche MFT mentre il sistema è online. Contrariamente a quanto dichiarato da Executive Software in http://www.execsoft.com/diskeeper/infosheet.asp#Q9, anche il loro prodotto Diskeeper (sia versione 4.0 che versione 5.0) ignora l'API di deframmentazione (ma il loro deframmentatore non è avanzato come quello di Norton), in particolare quando esegue il consolidamento delle directory all'avvio. Il marketing di Executive è un'ulteriore dimostrazione del motivo per cui non bisogna credere a tutto quello che si legge.

Scaricare Contig v1.3 all'indirizzo http://www.sysinternals.com/contig.htm.

Scaricare PageDefrag, un deframmentatore del Registro di sistema e dei file di paging all'indirizzo http://www.sysinternals.com/pagedfrg.htm.

NTFSCHK v1.0

Un reclamo comune degli utenti esperti che installano Win2K nei loro computer insieme a NT 4 è che con l'aggiornamento automatico di Win2K di qualsiasi unità NTFS a NTFS v5, Chkdsk di NT 4 non è in grado di controllare tali unità. Invece di analizzare le unità NTFS v5 e correggere gli errori, Chkdsk di NT 4 annuncia semplicemente che non può essere eseguito su unità create con le versioni più recenti di NTFS, quindi si chiude. È quindi necessario eseguire l'avvio in Win2K ogni volta che si vogliono controllare tali unità, almeno finora.

Con NTFSCHK è possibile eseguire la versione Win2K di Chkdsk da NT 4. Come? Usando la stessa tecnologia sviluppata per l'esecuzione di Chkdsk nativo di NT da DOS e Windows 9x come parte di NTFSDOS Professional e NTFSDOS per Win98, NTFSCHK esegue il wrapping di Chkdsk di Win2K in un ambiente simile a Win2K.

Scaricare NTFSCHK v1.0 all'indirizzo http://www.sysinternals.com/ntfschk.htm.

HANDLEEX V2.1

HandleEx è una utilità di diagnostica complessa per Windows NT/2K che mostra i processi DLL caricati e gli oggetti aperti (i relativi handle). HandleEx è utile per tenere traccia dei problemi di controllo delle versioni delle DLL, gestire le perdite e determinare quale applicazione accede a un determinato file, directory o chiave del Registro di sistema.

La versione 2.1 di HandleEx consente di visualizzare le proprietà degli oggetti aperti dai processi, inclusi i conteggi dei riferimenti e lo stato degli oggetti di sincronizzazione. È anche possibile visualizzare e modificare gli attributi di sicurezza degli oggetti usando gli editor di sicurezza di NT.

Scaricare HandleEx v2.1 all'indirizzo http://www.sysinternals.com/handleex.htm.

CTRL2CAP V2.0

Chi ha un background UNIX sarà d'accordo con me che il tasto CTRL sulla tastiera del PC si trova nel posto sbagliato: dovrebbe stare al posto di BLOC MAIUSC. E chi usa il tasto BLOC MAIUSC in ogni caso? Ctrl2cap è un driver di filtro della tastiera che sostituisce BLOC MAIUSC con il tasto CTRL sinistro, rimuovendo BLOC MAIUSC come effetto collaterale (io uso il tasto CTRL sinistro standard come tasto per sparare quando gioco a Half Life).

Anche se CtrL2cap v1.0 funziona su Win2K, usandolo si disabilitano le funzionalità di risparmio energia di Win2K, il che è piuttosto fastidioso nei portatili. Ho quindi aggiornato CtRL2cap in modo che sia conforme a WDM (Windows Driver Model), per cui tiene conto del risparmio energia. Fornisco il codice sorgente completo e gli stessi file di origine compilano sia le versioni per NT 4 che per Win2K.

Scaricare CtRL2cap v2.0 con il codice sorgente all'indirizzo http://www.sysinternals.com/ctrl2cap.htm.

FILEMON V4.26

Il motivo per cui ero in Microsoft a novembre è che Microsoft aveva organizzato un evento "File System Filter Plugfest" (internamente chiamato "Irp-olooza"). Nel corso dell'evento plugfest sono stati riuniti tutti i principali prodotti basati sui driver di filtro del file system di Windows NT/2K, abbinandoli in modalità round-robin, e quindi sono stati eseguiti test di stress sui differenti abbinamenti. I prodotti rappresentati includevano circa nove prodotti antivirus diversi, vari strumenti di crittografia dei file e uno strumento di gestione delle quota dei dischi. L'obiettivo dell'evento era identificare i problemi di interoperabilità associati a diverse combinazioni di filtri, aiutare a trovare e identificare i bug nei principali prodotti di filtro e forse anche trovare un bug in Win2K. Poiché Filemon è uno dei filtri più diffusi al mondo, e molti dei gruppi di Microsoft lo usano per il loro lavoro di sviluppo e risoluzione dei problemi, gli organizzatori dell'evento plugfest mi hanno invitato a presentarlo.

Filemon ha superato tutti i test di stress senza incidenti, tranne uno. Poiché Filemon è un driver di filtro caricato in modo dinamico, si pone su uno strato superiore rispetto a tutti i prodotti presenti all'evento, ad eccezione di uno. Il prodotto che si pone al di sopra di Filemon è un antivirus che viene anch'esso caricato in modo dinamico, infatti è basato su Filemon. Poiché l'antivirus viene caricato in modo dinamico, abbiamo provato entrambe le varianti di stratificazione e quella in cui Filemon stava al di sotto generava un arresto anomalo dell'antivirus. Quando l'interfaccia utente grafica di Filemon chiudeva il relativo driver, eliminava gli oggetti dispositivo di filtro. In realtà non è corretto che un driver di filtro elimini un oggetto dispositivo di filtro a meno che non riceva un comando da I/O Manager che indica di farlo (FastIoDetach nei filtri del file system e IRP_MJ_PNP con IRP_MN_REMOVE_DEVICE in WDM). Non a caso, la scomparsa imprevista degli oggetti dispositivo di Filemon ha causato l'accesso dell'antivirus alla memoria deallocata e il successivo arresto anomalo.

Fortunatamente, l'arresto anomalo di Filemon si è verificato nell'ultima sessione de plugfest, quindi il mio imbarazzo è stato minimo e dal momento che i test hanno rilevato almeno un bug o un problema grave di interoperabilità in ogni prodotto presente non ero il solo. Filemon v4.26 è la versione che corregge il bug individuato nel plugfest.

Anche prima di partecipare al plugfest, ho trovato un bug in Filemon che potrebbe essere di interesse per gli sviluppatori di driver di file system e dispositivo NT. Di recente ho modificato Filemon per l'uso del meccanismo di sincronizzazione Executive Resource (E-Resource) scarsamente documentato. I driver del file system di Microsoft usano ampiamente le E-Resource, quindi ho pensato che sarebbe stato istruttivo includerne l'uso nel codice sorgente di Filemon. È necessario acquisire le E-Resource da thread con le chiamate APC (Asynchronous Procedure Call) disabilitate. Bisogna fare in modo di saperlo, perché la documentazione del DDK non lo dice. Purtroppo, nella fretta dell'implementazione ho omesso le chiamate richieste alle funzioni che disabilitano e riabilitano le APC durante l'acquisizione di E-Resource di Filemon. Questo bug causa problemi solo in circostanze molto rare, quindi non l'ho rilevato fino a quando non è stato individuato da Driver Verifier di Win2K. Per correggere il problema, ho aggiunto una chiamata a KeEnterCriticalSection prima di acquisire una E-Resource e KeLeaveCriticalSection dopo averne rilasciata una.

Scaricare Filemon v4.26 all'indirizzo http://www.sysinternals.com/filemon.htm.

BLUESCREEN V2.1

Bluescreen Screen Saver è uno screen saver che ho scritto che simula la temuta schermata blu di Windows NT. Ho scritto la versione originale prima che fossero disponibili le versioni di Win2K, in modo da simulare la schermata blu e il riavvio di NT 4, con Chkdsk che rileva errori del disco. Ho reso disponibili due versioni, una che esegue operazioni di I/O sul disco per aggiungere realismo e l'altra che non lo fa. Dopo il rilascio della Beta 3 di Win2K ho aggiornato la nuova schermata blu e il riavvio del sistema di Win2K. In RC3 la schermata di riavvio è cambiata, quindi ho dovuto aggiornare di nuovo Bluescreen. Allo stesso tempo ho reso la generazione di I/O su disco un'opzione configurabile con le proprietà dello screen saver di Bluescreen invece di avere due versioni.

Scaricare Bluescreen v2.1 all'indirizzo http://www.sysinternals.com/bluescrn.htm.

FUNDELETE V2.01

Dopo una lunghissima attesa, Undelete per Windows NT ritorna sotto forma di Fundelete per Windows NT. Fundelete è una utilità che migliora il Cestino di Windows NT/2K con l'acquisizione dei file eliminati all'interno dei programmi e dalla riga di comando, oltre a quelli eliminati da Esplora risorse. Perché il cambiamento di nome? Diversi mesi dopo il rilascio di Undelete per Windows NT, Executive Software ha rilasciato Network Undelete, una utilità simile. Un anno dopo hanno deciso che il nome della nostra utilità era migliore del loro, quindi hanno cambiato il loro in Undelete per Windows NT. Allo stesso tempo, i loro avvocati ci hanno inviato una lettera per avvisarci che stavamo violando il marchio registrato del termine "undelete" che detenevano dal 1987. Invece di combattere, abbiamo deciso di cambiare il nome della nostra utilità.

Gli sviluppatori possono scaricare il codice sorgente nel core del driver di dispositivo di Fundelete, che dimostra alcune tecniche avanzate del driver, tra cui l'acquisizione del SID di un utente da un driver, l'enumerazione del contenuto di una directory da un driver e la creazione di nuovi IRP.

Scaricare Fundelete per Windows NT v2.01 all'indirizzo http://www.sysinternals.com/fundelete.htm.

OPENLIST V1.11

Openlist è una utilità di Windows 9x che mostra tutti i file aperti nel sistema. Nella versione 1.11 è stata aggiunta la possibilità di visualizzare le informazioni dettagliate sui file, tra cui le informazioni sulle versioni delle DLL.

Scaricare Openlist v1.11 all'indirizzo http://www.sysinternals.com/openlist.htm.

"NT INTERNALS" - NUMERO DI DICEMBRE

La mia rubrica "NT Internals" nel numero di dicembre di Windows NT Magazine si intitola "Inside Win2K Scalability Enhancements, Part 2". La seconda di una serie in due parti illustra i miglioramenti apportati da Microsoft in Win2K per la scalabilità multiprocessore, tra cui l'oggetto Job, nuovi controlli quantistici, nuove classi di pianificazione e i pool di thread in modalità utente.

Lo scorso agosto Windows NT Magazine ha cambiato i criteri di consultazione degli articoli online per cui solo gli abbonati sono autorizzati ad accedervi. Il mese scorso hanno ammorbidito questo criterio riportandolo quasi a come era prima di agosto. Ora i non abbonati possono visualizzare liberamente gli articoli risalenti a più di quattro numeri precedenti.

L'elenco completo delle nostre pubblicazioni è disponibile all'indirizzo http://www.sysinternals.com/publ.htm.

NOVITÀ DI INTERNALS

RILASCIO DEL DDK DI WIN2K

La versione finale del DDK (Device Driver Development Kit) di Win2K di Microsoft è ora disponibile all'indirizzo http://www.microsoft.com/ddk. È possibile scaricare gratuitamente il kit o consultare la documentazione online.

ARRESTO ANOMALO DI WIN2K CON UNA SEQUENZA DI TASTI

Non si tratta di un bug. David Solomon, autore di "Inside Windows NT 2nd Edition", mi ha fornito questo suggerimento importante. Aggiungendo il valore del Registro di sistema DWORD HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\i8042prt\Parameters\CrashOnCtrlScroll, impostandolo su "1" e riavviando, sarà possibile arrestare Win2K in modo anomalo usando la tastiera. Tenendo premuto il tasto CTRL destro, premere due volte il tasto di scorrimento in rapida successione. Alla seconda pressione del tasto di scorrimento, verrà visualizzata la schermata blu del sistema con un messaggio analogo a "L'utente finale ha generato manualmente il dump di arresto anomalo".

Avere la possibilità di arrestare manualmente il sistema è utile nei casi in cui il kernel o il driver di dispositivo si è bloccato e il computer non risponde più. Un dump di arresto anomalo generato mentre è in corso il blocco può fornire agli sviluppatori informazioni sulla relativa causa. Questa opzione è stata introdotta talmente in sordina che nemmeno gli sviluppatori di kernel core di Win2K ne erano al corrente finché non l'ho resa nota nel corso del plugfest.

AGGIORNAMENTO DELLA MEMORIA DI SISTEMA PROTETTA DA SCRITTURA

In una precedente newsletter ho parlato di memoria di sistema protetta da scrittura come nuova funzionalità di affidabilità di Win2K. A quanto pare, la protezione completa da scrittura non è presente per impostazione predefinita in molte configurazioni. Se un computer ha almeno 128 MB di memoria fisica, Win2K usa "pagine grandi" da 4 MB per il mapping della memoria di kernel. L'uso di pagine da 4 MB invece che da 4 KB consente di risparmiare un livello di conversione delle pagine e di conseguenza di migliorare le prestazioni. Poiché nella stessa pagina da 4 MB possono risiedere sia il codice di sola lettura che i dati di lettura/scrittura, la protezione da scrittura è disabilitata in tali sistemi, a meno che l'utente non la richieda tramite Driver Verifier. Se Driver Verifier applica la protezione da scrittura, Win2K usa pagine da 4 KB più lente per il mapping della memoria di kernel e le diverse aree di memoria sono allineate a livello di pagina, il che significa che è possibile contrassegnare singole pagine di codice come di sola lettura.

Pertanto, la protezione da scrittura è attiva solo nei sistemi con meno di 128 MB di memoria e quelli in cui è stata abilitata da Driver Verifier. Per i sistemi in cui la protezione da scrittura non è attiva, Microsoft sta valutando di includere in un Service Pack di Win2K di una funzionalità watchdog che esegue il checksum della memoria di sistema e la verifica periodicamente rispetto a tale checksum. L'operazione di verifica, anche se non precisa come la protezione da scrittura basata su hardware, rileverebbe le scritture casuali in aree che devono essere di sola lettura.

CRESCITA ESPLOSIVA DELLE API DI WIN2K

Win2K è senza dubbio significativamente più grande di NT 4. È vero che le dimensioni di Win2K sono dovute in parte a molti nuovi servizi e funzionalità integrate (Active Directory, MMC, COM+ e così via), ma anche il sistema operativo di base è cresciuto. Uno dei motivi della crescita di dimensioni del sistema operativo è che è aumentato il numero di API che esporta per le applicazioni. Le DLL del sistema operativo di base Win2K includono KERNEL32.DLL, GDI32.DLL, USER32.DLL e ADVAPI32.DLL (anche NTDLL.DLL è una DLL del sistema operativo di base, ma KERNEL32 si basa su NTDLL per le API di Win32). Esaminiamo brevemente la crescita esplosiva di ogni API. Ecco i numeri:

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

Si noti che in alcuni casi la crescita viene gonfiata artificialmente del 30% perché alcune API sono presenti sia in formato ANSI che in stringhe di tipo wide e vengono quindi conteggiate due volte nei numeri precedenti.

KERNEL32 è la DLL che esporta le cosiddette funzionalità del sistema operativo di base, tra cui processi, memoria, I/O di file e API di gestione delle impostazioni locali. Le API nuove di Win2K includono nuove funzioni del linguaggio (ad esempio EnumUILanguages), funzioni per oggetti processi (ad esempio AssignProcessToJobObject), funzioni di gestione della memoria (ad esempio AllocateUserPhysicalPages), funzioni di file (ad esempio FindFirstVolume) e API ToolHelp32 (ad esempio Process32First).

GDI32 fornisce routine correlate al disegno e alle bitmap. La crescita è dovuta all'aggiunta di nuove funzioni di vario tipo che includono nuove API di gestione del tipo di carattere (ad esempio CreateFontIndirectEx), sfumatura alfa e funzioni dell'oggetto percorso.

USER32 implementa funzioni di windowing e una parte significativa della sua crescita è dovuta a nuove API di gestione di più monitor. Altre nuove API di USER32 includono una serie di funzioni informative (ad esempio GetWindowInfo, GetTitleBarInfo).

Infine, ADVAPI32 è la DLL che fornisce le API avanzate di Win32. Esistono diversi nuovi gruppi di API che contribuiscono alla crescita: EFS (ad esempio DecryptFile), CryptoAPI (ad esempio CryptEnumProviders), sicurezza (ad esempio CheckTokenMembership), traccia degli eventi (ad esempio StartTrace) e Windows Management Interface (WMI) (ad esempio WmiOpenBlock) costituiscono la maggior parte delle nuove funzioni.

SEMINARI DI DAVID SOLOMON

I seminari dell'esperto David Solomon si terranno a San Diego dal 21 al 25 febbraio. Formazione per sviluppatori da parte dei docenti Microsoft.

  • Win32 Programming di Jeffrey Richter
  • Power Debugging di John Robbins
  • Windows 2000 Device Drivers di Jamie Hanrahan
  • Driver di dispositivo Windows CE e applicazioni di Doug Boling

Per informazioni dettagliate, vedere http://www.solsem.com

SVILUPPI FUTURI

L'acquisizione di brevetti software è diventato un passatempo necessario per le aziende che vogliono sfruttare la loro proprietà intellettuale. Microsoft non è estranea al gioco dei brevetti, e il kernel di NT ha alcuni meccanismi che sono stati considerati degni di nota dal Patent and Trademark Office (PTO) degli Stati Uniti. Le aree del kernel per cui Microsoft ha ottenuto brevetti includono I/O Manager e Object Manager. La prossima volta fornirò un elenco dei brevetti che sono riuscito a rivelare sul kernel NT.


Grazie per aver letto la newsletter Systems Internals.

Data di pubblicazione: giovedì 6 gennaio 2000 19:09 da ottoh

[Archivio newsletter ^] [< Volume 1, Numero 5] [Volume 2, Numero 2 >]