Sì. Se li rimuovi (compila/crea solo i moduli di cui hai bisogno), comprimi il kernel (ottimizza per le dimensioni)... otterrai un kernel così piccolo. Puoi crearne uno ancora più piccolo, per un sistema mirato. Come conosco il mio PC, conosco le mie cose. Quindi mi limiterò a compilare ciò di cui ho bisogno. Come i miei driver SATA, driver per USB, ecc. Nient'altro. Nessuna webcam, nessuna vecchia unità IDE, niente.
Inoltre:quelli più grandi che incontri sono l'INTERO kernel (che non è mai necessario usare). Anche quelli desktop contengono (la maggior parte delle volte, come moduli) MOLTE cose non necessarie. Ma i neofiti si aspettano che ogni tipo di hardware che collegano funzioni.
(Si noti che i moduli non verranno caricati fino a quando non saranno necessari. Ci sono 3 stati:
[ ]
- Non verrà compilato, non farà parte del tuo kernel.
[M]
- Verrà compilato come modulo.
(Puoi modificarlo o il tuo sistema lo caricherà automaticamente quando sarà necessario.
Dipende dal sistema, userland.)
[X]
- Verrà compilato nel kernel E sarà presente - sempre.
Distro con kernel piccolo:
- Tiny Core Linux, Micro Core Linux, Desktop GUI Linux da 12 MB, live, frugale, estendibile
- Puppy Linux Community Home - Per iniziare
Le prime distribuzioni Linux come Tom's Root-Boot, MuLinux, Diet-router, (l'ormai defunto) LOAF e molte altre ora scomparse, si adattavano tutte a un sistema Linux funzionante su uno o due dischetti da 1,44 MB.
Il kernel di Linux è cresciuto ma è modulare:i moduli del kernel vengono caricati secondo necessità. Quindi è ancora possibile produrre una distribuzione Linux con un ingombro molto ridotto.
Vedere:Guida alla regolazione delle dimensioni del kernel - eLinux.org
Se leggi Linux_tiny.pdf vedrai questo
- kernel 0.99pl15 storico:Slackware 1.1.2, 1994:301K
- Fedora Core 2:1,2 milioni
- SuSE 9.1:1,5 milioni
- 2.6.5-tiny1 configurazione di prova:IDE, ext2, TCP, NIC:363K
La configurazione predefinita del kernel è configurata per supportare il maggior numero di hardware possibile. Un kernel non rimosso con configurazione predefinita ha prodotto una dimensione di 1897996 kB (incluso kernel + moduli). Eliminando molti driver e opzioni non necessari (perché avrei bisogno di un modulo HP se possiedo un notebook Clevo), il risultato è stato una dimensione di 892892 kB, ovvero una riduzione delle dimensioni del 53% rispetto al kernel di serie.
Quando installi i moduli del kernel, aggiungi INSTALL_MOD_STRIP=1
opzione. Questo eliminerà tutti i simboli di debug e ridurrà le dimensioni del 92% per me (da 892892 kB a 69356 kB). Nota che questo avrà effetto solo sui moduli da installare e non sul kernel (vmlinuz) stesso:
make INSTALL_MOD_STRIP=1 modules_install
Da Documentation/kbuild/kbuild.txt:
INSTALL_MOD_STRIP
--------------------------------------------------
INSTALL_MOD_STRIP, if defined, will cause modules to be
stripped after they are installed. If INSTALL_MOD_STRIP is '1', then
the default option --strip-debug will be used. Otherwise,
INSTALL_MOD_STRIP value will be used as the options to the strip command.