PDA

Visualizza versione completa : [Windows Vista] Macro architettura del sistema


P8257 WebMaster
01-02-2007, 17.45.24
Ciao a tutti,
Per esigenze documentative ho tracciato uno schema sulla macro architettura del nuovo sistema operativo Microsoft, ve lo posto con una breve illustrazione se la cosa può interessare.

http://www.plansweb.net/hostedimgs/VistaArch.bmp

Windows Vista è un sistema basato su microkernel ibrido, ovvero in parole povere, un sistema in cui i driver di periferica si innestano direttamente nel kernel e questa cosa non ha sostanziali differenze con le precedenti versioni dei sistemi NT, anche se ovviamente i vecchi driver per Xp non potranno essere funzionanti su questo sistema, inutile dire che sono stati riscritti i componenti base del sistema a partire dal Loader che sostituisce l’ormai quasi decennale NTLDR con quelle schermate a modalità testo bianco su nero che tanto intristiscono.
Le cose importanti iniziano sotto il “Livello NT”, ovvero sotto le interfacce comuni che il sistema utilizza per i suoi servizi base, è qui che sta una delle più grandi innovazioni architetturali rispetto ai predecessori: Vista infatti, considera solo un piccolo set di servizi come “servizi di macchina” il che vuol dire che viene drasticamente ridotta la porzione di codice eseguito dall’elemento NT-AUTHORITY al contrario dei vecchi sistemi che utilizzano questo utente “super partes” e “onnipotente” per eseguire lavori e far ancora prima che l’utente esegua il logon. Con Vista la filosofia cambia: è l’utente (e il suo profilo) che conta, non la macchina, quindi tutto è stato demandato al livello utente che sta proprio sotto, persino l’interfaccia grafica e la gestione delle policy è completamente dipendente dal livello utente, come dire che in questo sistema la macchina si plasma in base all’utente e non il contrario.
Possiamo notare che tutta l’interfaccia di Xp è stata ridotta ad uno striminzito set GDI-Base indipendente dall’utente e che serve soltanto per gestire l’input e output a schermo prima del logon, il vero e proprio motore grafico (e di motore si parla data la complessità del componete) parte subito dopo e per giunta in versione multi threaded, il che vuol dire che ogni utente ha la propria interfaccia completamente indipendente.
Un’altra importantissima differenza rispetto ai predecessori, ovvero il cambio di piattaforma.
Ebbene sì, era dagli abbozzi di supporto per la programmabilità a 32-bit che si vedevano nella OSR2 di Windows 95, che non si assisteva ad un cambio così radicale, ovvero il passaggio dalla piattaforma Win32 alla nuovissima (si fa per dire) WinFX basata quasi interamente sull’architettura gestita .NET. Questo è il primo sistema operativo che integra il framework .net 3.0 come componente nativo il che vuol dire che tutta la programmabilità custom del sistema che comprende ovviamente anche tutte le applicazioni di terze parti che verranno fatte girare dal sistema stesso, saranno sottoposte ad una logica di librerie .NET e alla sua architettura di linguaggio gestito, dando definitivamente un taglio netto a quello che deve essere il ruolo del sistema operativo nei confronti delle applicazioni di terze parti.
Microsoft aveva persino posizionato la propria interfaccia grafica al di sotto del livello WinFX, scrivendo anch’essa in linguaggio gestito .net, ma la cosa aveva posto particolari problemi per questo l’interfaccia stessa è stata spostata in ambiente puramente nativo; soltanto la shell risente dell’influenza di WinFX ed offre addirittura un set di API programmabili che vanno a semplificare notevolmente il lavoro per chi si trova a dover realizzare una shell extension per la propria applicazione.

RNicoletto
01-02-2007, 18.31.38
Tutto molto interessante. :act:

Manca solo una cosa: tu cosa ne pensi della nuova architettura di Vista?? Pensi avrebbe dovuto puntare su di un kernel più modulare?? Pensi che avrebbe dovuto investire di più per portare più funzionalità core (tipo WinFS)??

P8257 WebMaster
01-02-2007, 18.44.09
Tutto molto interessante. :act:

Manca solo una cosa: tu cosa ne pensi della nuova architettura di Vista?? Pensi avrebbe dovuto puntare su di un kernel più modulare?? Pensi che avrebbe dovuto investire di più per portare più funzionalità core (tipo WinFS)??

Grazie,
guarda a livello Kernel penso che la soluzione microibrida sia ancora la più avlida nel caso di Windows, un Kernel monolitico sarebbe stato troppo costrittivo e senza dubbio troppo al di fuori delle specifiche di windows stesso, d'altra parte un kernel più frammentato avrebbe lasciato troppa "libertà" ai manufacturers, mentre così si continua a costringere chi fa l'hardware a implementare interfacce a basso livello secondo specifiche ben conosciute e tutto sommato collaudate...

Per quanto riguarda WinFx, beh, è una scelta forte, non lo chiamerei un azzardo, ma prima o poi con questo .net Microsoft ci doveva pur fare qualcosa di serio .. e il vero banco di prova è windows, cioè sottoporre .net ad un volume di stress superiore come può essere quello che occorre per far girare gli applicativi .. da qui prevedo l'uscita di numerosi bugfix ma è proprio quello che serve a questo punto se si vuole affermare il mondo .net come standard...
Sicuramente questo determinerà anche un cambio di abitudine degli sviluppatori, proprio come quando entrarono in gioco le varie MFC e proprio come chi sviluppa in C++.net deve sapere che in ogni caso sta sviluppando su una piattaforma gestita.

Il vero tavolo di test comunque lo giocherà il livello utente, molto potente in questo sistema, questa si che è stata una scelta in cui secondo me solo il tempo potrà mettere parola...