Secondo me la ragione più importante è che la maggior parte dei programmi su Windows lo sono dipende dal registro . Il registro è probabilmente un archivio ben organizzato, tuttavia non è noto che sia molto efficiente. Quando si installa Windows per la prima volta, le dimensioni del registro sono ridotte e le operazioni di ricerca sono economiche; tuttavia, man mano che si installa un numero sempre maggiore di programmi, il registro diventa più grande e più difficile da gestire.
Un altro fattore è la frammentazione del disco. NTFS e FAT sono molto famosi per la loro incapacità di prevenire la frammentazione. D'altro canto, i file system Linux, in particolare ext3 (non ho alcuna esperienza in reiserFS o altre alternative) sono abbastanza resistenti alla frammentazione.
Un breve primer sulla frammentazione
Che cos'è la frammentazione? Questo articolo fa un buon lavoro spiegandolo, ma l'essenza di questo è questo: Windows raggruppa tutti i suoi file insieme in un unico posto sul disco, mentre Linux li diffonde ovunque. Ciò significa che, quando un file cresce su Windows, corre il rischio di essere così grande da sovrapporsi all'allocazione del disco rigido del file successivo e quindi deve essere spostato o (più probabilmente) frammentato, con il nuovo frammento archiviato in un posto diverso sul disco rigido. La prossima volta che si accede a quel file, Windows deve effettivamente fare due accede al disco, uno per il file iniziale e un secondo per il frammento appena creato. Quando un file cresce in Linux, d'altra parte, c'è spesso più spazio sufficiente per esso e il sistema operativo procede felicemente. Il metodo di Linux ha un piccolo svantaggio sui dischi rigidi meccanici, e cioè, poiché i file sono sparsi ovunque, c'è un piccolo ritardo nell'accedere ad essi su una serie di file "raggruppati". Il progetto e4rat funziona piuttosto bene per eliminare o ridurre alcuni di questi ritardi (solo filesystem ext4) e il sovraccarico sostenuto non è mai peggiore di quello che Windows sperimenta dalla frammentazione dei file.
Un altro fattore è un piccolo trucco che Windows tira: un'installazione di Windows non è mai attiva quando è attiva. Windows avvia molti processi dopoaccedi. La distinzione tra processi di sistema e processi utente è un po 'vaga per Windows, specialmente per le vecchie versioni precedenti a XP. E molte applicazioni Windows sono molto ansiose di avviare processi in background e posizionare icone nella barra delle applicazioni. Col tempo, un'installazione di Windows inizia ad avviare sempre più processi all'avvio. Tuttavia, Linux avvia rigorosamente tutti i processi di sistema prima dell'accesso. Dopo l'accesso, viene avviato solo un numero minimo di processi. Inoltre, Linux non ha mai incoraggiato l'uso di servizi in background relativi a compiti specifici di un utente specifico o l'utilizzo di icone nella barra delle applicazioni. L'ultima versione di Gnome nega a tutte le applicazioni di posizionare icone nella barra delle applicazioni, tranne una lista bianca molto stretta. Quindi nel tempo un'installazione Linux avvia ancora solo un numero limitato di processi dopo l'avvio.
Sono sicuro che ci sono altri numerosi fattori che contribuiscono a questo fenomeno, questi sono i principali che mi vengono in mente.