LKN: Guida di Riferimento delle Opzioni di Configurazione del Kernel - parte1

Linux Kernel in a Nutshell

Sommario

Parte I
Compilare il kernel
  1. Introduzione
  2. Requisiti
  3. Procurarsi i sorgenti
  4. Configurazione e compilazione
  5. Installazione e avvio
  6. Aggiornare il kernel
Parte II
Personalizzazioni principali
  1. Personalizzare un kernel
  2. Ricette per configurare un kernel
Parte III
Guide di riferimento per il kernel
  1. Guida di riferimento dei parametri di boot del kernel - parte1
  2. Guida di riferimento dei parametri di boot del kernel - parte2
  3. Guida di riferimento dei parametri di compilazione del kernel
  4. Guida di riferimento delle opzioni di configurazione del kernel - parte1
  5. Guida di riferimento delle opzioni di configurazione del kernel - parte2
Parte IV
Informazioni aggiuntive
  1. Programmi utili
  2. Bibliografia

Questo capitolo elenca le più importanti opzioni di configurazione offerte quando si esegue make config o una delle sue interfacce grafiche. La maggior parte del capitolo è basato sulla documentazione interna al kernel per le differenti opzioni di configurazione, che sono state scritte dagli sviluppatori del kernel e rilasciate sotto la licenza GPL.

EXPERIMENTAL

Domanda per il codice/driver incompleti e/o in sviluppo.

Alcune delle molte cose che Linux supporta (come i driver di rete, filesystem, protocolli di rete, etc...) possono essere in stato di sviluppo dove la funzionalità, stabilità, o il livello di test non è abbastanza alto per l'uso generale. Questo è normalmente noto come fase "alpha-test" tra gli sviluppatori. Se una caratteristica è correntemente in alpha test, gli sviluppatori solitamente sconsigliano una diffusione disinformata dell'uso di questa funzionalità al pubblico generico per evitare email del tipo "Perché questo non funziona?". In ogni caso, il testing attivo e l'uso di questi sistemi sono ben accetti. Siate solo consapevoli che potrebbe non coincidere con il livello normale di affidabilità o potrebbe non funzionare correttamente in alcuni casi particolari. Segnalazioni di bug dettagliate da persone che hanno familiarità con il kernel solitamente benvenuti dagli sviluppatori. (Ma prima di inviare segnalazioni di bug, si prega di leggere i documenti README, MAINTAINERS, REPORTING-BUGS, Documentation/BUG-HUNTING, e Documentation/oops-tracing.txt nel sorgente del kernel). Questa opzione inoltre rende obsoleta la disponibilità dei driver. Questi sono driver che sono stati sostituiti da qualcos'altro e/o sono programmati per essere rimossi in una versione futura del kernel. A meno che non intendiate aiutare a provare e sviluppare una caratteristica o driver che ricade in questa categoria, o avete una situazione che richieda l'uso di queste caratteristiche, dovreste probabilmente dire no qui, ciò causerà una riduzione delle scelte presentate dal configuratore. Se rispondete sì qui, vi verrà offerta la scelta di usare caratteristiche o driver che sono correntemente considerate in fase alpha-test. Di per sé, questa opzione non fa altro eccetto che permettervi di selezionare altre opzioni.

LOCAL VERSION

Local version---si aggiunge alla release del kernel.

Vi permette di aggiungere una stringa aggiuntiva alla fine della vostra versione del kernel. Questa verrà mostrata quando si inserisce un comando uname, per esempio. La stringa che viene impostata qui si aggiungerà ai contenuti di qualsiasi file con un nome che comincia con localversion nei vostri oggetti e albero sorgenti, in quell'ordine. La stringa può essere al massimo di 64 caratteri.

AUDIT

Support auditing.

Attiva un'infrastruttura di controllo che può essere utilizzata con un altro sottosistema di kernel, come SELinux (che lo richiede per il log dei messaggi di output avc).

IKCONFIG

kernel .config support

Questa opzione abilita il contenuto completo del file .config per il salvataggio nel kernel. Documenta quali opzioni del kernel sono usate nel kernel corrente o in un on-disk kernel. Questa informazione può essere estratta dal file immagine del kernel con lo script scripts/extract-ikconfig e usato come input per ricompilare il kernel corrente o compilarne un altro. Può anche essere estratto da un kernel corrente leggendo il file /proc/config.gz.

EMBEDDED

Configura le caratteristiche standard del kernel (per sistemi integrati)

