Menu

MinWin

minwin

MinWin è essenzialmente il nucleo funzionale ed indipendente (soprattutto dalla GUI) alla base di tutte le release di Windows da Longhorn (Vista/Server 2008) in poi, nonostante non ne sia mai stata data evidenza diretta.

Inizialmente con MinWin viene identificato circa il 95% del codice base di Windows, mentre il restante 5% varia a seconda dell’edizione specifica. Con il passare del tempo, però, MinWin si riduce fortemente, fino a comprende solo i componenti essenziali comuni sia alle edizioni Desktop che Server, ovvero: il Kernel di Windows, il Livello di Astrazione Hardware, il File System ed il Supporto di Rete.

 

Breve storia

Windows nasce con un’architettura ibrida in cui la maggior parte dei componenti sono legati tra loro in modo inscindibile. Con le varie versioni le dipendenze si sono moltiplicato, creando una fitta rete di dipendenze e rendendo difficile isolarli in layer atomici. Tutto ciò ha reso sempre più complicato l’individuazione di un set minimale di funzionalità da utilizzare nelle varie edizioni, ma soprattutto hanno complicato sempre più le attività di sviluppo e manutenzione.

Dopo Windows Server 2003, Rob Short (nel periodo Vice Presidente della divisione Windows Core Technology) organizza il “Core Team”, un team di architetti del Kernel di Microsoft con l'intento di documentare e districare le dipendenze tra il Kernel del sistema operativo ed i moduli sussidiari. Per fare questo, ad ogni componente del sistema operativo (circa 5.500 file distinti alla fine del 2005, periodo durante il quale era in sviluppo di Windows Vista) è stato assegnato un "layer number": più piccolo è tale numero più il componente è ritenuto parte del “Core” del sistema.

Prima di continuare è importante sottolineare quanto affermato da Mark Russinovich, il più grande esperto sull’architettura di Windows: MinWin non è il Kernel di Windows ma piuttosto un insieme di componenti minimali che comprende, ovviamente, il anche il Kernel.

Grazie al complesso lavoro effettuato, il Core Team inizia ad affrontare una serie di questioni progettuali e di sviluppo per risolvere le dipendenze tra i vari componenti, soprattutto tra il Kernel e quelli con “layer number” più alto. Tutto ciò porta ad un’architettura più strutturata e robusta e al rilascio interno di una versione minimale di Windows, senza interfaccia utente e denominata proprio MinWin.

Con Windows Server 2008, MinWin comincia ad assumere un ruolo centrale nella roadmap di sviluppo del sistema Server di casa Microsoft. In realtà si creano alcune ambiguità, che confondono non poco chi segue lo sviluppo del sistema stesso, portando a credere che Server 2008 sia in realtà basato su Server Core (anche Server Foundation), ovvero un MinWin arricchito con i componenti sufficienti ad eseguire una serie di funzionalità server comuni: Active Directory, Microsoft Server DNS, DHCP Server, Registri degli Eventi, Contatori delle prestazioni, Windows Management Instrumentation e Internet Information Services

A chiarire il tutto ci pensa Andrew Mason, il program manager di Microsoft responsabile di Windows Server Core, che in un’intervista di TechNet di Febbraio 2008 spiega che Windows Server 2008 è stato costruito sulla base di MinWin e non su Server Core.

Nell'ottobre del 2007, Eric Traut di Microsoft mostra un sistema indipendente basato su MinWin su cui è in esecuzione un server HTTP basilare, sottolineando che l’intero sistema occupa circa 25 MB su disco e che sono sufficienti 40 Mb di Ram per la sua esecuzione. Ovviamente il sistema è privo di interfaccia grafica utente ed è gestito attraverso una console a riga di comando, stile MS DOS. 

Sempre durante la demo, Traut afferma che MinWin non diventerà un prodotto stand alone, ma che sarà utilizzato per tutti i futuri sistemi Windows, a partire da Windows 7 e Windows Server 2008 R2.

minwin_screenshot

screenshot della demo