Dimensione: 2040
Commento: Primo articolo per la newsletter
|
Dimensione: 2148
Commento:
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 6: | Linea 6: |
=== Il Kernel di GNU/Linux: una panoramica === Il Kernel è il cuore del nostro sistema operativo, grazie ad esso è possibile interagire con i vari dispositivi connessi al sistema, come ad esempio la stampante, i dischi, le interfacce USB ma anche gestire la memoria, i processi (essendo un kernel multitask) avviati, risorse... |
=== Kernel: initrd === All'interno della configurazione del boot loader (nel nostro caso GRUB) viene specificato, in configurazione, oltre al Kernel da utilizzare (vmlinuz) anche l'initrd da caricare insieme ad esso. Questo file non è altro che un filesystem compresso contenente, al suo interno, delle applicazioni che possono essere eseguiti in UserSpace e moduli di Kernel che possono essere caricati per consentire il corretto avvio del sistema. Lo scopo principale di questo file è consentire il caricamento di moduli aggiuntivi per il Kernel in uso, senza che questi siano compilati staticamente nel Kernel, e di eseguire tutte le azioni necessarie al corretto caricamento del filesystem root (/) per poter così eseguire il boot reale del sistema, avviando cioè UpStart. Se ad esempio, il nostro sistema, dispone di un controller non disponibile all'interno dell'immagine Kernel, il modulo che lo gestisce potrà essere incluso all'interno del initrd (utilizzando il tools {{{update-initramfs}}}) ed opportunamente configurato in modo che venga caricato all'avvio senza così dover ricompilare il Kernel. Ad esempio, se vogliamo caricare il {{{modulo1}}} all'avvio del sistema per così consentire il riconoscimento del controller, basterà aggiungerlo al file {{{/etc/initramfs-tools/modules}}} e quindi da terminale impartire il comando: {{{ sudo update-initramfs -u }}} Per dettagli vi rimando alle seguenti man-pages: initramfs-tools(8), update-initramfs(8) === Kernel: gestione dei moduli === === Kernel: personalizzazione === Links: * http://wiki.ubuntu-it.org/AmministrazioneSistema/CompilazioneKernel === Sistema: I runlevel === Links: * http://wiki.ubuntu-it.org/AmministrazioneSistema/VelocizzareBoot === Sistema: Crontab === Links: * http://wiki.ubuntu-it.org/AmministrazioneSistema/Cron === Sistema: Filesystems === Links: * http://wiki.ubuntu-it.org/AmministrazioneSistema/VerificaDiscoFisso |
Linea 10: | Linea 48: |
Al momento del boot, il boot loader (GRUB come anche LILO), fondamentalmente non fa altro che caricare in memoria l'immagine compressa del kernel che si trova nella cartella /boot del nostro sistema. E' identificabile, perché per "convenzione" il file si chiama "vmlinuz" (seguito dal numero di versione). Questo file contiene il "core" del sistema, e grazie al supporto del filesystem virtuale (cioè residente in memoria senza alcun riferimento ad un dispositivo fisico) "initrd" (file sempre presente nella cartella /boot) ha tutte le informazioni (script di inizializzazione e moduli base) per eseguire il mount del filesystem root ed avviare il sistema. Il Kernel in uso su Ubuntu è modulare, cioè il core non dispone di tutti i driver per poter gestire i vari dispositivi, ma questi vengono affidati a moduli che possono essere allocati o de-allocati a runtime con il sistema già attivo. Questo garantisce un sistema snello e pronto per gestire nuovi dispositivi, evitando quindi di avere parti di codice caricate in memoria che non verrebbero mai utilizzati. Il kernel di GNU/Linux supporta nativamente moltissime architetture sia a 32 che 64bit, tra cui: i386, Intel IA-64, AMD x86-64, PowerPC, ARM, Sun SPARC, ..., anche se, in realtà, Ubuntu fornisce supporto solo per alcune di queste. Links: http://www.kernel.org/ http://kerneltrap.org/ http://kernelnewbies.org/ http://wiki.ubuntu-it.org/AmministrazioneSistema http://wiki.ubuntu-it.org/AmministrazioneSistema/CompilazioneKernel http://www.kroah.com/lkn/ |
|
Linea 20: | Linea 49: |
CategoryHomepage | . CategoryHomepage |
LavoriInCorso
Questa è la mia pagina di prova...
Alla lavagna...
Kernel: initrd
All'interno della configurazione del boot loader (nel nostro caso GRUB) viene specificato, in configurazione, oltre al Kernel da utilizzare (vmlinuz) anche l'initrd da caricare insieme ad esso. Questo file non è altro che un filesystem compresso contenente, al suo interno, delle applicazioni che possono essere eseguiti in UserSpace e moduli di Kernel che possono essere caricati per consentire il corretto avvio del sistema.
Lo scopo principale di questo file è consentire il caricamento di moduli aggiuntivi per il Kernel in uso, senza che questi siano compilati staticamente nel Kernel, e di eseguire tutte le azioni necessarie al corretto caricamento del filesystem root (/) per poter così eseguire il boot reale del sistema, avviando cioè UpStart.
Se ad esempio, il nostro sistema, dispone di un controller non disponibile all'interno dell'immagine Kernel, il modulo che lo gestisce potrà essere incluso all'interno del initrd (utilizzando il tools update-initramfs) ed opportunamente configurato in modo che venga caricato all'avvio senza così dover ricompilare il Kernel.
Ad esempio, se vogliamo caricare il modulo1 all'avvio del sistema per così consentire il riconoscimento del controller, basterà aggiungerlo al file /etc/initramfs-tools/modules e quindi da terminale impartire il comando:
sudo update-initramfs -u
Per dettagli vi rimando alle seguenti man-pages: initramfs-tools(8), update-initramfs(8)
Kernel: gestione dei moduli
Kernel: personalizzazione
Links:
Sistema: I runlevel
Links:
Sistema: Crontab
Links:
Sistema: Filesystems
Links: