Si deve a
Johnathon Weare, sviluppatore in ambienti open source, la redazione di due pagine di wiki con tabelle di confronto: la prima fra il
kernel Linux 2.6.20 e quello di
Windows 2003 R2, la seconda con una comparativa che include anche il recente kernel Windows 6.0.6000, ovvero quello di
Windows Vista. Il
primo lavoro, ispirato da una
session di Russinovich, è documentato da un gran numero di riferimenti; il
secondo è purtroppo privo di fonti, ma - assodata la bravura professionale dell'autore - costituisce una testimonianza di fonte indipendente, se non di parte avversa, dei miglioramenti apportati a Windows con
Vista.
Una veloce chiave di lettura è la legenda dei colori delle varie voci, ove il verde indica per l'autore
migliore o più flessibile ed il rosso, naturalmente, il contrario; entrambi i lavori sono però meritevoli di più attenta lettura. Cominciando dal primo, alla voce
modello di sviluppo Weare assegna il
colore positivo alle caratteristiche del modello di sviluppo open source, e questa è l'unica concessione un pò
partigiana; alla voce
architettura, si potrebbe lungamente discutere sui vantaggi in termini di sicurezza e stabilità di Windows dell'avere tutti i driver nello spazio del kernel - una considerazione che si può ripetere per la successiva voce relativa all'architettura grafica -, ma sicuramente la scelta di Linux di offrire i driver in
user space offre una maggiore flessibilità.
Per quanto riguarda la voce
codice sorgente, oltre a notare la presenza nel kernel Windows di codice C++ e, naturalmente, del
sistema di gestione delle eccezioni specifico, abbiamo una serie di utili dati statistici; l'autore evidenzia il minor numero di linee di codice nel kernel Linux - se però confrontiamo un'edizione di Windows con una distro Linux, la proporzione spesso si inverte - e ove è costretto a riportare dati non aggiornati, troveremo un colore neutro - anche in presenza di dati quantitativi - e l'apposita nota. Sulle opzioni di boot, il kernel Linux presenta una serie di possibilità aggiuntive, ma di sicuro quella di considerare l'immagine
vmlinuz vantaggiosa rispetto alle varie
NTKRNL*.EXE è una scelta dell'autore che meriterebbe maggiore discussione.
Sul fronte delle architetture hardware supportate, a parte una copertura completa delle architetture per PC di entrambi i kernel, Linux presenta un'evidente situazione di vantaggio; è appena il caso di far notare che, se volessimo far rientrare nella famiglia Windows la caratteristica del
.NET Micro Framework di operare in modalità
bootable, senza un sistema operativo sottostante, troviamo dal
lato Microsoft il supporto anche per i
processori ARM, limitato alle
famiglie 7 e 9.
Per quanto riguarda il supporto delle architetture multiprocessore, i kernel sono in una situazione di perfetta parità; l'unica chiosa che vorrei aggiungere al confronto di
Weare è che, sebbene il kernel Linux non presenti le limitazioni sul numero dei processori di quello Windows, tale limitazione è tuttavia imposta in alcune distro commerciali di classe enterprise. Situazione di perfetta parità anche nella tabella - non esaustiva, ma meritevole di lettura come il resto del lavoro - del supporto hardware, se consideriamo che quello al bus
PCI express - AER è stato
aggiunto in
Vista; l'unica cosa da far notare è che il supporto all'architettura
InfiniBand in Windows è specifico dell'
edizione Compute Cluster.