Capitolo 14. Alcune note sul kernel 2.4

Sommario
14.1. Linux 2.4 - che cosa ci riserva?
14.1.1. Servizi di rete: sicurezza, stabilità e velocità!
14.1.2. Supporto PCMCIA, USB, Firewire e ISA PnP
14.1.3. Video e multimedia
14.1.4. Filesystem
14.1.5. Una nota riguardo le patch
14.1.6. Che diavolo è kapm-idled?
14.1.7. Il kernel funziona dappertutto, ma...
14.2. Suggerimenti utili per ottenere di più dal vostro kernel
14.2.1. initrd: i driver necessari all'avvio del sistema
14.2.2. Dispositivi USB
14.2.3. Dispositivi palmari basati su USB

Il passaggio dal kernel 2.2 al kernel 2.4 probabilmente non verrà notato dalla maggior parte degli utenti di Linux. Si tratta di una piccola rivoluzione, comunque, per chi si dedica alla programmazione sotto Linux e per tutti gli utenti avanzati. Pertanto non abbiamo resistito alla tentazione di aggiungere un nuovo capitolo al nostro Manuale di riferimento per rendere noti i miglioramenti più importanti, come pure alcuni "trucchi" che possono rivelarsi molto utili per risolvere alcuni problemi specifici.

14.1. Linux 2.4 - che cosa ci riserva?

Linux-Mandrake 8.0 è la prima versione di LM basata sul kernel 2.4.x.

Grande! Hip, hip, urrà! È proprio quello che volevamo! E così via...

OK, una volta esaurite le reazioni entusiastiche proviamo ad esaminare la questione da un'altra angolazione:

Una nuova versione del kernel? E allora? Perché dovrebbe interessarmi?

La risposta a questa domanda varia a seconda del tipo di utenti: utenti "comuni", che svolgono lavori d'ufficio, fornitori di servizi Internet, persone interessate alla versione embedded di Linux...

Molti miglioramenti introdotti con il kernel 2.4, inoltre, si troveranno dietro le quinte di qualche programma di configurazione, e pertanto saranno "invisibili". L'uso combinato del Resources management ("gestione delle risorse") e del Device filesystem ("filesystem dei dispositivi hardware") sicuramente permetterà di ottenere un supporto Plug-and-work (ovvero il riconoscimento e la configurazione automatica dell'hardware) più robusto in tutte le distribuzioni Linux. Quando questo succederà, molte persone saranno grate e apprezzeranno i programmi di configurazione di cui sopra, mentre il "vero eroe" della situazione resterà nell'ombra.

Altri cambiamenti potrebbero non risultare applicabili nel vostro caso, o per lo meno non subito: processori con una frequenza di clock di 2 GHz ancora non sono disponibili, 64 Gb di RAM sono ancora piuttosto costosi, file più grandi di 2 Gb non sono poi così comuni, e la probabilità che un PC casalingo disponga di 16 schede Ethernet, 10 controller IDE, etc., è piuttosto bassa. I notevoli miglioramenti che riguardano la gestione dei dispositivi a blocchi (dispositivo di I/O "raw", Logical Volume Manager, supporto RAID migliorato) avranno grande rilevanza per le nuove versioni dei nostri prodotti aziendali, ma è assai improbabile che possano interessare gli utenti comuni, quelli che svolgono lavori d'ufficio o i piccoli server usati negli uffici.

Chiarito questo punto, qui di seguito troverete i cambiamenti che riguardano la maggior parte degli utenti Linux-Mandrake:

14.1.1. Servizi di rete: sicurezza, stabilità e velocità!

Linux ha sempre offerto un supporto ai servizi di rete davvero buono, per ovvie ragioni: Linux è nato su Internet, e gran parte del suo sviluppo viene effettuato via Internet. Il supporto di rete, tuttavia, è stato completamente riscritto, e il kernel 2.4 introduce alcuni cambiamenti quasi "rivoluzionari":

  • Supporto per connessioni di rete via USB, FireWire ed Ethernet a 1 GHz (ormai mancano soltanto i segnali di fumo).

  • Miglior supporto per il PPP: il PPP del sottosistema ISDN è stato integrato con il PPP del sottosistema seriale, il PLIP è stato migliorato, e il supporto PPPoE è stato integrato nel kernel.

  • Le funzionalità di Firewall e IP masquerading sono state completamente riscritte. Il filtro di rete (iptables) permette un livello di sicurezza di gran lunga maggiore rispetto a ipchains, usato nel 2.2, inoltre consente una configurazione della traduzione degli indirizzi di rete (NAT, ovvero Network Address Translation) molto più facile e potente, oltre a proxy trasparenti e alla redirezione (immaginate la combinazione di più server per svolgere lo stesso compito, ad esempio rimpiazzare un unico server web con quattro in maniera del tutto trasparente!). In breve, Jay (il direttore del nostro team incentrato sui problemi relativi alla sicurezza e autore di Bastille Linux) ha fatto sogni riguardo a iptables per anni.

