# Windows NT

Windows NT è una famiglia di sistemi operativi prodotti da Microsoft, ed è attualmente l'unica linea di sistemi operativi per PC prodotta dall'azienda. Sono stati pensati per le utenze aziendali, sia server che workstation, affiancando inizialmente i sistemi operativi Windows 3.x, ed in seguito Windows 9x, destinati invece a un'utenza domestica e all'office automation. Con Windows XP, nel 2001 anche la linea Windows NT diventa disponibile per l'utenza domestica.
La sigla "NT" per molti non ha un significato ufficiale, tuttavia viene comunemente interpretata come le iniziali di "New Technology"; altre interpretazioni vedono invece il significato di NeTwork, a indicar la sua natura di client orientato alla rete oppure con riferimento alla Northern Telecom Limited come indicato ad esempio nella prima pagina della guida rapida dell'installazione di Windows 2000; nella sigla WNT si potrebbero vedere le iniziali del sistema VMS, dove ciascuna lettera viene incrementata d'una posizione nell'alfabeto latino: questa chiave di lettura, che evidenzierebbe i legami tra i due sistemi operativi sarebbe in parte avvalorata dal fatto che alla preparazione del sistema Microsoft parteciparono molti programmatori provenienti da Digital, tra i quali vi era anche il capo progetto dell'architettura VMS, che arrivarono quindi ad influenzare lo sviluppo di Windows NT.
A partire da Windows 2000, i sistemi operativi della serie non riportano più la sigla NT nel nome. Tuttavia, Windows 2000 ha lo slogan, Sviluppato con tecnologia NT, nella schermata di avvio, e la sua cartella di installazione di default è C:\WINNT. Spesso il nome Windows NT, se non unito ad alcuna versione di Windows, viene associato a Windows NT 4.0.

## Architettura

Fin dalle origini Windows NT si ispira alla filosofia dei sistemi Unix e si differenzia nettamente dai sistemi basati su MS-DOS: l'impostazione è multiutente, multiprocesso (o multitasking), multiprocessore. Il file system (NTFS nelle sue varie versioni) gestisce adeguatamente la multiutenza, assegnando a ciascun file diritti di accesso specifici per ogni utente.

### Kernel

Il kernel di Windows NT è spesso erroneamente considerato di tipo microkernel, in realtà è di tipo ibrido. Infatti la definizione di microkernel prevede che solo i servizi essenziali debbano risiedere nel kernel, e tutti gli altri servizi del sistema operativo, inclusi la gestione della memoria e l'Input/output, dovrebbero operare in user mode in spazi di memoria separati. Tuttavia per ragioni di prestazioni quasi nessun sistema operativo dispone di un microkernel puro (l'unica eccezione è Mach). In Windows NT molti servizi sono implementati in kernel mode, fra i quali il file system, la gestione della memoria e, a partire da Windows NT 4, anche la gestione della grafica. A livello di prestazioni e di sicurezza questo equivale ai kernel monolitici (ad esempio UNIX e Linux), ma permette una flessibilità maggiore.
Il kernel di Windows NT è interamente a 32 bit e dispone di uno scheduler preemptive (cioè che gestisce il rilascio anticipato dei processi, consentendo di liberare la CPU da un processo che la sta impegnando da troppo tempo). Inoltre, a differenza di Windows 9x, il kernel è completamente rientrante, a vantaggio delle prestazioni: infatti in Windows 9x quando un'applicazione richiede un servizio di sistema, che generalmente è a 16 bit e non è rientrante, l'applicazione impegna una sezione critica globale, rendendo di fatto monotask il sistema.

## Versioni

Il progetto Windows NT nasce nel 1988, e ha dato alla luce nel corso degli anni a numerosi sistemi operativi:

### Il primo progetto Windows NT

* Windows NT 3.1, prima versione di Windows a 32 bit, è destinato a essere usato come server di rete. L'interfaccia grafica è quella di Windows 3.x (di cui prende anche il numero di versione). Uscito sul mercato il 27 luglio 1993, ha avuto un successo di mercato davvero modesto, ma può essere considerato il "padre" dei sistemi Windows moderni. La successiva versione 3.5, seguita a breve distanza dalla versione 3.51, segnarono l'inizio dell'ascesa di Microsoft in questo segmento di mercato, che negli anni seguenti avrebbe finito con il dominare a spese di Novell.
    - La versione 3.1 venne distribuita non solo per piattaforme x86, ma anche DEC Alpha e MIPS (processori R4000).
    - La versione 3.51 venne sviluppata anche per architetture PowerPC e SPARC, quest'ultima solo in versione "beta" e non venduta presso il mercato consumer. Intergraph effettuò il porting di questa versione per Clipper, ma decise di non distribuirla.
