Grafica e kernel: corsi e ricorsi
Brandon LeBlanc segnala un articolo su Techworld dove si segnala il fatto che in Windows Vista molto codice che gestisce la grafica non sarà più eseguito a livello di kernel, come invece avviene in Windows oggi.
Il titolo di questo post si riferisce al fatto che le prime versioni di NT (Windows NT 3.0, NT 3.5 e NT 3.51) avevano un'architettura in cui i moduli GDI e USER (rispettivamente responsabili di primitive grafiche e gestione dell'interfaccia utente a finestre) venivano eseguiti in modalità utente (user-mode). Con NT 4.0 spostarono questi due moduli a livello kernel, essenzialmente per motivi prestazionali: a parità di hardware Windows 95 era estremamente più veloce nell'interfaccia utente: ciò era dovuto all'assenza di passaggi continui tra kernel-mode e user-mode, cosa cui NT 3.x era obbligato visto che i driver della scheda video erano necessariamente codice da eseguire in modalità kernel e la continua richiesta di primitive grafiche contribuiva ad aumentare il traffico di richieste e quindi il tempo perso in continui passaggi tra kernel e user-mode.
L'articolo fa cenno di questo e (direi erroneamente) segnala che la presunta perdita di prestazioni sarà compensata dalla potenza dell'hardware odierno. Io credo che non sarà esattamente così (in senso positivo, però), perché in Windows Vista anche i driver delle schede video saranno eseguiti in modalità user: questo però sposta il problema della comunicazione con la scheda video a un livello ancora più basso (un qualche driver in modalità kernel deve pur occuparsi di comunicare con l'hardware); non conosco ancora bene i dettagli di questo livello architetturale, ma intuisco che in alcune modalità (per es. Aero Glass) questa comunicazione è inferiore di quella richiesta da altre modalità (Windows Classic), per quanto paradossalmente l'interfaccia di Aero sia più complessa e ricca di quella classica. Ovviamente bisogna avere hardware (e soprattutto una scheda video) adeguato.
Da poco è uscito Windows Vista CTP Dicembre: sto scaricando i bit, ci vorrà ancora un po'... vediamo se per Natale riesco a fare qualche prova su una macchina reale (non virtuale) adeguata.