Questa opzione permette di disabilitare alcune opzioni e impostazioni di base del kernel o cambiarle leggermente. Questo serve per gli ambienti specializzati che possono tollerare un kernel "non standard". È consigliato solo a utenti esperti, dal momento che è molto semplice cambiare le opzioni per creare un kernel che neanche si avvia correttamente.

Di suo, questa opzione non fa altro che permettere di selezionare altre opzioni.

MODULES

Abilita il supporto ai moduli caricabili

I moduli del kernel sono piccoli pezzi di codice compilato che possono essere inseriti nel kernel in esecuzione, invece di essere permanentemente compilati nel kernel. Se selezionate questa opzione, molte parti del kernel possono essere compilate come moduli (rispondendo M invece di sì dove indicato): questo è molto utile per le opzioni usate non frequentemente che non sono richieste in fase di avvio. Per ulteriori informazioni, guardate il Capitolo 4 e le pagine man per modprobe, lsmod, modinfo, insmod, e rmmod. Se si dice sì qui, avrete bisogno di eseguire make modules_install per mettere i moduli sotto /lib/modules dove i tool dei moduli possono trovarli.

IOSCHED_NOOP

No-op I/O scheduler

Il No-op I/O scheduler è uno schedulatore minimale che esegue unioni e ordine basilari. I suoi principali usi includono dispositivi a blocchi non basati su dischi come i dispositivi di memoria e software specializzato o ambienti hardware che fanno la loro schedulazione e richiedono solo una minima assistenza del kernel.

IOSCHED_AS

Anticipatory I/O scheduler

L'anticipatory I/O scheduler è lo schedulatore predefinito del disco. È solitamente una buona scelta per la maggior parte degli ambienti, ma è abbastanza largo e complesso confrontato allo scheduler di deadline I/O. A volte, può essere anche più lento, specialmente in fase caricamento di alcuni database.

IOSCHED_DEADLINE

Deadline I/O scheduler

Lo scheduler di deadline I/O è semplice e compatto. È spesso buono come l'anticipatory I/O scheduler, e sotto alcuni carichi di database, anche meglio. Nel caso di un singolo processo che accede in I/O a un disco in qualsiasi momento, il suo comportamento è pressoché identico allo scheduler anticipatory I/O e dunque è una buona scelta.

IOSCHED_CFQ

CFQ I/O scheduler

Lo scheduler I/O CFQ prova a distribuire la larghezza di banda ugualmente tra tutti i processi del sistema. Dovrebbe provvedere a un ambiente di lavoro equo, ideale per i sistemi desktop.

SMP

Supporto al multiprocessing simmetrico

Questo abilita il supporto per i sistemi con più di una CPU. Se avete un sistema con una sola CPU, come la maggior parte dei personal computer, dite no. Se avete un sistema con più di una CPU, dite sì.

Se dite no qui, il kernel girerà su macchina con singolo o multiprocessore, ma userà una sola CPU della macchina multiprocessore. Se dite sì, il kernel girerà su molte, ma non tutte, macchine monoprocessore. Su una macchina mono-processore, il kernel girerà più velocemente se dite no.

Notate che se dite sì qui e scegliete architettura 586 o Pentium sotto Processor family, il kernel non funzionerà sulle architetture 486. Similarmente, kernel multiprocessore per le architetture PPro potrebbero non funzionare su tutte le schede basate su Pentium.

Si veda anche Documentation/smp.txt, Documentation/i386/IO-APIC.txt, Documenattion/nmi_watchdog.txt, e l'SMP-HOWTO disponibile presso http://www.tldp.org/docs.html#howto.

M386

386

Questo è il tipo della vostra CPU. Questa informazione è usata per l'ottimizzazione. Per compilare un kernel che giri su tutte le CPU di tipo x86 (sebbene non ottimalmente veloce), potete specificare 386 qui. Il kernel non girerà necessariamente su architetture precedenti di quella che avete scelto; per esempio, un kernel ottimizzato per Pentium girerà su PPro, ma non necessariamente su un i486. Qui ci sono le impostazioni raccomandate per le più alte velocità:

386

Segliete questo se avete un processore AMD/Cyrix/Intel 386DX/DXL/SL/SLC/SX, Cyrix/TI 486DLC/DLC2, UMC 486SX-S, o NexGen Nx586. Solo i kernel 386 gireranno su macchine di classe 386.

486