* Windows NT 4.0, destinato a server e workstation, esce il 24 agosto 1996 ad un anno esatto da Windows 95 (il cui successore, però, sarà Windows 98) e ne prende l'interfaccia utente. Ha un buon successo di mercato come sistema server a spese dei sistemi Unix.
    - La versione 4.0 è l'ultima piattaforma, ufficialmente supportata, ad essere sviluppata per processori diversi dal x86 (se escludiamo il futuro Itanium), includendo DEC Alpha, MIPS e PowerPC. Per DEC Alpha furono distribuiti anche tutti i Service Pack.

### La seconda derivazione del progetto Windows NT

* Windows 2000, (Windows NT 5.0), presenta notevoli riscritture di alcuni moduli del kernel (soprattutto per quanto riguarda la gestione dei protocolli di rete) e dell'interfaccia grafica. Ha notevole successo come sistema aziendale e server, anche se l'avvento di Linux ne riduce le quote di mercato in ambito server, soprattutto grazie all'avvento di Internet.
* Windows XP (Windows NT 5.1, NT 5.2 nella versione 64bit), presenta come novità maggiore la rivisitazione dell'interfaccia utente ed è il primo sistema operativo della famiglia NT destinato anche all'utenza domestica, sostituendo la serie Windows 95/98/ME. È stato distribuito nell'ottobre 2001 in edizioni Home e Professional, ma le edizioni Server sono state distribuite successivamente (vedi subito sotto).
* Windows Server 2003 (Windows NT 5.2), è la versione Server di Windows XP dal quale deriva e che segue sul mercato a distanza di un anno.

### La terza derivazione del progetto Windows NT

* Windows Vista (Windows NT 6.0), distribuito a novembre 2006 per gli abbonati MSDN, e a fine gennaio 2007 per i clienti retail e OEM. Nel corso del 2008 fu distribuita la versione Server, chiamata Windows Server 2008 e con nome in codice Windows Longhorn Server.
* Windows 7 (Windows NT 6.1), precedentemente noto come Windows Vienna, distribuito il 22 ottobre 2009. Graficamente simile a Windows Vista, è considerato più performante e affidabile. La versione server, Windows Server 2008 R2, è il successore di Windows Server 2008, ed è conosciuto anche con il nome in codice di Windows 7 Server.
* Windows 8 (Windows NT 6.2), distribuita il 26 ottobre 2012. Graficamente simile all'interfaccia di Windows Phone nel linguaggio di design Microsoft. Per la prima volta viene pubblicata una versione per l'architettura ARM chiamata Windows RT adatta per i tablet. La versione server, Windows Server 2012, è il successore di Windows Server 2008 R2, ed è conosciuta anche con il nome in codice di Windows 8 Server.
* Windows Phone 8, distribuito il 29 ottobre 2012, è la prima versione di Windows Phone destinata agli smartphone ad avere il kernel Windows NT. È l'evoluzione di Windows Phone 7, ultima versione del sistema mobile basato sul kernel di Windows CE.
* Windows 8.1 (Windows NT 6.3), precedentemente noto come Windows Blue, alcuni lo considerano solo un minor update, visto che lo sviluppo è durato solo un anno, distribuito a ottobre 2013. Viene distribuito un update chiamato Windows 8.1 Update (o Windows 8.1 Update 1, per la nomenclatura degli aggiornamenti di Windows Phone 8) che va a migliorare alcune lacune.
* Windows Phone 8.1, è l'ultima versione di Windows Phone, precedentemente noto come Windows Blue, è un major update per i telefoni nati con Windows Phone 8, la preview viene distribuita nell'aprile 2014.
* Windows 10 (Windows NT 10.0), precedentemente noto come Threshold. Presentata come Technical Preview da ottobre 2014, è stato pubblicato il 29 luglio 2015. Sono state distribuite tre derivate server: Windows Server 2016, Windows Server 2019 e Windows Server 2022.
* Windows 10 Mobile uscito il 10 febbraio 2015 era una versione di Windows 10 per smartphone ed è stata l'ultima versione di Windows per telefono
* Windows 11 è un sistema operativo per personal computer, successore di Windows 10 La sua presentazione è avvenuta il 24 giugno 2021 con un evento dedicato sul sito ufficiale di Microsoft. La sua uscita è avvenuta nella notte tra il 4 e il 5 ottobre 2021

## Legami con OS/2 e VMS

