Windows è nt. Quali versioni del sistema operativo Windows esistono?

Il sistema operativo Windows NT o New Technology è stato creato da un gruppo di sviluppatori guidati da Dave Cutler.

Windows NT è un sistema operativo a 32 bit con multitasking prioritario. I componenti fondamentali del sistema operativo includono strumenti di sicurezza e un servizio di rete sviluppato. Windows NT fornisce inoltre compatibilità con molti altri sistemi operativi, file system e reti. Windows NT può funzionare sia su computer dotati di processori CISC con calcolo del set di istruzioni complesso, sia su computer con processori RISC con calcolo del set di istruzioni ridotto. Il sistema operativo Windows NT supporta anche sistemi ad alte prestazioni con configurazione multiprocessore.

L'unica cosa familiare di Windows NT è il suo aspetto. Dietro l'interfaccia utente grafica si celano nuove e potenti funzionalità.

Attività impostate durante la creazione di WindowsN.T. Windows NT non rappresenta un ulteriore sviluppo di prodotti già esistenti. La sua architettura è stata creata di nuovo tenendo conto dei requisiti di un sistema operativo moderno. Le caratteristiche del sistema sviluppato sulla base di questi requisiti sono le seguenti.

Sforzarsi di fornire Compatibilità nuovo sistema operativo, gli sviluppatori di Windows NT hanno mantenuto la familiare interfaccia di Windows e hanno implementato il supporto per i file system esistenti (come FAT) e varie applicazioni (scritte per MS-DOS, OS/2 1.x, Windows 3.x e POSIX) . Gli sviluppatori hanno anche incluso in Windows NT strumenti per lavorare con vari strumenti di rete.

Raggiunto portabilità(portabilità) di un sistema che ora può essere eseguito su entrambi i processori CISC e RISC. CISC include processori compatibili Intel 80386 e versioni successive. RISC è rappresentato da sistemi con processori MIPS R4000, Digital Alpha AXP e Pentium della serie P54 e superiori.

Scalabilità(scalabilità) significa che Windows NT non è legato a un'architettura informatica a processore singolo, ma è in grado di sfruttare appieno le capacità fornite dai sistemi multiprocessore simmetrici. Attualmente Windows NT può funzionare su computer con un numero di processori compreso tra 1 e 32. Inoltre, se i compiti che devono affrontare gli utenti diventano più complessi e le richieste poste all'ambiente informatico si espandono, Windows NT rende possibile aggiungere facilmente sistemi più potenti e server produttivi e postazioni di lavoro “reti aziendali.

Ulteriori vantaggi derivano dall'utilizzo di un unico ambiente di sviluppo sia per server che per workstation.


Windows NT ha un sistema omogeneo sistema di sicurezza(sicurezza) conforme alle specifiche del governo statunitense e conforme allo standard di sicurezza B2. In un ambiente aziendale, le applicazioni critiche vengono fornite in un ambiente completamente isolato.

Elaborazione distribuita(elaborazione distribuita) significa che Windows NT dispone di funzionalità di rete integrate nel sistema. Windows NT consente inoltre la comunicazione con diversi tipi di computer host supportando una varietà di protocolli di trasporto e utilizzando funzionalità client-server di alto livello, tra cui pipe denominate, chiamate di procedura remota (RPC) e socket Windows.

Affidabilità e tolleranza ai guasti(affidabilità e robustezza) sono forniti da caratteristiche architetturali che proteggono i programmi applicativi da danni reciproci e al sistema operativo. Windows NT utilizza una gestione strutturata delle eccezioni con tolleranza agli errori a tutti i livelli dell'architettura, che include un file system NTFS ripristinabile e fornisce protezione tramite sicurezza incorporata e tecniche avanzate di gestione della memoria.

Possibilità localizzazione(assegnazione) forniscono strumenti per lavorare in molti paesi del mondo nelle lingue nazionali, che si ottengono utilizzando lo standard Unicod (sviluppato dall'organizzazione internazionale per la standardizzazione - ISO).

Grazie al design modulare del sistema, ciò è garantito estensibilità Windows NT, che consente la flessibilità di aggiungere nuovi moduli a vari livelli del sistema operativo.

Il pacchetto include numerosi programmi applicativi: Internet Information Server 2.0, Index Server, FrontPage, Internet Explorer, Domain Name System (DNS) Server, Proxy Server e Internet Resource Center, tutti i Service Pack, Plus! e una serie di utilità aggiuntive, comprese quelle nuove, come le procedure guidate amministrative o Imager, e versioni migliorate di programmi precedenti, come Task Manager.

La procedura guidata amministrativa consente di automatizzare le attività tipiche che si verificano durante la gestione di una rete e le versioni aggiornate dei programmi di diagnostica e monitoraggio delle prestazioni di Windows NT servono per il monitoraggio operativo dello stato del sistema. La finestra di dialogo Task Manager è stata trasformata in un potente programma che fornisce molte informazioni utili, dal grado di carico del processore ai nomi di tutti i processori di sistema attivi.

Uno dei componenti chiave di Windows NT 4.0 è Internet Information Server 2.0. Si tratta di una soluzione flessibile e multifunzionale sia per connettersi ad Internet che per creare la propria rete intranet privata. L'utente deve solo configurare i parametri del protocollo TCP/IP (se è installato il servizio DHCP, viene assegnato automaticamente un indirizzo IP), avviare IIS e creare una o più pagine Web. I documenti Web sono quindi disponibili a tutti gli utenti della rete che dispongono di un software installato che supporta il protocollo TCP/IP e un browser World-Wide Web standard.

Sono state apportate alcune modifiche al sottosistema di accesso remoto, Servizio di accesso remoto (RAS). Ora è possibile utilizzare canali di comunicazione sicuri, il nuovo protocollo PPTP (Point-To-Point Tunneling Protocol) e la possibilità di utilizzare più modem per organizzare canali di comunicazione con reti remote.

Le caratteristiche dell'architettura di rete delle versioni precedenti di Windows NT (modello multilivello di protezione contro l'accesso non autorizzato, progettazione modulare specifica del sistema, ecc.) ne limitavano la velocità quando si lavora su reti Internet veloci. Nella versione 4.0 sono stati migliorati gli algoritmi per la memorizzazione nella cache delle richieste di rete, sono stati ottimizzati i moduli del sottosistema di condivisione delle risorse ed è stato modificato il meccanismo di generazione degli interrupt (con il passaggio alle reti ad alta velocità, questa funzione è diventata inaspettatamente fonte di problemi per sistemi operativi di rete). Il secondo cambiamento a cui Microsoft fa riferimento è l'aumento delle prestazioni del sistema operativo durante l'esecuzione di operazioni grafiche.

La combinazione di un potente sistema operativo di rete e un'interfaccia grafica progettata per utenti inesperti sembra piuttosto insolita. Windows NT 4.0 non è solo un'altra versione del popolare sistema operativo. Rappresenta la base per una nuova generazione di prodotti software progettati per funzionare su Internet.

Moduli architettonici di Windows NT. Come mostrato, Windows NT è un sistema operativo modulare (più avanzato di un monolitico) costituito da moduli singoli, interconnessi e relativamente semplici.

