LKN: Ricette per Configurare il Kernel: differenze tra le versioni

Nessun oggetto della modifica
Riga 933: Riga 933:
=='''Filesystems'''==
=='''Filesystems'''==


Linux supporta una vasta gamma di tipi di filesystem tradizionali e un certo numero di differenti tipi di filesystem (''volume managers'', ''clustered filesystems'', ecc.). I tipi di filesystem tradizionali (normali o ''journaled'') possono essere selezionati dal menu principale di configurazione dei File systems:
 
<pre>
File systems
    [*] Second extended fs support
    [*] Ext3 journalling file system support
    [ ] Reiserfs support
    [ ] JFS filesystem support
    [ ] XFS filesystem support
</pre>
 
Questa sezione vuole mostrare alcuni tipi di filesystem non tradizionali che Linux supporta e come abilitarli.
 
===RAID===
 
RAID da la possibilità di combinare vari dischi assieme, in modo da comportarsi però come fossero un unico disco. Ciò può aiutare a dare modi di fornire ridondanza o velocità di diffusione dei dati fra i differenti dischi. Linux supporta entrambi hardware e software RAID. L'hardware RAID è gestito dal ''disk controller'', senza nessun aiuto necessario del kernel.
 
1. Il Software RAID è controllato dal kernel e può essere selezionato come opzione:
 
<pre>
Device Drivers
    Multi-device support (RAID and LVM)
        [*] Multiple devices driver support (RAID and LVM)
        [*]  RAID support
</pre>
 
2. Ci sono vari differenti tipi di configurazione del RAID. Almeno uno deve essere selezionato per permettere al RAID di funzionare correttamente:
 
<pre>
Device Drivers
    Multi-device support (RAID and LVM)
        [*] Multiple devices driver support (RAID and LVM)
        [*]  RAID support
        [*]    Linear (append) mode
        [*]    RAID-0 (striping) mode
        [*]    RAID-1 (mirroring) mode
        [*]    RAID-10 (mirrored striping) mode (EXPERIMENTAL)
        [*]    RAID-4/RAID-5 mode
        [*]    RAID-6 mode
</pre>
 
===Logical Volume Manager e Device Mapper===
 
Molto simile al RAID, Logical Volume Manager (LVM) permette all'utente di combinare differenti blocchi di dispositivi per comportarsi come fossero un blocco unico. In ogni caso, non funziona a livello di dispositivo come il RAID, ma attraverso un blocco con un meccanismo di mappatura dei settori. Questo permette a differenti porzioni di differenti dischi di essere combinate assieme per formare un unico blocco di dispositivo. Per fare ciò, il kernel utilizza qualcosa chiamato ''Device Mapper'' (DM).
 
1. Abilitare il supporto DM nel kernel:
 
<pre>
Device Drivers
    Multi-device support (RAID and LVM)
        [*] Multiple devices driver support (RAID and LVM)
        [*]  Device mapper support
</pre>
 
2. Ci sono vari moduli d'aiuto che lavorano con il DM per fornire ulteriore funzionalità:
 
<pre>
Device Drivers
    Multi-device support (RAID and LVM)
        [*] Multiple devices driver support (RAID and LVM)
        [*]  Device mapper support
        [*]    Crypt target support
        [*]    Snapshot target (EXPERIMENTAL)
        [*]    Mirror target (EXPERIMENTAL)
        [*]    Zero target (EXPERIMENTAL)
        [*]    Multipath target (EXPERIMENTAL)
</pre>
 
===Condivisione file con Windows===
 
Samba è un programma che permette agli utenti Linux di accedere a macchine Windows nativamente attraverso la rete, fornendo un modo per condividere unità e dispositivi in maniera trasparente. Concede inoltre a Linux di fungere da server Windows, permettendo ai ''clients'' Windows di connettersi ad esso, facendogli credere di essere una vera macchina Windows.
 
Due differenti filesystems permettono a una macchina Linux di connettersi con una macchina Windows: il filesystem SMB e il filesystem CIFS. Per permettere la connessione per ''Workgroups'' a Windows o macchine con Windows 95 o 98, selezionare il filesystem SMB:
 
<pre>
File systems
    Network File Systems
        [*] SMB file system support (to mount Windows shares etc.)
</pre>
 
Per permettere la connessione a nuove macchine Windows è raccomandato invece il filesystem CIFS:
 
<pre>
File systems
    Network File Systems
        [*] CIFS support
</pre>
 
Per ulteriori dettagli a riguardo le differenze fra questi due filesystem e quando si dovrebbe utilizzarne uno piuttosto dell'altro, guardare per favore le voci SMB_FS e CIFS nel capitolo 11.
 
===OCFS2===
 
OCFS2 è un ''cluster'' filesystem della Oracle che funziona allo stesso tempo per una grande installazione di rete, così come un piccolo sistema locale. Questo filesystem è raccomandato per l'utilizzo di grandi database, come Oracle o DB2, perché può essere spostato nel corso del tempo a diversi dischi di sostegno attraverso la rete molto più facilmente rispetto all'ulteriore stoccaggio necessario.
 
Per abilitare questo filesystem:
 
<pre>
File systems
    [*] OCFS2 file system support
</pre>
 
=='''Sicurezza'''==
 
Il kernel Linux supporta differenti modelli di sicurezza fornendo agganci e lasciando la possibilità di creare il proprio modello. Al momento, solo pochi modelli appartengono al codice di default del kernel, ma sviluppatori di nuovi modelli stanno lavorando per ottenerne di più accettati.
 
===Capacità di default di Linux===
 
Il tipo di modello di sicurezza standard di Linux è il modello "capacità". Dovreste sempre selezionare quest'opzione, a meno che si volesse utilizzare un kernel insicuro per qualsiasi ragione.
 