Oltre a tutto ciò, il kernel 2.4 offre ottimizzazioni per alcune particolari caratteristiche del supporto di rete di altri sistemi operativi, una migliore gestione dei socket di rete, un miglior supporto per i sistemi multiprocessore, e persino una maggiore stabilità rispetto a quanto siamo attualmente abituati (l'avreste mai ritenuto possibile?).

14.1.2. Supporto PCMCIA, USB, Firewire e ISA PnP

Nei kernel della serie 2.2 il supporto PCMCIA e ISA-PnP era garantito da pacchetti esterni, inoltre i kernel della stessa serie utilizzati nelle distribuzioni Linux-Mandrake 7.x includevano un supporto USB tratto dal kernel in fase di sviluppo. Tutto ciò si è dimostrato utile, ma la qualità di pacchetti esterni e di patch applicate al kernel non potrà mai eguagliare quella di un kernel Linux ufficiale. Finalmente Linux 2.4 comprende il supporto per questi dispositivi: combinato con il sistema centrale di resource management, dovrebbe permettere un netto miglioramento nella gestione dei dispositivi PCMCIA, USB, FireWire e ISA-PnP.

14.1.3. Video e multimedia

Il supporto per il framebuffer notevolmente migliorato, e l'introduzione del DRI (Direct Rendering Infrastructure) rendono Linux 2.4 ancora più interessante per i giochi (accelerazione video!) e i dispositivi embedded. La SVGAlib potrebbe sparire dal vostro PC entro la fine dell'anno :-).

Durante il ciclo di sviluppo del kernel 2.4, inoltre, il supporto per le schede audio e le schede TV/radio è migliorato costantemente. Anche in questo caso gran parte di questi cambiamenti, tratti dal kernel in fase di sviluppo, erano già stati inclusi nei kernel della serie 2.2 usati nelle distribuzioni LM 7.x, e i nostri "viziati" utenti potrebbero non notare grandi differenze in questo campo.

14.1.4. Filesystem

Il cambiamento più evidente nel supporto dei filesystem locali consiste nell'inclusione del reiserfs, un filesystem di tipo journaling, nel kernel Linux ufficiale. Ancora una volta, il reiserfs era già presente nella serie 7.x della distribuzione LM, ma era chiaramente etichettato come "sperimentale". Per quanto riguarda i "filesystem di rete", Linux 2.4 finalmente supporta NFSv3, e anche il supporto SMB è stato perfezionato. Sfortunatamente, nessun filesystem distribuito è stato ancora integrato nell'albero di sviluppo del kernel ufficiale, e il supporto per NTFS è ancora indicato come "sperimentale".

 

 

14.1.5. Una nota riguardo le patch