Scegliete questo se avete un processore AMD/Cyrix/IBM/Intel 486DX/DX2/DX4, SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D, o U5S.

586

Scegliete questo se avete un processore generico Pentium con registro TSC (timestamp counter) mancante.

Pentium-Classic

Scegliete questo se avete un processore Intel Pentium.

Pentium-Pro

Scegliete questo se avete un processore Intel Pentium Pro.

Pentium-II

Scegliete questo se avete un processore Intel Pentium II o pre-Coppermine Celeron.

Pentium-III

Scegliete questo se avete un processore Intel Pentium III o Coppermine Celeron.

Pentium-4

Scegliete questo se avete un processore Intel Pentium 4 o P4-based Celeron.

K6

Scegliete questo se avete un processore AMD K6, K6-II o K6-III (aka K6-3D).

Athlon

Scegliete questo se avete un processore AMD della famiglia K7, (Athlon/Duron/Thunderbird).

Crusoe

Scegliete questo se avete un processore della serie Transmeta Crusoe.

Efficeon

Scegliete questo se avete un processore della serie Transmeta Efficeon.

Winchip-C6

Scegliete questo se avete un processore originale IDT Winchip.

Winchip-2

Scegliete questo se avete un processore IDT Winchip 2.

Winchip-2

Scegliete questo se avete un processore IDT Winchip con capacità 3DNow!.

GeodeGX1

Scegliete questo se avete un GeodeGX1 (Cyrix MediaGX).

Geode GX/LX

Scegliete questo se avete un processore AMD Geode GX o LX.

CyrixIII/VIA C3

Scegliete questo se avete un processore VIA Cyrix III o VIA C3.

VIA C3-2

Scegliete questo se avete un processore VIA C3-2 "Nehemiah" (model 9 e superiore).

Se non sapete cosa fare, scegliete 386.

X86_GENERIC

Supporto x86 generico

Invece di includere solo ottimizzazioni per la variante x86 scelta (ad es., PII, Crusoe, or Athlon), include alcune altre ottimizzazioni. Questo renderà migliori le performance del kernel su CPU x86 oltre che a quella scelta. Questa è solamente intesa per i distributori che necessitano di ottimizzazioni generiche.

NR_CPUS

Massimo numero di CPU (2-255)

Questo parametro permette di specificare il numero massimo di CPU che questo kernel supporterà. Il valore massimo supportato è 255 e il valore minimo che ha senso è 2. Questa opzione serve esclusivamente a salvare memoria; ogni CPU supportata aggiunge approssimativamente 8KB all'immagine del kernel.

SCHED_SMT

Supporto scheduler SMT (HyperThreading)

L'SMT scheduler supporto migliora il "decisionmaking" scheduler sulle CPU Intel Pentium 4 chip con HyperThreading, al costo di un lieve incremento di overhead in alcuni posti.

PREEMPT_NONE

Preemption non forzata (server)

Questo è il modello di preemption tradizionale di Linux, orientato alla massimizzazione del throughput. Fornisce ancora per la maggior parte del tempo una buona latenza, occasionalmente sono possibili ritardi più lunghi. Scegliete questa opzione se state compilando un kernel per un server o sistemi di calcolo/scientifici, o se se volete massimizzare il "power raw processing" del kernel, noncurante delle latenze di scheduling.

PREEMPT_VOLUNTARY

Premption del kernel spontanea (desktop)

Questa opzione riduce la latenza del kernel aggiungendo più "explicit preemption points" al codice del kernel. Questi nuovi punti di preemption sono stati selezionati per ridurre la massima latenza di rischedulazione, che fornisce risposte più veloci alle applicazioni al costo di un throughput leggermente inferiore. Questa opzione accellera le reazioni agli eventi interattivi permettendo a un processo a bassa priorità la preemption volontaria di se stesso, anche se sta eseguendo una chiamata di sistema in kernel mode. Questo permette alle applicazioni di apparire in esecuzione più reattive anche quando il sistema è sotto carico. Selezionate questo se state compilando un kernel per un sistema desktop.

PREEMPT

Kernel preemtible (low-latency desktop)