Per abilitarlo:
 
<pre>
Security options
    [*] Enable different security models
    [*]  Default Linux Capabilities
</pre>
 
===SELinux===
 
Un modello di sicurezza molto conosciuto è chiamato SELinux. Questo modello è supportato da un discreto numero di differenti distribuzioni di Linux.
 
SELinux richiede che l'opzione di collegamento in rete sia abilitata. Si guardi la sezione precedente "Collegamento in rete" per abilitarla.
 
SELinux richiede inoltre che la revisione sia abilitata nella configurazione del kernel. Per fare ciò:
 
<pre>
General setup
    [*] Auditing support
</pre>
 
Ancora, l'opzione di sicurezza del collegamento in rete deve essere abilitata:
 
<pre>
Security options
    [*] Enable different security models
    [*]  Socket and Networking Security Hooks
</pre>
 
Adesso è possibile selezionare l'opzione SELinux:
 
<pre>
Security options
    [*] Enable different security models
    [*] NSA SELinux Support
</pre>
 
Ci sono inoltre un certo numero di opzioni individuali di SELinux che si consiglia di abilitare. Si guardi per favore l'aiuto dei singoli elementi per una descrizione più esaustiva su ciò che fanno:
 
<pre>
Security options
    [*] Enable different security models
    [*] NSA SELinux Support
    [ ]  NSA SELinux boot parameter
    [ ]  NSA SELinux runtime disable
    [*]  NSA SELinux Development Support
    [*]  NSA SELinux AVC Statistics
    (1)  NSA SELinux checkreqprot default value
</pre>
 
=='''Kernel Debugging'''==
 
Una vasta gamma di differenti opzioni del kernel può aiutare in ''debugging'' per capire cosa sta succedendo all'interno del kernel. La susseguente lista mostra le opzioni più comuni che possono essere utili per scoprire nuove cose su come funziona il kernel o aiutare a trovare potenziali problemi all'interno dell'attuale codice sorgente del kernel.
 
===Kernel Log Timestamps===
 
Il kernel da una vasta gamma di messaggi nei suoi ''logfile''. Questi messaggi possono essere letti guardando nel sistema ''logfile'' (normalmente situato in ''/var/log/messages'') o digitando il comando ''dmesg''.
 
Ogni tanto è opportuno vedere esattamente quando questi messaggi sono stati creati. ''dmesg'' non da però nessun "segnalibro di tempo" (''timestamp'') agli eventi che mostra e la risoluzione di ''/var/log/messages'' è solamente vicina al secondo. Si può configurare il kernel per assegnare ad ogni messaggio un "segnalibro di tempo" con l'accuratezza del valore di tempo più piccolo misurabile dal kernel (normalmente nel raggio di microsecondi).
 
Per abilitare l'opzione "segnalibro di tempo" nei messaggi del kernel:
 
<pre>
Kernel hacking
    [*] Show timing information on printks
</pre>
 
===Magic SysRq Keys===
 
I tasti ''SysRq'' sulla tastiera possono essere utilizzati per controllare il kernel in vari modi differenti mentre il kernel è in esecuzione o dopo un crash.
 
Per abilitare quest'opzione:
 
<pre>
Kernel hacking
    [*] Magic SysRq key
</pre>
 
Per una descrizione completa delle differenti azioni che possono essere attivate con quest'opzione, si guardi per favore il file ''Documentation/sysrq.txt'' all'interno del codice del kernel.
 
===Debug Filesystem===
 
Un filesystem basato sulla RAM può essere utilizzato per estrarre un mucchio di differenti informazioni di ''debugging''. Questo filesystem è chiamato ''debugfs'' e può essere abilitato:
 
<pre>
Kernel hacking
    [*] Debug filesystem
</pre>
 
Dopo aver abilitato questa opzione e aver riavviato il kernel recompilato, viene creata una directory ''/sys/kernel/debug'' come locazione per l'utente per montare il filesystem ''debugfs''. Per fare ciò manualmente:
 
<pre>
$ mount -t debugfs none /sys/kernel/debug
</pre>
 
Oppure montare il filesystem automaticamente all'avvio, aggiungendo la seguente linea al file ''/etc/fstab'':
 
<pre>
debugfs /sys/kernel/debug debugfs 0 0
</pre>
 
Dopo aver montato ''debugfs'', un grande numero di differenti directories e files saranno presenti nella directory ''/sys/kernel/debug/''. Queste sono tutte virtuali e generate dinamicamente dal kernel, come i files in ''procfs'' o ''sysfs''. I files possono essere utilizzati come aiuto per eliminare gli errori dai diveri sotto sistemi del kernel o semplicemente per vedere cosa succede al sistema quando è in esecuzione.
 
===General Kernel Debugging===
 
Qui troviamo una vasta gamma di altre buone opzioni di configurazione del kernel che sarebbe opportuno abilitare se si volesse aiutare gli sviluppatori del kernel a risolvere differenti problemi, o semplicemente per apprendere di più come lavora il kernel osservando i messagi che questa opzione rende disponibili. Si noti che se si abilita qualsiasi delle seguenti opzioni, il kernel rallenterà di un poco; se si dovesse osservare una diminuzione delle prestazioni sarebbe opportuno disabilitare le opzioni:
 
<pre>
Kernel hacking
    [*] Kernel debugging
    [*]  Detect Soft Lockups
    [ ]  Collect scheduler statistics
    [*]  Debug slab memory allocations
    [*]    Memory leak debugging
    [*]  Mutex debugging, deadlock detection
    [*]  Spinlock debugging
    [*]  Sleep-inside-spinlock checking
    [ ]  kobject debugging
    [ ]  Highmem debugging
    [ ]  Compile the kernel with debug info
</pre>


----
----
47

contributi