Non si tratta di cerotti da usare se per caso ci siamo procurati piccole ferite (è questo uno dei significati dell'inglese "patch"), quanto piuttosto della toppa che incollate al vostro canotto gonfiabile quando scoprite che ha un buco. Per i kernel ha un significato più ampio, in genere indica una certa quantità di codice sorgente che aggiunge nuove funzionalità al kernel. Qui sotto potete leggere la lista delle patch più importanti applicate da MandrakeSoft al kernel ufficiale distribuito da Linus Torvalds.

Alsa

L'Advanced Linux Sound Architecture è, in breve, un driver per schede audio. Esso funziona appoggiandosi al supporto audio di base offerto dal kernel, e il suo scopo è quello di migliorare la qualità del suono. Inoltre fornisce anche un'interfaccia comune per le applicazioni, in maniera tale da rendere più omogeneo l'uso delle risorse audio sotto Linux.

FreeS/WAN

Linux FreeS/WAN è un'implementazione di IPSEC & IKE per Linux.

IPSEC sta per Internet Protocol SECurity. Ricorre a una crittografia forte per fornire servizi di autenticazione e codifica. L'autenticazione si accerta che i pacchetti provengano dal mittente giusto e che non siano stati alterati durante il percorso. La codifica impedisce una lettura non autorizzata del contenuto del pacchetto.

Questi servizi vi permettono di configurare canali sicuri ("tunnel") su reti non affidabili. Tutto quello che passa per la rete non sicura viene codificato dalla macchina gateway sulla quale è in esecuzione IPSEC, e decodificato dal gateway che si trova all'altra estremità del canale. Il risultato è una rete privata virtuale (Virtual Private Network, o VPN). Si tratta di una rete che è a tutti gli effetti privata, malgrado ne facciano parte macchine situate in siti geograficamente distanti e connesse per mezzo della poco sicura Internet.

Lm_sensors

Questa patch proviene dal progetto Lm_sensors il cui scopo è quello di fornire un monitoraggio dello stato dell'hardware di un sistema GNU/Linux che contenga i sensori necessari a questo scopo, come LM78 e LM75 (e molti altri).

Pcmcia-cs

I Card Services per Linux costituiscono un pacchetto di supporto dell'interfaccia PCMCIA completo. Esso include un insieme di moduli del kernel che implementano una versione dell' interfaccia di programmazione delle applicazioni PCMCIA 2.1 Card Services, un insieme di driver dal lato client per schede specifiche, e un demone di gestione della scheda che è in grado di reagire in occasione dell'inserimento o estrazione della stessa, provvedendo a caricare e scaricare i driver secondo la necessità. Supporta l'"hot swapping" delle schede PCMCIA, in modo che queste possano essere inserite ed estratte in qualsiasi momento. Attualmente il pacchetto supporta molte schede Ethernet, schede modem e seriali, diversi controller SCSI, e alcune schede di memorie SRAM e FLASH. Sono supportati tutti i controller PCMCIA più comuni, per cui non dovrebbero esserci problemi a usarlo su praticamente tutti i computer portatili adatti a Linux.

Driver di vario genere

Diversi driver necessari per il supporto di componenti hardware molto recenti, che finora non erano stati inclusi nel kernel ufficiale. Rientrano in questo gruppo anche alcuni driver speciali come SuperMount, che permette di montare automaticamente i dispositivi rimuovibili al momento in cui si cerca di accedervi.

Come nota finale, vogliamo sottolineare il fatto che Linux-Mandrake non viene distribuito con un unico kernel, ma offre la scelta fra varie versioni:

kernel22-*

Sono kernel creati sulla base della versione 2.2.

kernel

Il kernel standard installato come opzione predefinita su tutte le macchine standard.

kernel-smp

Questo kernel è stato compilato con lo scopo specifico di supportare le macchine multi-processore. Viene installato automaticamente durante il processo di installazione se viene rilevata la presenza di più di un processore.

kernel-linus

Il kernel ufficiale, curato e distribuito da Linus Torvalds, senza che sia stata applicata alcuna patch.

14.1.6. Che diavolo è kapm-idled?

Se avete già dato uno sguardo al carico di lavoro della vostra CPU, avrete forse notato un processo chiamato kapm-idled che assorbe quasi tutte le risorse della CPU. E probabilmente vi siete chiesti "Che diavolo è questo bastardo che mi prosciuga la CPU?!?".

Ebbene, in realtà si tratta semplicemente di un processo che si appropria del tempo di CPU calcolato come inattivo (ingl. idle), da qui il suo nome. Viene usato per le necessità dell'Advanced Process Management e in realtà protegge la CPU, piuttosto che danneggiarla o rallentarla.

14.1.7. Il kernel funziona dappertutto, ma...

Come nota conclusiva, permetteteci di menzionare una caratteristica che potrebbe sembrare secondaria ai possessori di PC: il kernel di Linux è stato convertito per quasi tutti i tipi di hardware oggi esistenti, a partire dai palmari che contengono la versione embedded di Linux, fino ai mainframe prodotti dalla IBM. Le distribuzioni Linux-Mandrake non sfruttano questa possibilità fino in fondo, e non lo faranno mai, perché sarebbe necessaria la conversione di altri programmi, o quanto meno una loro ricompilazione e una fase di test per ciascuna delle diverse architetture hardware. I programmi di installazione e di configurazione dell'hardware (ad esempio i programmi del pacchetto drakxtools), in particolare, dovrebbero essere adattati per ogni nuova piattaforma, operazione che introdurrebbe un notevole costo in tempo e in denaro.

Il fatto che il kernel sia stato convertito per così tante architetture diverse, comunque, implica che il suo codice è stato controllato più e più volte, il che ha come conseguenza kernel molto più robusti per tutte le architetture! Inoltre questo significa che la distribuzione Linux-Mandrake (LM) può essere portata rapidamente su altre architetture hardware, se e quando ci sarà un mercato per tali versioni. Questo è già successo in passato con le versioni Sparc (Corporate server) e Alpha (LM 7.1); effettuare la conversione per altre piattaforme è solo una questione di interesse commerciale. Infatti, anche se la versione 8.0 di Linux-Mandrake al momento esiste soltanto in versione PC (compatibile con i processori Intel), il supporto per la piattaforma i64 sarà disponibile non appena essa verrà immessa sul mercato, e una versione PowerPC è molto probabile nel caso questa piattaforma continui ad avere il successo che l'ha caratterizzata nell'anno passato.


Tux on Star from MandrakeSoft Linux è un marchio registrato di Linus Torvalds. Tutti gli altri marchi e copyright appartengono ai rispettivi proprietari.
Se non diversamente specificato, i diritti di tutto il contenuto di queste pagine e di tutte le immagini sono proprietà di MandrakeSoft S.A. e MandrakeSoft Inc. 2000.
http://www.linux-mandrake.com/