Questo parametro riduce la latenza del kernel rendendo tutto il codice del kernel (eccetto l'esecuzione di codice in sezioni critiche) preemptible. Questo consente la risposta agli eventi interrattivi permettendo a un processo a bassa priorità la preemption non volontaria anche se sta eseguendo una chiamata di sistema in kernel mode e non sarebbe altrimenti vicino al raggiungimento di un punto naturale di preemption. Questo permette alle applicazioni di apparire in esecuzione più reattive anche quando il sistema è sotto carico, al costo di un throughput leggermente inferiore e un leggero overhead di runtime del codice del kernel. Selezionate questo se state compilando un kernel per un desktop o un sistema embedded con requisiti di latenza di alcuni millesecondi.

PREEMPT_BKL

Preempt il Big Kernel Lock

Questa opzione riduce la latenza di un kernel creando il "Big Kernel Lock" preemptible. Dite sì qui se state compilando un kernel per sistemi desktop.

NOHIGHMEM

Configurazione della memoria alta

Linux può usare fino a 64 GB di memoria fisica su sistemi x86. In ogni caso, lo spazio di indirizzamento dei processori x86 a 32-bit è di soli 4 GB. Ciò significa che, se avete un largo ammontare di memoria fisica, non tutta può essere mappata permanentemente dal kernel. La memoria fisica che non è permanentemente mappata viene chiamata memoria alta (high memory). Se state compilando un kernel che non verrà mai eseguito su macchine con più di 1GB totale di RAM, rispondete off qui (la scelta predefinita, idonea per la maggior parte degli utenti). Ciò risulterà in una divisione 3GB/1GB: 3GB sono mappati in modo che ogni processo vedrà uno spazio di 3GB di memoria virtuale e la parte restante dello spazio dei 4GB di memoria virtuale è usato dal kernel per mappare permanentemente il più possibile di memoria fisica. Se la macchina ha tra 1 e 4GB di memoria fisica RAM, rispondete 4GB qui. Se più di 4GB viene usata, rispondete 64GB qui. La selezione attiva la modalità Intel PAE (Physical Address Extension). PAE implementa tre livelli di paging su processori IA32. PAE è pienamente supportato da Linux, e PAE mode è implementato su tutti i processori Intel recenti (Pentium Pro e superiori).

Warning 65x68.jpg Se dite 64 GB qui, il kernel non partirà su CPU che non supportano il PAE!

L'ammonatre totale della memoria fisica verrà automaticamente riconosciuta o può essere forzata usando un'opzione dalla riga di comando del kernel come mem=256M. (Guardate il Capitolo 9 per i dettagli su come passare le opzioni al kernel al momento dell'avvio, e quali opzioni sono disponibili.) Se non sicuri, dite off.

HIGHMEM4G

4GB Selezionate questo se avete un processore a 32-bit e tra 1 e 4GB di memoria fisica RAM.

HIGHMEM64G

64GB Selezionate questo se avete un processore a 32-bit e più di 4GB di memoria fisica RAM.

FLATMEM_MANUAL

Memoria flat

Questa opzione vi permette di cambiare alcuni modi con cui Linux gestisce la sua memoria internamente. La maggior parte degli utenti vedranno che hanno solo una opzione qui: FLATMEM. Questo è normale e corretto. Alcuni utenti con più opzioni avanzate, come NUMA e la memoria hotplug, possono avere opzioni differenti qui. DISCONTIGMEM è più matura, un sistema provato meglio, ma è incompatibile con le memorie hotplug e può soffrire di prestazioni peggiori di SPARSEMEM. Se non siete sicuri tra memoria sparse e memoria discontiguous, scegliete discontiguous memory. Se non sicuri, scegliete questa opzione, flat memory.

DISCONTIGMEM_MANUAL

Memoria discontiguous

Questa opzione provvede a un supporto migliore della memoria flat per i sistemi con memoria discontiguous. Questi sistemi hanno dei buchi nei loro spazi fisici di indirizzamento, e questa opzione gestisce i buchi più efficientemente. Comunque, la maggior parte dell'hardware ha abbastanza spazi di indirizzamento flat e può sperimentare prestazioni degradate a causa dell'overhead aggiuntivo che questa opzione impone. Molte configurazioni NUMA hanno questo come sola opzione. Se non sicuri, scegliete flat memory su questa opzione.

SPARSEMEM_MANUAL

Memoria sparse

Questa sarà la sola opzione per alcuni sistemi, incluso i sistemi con memoria hotplug. Per molti altri sistemi, questa è un'alternativa alla memoria discontiguous. Questa opzione provvede ad alcuni benefici in termini di prestazioni, con una complessità di codice inferiore, ma è nuova e molto sperimentale. Se non siete sicuri, scegliete "discontiguous memory" o "flat memory".

SECCOMP

Abilita seccomp per il calcolo sicuro di bytecode insicuri

Questa caratteristica del kernel è utile per appicazioni "number-crunching" che hanno bisogno di calcolare bytecode poco sicuri durante la loro esecuzione. Usando le pipe o altri tipi di trasporto resi disponibili al processo come descrittori di file che supportano le chiamate di sistema read/write, è possibile isolare quelle applicazioni nel loro proprio spazio di indirizzamento usando seccomp. Una volta che seccomp è abilitato via /proc/pid/seccomp, non può essere disabilitato e all'operazione è permesso di eseguire poche chiamate di sistema sicure definite da ogni seccomp mode. Se non siete sicuri, dite di sì. Solo i sistemi embedded dovrebbero essere compilati rispondendo no.

KEXEC

kexec system call (sperimentale)

kexec è una chiamata di sistema che implementa l'abilità di spegnere il vostro kernel corrente e farne partire un altro. È come un riavvio, ma è indipendente dal firmware del sistema. E come un riavvio, potete far partire qualsiasi kernel con esso, non semplicemente Linux. Il nome deriva dalla somiglianza alla chiamata di sistema exec. Non siate sorpresi se all'inizio non funziona. Potrebbe aiutare nell'attivare il supporto ai dispositivi hotplugging. Mentre si sta scrivendo, l'interfaccia hardware è fase di riscrittura, motivo per cui non può essere consigliata.

HOTPLUG_CPU

Supporto per le CPU hot-pluggable (sperimentale) Dite sì qui per sperimentare con l'accensione e lo spegnimento delle CPU, e per abilitare la sospensione sui sistemi SMP. Le CPU possono essere controllate attraverso l'interfaccia /sys/devices/system/cpu.

PM

Supporto alla gestione dell'alimentazione

Il "Power management" permette a parti del vostro computer di spegnersi o di utilizzare modalità di risparmio energetico se non vengono utilizzate. Ci sono due standard preposti a far ciò: APM e ACPI. Se li volete usare entrambi dite sì qui e abilitate anche uno di questi due standard. "Power management" è più importante per i computer laptop alimentati a batteria; se avete un laptop, controllate la pagina principale di linux laptop presso http://www.linux-on-laptops.com, Tuxmobil-Linux on Mobile Computers a http://www.tuxmobil.org, e il "Battery powered Linux" mini-HOWTO a http://www.tldp.org/docs.html#howto.

SOFTWARE_SUSPEND

Sospensione software

Abilita la sospensione della macchina.

Quando la macchina viene sospesa, un'immagine viene salvata nella vostra swap attiva. Al prossimo riavvio, passate l'argomento resume=/dev/swappartition al kernel per fargli rilevare l'immagine salvata, recuperare lo stato di memoria da esso, e continuare l'esecuzione come prima. Se non volete che lo stato precedente venga ricaricato, usate l'argomento del kernel noresume. In ogni caso, notate che le vostre partizioni verranno controllare con fsck e che dovete lanciare mkswap sulla vostra partizione di swap un'altra volta. La procedura non funziona con i file di swap. In questo momento potete fare il boot senza fare il resuming e poi fare il resume più tardi, ma nel frattempo non potete usare quelle partizioni/file di swap che erano coinvolte nella sospensione. In questo caso, inoltre, c'è il rischio che i buffer su disco non corrisponderanno a quelli salvati. Per ulteriori informazioni, vedere Documentation/power/swsusp.txt.

ACPI

Supporto ACPI

Il supporto per l'"Advanced Configuration and Power Interface (ACPI)" di Linux richiede hardware e firmware compatibile, e presume la presenza di software "OS-directed configuration and power management (OSPM)". Questa opzione allargherà il vostro kernel di circa 70KB. Linux ACPI provvede a una robusta sostituzione funzionale per alcune interfacce "legacy configuration and power management", incluso la specifica Plug and Play BIOS (PnP BIOS), la specifica "MultiProcessor" (MPS), e la specifica di Advanced Power Management (APM). Se entrambi i supporti ACPI e APM sono configurati, qualunque venga caricato prima verrà usato. Il progetto ACPI SourceForge a http://sourceforge.net/projects/acpi contiene il più recente codice sorgente, documentazione, strumenti, sottoscrizione alla mailing list, e altre informazioni. Il supporto Linux per ACPI è basato su "Intel Corporation's ACPI Component Architecture (ACPI CA)." Per ulteriori informazioni vedere http://developer.intel.com/technology/iapc/acpi. ACPI è una specifica "open industry" sviluppata in collaborazione da Compaq, Intel, Microsoft, Phoenix, and Toshiba. La specifica è disponibile presso http://www.acpi.info.

CPU_FREQ

CPU frequency scaling

"CPU frequency scaling" vi permette di cambiare la velocità di clock delle CPU al volo. Questo può far risparmiare energia, perché più è bassa la velocità della CPU, minore è la potenza che la CPU consuma. Notare che questo driver non cambia automaticamente la velocità di clock della CPU; avete bisogno di attivare anche un governor di policy di CPUFreq dinamico (descritto avanti) dopo la fase di boot o uno strumento in userspace. Per i dettagli, vedere in Documentation/cpu-freq.

CPU_FREQ_DEFAULT_

GOV_PERFORMANCE

Performance

Usa "CPUFreq performance governor". Questo imposta la frequenza staticamente alla più alta supportata dalla CPU.

CPU_FREQ_DEFAULT_

GOV_USERSPACE

Userspace

Usa "CPUFreq performance governor". Questo vi permette di impostare la frequenza della CPU manualmente e permette a un programma in userspace di impostare la CPU dinamicamente senza richiedervi di abilitare prima lo "userspace governor" manualmente.

CPU_FREQ_

GOV_PERFORMANCE

"Performance" CPUFreq policy governor

Questo "CPUFreq policy governor" imposta la frequenza staticamente a quella più alta disponibile tra le frequenze della CPU.

CPU_FREQ_GOV_

POWERSAVE

Regolatore delle policy CPUFreq "Powersave"

Questo imposta la frequenza staticamente alla più bassa delle frequenze della CPU disponibili.

CPU_FREQ_GOV_

USERSPACE

Regolatore delle policy CPUFreq "Userspace"

Abilitate questo CPUFreq policy governor sia quando volete impostare la frequenza della CPU manualmente o quando un programma in userspace deve essere in grado di impostare la CPU dinamicamente, come in LART (http://www.lartmaker.nl). Per dettagli, date uno sguardo a Documentation/cpu-freq.

CPU_FREQ_GOV_

ONDEMAND

Regolatore delle policy CPUFreq "On Demand"

Questo driver aggiunge un regolatore dinamico delle politiche CPUFreq. Il regolatore interroga la CPU e cambia la sua frequenza in base all'utilizzo della CPU. Il supporto a questo regolatore dipende dalla capacità della CPU di cambiare velocemente la frequenza (p.e., latency molto basse di transizioni). Per dettagli, date uno sguardo a Documentation/cpu-freq.

CPU_FREQ_GOV_

CONSERVATIVE

Regolatore delle policy CPUFreq "Conservative"

Questo driver è simile al regolatore Ondemand sia nel suo codice sorgente che scopo. La differenza è che il regolatore Conservative è ottimizzato per un sistema alimentato a batterie. La frequenza viene dolcemente incrementata o decrementata invece di saltare al 100% quando la velocità è richiesta. Se state usando un laptop, a PDA, o un computer basato su AMD64 (a causa degli inaccettabili passo-passo problemi di latency tra la minima e la massima frequenza di transizione nella CPU), voi vorrete probabilmente usare questo regolatore. Se avete una macchina desktop, considerate il regolatore ondemand invece. Per dettagli, date uno sguardo a Documentation/cpu-freq.

PCI

Supporto PCI

PCI è un sistema bus usato dai processori per parlare ai dispositivi interni e add-on schede. E' estremamente comune e si trova in quasi tutti i computer moderni. Dite sì a questa opzione a meno che non abbiate una speciale motivo per non farlo.

PCCARD

Supporto PCCard (PCMCIA/CardBus)

Dite sì qui se volete attaccare PCMCIA o PC schede al vostro Linux computer. Questi sono dispositivi di dimensione come carte di credito quali schede network, modems, o hard drives spesso usati con i computer laptop. Ci sono attualmente due varietà di queste schede: 16-bit PCMCIA e 32-bit CardBus schede.

PCMCIA

Supporto 16-bit PCMCIA

Questa opzione abilita il supporto per le schede 16-bit PCMCIA. Le più vecchie schede PC sono quelle 16-bit PCMCIA, così a meno che voi non sappiate che state usando solo schede 32-bit CardBus, dite sì qui. Per usare schede 16-bit PCMCIA, avrete bisogno del supporto del software nella maggior parte dei casi. Guardate il file Documentation/Changes per la posizione e i dettagli.

CARDBUS

Supporto 32-bit CardBus

Cardbus è una architettura mastering bus per schede PC, che permette le schede PC a 32-bit (lo standard PCMCIA originale specifica solo un bus a larghezza 16-bit). Molte schede PC nuove sono a dire il vero schede Cardbus. Per usare le schede PC a 32-bit, avete bisogno anche di un host bridge Cardbus-compatibile. Virtualmente tutti i moderni bridge fanno questo, e la maggior parte di essi è "yenta-compatible", così abilitate questa opzione anche.

HOTPLUG_PCI

Supporto per PCI hotplug (sperimentale)

Dite sì qui se avete una motherboard con un controller PCI hotplug. Questo vi permette di aggiungere e rimuovere schede PCI mentre la macchina è accesa e funzionante.

NET

Supporto Networking

Dite sì qui a meno che non siate un esperto con una buona ragione per non farlo. La ragione è che alcuni programmi hanno il bisogno del supporto del kernel networking anche quando girano su una macchina standalone anche non è connessa a un altro computer. Se state aggiornando da un kernel più vecchio, dovreste considerare di aggiornare i vostri network tools anche, perché i cambiamenti nel kernel e i tools spesso vanno mano nella mano. I tools sono contenuti nel package net-tools, la locazione e il numero di versione dei quali sono dati in Documentation/Changes. Per una introduzione generale al Linux networking, è altamente raccomandato che leggiate la NET-HOWTO, disponibile da http://www.tldp.org/docs.html#howto.

UNIX

Unix domain sockets

Se dite sì qui, includerete il supporto per le socket Unix domain; Le socket sono il meccanismo standard Unix per stabilire e accedere alle connessioni network. Molti programmi comuni usati come l'X Window System, syslog, e udev usano queste socket anche se la vostra macchina non è connessa a qualsiasi rete. A meno che non stiate lavorando in un sistema embedded o qualcosa simile, certamente volete dire sì qui.

INET

TCP/IP networking

Questi sono i protocolli usati in internet e nella maggior parte delle Ethernet locali. E' altamente raccomandato che voi diciate sì qui, dal momento che lacuni programmi (p.e., l'X Window System) usa TCP/IP anche se la vosra macchina non è connessa con altri computer. Loro usano il cosidetto loopback device, che questa opzione imposta. Allargherà il vostro kernel di default di 144KB. Per una eccellente introduzione a Linux networking, leggete il "Linux Networking" HOWTO, disponibile da http://www.tldp.org/docs.html#howto.

IP_ADVANCED_ROUTER

IP: router avanzato

Se avete intenzione di usare la vostra Linux box maggiormente come router, p.e., come un computer che rigira e ridistribuisce i pacchetti di rete, dite sì qui. Vi verranno presentate alcune opzioni che permettono un più preciso controllo sul processo di routing. La risposta a questa domanda non intaccherà direttamente il kernel: rispondendo di no causerà semplicemente di far saltare al configuratore tutte le domande sul routing avanzato. Notate che il vostro box può attuare come un router solo se abilitate l'IP forwarding nel vostro kernel; potete far questo dicendo sì alle opzioni di supporto /proc filesystem e Sysctl e eseguendo la linea:

echo "1" > /proc/sys/net/ipv4/ip_forward

al boot time dopo che il /proc filesystem è stato montato. Se attivate IP forwarding, otterete anche rp_filter, che automaticamente regettano i pacchetti incoming se la tabella entry di routing per i loro source address non corrisponde all'interfaccia di rete da cui stanno arrivando. Questo ha dei vantaggi di sicurezza perché previene l'IP spoofing; in ogni caso può porre dei problemi se usate routing asimmetrico (pacchetti da voi verso un host che prendono un percorso differente da quelli che vanno da quell'host verso di voi) o se operate un host "nonrouting" che ha alcuni indirizzi IP su interfacce differenti. Per disattivare rp_filter, inserire:

echo 0 > /proc/sys/net/ipv4/conf/device/rp_filter

o:

echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter


This is an indipendent translation of the book Linux Kernel in a Nutshell by Greg Kroah-Hartman. This translation (like the original work) is available under the terms of Creative Commons Attribution-ShareAlike 2.5.


Capitolo originale