Windows NT era originalmente basato su OS/2, un progetto congiunto tra Microsoft e la proprietaria IBM. La collaborazione cessò e IBM continuò a commercializzare la versione precedente di OS/2 mentre Microsoft rinominò la propria versione in Microsoft Windows NT, inserendo come API ad alto livello le Windows API di Windows 3.x adattate ai 32 bit.
Sin dall'inizio del progetto, gli sviluppatori di Windows NT erano un gruppo di programmatori fuoriusciti da Digital Equipment Corporation, tra i quali Dave Cutler, Dick Hustvedt e Peter Lipman che avevano sviluppato il sistema operativo OpenVMS di DEC presso la loro società New Technology. La loro esperienza su VMS si è in parte riflessa sulla struttura di NT. In un'intervista dopo il rilascio di Windows NT, Cutler disse, scherzando, che l'acronimo WNT era un gioco di parole con VMS, ottenuto spostando avanti ogni lettera di una posizione nell'ordine alfabetico, ovvero 'VMS+1' (al contrario di quanto fatto per il nome del computer HAL 9000 del film 2001: Odissea nello spazio che deriva da IBM). Secondo alcuni la sigla "NT", pur non avendo un significato ufficiale, deriva da "N-Ten", l'emulatore della CPU Intel i860 sulla quale era iniziato lo sviluppo del progetto.
In considerazione di questo, alcuni critici si chiesero se NT potesse essere veramente considerato una nuova tecnologia, in quanto la struttura del sistema era in realtà derivata da un sistema operativo per macchine VAX che risaliva al 1977. I processi, lo scheduler, la gestione delle priorità, il supporto multiprocessore sono molto simili, tanto che si dice che il libro VAX/VMS Internals and Data Structures della Digital Press sia un'ottima descrizione dei corrispondenti aspetti di Windows NT. Ecco una tabella di comparazione tra i due sistemi:
Tabella di confronto tra terminologia VMS e NT :
| VMS | Windows NT |
| Interrupt Priority Level (IPL) | Interrupt Request Level (IRQL) |
| Asynchronous System Trap (AST) | Asynchronous Procedure Call (APC) |
| Fork Procedure | Deferred Procedure Call (DPC) |
| I/O Request Packet (IRP) | I/O Request Packet (IRP) |
| Bug Check | Bug Check |
| System Service | System Service |
| sys.exe | ntoskrnl.exe |
| Paged Pool | Paged Pool |
| Nonpaged Pool | Nonpaged Pool |
| Look aside List | Look aside List |
| Section | Section |
| Mailbox | Mailslot |

## Critiche

Rispetto ai sistemi MS-DOS e Windows 9x, i sistemi NT hanno sempre richiesto quantità nettamente superiori di memoria RAM. Questo, negli anni novanta, era un problema comune a tutti i sistemi operativi di fascia alta (ad esempio OS/2). Inizialmente l'affidabilità di NT era inferiore alle aspettative degli utenti ed alle dichiarazioni del produttore. Il blocco della macchina, caratterizzato dal celebre "schermo blu" (chiamato in gergo BSOD, Blue Screen of Death), avveniva con una frequenza eccessiva e presentandosi nelle situazioni più inaspettate. Il raffinamento del kernel e soprattutto il miglioramento dei device driver ha ridotto notevolmente questo problema.
Una caratteristica di Windows NT molto criticata è l'impossibilità di utilizzare il sistema operativo in maniera puramente testuale, essendo l'interfaccia grafica non escludibile. Per risolvere questo problema Microsoft ha implementato una modalità puramente testuale in Windows Server 2008. Nelle prime versioni NT ha sofferto molto per il riconoscimento dell'hardware, perché mancava il supporto al Plug and play e pochi produttori di hardware rilasciavano device driver per i propri prodotti. Anche le capacità multimediali erano molto carenti. L'uscita di Windows 2000 ha ribaltato la situazione, grazie al miglior supporto Plug and play disponibile su piattaforma PC.
Per gli utenti professionali un aspetto snervante di NT è l'impossibilità di ritagliare adeguatamente il sistema operativo, togliendo tutto ciò che non è strettamente indispensabile, in base all'applicazione che gira su di esso, in modo da ottimizzare l'efficienza del sistema e rimuovere a priori le possibili falle alla sicurezza. Esiste in realtà una versione di Windows XP, detta Embedded Edition, che dà maggiore libertà nello scegliere ogni singolo componente da installare nel sistema. Questa versione però è dedicata più che altro all'integrazione di Windows in dispositivi hardware (un esempio classico sono i "chioschi informativi" basati su PC) ed è di scarsa utilità e di difficile attuazione per sistemi server o desktop. Con l'introduzione di Windows Server 2008 è stata implementata la modalità Server Core: grazie a questa tipologia di installazione è possibile usufruire di una macchina Windows Server senza la tradizionale interfaccia grafica.
I vantaggi sono molteplici:
* Manutenzione ridotta: è possibile installare un server che svolga solo ed esclusivamente una funzione (AD DS, AD LDS, DHCP Server, DNS Server, File Services, Print Services, o Streaming Media Services).
* Ridotta superficie d'attacco: l'installazione è minimale, quindi meno applicazioni che possono essere soggette a bug.
* Meno spazio e memoria occupati: è possibile installare Windows in meno di un GB: meno applicazioni significano meno RAM occupata, con l'evidente vantaggio di poter installare più macchine virtuali, ognuna con una specifica funzione, su una stessa macchina fisica.