I principali moduli di Windows NT sono (elencati in ordine dal livello più basso dell'architettura a quello più alto): il livello di astrazioni hardware HAL (Hardware Abstraction Layer), il kernel (Kernel), il sistema esecutivo (Executive), i sottosistemi protetti (sottosistemi protetti) e sottosistemi sottosistemi ambientali).

virtualizza le interfacce hardware, garantendo così che il resto del sistema operativo sia indipendente da specifiche funzionalità hardware. Questo approccio consente una facile portabilità di Windows NT da una piattaforma hardware a un'altra.

Nucleo costituisce la base della struttura modulare del sistema e coordina l'esecuzione della maggior parte delle operazioni basilari di Windows NT. Questo componente è appositamente ottimizzato in termini di volume ed efficienza operativa. Il kernel è responsabile della pianificazione dell'esecuzione dei thread, della sincronizzazione del lavoro di più processori e della gestione delle interruzioni e delle eccezioni hardware.

Sistema di esecuzione include una serie di costrutti di programma in modalità privilegiata (modalità kernel), che rappresentano il servizio di base del sistema operativo per i sottosistemi dell'ambiente. Il sistema esecutivo è costituito da diversi componenti,

Riso. 2.32. Struttura modulare di Windows NT

ognuno di essi è progettato per supportare uno specifico servizio di sistema. Pertanto, uno dei componenti, il Security Reference Monitor, funziona insieme ai sottosistemi protetti e garantisce l'implementazione del modello di sicurezza del sistema.

Sottosistemi ambientali sono server sicuri in modalità utente che forniscono esecuzione e supporto per applicazioni progettate per vari ambienti operativi (vari sistemi operativi). Esempi di sottosistemi di ambiente includono sottosistemi Win32 e OS/2.

Livello di astrazione hardware(HAL) è uno strato software creato dai produttori di hardware che nasconde (o astrae) le differenze hardware dagli strati superiori del sistema operativo. Pertanto, grazie al filtro fornito da HAL, diversi hardware appaiono simili dal punto di vista del sistema operativo; Viene eliminata la necessità di una configurazione speciale del sistema operativo per l'apparecchiatura utilizzata.

Durante la creazione del livello di astrazione hardware, il compito era quello di preparare procedure che consentissero a un singolo driver per un dispositivo specifico di supportare il funzionamento di questo dispositivo per tutte le piattaforme. HAL è rivolto a un'ampia varietà di piattaforme hardware con architettura a processore singolo; pertanto, ciascuna opzione hardware non richiede una versione separata del sistema operativo.

Le routine HAL sono chiamate sia funzionalità del sistema operativo (incluso il kernel) che driver di dispositivo. Quando si lavora con i driver di dispositivo, il livello di astrazione hardware fornisce supporto per varie tecnologie I/O (invece della tradizionale attenzione su una singola implementazione hardware o del costoso adattamento a ogni nuova piattaforma hardware).

Il livello di astrazioni hardware consente inoltre di “nascondere” le caratteristiche dell'implementazione hardware dei sistemi multiprocessore simmetrici da altri livelli del sistema operativo.

Nucleo(Kernel) funziona a stretto contatto con il livello di astrazione hardware. Questo modulo si occupa principalmente della pianificazione delle azioni del processore. Se un computer contiene più processori, il kernel sincronizza il loro funzionamento per ottenere le massime prestazioni del sistema.

Il kernel viene inviato flussi(thread - thread di controllo, che a volte vengono chiamati sottoattività, rami), che sono gli oggetti principali nel sistema pianificato. I thread sono definiti nel contesto di un processo; un processo include uno spazio di indirizzi, un insieme di oggetti disponibili per il processo e un insieme di thread di controllo eseguiti nel contesto del processo. Gli oggetti sono risorse gestite dal sistema operativo.

Il kernel invia i thread di controllo in modo tale da massimizzare il carico sui processori di sistema e garantire l'elaborazione prioritaria dei thread con priorità più alta. Esistono un totale di 32 valori di priorità, raggruppati in due classi: in tempo reale e variabile. Questo approccio consente di ottenere la massima efficienza del sistema operativo.

I sottocomponenti del sistema di esecuzione, come il gestore I/O e il gestore dei processi, utilizzano il kernel per sincronizzare le azioni. Interagiscono anche con il kernel per livelli di astrazione più elevati chiamati oggetti del kernel; alcuni di questi oggetti vengono esportati all'interno delle chiamate API (Application Program Interface) personalizzate.

Il kernel gestisce due tipi di oggetti.

Spedire oggetti(oggetti dispatcher) sono caratterizzati da uno stato di segnale (segnalato o non segnalato) e controllano l'invio e la sincronizzazione delle operazioni di sistema. Questi oggetti includono eventi, mutanti, mutex, semafori, thread, timer.

Controllare gli oggetti(oggetti di controllo) vengono utilizzati per le operazioni di controllo del kernel, ma non influiscono sulla pianificazione o sulla sincronizzazione.

Gli oggetti di controllo includono chiamate di procedure asincrone, interruzioni, notifiche di alimentazione, stati di alimentazione, processi, profili.

Sistema di esecuzione(Executive), che include il kernel e il livello di astrazione hardware HAL, fornisce un servizio di sistema comune che può essere utilizzato da tutti i sottosistemi dell'ambiente. Ogni gruppo di servizi è controllato da uno dei componenti separati del sistema di esecuzione:

Gestore oggetti;

Gestore della memoria virtuale;

Process Manager;

Servizio di chiamata di procedura locale;

Gestore I/O;

Monitoraggio dei riferimenti alla sicurezza.

Il monitor di sicurezza, insieme al processore di accesso (Logon) e ai sottosistemi protetti, implementa Modello di sicurezza di Windows NT.

Il livello più alto del sistema di esecuzione è chiamato Servizi di sistema. Mostrato nella fig. 2.33 Un servizio di sistema è un'interfaccia tra i sottosistemi dell'ambiente in modalità utente e in modalità privilegiata.

Gestore della cache. L'architettura I/O contiene un singolo gestore cache, che esegue la memorizzazione nella cache per l'intero sistema I/O. La memorizzazione nella cache è una tecnica utilizzata dal file system per aumentare l'efficienza.

Fig.2.33. Interfaccia di sistema

Invece di scrivere e leggere direttamente su disco, i file utilizzati di frequente vengono temporaneamente archiviati nella memoria cache; pertanto, il lavoro con questi file viene eseguito in memoria. Le operazioni con i dati in memoria sono molto più veloci delle operazioni con i dati su disco.

Il gestore della cache utilizza un modello di mapping dei file integrato con il gestore della memoria virtuale di Windows NT. Il gestore della cache fornisce un servizio di memorizzazione nella cache per tutti i file system e i componenti di rete che operano sotto il controllo del gestore I/O. A seconda della quantità di RAM disponibile, il gestore della cache può aumentare o diminuire dinamicamente la dimensione della cache. Quando un processo apre un file che era già nella cache, il gestore della cache copia semplicemente i dati dalla cache nello spazio degli indirizzi virtuali.

Il gestore della cache supporta servizi come lazy write e lazy commit, che possono aumentare notevolmente l'efficienza del file system. Durante la scrittura lenta, le modifiche vengono registrate nella cache della struttura dei file per un accesso più rapido. Successivamente, quando il carico della CPU viene ridotto, il gestore della cache scrive le modifiche su disco. La registrazione al rallentatore è simile alla registrazione al rallentatore. Invece di contrassegnare immediatamente la transazione come avvenuta con successo, le informazioni trasferite vengono memorizzate nella cache e successivamente scritte nel registro del file system in background.

Driver del file system. Nell'architettura I/O di Windows NT, i driver del file system sono gestiti dal Gestore I/O. Windows NT consente l'utilizzo di numerosi file system, inclusi i file system FAT esistenti. Per garantire la compatibilità verso l'alto con i sistemi operativi MS-DOS, Windows 3.xe OS/2, Windows NT supporta i file system FAT e HTTPS.

Inoltre, Windows NT supporta anche NTFS, un nuovo file system progettato specificatamente per l'utilizzo con Windows NT. NTFS fornisce una serie di funzionalità, inclusi strumenti di ripristino del file system, supporto per Unicode, nomi di file lunghi e supporto per POSIX.

L'architettura I/O di Windows NT non solo supporta i file system tradizionali, ma consente anche all'editor di rete e al server di funzionare come driver del file system. Dal punto di vista del gestore I/O, non c'è differenza tra lavorare con un file situato su un computer remoto in rete e lavorare con un file sul disco rigido locale. Redirector e server possono essere caricati e scaricati dinamicamente proprio come qualsiasi altro driver; è possibile che su un computer si trovino contemporaneamente un gran numero di reindirizzamenti e server.

Driver di rete. Il tipo successivo di driver presenti come componenti nell'architettura I/O sono i driver di rete. Windows NT include funzionalità di rete integrate e supporto per applicazioni distribuite. I reindirizzatori e i server funzionano come driver del file system e vengono eseguiti al livello dell'interfaccia del provider o al di sotto di esso, dove risiedono NetBIOS e socket Windows.

I driver del protocollo di trasporto comunicano con i reindirizzatori e i server tramite un livello denominato Transport Driver Interface (TD1). Windows NT include i seguenti veicoli:

  • Transmission Control Protocol/Protocollo Internet TCP/IP, che offre la possibilità di lavorare con un'ampia gamma di reti esistenti;
  • NBF è un discendente di NetBIOS Extended User Interface (NetBEUI), che fornisce compatibilità con le reti locali esistenti basate su LAN Manager, LAN Server e MS-Net;
  • controllo del collegamento dati (DLC - Data Link Control), che fornisce un'interfaccia per l'accesso ai mainframe e alle stampanti connesse in rete;
  • NWLink è un'implementazione IPX/SPX che fornisce la comunicazione con No-well NetWare.

Nella parte inferiore dell'architettura di rete si trova il driver della scheda dell'adattatore di rete. Windows NT supporta attualmente i driver di dispositivo conformi a NDIS (Network Device Interface Specifica) versione 3.0. NDIS fornisce un ambiente flessibile per lo scambio di dati tra protocolli di trasporto e adattatori di rete. NDIS 3.0 consente a un singolo computer di avere più schede di rete installate. A sua volta, ciascuna scheda adattatore di rete può supportare più protocolli di trasporto per accedere a diversi tipi di stazioni di rete.

Modello di sicurezza di Windows NT- rappresentato da un monitor di sicurezza (Security Reference Monitor), nonché da altri due componenti: un processore di accesso (Logon Process) e sottosistemi protetti sicuri.

In un sistema operativo multitasking come Windows NT, le applicazioni condividono numerose risorse di sistema, tra cui la memoria del computer, i dispositivi di input/output, i file e i processori del sistema. Windows NT include un insieme di componenti di sicurezza che garantiscono che le applicazioni non possano accedere a queste risorse senza l'autorizzazione appropriata.

Il monitor di sicurezza è responsabile dell'applicazione delle corrette politiche di accesso e controllo di uno specifico sottosistema di sicurezza locale. Il monitor di sicurezza fornisce servizi per la verifica dell'accesso agli oggetti, il controllo dei privilegi utente e la generazione di messaggi sia per la modalità privilegiata che per la modalità utente. Il Security Monitor, come altre parti del sistema operativo, funziona in modalità privilegiata.

Il processo di accesso di Windows NT richiede un accesso di sicurezza per autenticare l'utente. Ogni utente deve disporre di un budget e deve utilizzare una password per accedere a tale budget.

Prima che un utente possa accedere a qualsiasi risorsa del computer da Windows NT, l'utente deve effettuare l'accesso tramite il processo di accesso in modo che il motore di sicurezza possa riconoscere il nome utente e la password. Solo dopo aver effettuato con successo l'autenticazione il monitor di sicurezza esegue un controllo di accesso per determinare il diritto dell'utente di accedere all'oggetto.

La sicurezza delle risorse è una delle funzionalità fornite dal modello di sicurezza. Le attività non possono accedere alle risorse di altre persone (come la memoria) se non attraverso l'uso di speciali meccanismi di condivisione.

Windows NT fornisce inoltre controlli che consentono all'amministratore di registrare l'attività dell'utente.

Gestione della memoria di Windows NT. Windows NT Workstation 3.51 è essenzialmente un sistema operativo server su misura per l'utilizzo su workstation. Ciò si traduce in un'architettura in cui la protezione assoluta dei programmi applicativi e dei dati ha la precedenza sulle considerazioni di velocità e compatibilità. L'estrema affidabilità di Windows NT ha un costo di sistema elevato, quindi sono necessarie una CPU veloce e almeno 16 MB di RAM per ottenere prestazioni accettabili. Windows NT ottiene una protezione della memoria inferiore eliminando la compatibilità con i driver di dispositivo in modalità reale. Windows NT esegue le proprie applicazioni NT a 32 bit, così come la maggior parte delle applicazioni Windows 95. Come Windows 95, Windows NT consente di eseguire programmi Windows e DOS a 16 bit nel suo ambiente.

L'allocazione della memoria di Windows NT è diversa dall'allocazione della memoria di Windows 95. Ai programmi applicativi nativi vengono allocati 2 GB di spazio di indirizzi speciali, dal limite di 64 KB a 2 GB (i primi 64 KB sono completamente inaccessibili). I programmi applicativi sono isolati gli uni dagli altri, sebbene possano comunicare tramite i meccanismi Appunti, DDE e OLE.

Nella parte superiore di ogni blocco di applicazione da 2 GB c'è il codice che l'applicazione vede come DLL di sistema Ring 3. Queste sono in realtà solo stub di inoltro delle chiamate chiamate DLL lato client. Quando la maggior parte delle funzioni API vengono chiamate da un programma applicativo, le DLL lato client chiamano le procedure LPC (Local Process Communication), che passano la chiamata e i parametri associati in uno spazio di indirizzi completamente isolato che contiene il codice di sistema effettivo. Questo processo server controlla il valore dei parametri, esegue la funzione richiesta e inoltra i risultati allo spazio degli indirizzi del programma applicativo. Sebbene il processo server stesso rimanga un processo a livello di applicazione, è completamente protetto e isolato dal programma che lo richiama.

Tra i segni 2 e 4 GB ci sono i componenti di sistema Windows NT di basso livello di Ring 0, inclusi il kernel, lo scheduler dei thread e il gestore della memoria virtuale. Le pagine di sistema in quest'area hanno privilegi di supervisore specificati dal circuito di protezione dell'anello fisico del processore. Ciò rende il codice di sistema di basso livello invisibile e non scrivibile per i programmi a livello di applicazione, ma comporta un degrado delle prestazioni durante le transizioni tra gli anelli. Per le applicazioni Windows a 16 bit, Windows NT implementa le sessioni Windows on Windows (WOW). Windows NT offre la possibilità di eseguire programmi Windows a 16 bit singolarmente nei propri spazi di memoria o insieme in uno spazio di indirizzi condiviso. In quasi tutti i casi, le applicazioni Windows a 16 e 32 bit possono comunicare liberamente utilizzando OLE (tramite thunk speciali, se necessario) indipendentemente dal fatto che vengano eseguite in una memoria separata o condivisa. Le applicazioni e le sessioni WOW native vengono eseguite in multitasking preventivo basato sul controllo dei singoli thread. Più applicazioni Windows a 16 bit in un'unica sessione WOW vengono eseguite utilizzando un modello multitasking cooperativo. Windows NT può anche eseguire più sessioni DOS in multitasking. Poiché Windows NT ha un'architettura completamente a 32 bit, non esistono limiti teorici sulle risorse GDI e USER.

Differenze chiave in Windows 2000. Windows 2000 o W2k è un sistema operativo Microsoft basato sulla tecnologia Windows NT, che si rifletteva nel nome originale del progetto W2k: Windows NT 5.0. Windows 2000 è un sistema operativo completamente a 32 bit con multitasking prioritario e gestione della memoria migliorata. Il progetto W2k si basa sugli stessi principi che un tempo assicuravano il successo di NT.

Interfaccia W2k simile all'interfaccia di Windows 98 con IE 5.0 installato. Tuttavia, noteremo ancora alcuni dettagli.

La prima cosa che attira la tua attenzione è che la combinazione di colori è cambiata. Ora assomiglia a uno dei design utilizzati nel desktop KDE per Linux. Un altro dettaglio notevole è l'ombra sotto il cursore del mouse, che può essere rimossa/impostata in Pannello di controllo -> Mouse -> Puntatori, selezionando Abilita ombra puntatore. Inoltre è stato aggiunto un nuovo effetto alla comparsa dei menu, che ora appaiono gradualmente dal nulla. Controllato da Proprietà del desktop, nella scheda Effetti, seleziona Usa effetti di transizione per menu e descrizioni comandi.

Il menu Start ha introdotto una funzione familiare da Office 2000, quando all'apertura vengono mostrati solo gli elementi utilizzati più frequentemente, il resto viene aperto se si preme la freccia giù. Puoi controllare questo effetto in Proprietà della barra delle applicazioni, nella scheda Generale, seleziona Usa menu personalizzati (allo stesso modo, in 1E5 questa opzione è disabilitata in Strumenti -> Opzioni Internet -> Avanzate -> Abilita menu Preferiti personalizzati). Ci sono molti altri elementi in Proprietà desktop, incluso Nascondi indicatori di navigazione da tastiera finché non utilizzo il tasto Alt. Se selezionata, la sottolineatura sotto le lettere che indicano la scorciatoia da tastiera nei programmi Windows viene rimossa finché non viene premuta .

Nella seconda scheda delle Proprietà della barra delle applicazioni, Avanzate, è presente una finestra Impostazioni del menu Start, che consente di aggiungere/rimuovere righe incluse nel menu Start ed espandere alcuni elementi. Ad esempio, se selezioni la casella di controllo Espandi Pannello di controllo, quando passi il cursore del mouse sul Pannello di controllo nel menu Start, si aprirà un altro menu alla sua destra, che conterrà tutti gli elementi in esso inclusi. Una funzionalità utile in questa scheda è il pulsante Riordina. W2k, per impostazione predefinita, posiziona le cartelle con gli ultimi programmi installati nella parte inferiore del menu Start; le cartelle potrebbero anche trovarsi sotto i collegamenti ai file. Il riordinamento elimina questa ingiustizia e dispone tutte le cartelle dall'alto verso il basso in ordine alfabetico. Tuttavia, lo stesso effetto può essere ottenuto facendo clic con il pulsante destro del mouse su Menu Start -> Programmi e selezionando Ordina per nome. Inoltre, con il tasto destro puoi “trascinare e rilasciare” qualsiasi elemento da lì in qualsiasi luogo.

Un'altra differenza che spesso non convince le persone che hanno lavorato in precedenza con NT e W9x, stranamente, è l'uso diffuso delle caselle di controllo, specialmente quelle che sono solo un quadrato su sfondo bianco. Quindi, se scopri che non puoi fare qualcosa, guarda di nuovo tutte le finestre, forse semplicemente non hai prestato attenzione a tale casella di controllo.

Responsabile delle attivitàè uno degli strumenti più potenti e convenienti di NT progettato per la gestione dei processi. Si chiama entrambi oppure selezionandolo dal menu che appare dopo aver fatto clic con il tasto destro sulla barra delle applicazioni. Puoi selezionarlo dopo .

Il Task Manager è composto da tre schede: Prestazioni, Processi, Applicazioni. Cominciamo con le prestazioni. Questa scheda mostra informazioni sul carico del processore(i) in tempo reale, mostra il carico della memoria fisica e mostra quanta RAM è utilizzata/libera e quanto swap di sistema è occupato. Inoltre, vengono fornite anche altre informazioni aggiuntive lì, ad esempio Threads and Processes - il numero di thread e processi attualmente in esecuzione sulla macchina, Peak - la dimensione massima dello scambio durante la sessione, Nonpaged - la quantità di memoria allocata per il kernel. Queste informazioni possono essere utilizzate quando si tratta di rispondere alla domanda su quale fattore nel sistema è il "collo di bottiglia" che rallenta il lavoro (anche se è meglio utilizzare Performance Monitor per questi scopi).

La seconda scheda, Processi, contiene un elenco dei processi attualmente attivi. Per ogni processo è possibile scoprire alcune informazioni aggiuntive, come: PID (Process ID), la quantità di RAM utilizzata, il numero di thread generati dal processo e molto altro. È possibile aggiungere/rimuovere i parametri visualizzati tramite Visualizza -> Seleziona colonne. Inoltre, è possibile eseguire determinate azioni con uno qualsiasi di questi processi. Per fare questo ti basterà cliccarci sopra con il tasto destro, apparirà un menu contestuale attraverso il quale potrai terminare il processo, End Process, puoi “uccidere” il processo stesso e tutti gli altri che ha “generato”, End Process Albero. È possibile impostare la priorità del processo, dalla più alta RealTime alla più bassa, Bassa. Se la macchina ha due processori e un core multiprocessore, in questo menu appare un'altra voce, Imposta affinità, che consente di trasferire il processo su un altro processore, Cpu 0, Cpu l e così via fino a Sri31.

L'ultima scheda di Task Manager - Applicazioni, consente di visualizzare l'elenco delle applicazioni in esecuzione e di terminarle. Task Manager non solo consente di terminare le applicazioni, ma può anche avviarne di nuove. File -> Nuova attività (Esegui).

Directory attiva - Si tratta di un nuovo strumento per la gestione degli utenti e delle risorse di rete. È progettato per facilitare il lavoro degli amministratori di grandi reti basate su W2k e attorno ad esso è costruito l'intero sistema di gestione e sicurezza della rete. Per installare Active Directory è necessario disporre di W2k Server. W2kPro può funzionare in un ambiente Active Directory, ma non può crearne uno. Active Directory si basa sui seguenti principi:

1. Single Sign-On sulla rete. Grazie alla tecnologia IntelliMirror, puoi andare su qualsiasi computer dell'ufficio e inserire la tua password

e davanti a te avrai il tuo desktop, i tuoi documenti e le tue impostazioni.

2. Sicurezza delle informazioni. Active Directory dispone di funzionalità di autenticazione utente integrate. Per ogni oggetto sulla rete è possibile impostare centralmente i diritti di accesso, a seconda dei gruppi e degli utenti specifici. Con la sicurezza Kerberos è possibile comunicare in modo sicuro anche su reti aperte come Internet. In questo caso, i dati trasmessi sulla rete vengono crittografati e le password non vengono trasmesse o archiviate sui computer client. Il sistema di sicurezza Kerberos (dal nome del mitico cane a tre teste che, secondo la mitologia greca, custodiva le porte dell'inferno) è noto da tempo, ma viene utilizzato per la prima volta nel sistema operativo Microsoft. Senza entrare nei dettagli, il sistema funziona così:

Il client invia una richiesta al server di autenticazione per ottenere il permesso di accedere alle informazioni richieste;

Il server verifica i diritti del client e gli invia l'autorizzazione a ricevere le informazioni richieste, crittografate utilizzando una chiave nota al client, e allo stesso tempo invia una chiave di crittografia temporanea. Tutte le informazioni trasmesse vengono crittografate utilizzando questa chiave e la durata della chiave è limitata, quindi il server di autenticazione di tanto in tanto invia una nuova chiave (naturalmente, la nuova chiave viene crittografata utilizzando la chiave corrente), che è sconosciuta a chiunque tranne il server e il client. La modifica regolare delle chiavi di crittografia rende la vita molto più difficile agli aggressori che cercano i tuoi dati.

Tuttavia, come tutti ricordiamo, nel mito greco Kerberos non poteva resistere al potente Ercole. Nel nostro caso, quindi, nonostante tutti i suoi vantaggi, il sistema di sicurezza Kerberos non può resistere a tutti i tipi di attacchi. È ad esempio possibile bombardare un'applicazione con false richieste, il cosiddetto attacco Deny of Service, che può far sì che l'applicazione non utilizzi il protocollo Kerberos.

3. Gestione centralizzata. Quando si utilizza Active Directory, l'amministratore non deve più configurare manualmente ciascuna macchina se, ad esempio, è necessario modificare i diritti di accesso a un singolo oggetto o installare una nuova stampante di rete. Tali modifiche possono essere apportate immediatamente per l'intera rete.

4 . Interfaccia flessibile. Le strutture delle directory cambiano rapidamente e facilmente. Potete ad esempio creare una directory della vostra azienda, separare la contabilità, i reparti marketing e la segreteria in sottodirectory separate e presentare tutto questo sotto forma di una struttura ad albero. Oppure, ad esempio, crea diversi alberi che rappresentano diversi uffici in diversi edifici o regioni e imposta facilmente la connessione e i diritti di accesso tra di loro. Collegate una stampante di rete all'elenco dei contabili con un clic del mouse. (In questo caso, i driver verranno installati su questi computer automaticamente.) Oppure trascina e rilascia l'intero reparto contabilità da un server all'altro, con tutti i suoi diritti, cartelle e documenti.

5. Integrazione con DNS. Grazie alla stretta integrazione di Active Directory con DNS, la rete locale utilizza gli stessi nomi di risorse di Internet, con conseguente minore confusione e migliore interoperabilità tra la rete locale e la rete geografica.

6. Scalabilità. È possibile combinare più domini Active Directory sotto un'unica gestione.

7. Facile da cercare. In un dominio Active Directory è possibile trovare vari oggetti in base a diverse caratteristiche, come il nome dell'utente o del computer, l'indirizzo e-mail dell'utente, ecc.

DFS (file system distribuito)- uno degli strumenti di Active Directory. Ti consente di creare condivisioni di rete che possono includere più file system su macchine diverse. Per un utente di Active Directory, questo è assolutamente trasparente e non importa dove e su quali macchine si trovano fisicamente i file con cui lavora: per lui si trovano tutti in un unico posto. Inoltre, quando si utilizzano DFS e Active Directory, la gestione di tali risorse risulta semplificata. È centralizzato, puoi aggiungere nuove risorse in modo semplice e indolore o eliminare quelle vecchie, modificare la posizione fisica dei file inclusi in DFS, ecc.

Alla fine del 1988, Microsoft incaricò David Cutler di guidare un nuovo progetto software: creare il nuovo sistema operativo Microsoft per gli anni '90. Ha riunito un team di ingegneri per sviluppare un sistema New Technology (NT).

Il piano originale era quello di sviluppare NT con interfacce utente in stile OS/2 e interfacce API (application programming), ma OS/2 vendette poco e Windows 3.0 fu un successo importante e costante sul mercato. Dopo aver visto le pressioni del mercato e le sfide associate allo sviluppo e al supporto di due sistemi incompatibili, Microsoft ha deciso di cambiare rotta e indirizzare i suoi ingegneri verso un'unica strategia coesa per il sistema operativo. Questa strategia consisteva nello sviluppare una famiglia di sistemi operativi basati su Windows che coprisse molti tipi di computer, dai laptop più piccoli alle più grandi workstation multiprocessore. Pertanto, la generazione successiva di sistemi Windows fu chiamata Windows NT.

Windows NT supporta l'interfaccia utente grafica (GUI) di Windows ed è anche il primo sistema operativo Microsoft basato su Windows a supportare l'API Win32, un'interfaccia di programmazione a 32 bit per lo sviluppo di nuove applicazioni. L'API Win32 rende disponibili alle applicazioni funzionalità avanzate del sistema operativo come processi multi-thread, sincronizzazione, sicurezza, I/O e gestione degli oggetti.

Nel luglio 1993 apparvero i primi sistemi operativi della famiglia NT: Windows NT 3.1 e Windows NT Advanced Server 3.1.

Versioni

  • Windows NT 3.1 (27 luglio 1993)
  • Windows NT 3.5 (21 settembre 1994)
  • Windows NT 3.51 (30 maggio 1995)
  • Windows NT 4.0 (24 agosto 1996)
  • Windows 2000 (17 febbraio 2000)
  • Windows XP (25 ottobre 2001)
  • Windows XP edizione a 64 bit (28 marzo 2003)
  • Windows Server 2003 (25 aprile 2003)
  • Windows XP Media Center Edition 2003 (18 dicembre 2003)
  • Windows XP Media Center Edition 2005 (12 ottobre 2004)
  • Windows XP Professional x64 Edition (25 aprile 2005)
  • Nozioni fondamentali di Windows per PC legacy (8 luglio 2006)
  • Windows Vista (30 novembre 2006)
  • Windows Home Server (7 novembre 2007)
  • Windows Server 2008 (27 febbraio 2008)

Struttura di Windows NT

Strutturalmente, Windows NT può essere rappresentato in due parti: una parte del sistema operativo che viene eseguita in modalità utente e una parte del sistema operativo che viene eseguita in modalità kernel.

La parte di Windows NT che viene eseguita in modalità kernel è chiamata parte esecutiva. Comprende una serie di componenti che gestiscono la memoria virtuale, gli oggetti (risorse), l'input/output e il file system (inclusi i driver di rete), la comunicazione dei processi e in parte il sistema di sicurezza. Questi componenti interagiscono tra loro utilizzando la comunicazione intermodulare. Ciascun componente chiama gli altri utilizzando una serie di procedure interne attentamente specificate.

La seconda parte di Windows NT, che funziona in modalità utente, è costituita da server, i cosiddetti sottosistemi protetti. Poiché i sottosistemi non possono condividere automaticamente la memoria, comunicano tra loro inviando messaggi. I messaggi possono essere trasmessi sia tra un client e un server, sia tra due server. Tutti i messaggi passano attraverso l'executive di Windows NT. Il kernel di Windows NT pianifica i thread nei sottosistemi protetti allo stesso modo dei thread nei normali processi applicativi.

Il supporto ai sottosistemi protetti è fornito dalla parte esecutiva. I suoi componenti sono:

  • Gestore oggetti. Crea, elimina e gestisce oggetti runtime: tipi di dati astratti utilizzati per rappresentare le risorse di sistema.
  • Monitor di sicurezza. Imposta le regole di protezione sul computer locale. Protegge le risorse del sistema operativo, protegge e registra oggetti eseguibili.
  • Process Manager. Crea e termina, sospende e riprende processi e thread e memorizza anche informazioni su di essi.

Gestore della memoria virtuale.

  • Sottosistema I/O. Include i seguenti componenti:
    • un gestore I/O che fornisce funzionalità I/O indipendenti dal dispositivo;
    • file system: driver NT che eseguono richieste I/O orientate ai file e le traducono in chiamate a dispositivi ordinari;
    • reindirizzatore di rete e server di rete: driver del file system che trasmettono richieste I/O remote alle macchine della rete e ricevono richieste da esse;
    • driver di dispositivo esecutivi: driver di basso livello che controllano direttamente il dispositivo;
    • un gestore della cache che implementa la memorizzazione nella cache del disco.

La parte esecutiva, a sua volta, si basa sui servizi di livello inferiore forniti dal kernel NT. Le funzioni del kernel includono:

  • pianificazione del processo,
  • gestire interruzioni ed eccezioni,
  • sincronizzazione del processore per sistemi multiprocessore,
  • ripristino del sistema dopo guasti.

Il kernel viene eseguito in modalità privilegiata e non viene mai rimosso dalla memoria. È possibile accedere al kernel solo tramite un'interruzione.

I sottosistemi protetti di Windows NT vengono eseguiti in modalità utente e vengono creati da Windows NT all'avvio del sistema operativo. Immediatamente dopo la loro creazione, iniziano un ciclo infinito di esecuzione, rispondendo ai messaggi che arrivano loro dai processi applicativi e da altri sottosistemi. Tra i sottosistemi protetti si può distinguere una sottoclasse denominata sottosistemi ambientali. I sottosistemi dell'ambiente implementano le interfacce applicative del sistema operativo (API). Altri tipi di sottosistemi, chiamati sottosistemi integrali, eseguono attività richieste dal sistema operativo. Ad esempio, la maggior parte del sistema di sicurezza Windows NT è implementato come sottosistema integrale; anche i server di rete sono implementati come sottosistemi integrali.

Il sottosistema più importante dell'ambiente è Win32, il sottosistema che fornisce l'accesso dell'applicazione all'API Windows a 32 bit. Inoltre, questo sistema fornisce un'interfaccia grafica e gestisce l'input/output dell'utente.

Ogni sottosistema protetto opera in modalità utente, chiamando il servizio del sistema di esecuzione per eseguire azioni privilegiate in modalità kernel. I server di rete possono essere eseguiti in modalità utente o modalità kernel, a seconda di come sono progettati.

I sottosistemi comunicano tra loro passando messaggi. Quando, ad esempio, un'applicazione utente chiama una procedura API, il sottosistema dell'ambiente che fornisce questa procedura riceve il messaggio e lo esegue accedendo al kernel o inviando un messaggio a un altro sottosistema. Al termine della procedura, il sottosistema di ambiente invia un messaggio all'applicazione contenente il valore restituito. L'invio di messaggi e altre attività dei sottosistemi protetti è invisibile all'utente.

Lo strumento principale che tiene insieme tutti i sottosistemi di Windows NT è il meccanismo LPC (Local Procedure Call). LPC è una versione ottimizzata di uno strumento più generale, RPC (Remote Procedure Call), utilizzato per comunicare tra client e server situati su macchine diverse in una rete.

Basato sul kernel NT (New Technology), sviluppato da Microsoft Corporation. Il sistema era rivolto agli utenti aziendali. Windows NT aveva un'interfaccia utente grafica e forniva l'API Win32, un'interfaccia di programmazione delle applicazioni a 32 bit per lo sviluppo di nuove applicazioni in grado di sfruttare tutte le funzionalità dei sistemi operativi di alto livello, che, in particolare, includevano il multithread (o multitasking) processi, sincronizzazione, protezione da accessi non autorizzati, input/output e gestione degli oggetti. Windows NT poteva interagire con altri sistemi operativi Microsoft, con Apple Macintosh e con sistemi simili a UNIX su vari tipi di reti. L'interazione potrebbe verificarsi con computer sia a processore singolo che multiprocessore realizzati utilizzando le tecnologie CISC o RISC. Inizialmente Windows NT si è sviluppato separatamente dalla famiglia di sistemi operativi Windows 9x e si è posizionato sul mercato come soluzione per workstation (Windows NT Workstation) e server (Windows NT Server). Windows NT ha dato origine a una famiglia di sistemi operativi che include Windows 2000, Windows XP e Windows Server 2003.

Nel novembre 1988, un progetto congiunto tra IBM e Microsoft iniziò a creare un sistema operativo di nuova generazione: OS/2 NT, che potesse eseguire programmi scritti sia per Windows che per OS/2 e avrebbe dovuto sostituire entrambi i sistemi. Ma nel maggio 1990 fu rilasciato Windows 3.0, che portò il successo commerciale di Microsoft, e la società decise di rendere l'interfaccia di programmazione delle applicazioni (API) di Windows la principale in OS/2 NT. Ciò causò insoddisfazione nei confronti di IBM, che promuoveva l'API OS/2. Di conseguenza, il contratto è stato risolto e le società hanno iniziato a sviluppare autonomamente il codice comune esistente. Il risultato dello sviluppo di IBM fu OS/2 3.0, mentre quello di Microsoft fu Windows NT, apparso nell'agosto 1993. Successivamente gli è stato assegnato il numero 3.1 per corrispondere a Windows 3.1, rilasciato poco prima. Il nuovo sistema si distingueva da Windows 3.1 per le seguenti caratteristiche:

  • 32 bit. Il nuovo sistema potrebbe sfruttare tutte le capacità dei processori a 32 bit, inclusa l'esecuzione di programmi a 32 bit e l'indirizzamento di grandi quantità di memoria (fino a 4 gigabyte);
  • multitasking preventivo. Il sistema operativo non ha aspettato che il processo stesso volesse liberare il processore, ma lo ha rimosso forzatamente dall'esecuzione dopo che aveva esaurito il tempo assegnatogli;
  • mancanza di MS-DOS. Windows NT 3.1 era un sistema operativo indipendente e aveva il proprio bootloader. Allo spegnimento, il sistema non è uscito in MS-DOS, ma ha suggerito di spegnere o riavviare il computer;
  • Supporto UNICODE. È stato il primo sistema operativo a supportare internamente UNICODE;
  • multi piattaforma. Windows NT funzionava non solo su processori x86 a 32 bit, ma anche su MIPS R4000 a 64 bit e DEC Alpha 21064;
  • supporto per programmi OS/2 a 16 bit. Microsoft mantenne alcuni diritti sul codice OS/2, quindi questa e tutte le versioni successive di Windows NT potevano eseguire tali programmi;
  • Compatibile con le applicazioni POSIX 1.0 a livello di codice sorgente;
  • supporto per il multiprocessing simmetrico (fino a 16 processori);
  • supporto per file system: NTFS e HPFS nativi, ereditati da OS/2. In entrambi i sistemi, a differenza del FAT, era possibile utilizzare nomi di file lunghi, fino a 255 caratteri;
  • capacità di rete migliorate. Oltre ai protocolli NetBEUI e IPX supportati, sono stati aggiunti SMB, TCP/IP e SNMP;
  • editor del registro dell'albero in cui sono state memorizzate tutte le impostazioni di sistema.

Windows NT 3.1 aveva la stessa interfaccia utente di Windows 3.1 ed era disponibile in due edizioni: Windows NT e Windows NT Advanced Server. Successivamente furono rilasciati tre service pack per questo sistema e nel settembre 1994 apparve una nuova versione, la 3.5. Sono stati aggiunti la compatibilità con le reti NetWare, il supporto per nomi di file lunghi in FAT, il supporto per l'API OpenGL, un funzionamento migliorato dei programmi a 16 bit per Windows e MS-DOS (ciascuno ora funziona nel proprio spazio di indirizzi). Come il suo predecessore, è stato pubblicato in due edizioni: Windows NT Workstation e Windows NT Server. Nel maggio 1995 apparve Windows NT 3.51. Le differenze rispetto alla versione precedente erano minori: il programma di installazione con una nuova interfaccia grafica, un nuovo sistema di aiuto con contenuti e supporto per processori PowerPC. Sono stati rilasciati tre Service Pack per NT 3.5 e cinque per 3.51.

Insieme al rilascio di NT 3.51, è stato rilasciato il pacchetto Shell Technology Preview, che fornisce una nuova interfaccia con il menu Start. Questa interfaccia è stata implementata per impostazione predefinita in Windows 95 due mesi dopo e nell'agosto 1996 in Windows NT 4.0. Oltre alla nuova interfaccia, la quarta versione del sistema presentava funzionalità di rete migliorate (Internet Explorer 2.0, server IIS e DNS inclusi di serie, supporto per routing multiprotocollo), nuova tecnologia DCOM e un gran numero di edizioni. Oltre a Workstation e Server, nel 1997 è stata rilasciata una versione di Server Enterprise Edition con scalabilità migliorata e supporto limitato per i cluster e nel 1998 - Terminal Server con la possibilità di connettere utenti in remoto. Inoltre è stata sviluppata una versione speciale per i sistemi embedded: Windows NT 4.0 Embedded. Per NT 4.0 sono stati rilasciati 7 Service Pack, l'ultima versione si chiamava 6.0a.

Nel settembre 1997 e nell'agosto 1998 furono rilasciate due versioni beta del sistema operativo Windows NT 5.0 e nell'ottobre 1998 fu ribattezzato Windows 2000. Il rilascio di questo sistema ebbe luogo nel febbraio 2000. Le nuove funzionalità includevano: servizio directory Active Directory, supporto per la tecnologia Plug&Play e il file system FAT32, nuove versioni dei programmi di rete (IE 5.0 e IIS 5.0), funzionalità di crittografia migliorate (incluso il supporto per Encrypted File System), strumenti di amministrazione remota integrati . A differenza di NT 4.0, Windows 2000 funzionava solo sull'architettura IA-32 ed è stato rilasciato in quattro edizioni: Professional, Server, Advanced Server e Datacenter Server. Il Service Pack 4 è stato rilasciato per Windows 2000 e nell'agosto 2001 è apparsa una versione a 64 bit di Advanced Server per processori Itanium.

Una nuova versione di NT 5.1 è apparsa nell'ottobre 2001 sotto il nome di Windows XP ed era uno sviluppo di Windows 2000 Professional. Le modifiche principali riguardavano un'interfaccia utente migliorata, un cambio utente più rapido, una migliore amministrazione remota, ripristino del sistema e rollback dell'installazione dei driver. Il sistema ha ricevuto due pacchetti di aggiornamento ed è stato rilasciato nelle seguenti edizioni:

  • Professionale (versione base);
  • Home (con funzionalità di rete troncate);
  • Media Center Edition (con applicazioni multimediali aggiuntive);
  • Starter Edition (altamente limitata, nessuna funzionalità online);
  • Edizione a 64 bit (per processori Itanium);
  • x64 Edition (per processori con estensioni AMD64 o EM64T);
  • N (senza Windows Media Player);
  • Edizione Tablet PC (per tablet);
  • Embedded (per sistemi embedded).

Nell'aprile 2003 è stata rilasciata una variante server di Windows XP, denominata Windows Server 2003 e con una versione interna 5.2. Differenze rispetto a Windows XP: la piattaforma .NET e il server web IIS 6.0 inclusi nell'installazione, miglioramenti nel servizio Active Directory, un firewall integrato, un set ampliato di utilità per l'amministrazione del sistema. Il sistema è stato rilasciato in quattro edizioni: Web Edition, Standard Edition, Enterprise Edition e Datacenter Edition. Gli ultimi tre sono stati rilasciati anche nelle versioni per processori x86 a 64 bit, Enterprise e Datacenter anche per Itanium. Nel 2005 sono apparsi due aggiornamenti, Service Pack 1 e R2.

Alla fine del 1988, Microsoft incaricò David Cutler di guidare un nuovo progetto software: creare il nuovo sistema operativo Microsoft per gli anni '90. Ha riunito un team di ingegneri per sviluppare un sistema New Technology (NT).

Il piano originale era quello di sviluppare NT con interfacce utente in stile OS/2 e interfacce API (application programming), ma OS/2 vendette poco e Windows 3.0 fu un successo importante e costante sul mercato. Dopo aver visto le pressioni del mercato e le sfide associate allo sviluppo e al supporto di due sistemi incompatibili, Microsoft ha deciso di cambiare rotta e indirizzare i suoi ingegneri verso un'unica strategia coesa per il sistema operativo. Questa strategia consisteva nello sviluppare una famiglia di sistemi operativi basati su Windows che coprisse molti tipi di computer, dai laptop più piccoli alle più grandi workstation multiprocessore. Pertanto, la generazione successiva di sistemi Windows fu chiamata Windows NT.

Windows NT supporta l'interfaccia utente grafica (GUI) di Windows ed è anche il primo sistema operativo Microsoft basato su Windows a supportare l'API Win32, un'interfaccia di programmazione a 32 bit per lo sviluppo di nuove applicazioni. L'API Win32 rende disponibili alle applicazioni funzionalità avanzate del sistema operativo come processi multi-thread, sincronizzazione, sicurezza, I/O e gestione degli oggetti.

Nel luglio 1993 apparvero i primi sistemi operativi della famiglia NT: Windows NT 3.1 e Windows NT Advanced Server 3.1.

Versioni

  • Windows NT 3.1 (27 luglio 1993)
  • Windows NT 3.5 (21 settembre 1994)
  • Windows NT 3.51 (30 maggio 1995)
  • Windows NT 4.0 (24 agosto 1996)
  • Windows 2000 (17 febbraio 2000)
  • Windows XP (25 ottobre 2001)
  • Windows XP edizione a 64 bit (28 marzo 2003)
  • Windows Server 2003 (25 aprile 2003)
  • Windows XP Media Center Edition 2003 (18 dicembre 2003)
  • Windows XP Media Center Edition 2005 (12 ottobre 2004)
  • Windows XP Professional x64 Edition (25 aprile 2005)
  • Nozioni fondamentali di Windows per PC legacy (8 luglio 2006)
  • Windows Vista (30 novembre 2006)
  • Windows Home Server (7 novembre 2007)
  • Windows Server 2008 (27 febbraio 2008)

Struttura di Windows NT

Strutturalmente, Windows NT può essere rappresentato in due parti: una parte del sistema operativo che viene eseguita in modalità utente e una parte del sistema operativo che viene eseguita in modalità kernel.

La parte di Windows NT che viene eseguita in modalità kernel è chiamata parte esecutiva. Comprende una serie di componenti che gestiscono la memoria virtuale, gli oggetti (risorse), l'input/output e il file system (inclusi i driver di rete), la comunicazione dei processi e in parte il sistema di sicurezza. Questi componenti interagiscono tra loro utilizzando la comunicazione intermodulare. Ciascun componente chiama gli altri utilizzando una serie di procedure interne attentamente specificate.

La seconda parte di Windows NT, che funziona in modalità utente, è costituita da server, i cosiddetti sottosistemi protetti. Poiché i sottosistemi non possono condividere automaticamente la memoria, comunicano tra loro inviando messaggi. I messaggi possono essere trasmessi sia tra un client e un server, sia tra due server. Tutti i messaggi passano attraverso l'executive di Windows NT. Il kernel di Windows NT pianifica i thread nei sottosistemi protetti allo stesso modo dei thread nei normali processi applicativi.

Il supporto ai sottosistemi protetti è fornito dalla parte esecutiva. I suoi componenti sono:

  • Gestore oggetti. Crea, elimina e gestisce oggetti runtime: tipi di dati astratti utilizzati per rappresentare le risorse di sistema.
  • Monitor di sicurezza. Imposta le regole di protezione sul computer locale. Protegge le risorse del sistema operativo, protegge e registra oggetti eseguibili.
  • Process Manager. Crea e termina, sospende e riprende processi e thread e memorizza anche informazioni su di essi.

Gestore della memoria virtuale.

  • Sottosistema I/O. Include i seguenti componenti:
    • un gestore I/O che fornisce funzionalità I/O indipendenti dal dispositivo;
    • file system: driver NT che eseguono richieste I/O orientate ai file e le traducono in chiamate a dispositivi ordinari;
    • reindirizzatore di rete e server di rete: driver del file system che trasmettono richieste I/O remote alle macchine della rete e ricevono richieste da esse;
    • driver di dispositivo esecutivi: driver di basso livello che controllano direttamente il dispositivo;
    • un gestore della cache che implementa la memorizzazione nella cache del disco.

La parte esecutiva, a sua volta, si basa sui servizi di livello inferiore forniti dal kernel NT. Le funzioni del kernel includono:

  • pianificazione del processo,
  • gestire interruzioni ed eccezioni,
  • sincronizzazione del processore per sistemi multiprocessore,
  • ripristino del sistema dopo guasti.

Il kernel viene eseguito in modalità privilegiata e non viene mai rimosso dalla memoria. È possibile accedere al kernel solo tramite un'interruzione.

I sottosistemi protetti di Windows NT vengono eseguiti in modalità utente e vengono creati da Windows NT all'avvio del sistema operativo. Immediatamente dopo la loro creazione, iniziano un ciclo infinito di esecuzione, rispondendo ai messaggi che arrivano loro dai processi applicativi e da altri sottosistemi. Tra i sottosistemi protetti si può distinguere una sottoclasse denominata sottosistemi ambientali. I sottosistemi dell'ambiente implementano le interfacce applicative del sistema operativo (API). Altri tipi di sottosistemi, chiamati sottosistemi integrali, eseguono attività richieste dal sistema operativo. Ad esempio, la maggior parte del sistema di sicurezza Windows NT è implementato come sottosistema integrale; anche i server di rete sono implementati come sottosistemi integrali.

Il sottosistema più importante dell'ambiente è Win32, il sottosistema che fornisce l'accesso dell'applicazione all'API Windows a 32 bit. Inoltre, questo sistema fornisce un'interfaccia grafica e gestisce l'input/output dell'utente.

Ogni sottosistema protetto opera in modalità utente, chiamando il servizio del sistema di esecuzione per eseguire azioni privilegiate in modalità kernel. I server di rete possono essere eseguiti in modalità utente o modalità kernel, a seconda di come sono progettati.

I sottosistemi comunicano tra loro passando messaggi. Quando, ad esempio, un'applicazione utente chiama una procedura API, il sottosistema dell'ambiente che fornisce questa procedura riceve il messaggio e lo esegue accedendo al kernel o inviando un messaggio a un altro sottosistema. Al termine della procedura, il sottosistema di ambiente invia un messaggio all'applicazione contenente il valore restituito. L'invio di messaggi e altre attività dei sottosistemi protetti è invisibile all'utente.

Lo strumento principale che tiene insieme tutti i sottosistemi di Windows NT è il meccanismo LPC (Local Procedure Call). LPC è una versione ottimizzata di uno strumento più generale, RPC (Remote Procedure Call), utilizzato per comunicare tra client e server situati su macchine diverse in una rete.

Storia dello sviluppo

Lo sviluppo di Windows NT con il nome provvisorio "NT OS/2" è stato avviato nel novembre 1988 da un gruppo di specialisti guidati da David Cutler. Dave Cutler ), arrivati ​​a Microsoft da DEC, dove hanno sviluppato VAX e VMS. Il lavoro procedette parallelamente allo sviluppo da parte dell'IBM del proprio sistema operativo, OS/2 2.0, che fu finalmente rilasciato solo nell'aprile 1992. Allo stesso tempo, Microsoft ha continuato a sviluppare i suoi sistemi operativi delle famiglie DOS e Windows, che si caratterizzano per un minore fabbisogno di risorse informatiche rispetto a IBM OS/2. Dopo il rilascio di Windows 3.0 nel maggio 1990, Microsoft ha deciso di aggiungere un'interfaccia di programmazione (API) compatibile con l'API di Windows a NT OS/2. Questa decisione causò gravi attriti tra Microsoft e IBM, che si conclusero con l'interruzione della loro collaborazione. IBM continuò a sviluppare OS/2 per conto proprio e Microsoft iniziò a lavorare sul sistema che alla fine fu rilasciato con il nome Windows NT. Sebbene non sia diventato subito popolare, come DOS, Windows 3.x o Windows 9.x, dal punto di vista del marketing Windows NT ha avuto molto più successo di OS/2.

Va notato che le API OS/2 e poi POSIX sono state inizialmente progettate come interfacce di programmazione del sistema operativo NT; il supporto API Windows è stato aggiunto per ultimo. Inoltre, inizialmente come piattaforma hardware per NT erano stati progettati Intel i860 e poi MIPS, successivamente è stato aggiunto anche il supporto per Intel x86. Quindi, con l'evoluzione del sistema operativo, il supporto sia per le interfacce software originariamente pianificate sia per entrambe le piattaforme hardware originariamente pianificate è scomparso. Non esisteva nemmeno una versione di rilascio di questo sistema operativo per l'i860, sebbene fosse proprio dal nome in codice di questo processore che N10(N Ten), deriva dal nome del sistema operativo NT stesso. Microsoft ora decifra l'abbreviazione NT come Nuova tecnologia. E come alternativa al sottosistema POSIX, Microsoft ha iniziato a offrire il pacchetto Microsoft Windows Services for UNIX.

Per sviluppare il sistema operativo NT, Microsoft ha invitato un gruppo di specialisti del DEC, guidato da David Cutler ( Inglese), con esperienza nella creazione di sistemi operativi multitasking come VAX/VMS e RSX-11. Alcune somiglianze riscontrate tra l'architettura interna di Windows NT e la famiglia di sistemi operativi VMS hanno dato motivo di accusare i nuovi dipendenti Microsoft di aver rubato la proprietà intellettuale della DEC. Il conflitto che ne sorse fu risolto pacificamente: DEC riconobbe la proprietà di Microsoft delle tecnologie alla base di Windows NT e Microsoft creò e supportò una versione di Windows NT per l'architettura DEC Alpha.

Nonostante le loro radici comuni, la compatibilità di Windows NT e OS/2 diminuiva con ogni nuova versione di questo sistema operativo. Il supporto API OS/2 2.0, sebbene pianificato per NT, non fu mai completato; Windows NT 4.0 ha rimosso il supporto per il file system HPFS e Windows XP ha rimosso il sottosistema di supporto del programma per OS/2 1.x.

Versioni

Nome ( nome in codice), opzioni numero della versione prima edizione ultimo numero /
Windows NT 3.1 3.1.528 27 luglio SP3 (10 novembre)
Stazione di lavoro, server avanzato
Windows NT 3.5 ( Daytona) 3.5.807 21 settembre SP3 (21 giugno)
Stazione di lavoro, server
Windows NT 3.51 ( Tukwila) 3.51.1057 30 maggio SP5 (19 settembre)
Stazione di lavoro, server
WindowsNT4.0 ( Indy) 4.0.1381 29 luglio SP6a (30 novembre)
Workstation, Server, Server Enterprise ( Granito), Server terminale ( Idra), Incorporato ( Impala)
Windows 2000 ( Cairo) 5.0.2195 17 febbraio SP4 (26 giugno)
Professionale, Server, Server Avanzato, Server Datacenter
Windows XP ( Fischiatore) 5.1.2600 il 25 ottobre SP3 (6 maggio)
Domestico, Professionale, 64 bit, Media Center ( eHome), Tablet PC, Starter, Incorporato ( Mantide), N; Nozioni fondamentali di Windows per PC legacy ( Eiger)
WindowsServer2003 ( Server Whistler, Server Windows .NET) 5.2.3790 24 aprile SP2 (13 maggio)
Standard, Enterprise, Datacenter, Web, Small Business Server ( Bobcat), server cluster di elaborazione, server di archiviazione; Windows XP Professional x64
Windows Vista ( Longhorn) 6.0.6000 30 gennaio SP2 (25 maggio)
Starter, Home Basic, Home Premium, Business, Enterprise, Ultimate, N Home Basic, N Business; varianti x64 di tutte tranne Starter
WindowsServer2008 ( Server Longhorn) 6.0.6001 27 febbraio SP2 (27 maggio)
Standard, Enterprise, Datacenter, HPC, Web, Storage, Small Business ( Puma), Affari essenziali ( Centro), Itanio; varianti x64 di tutte tranne HPC
Windows 7 ( Blackcomb, Vienna) 6.1.7600 22 ottobre SP1 (KB976932) (22 febbraio)
Starter, Home Basic, Home Premium, Professional, Enterprise, Ultimate, Windows 7 N, Windows 7 E; varianti x64 di tutte tranne Iniziale
WindowsServer2008R2 6.1.7600 22 ottobre SP1 (KB976932) (22 febbraio)
Standard, Enterprise, Datacenter, HPC, Web, Storage, Small Business, Itanium; tutte le versioni sono solo a 64 bit
Windows 8 6.2.9200 26 ottobre Pro (26 ottobre)
Windows 8, Windows 8 RT, Professional, Professional N, Professional WMC, Enterprise, Enterprise N; varianti x64 di tutte tranne Windows RT
WindowsServer2012 6.2.9200 26 ottobre RTM (1 agosto)
Standard, data center, archiviazione; tutte le versioni sono solo a 64 bit

Architettura interiore

Componenti del kernel

Componenti della modalità utente

Il sottosistema dell'interfaccia utente in Windows NT implementa un'interfaccia a finestra simile a quella delle versioni precedenti di Windows. Due tipi di oggetti in questo sottosistema che non erano presenti nelle versioni a 16 bit di Windows e Windows 9x lo sono postazioni finestra E desktop. Una postazione finestra corrisponde a una sessione utente di Windows NT: ad esempio, quando ci si connette tramite il servizio Desktop remoto, viene creata una nuova postazione finestra. Ogni processo in esecuzione appartiene a una delle postazioni finestra; I servizi diversi da quelli contrassegnati come in grado di interagire con il desktop vengono eseguiti in postazioni finestre separate e invisibili.

Ogni postazione finestra dispone dei propri appunti, di un insieme di atomi globali (utilizzati per le operazioni DDE) e di un insieme di desktop. Il desktop è il contesto per tutte le operazioni del sottosistema dell'interfaccia utente globale, come l'installazione di hook e la trasmissione di messaggi. Ogni thread in esecuzione appartiene a uno dei desktop, quello in cui si trovano le finestre che serve; in particolare, un thread non può creare più finestre appartenenti a desktop diversi. Uno dei desktop può essere attivo (visibile all'utente e in grado di rispondere alle sue azioni), i restanti desktop sono nascosti. Finora la possibilità di creare e passare da un desktop all'altro in un'unica sessione non era disponibile nell'interfaccia utente standard di Windows, sebbene esistano programmi di terze parti che forniscono l'accesso a questa funzionalità.

Le postazioni finestra e i desktop sono gli unici oggetti del sottosistema dell'interfaccia utente di Windows NT a cui è possibile assegnare diritti di accesso. I restanti tipi di oggetto lo sono finestra E menù- Fornire accesso completo a qualsiasi processo che si trova nella stessa postazione finestra con loro. Questo è il motivo per cui i servizi Windows NT vengono eseguiti in postazioni finestre separate per impostazione predefinita: vengono eseguiti con privilegi elevati e consentire ai processi utente di manipolare le finestre dei servizi a tempo indeterminato potrebbe portare a arresti anomali e/o problemi di sicurezza.

Interfacce software

API nativa

Windows NT fornisce diversi set di API per i programmi applicativi. La principale è la cosiddetta API “nativa” ( API nativa NT), implementato nella libreria di collegamento dinamico ntdll.dll e composto da due parti: chiamate di sistema del kernel NT (funzioni con i prefissi Nt e Zw che trasferiscono l'esecuzione alle funzioni del kernel ntoskrnl.exe con gli stessi nomi) e funzioni implementate in modalità utente ( con il prefisso RTl). Alcune delle funzioni del secondo gruppo utilizzano le chiamate di sistema internamente; il resto è costituito interamente da codice non privilegiato e può essere chiamato non solo dal codice in modalità utente, ma anche dai driver. Oltre alle funzioni API native, ntdll include anche funzioni della libreria standard C.

La documentazione ufficiale per l'API nativa è molto scarsa, ma le comunità di appassionati sono riuscite a raccogliere molte informazioni su questa interfaccia attraverso tentativi ed errori. In particolare, nel febbraio 2000, il libro di Gary Nebbett “ Riferimento alle funzioni di base dell'API di Windows NT/2000"(ISBN 1-57870-199-6); nel 2002 è stato tradotto in russo (ISBN 5-8459-0238-X). Una fonte di informazioni sull'API nativa può essere Windows DDK, che descrive alcune delle funzioni del kernel disponibili tramite l'API nativa, nonché lo studio del codice Windows (reverse engineering) tramite il disassemblaggio o l'utilizzo del codice sorgente di Windows 2000 che è diventato disponibile a seguito di una fuga di notizie o utilizzando i testi del codice sorgente di Windows 2003 disponibili tramite il programma Windows Research Kernel.

I programmi eseguiti prima del caricamento dei sottosistemi che forniscono il resto delle API di Windows NT sono limitati all'utilizzo dell'API nativa. Ad esempio, il programma autochk, che controlla i dischi durante il caricamento del sistema operativo dopo un arresto errato, utilizza solo l'API nativa.

API Win32

Molto spesso, i programmi applicativi per Windows NT utilizzano l'API Win32, un'interfaccia creata sulla base dell'API del sistema operativo Windows 3.1, che consente di ricompilare i programmi esistenti per le versioni a 16 bit di Windows con modifiche minime al codice sorgente. La compatibilità dell'API Win32 e dell'API Windows a 16 bit è così elevata che le applicazioni a 32 e 16 bit possono scambiarsi liberamente messaggi, interagire tra loro con le finestre, ecc. Oltre a supportare le funzioni dell'API Windows esistente, una serie di nuove funzionalità, incluso il supporto per programmi console, multithreading e oggetti di sincronizzazione come mutex e semafori. La documentazione per l'API Win32 è inclusa in Microsoft Platform SDK ed è disponibile nel sito Web.

Le librerie di supporto API Win32 hanno sostanzialmente lo stesso nome delle librerie di sistema Windows 3.x, con l'aggiunta del suffisso 32: queste sono kernel32, advapi32, gdi32, user32, comctl32, comdlg32, shell32 e molte altre. Le funzioni API Win32 possono implementare da sole le funzionalità richieste in modalità utente, oppure chiamare le funzioni API native descritte sopra, oppure accedere al sottosistema csrss tramite il meccanismo LPC ( Inglese), oppure effettuare una chiamata di sistema alla libreria win32k, che implementa il supporto richiesto per l'API Win32 in modalità kernel. Le quattro opzioni elencate possono anche essere combinate in qualsiasi combinazione: ad esempio, la funzione Win32 API WriteFile chiama la funzione Native API NtWriteFile per scrivere su un file su disco e chiama la corrispondente funzione csrss per l'output sulla console.

Il supporto API Win32 è incluso nella famiglia di sistemi operativi Windows 9x; inoltre, può essere aggiunto a Windows 3.1x installando il pacchetto Win32s. Per facilitare il porting delle applicazioni Windows esistenti che utilizzano le codifiche MBCS per rappresentare le stringhe, tutte le funzioni API Win32 che accettano stringhe come parametri sono state create in due versioni: funzioni con il suffisso A ( ANSI) accettano stringhe MBCS e funzionano con il suffisso W ( Largo) accettano stringhe con codifica UTF-16. In Win32s e Windows 9x sono supportate solo le funzioni A, mentre in Windows NT, dove tutte le stringhe all'interno del sistema operativo sono archiviate esclusivamente in UTF-16, ciascuna funzione A converte semplicemente i propri parametri di stringa in Unicode e chiama la versione W della stessa funzione. I file H forniti dalla libreria definiscono anche i nomi delle funzioni senza suffisso e l'uso della versione A o W delle funzioni è determinato dalle opzioni di compilazione e nei moduli Delphi prima della versione 2010, ad esempio, sono strettamente legati alle opzioni con il suffisso A. È importante notare, tuttavia, che la maggior parte delle novità introdotte nei sistemi operativi Windows 2000 o successivi Windows NT esistono solo nella versione Unicode, perché il compito di garantire la compatibilità con i programmi meno recenti e con Windows 9x non è più così pressante come prima.

POSIX e OS/2

La prima versione di Windows NT 4 supportava quattro piattaforme (x86, Alpha, MIPS e PowerPC), ma il supporto per piattaforme meno comuni è stato ridotto con il rilascio dei service pack: il supporto MIPS è stato rimosso da SP1 e il supporto PowerPC da SP3. Le ultime versioni di Windows NT 4 supportavano solo x86 e Alpha; sebbene il supporto Alpha fosse previsto per l'inclusione in Windows 2000, è stato rimosso dalla versione RC2. Di conseguenza, x86 è diventata l'unica piattaforma supportata su Windows 2000.

Il supporto per i processori a 64 bit è stato implementato per la prima volta in Windows XP per l'architettura del processore IA-64 - Intel Itanium. Sulla base della versione a 64 bit di Windows XP sono state create anche versioni server a 64 bit di Windows 2000; Successivamente, ad alcune versioni di Windows Server 2003 è stato aggiunto il supporto per il processore Itanium. La seconda architettura a 64 bit supportata nella famiglia di sistemi operativi Windows NT era l'architettura x86-64 creata da AMD, successivamente implementata nei processori Intel con il nome EM64T. Contemporaneamente sono stati rilasciati Windows Server 2003 SP1 x64 e Windows XP Professional x64, che rappresentano le versioni server e desktop della stessa versione di Windows: in particolare, a queste edizioni si applicano gli stessi aggiornamenti. Dal 2005, Microsoft ha deciso di smettere di supportare IA-64.; L'ultima versione di Windows NT che supporta completamente Itanium è Windows NT 5.2 (XP Professional 64-bit Edition e Server 2003). Tuttavia, per i server più costosi (e, di conseguenza, più difficili da aggiornare), sono state rilasciate versioni speciali di Windows Server 2008 e Windows Server 2008 R2 e Windows Server 2012 non ha più ricevuto il supporto IA-64.

Appunti

Guarda anche

  • ReactOS è un sistema operativo open source compatibile con le applicazioni e i driver Windows NT.