Le novità del nuovo Kernel Linux by Andrea Arcangeli

Le novità del nuovo Kernel Linux by Andrea Arcangeli

Nel corso del LinuxDay organizzato dal Lug di Ferrara, Andrea Arcangeli ha spiegato le novità del kernel linux 2.6, il cui rilascio è atteso a giorni. Novità sia per server che per desktop

di Fabio Boneschi pubblicata il , alle 14:45 nel canale Programmi
 


Nome immagine

Nel corso del LinuxDay organizzato dal Lug di Ferrara, Andrea Arcangeli ha spiegato le novità del kernel linux 2.6.
Abbiamo trovato in rete una sintetica cronaca dell'intervento pubblicata sul sito del Lug di Gioia Tauro e considerando di estremo interesse la cosa, intendiamo proporvi una rapida sintesi.

Una premessa d'obbligo..chi è Andrea Arcangeli? Chiunque si interessa a Linux ed al suo kernel sa rispondere a questa domanda! Arcangeli è uno sviluppatore software che in passato ha fattivamente collaborato alla realizzazione di parecchie release di Kernel. E' "specializzato" in sottosistema I/O, networking e gestione della memoria.
In molti ricorderanno la "rivoluzione"occorsa nel rilascio del kernel 2.4.10, al cui interno vi era il suo algoritmo di gestione della memoria virtuale.
Attualmente Arcangeli collabora con SuSE Linux.

Riportiamo qui di seguito alcune delle novità principali presentate nel corso dl LinuxDay; alcune di queste informazioni sono ormai note da tempo, ma commentate e presentate in lingua italiana assumono indubbiamente in differente significato.

  • Scheduler dei task in o(1)
    Nuova funzionalità che permette di eseguire un determinato processo per un determinato tempo, evitando eventuali rallentamenti dovuti all'esecuzione contemporanea di molti processi.
    Questa funzionalità permetterà un notevole boost in tutte le implementazioni in cui si ha l'esecuzione contemporanea di una gran quantità di processi (tipicamente in ambiente server)
  • Supporto a Pagine "Grandi" in Paginazione
    Si avrà la possibilità di variare la dimensione delle pagine di memoria, superando i limiti degli attuali 4KB; aumentando tali dimensioni sarà possibile leggere con una singola operazione un numero maggiore di dati. Il guadagno in termini velocistici è scontato, ma si potrà correre il rischio di incappare in problemi di frammentazione.
  • Low latency
    Al fine di evitare loop da cui il sistema non è in grado di uscire, il nuovo kernel inserirà dei controlli in "aree" di codice potenzialmente a rischio; in tal modo non dovrebbero crearsi loop fatali per l'esecuzione del kernel stesso. Per le attuali versioni stable del kernel è disponibile una apposita patch.
  • Dynamic-hz
    Alla base di un pc, di un server ecc vi sono i vari clock, le varie routine di timing che, usando un paragone musicale, danno il tempo al sistema. Il nuovo kernel 2.6 verrà rivisto in questa parte fondamentale e delicata, adattando le esigenze computazionali del codice ai nuovi limiti hardware delle macchine attuali. Una sorta di "aggiornamento delle costati" che dovrebbe portare ad un generale miglioramento delle prestazioni.
  • preemptive Kernel Fully-preemptive Kernel
    Il nuovo kernel 2.6 è Fully-preemptive, ovvero è in grado di interrompere l'esecuzione di un processo in qualsiasi momento, caratteristica assai importante se sopraggiunge la necessità urgente di eseguire un determinato processo particolarmente importante per la stabilità e le prestazioni generali del sistema.
    Le versioni precedenti di kernel erano preemptive sono in modalità user e non permettevano tale possibilità in modalità kernel.

Queste a nosto avviso sono le novità essenziali del nuovo kernel, a cui se ne aggiungono molte altre riguardanti prettamente nuove modalità di gestione degli I/O e delle letture e scritture su disco.
Alcune delle funzionalità disponibili nel 2.6 sono state importate anche nel 2.4 attraverso un back-porting; ovviamente le prestazioni e l'efficacia sono però inferiori.

Il nuovo kernel 2.6 è annunciato a giorni, il suo sviluppo è in fase finale e da più parti si ipotizzava un rilascio per fine anno. Le novità introdotte sono parecchie e spaziano in vari ambti, sia sul fronte server, sia per applicazioni home e desktop.
La nuova release di Kernel è molto attesa ovviamente anche da chi vede in Linux un business interessante, come ad esempio le software house che vendono distribuzioni commerciali; molte caratteristiche del nuovo kernel sono appositamente pensate per l'impiego desktop, ultima frontiera della diffusione Linux.

Vi inviatiamo a leggere l'articolo completo relativo alle innovazioni del nuovo kernel a questo indirizzo; trovere descritte altre caratterisitche interessanti, esposte in maniera semplice e comprensibile. A questo indirizzo trovate una presentazione in pdf altrettanto chiara ed interessante.

Per chi invece volesse "assistere" almeno virtualmente alla presentazine di Arcangeli, segnaliamo questo indirizzo.

Resta aggiornato sulle ultime offerte

Ricevi comodamente via email le segnalazioni della redazione di Hardware Upgrade sui prodotti tecnologici in offerta più interessanti per te

Quando invii il modulo, controlla la tua inbox per confermare l'iscrizione

27 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
Razers09 Dicembre 2003, 15:45 #1

OTTIMO!

La + importante mi sembra il Full-Preemptive,
nella speranza che non crei troppi casini dentro il kernel...
Poi vorrei sapere in che funzione computazionale era lo scheduler nei vecchi kernel? o(log n)????
Mazzulatore09 Dicembre 2003, 15:51 #2
Che dire... grande Arcangeli! Alla faccia di chi ha studiato troppo e che dice che linux è un kernel monolitico e quindi è lento (!!!), vecchio e che è meglio Hurd o windows(...) microkernel rulez ecc. ecc.
Si può parlare solo by coding!!
hardskin109 Dicembre 2003, 16:03 #3
la differenza tra preemptive e Fully-preemptive non la sapevo: corro a documentarmi.
homero09 Dicembre 2003, 16:32 #4
neanche io conoscevo questo differenza, in realtà infatti esistono molti modi di implementare il multi-task se dovessimo a ciascuno dare un nome staremo freschi....
tutte ste cose per mascherare l'unico reale problema di linux....
.....il macro kernel che ormai si porta dietro e che nel 2000 non e' piu' accettabile....
inoltre molti driver sono statici altri dinamici altri esterni al kernel...in pratica su sistemi con molte periferiche nessun sistema linux sarà efficente visto che concetra il peggio dei sistemi attualmente disponibili per la gestione dell'hardware...
questo conferma la tendenza all'uso su sistemi specifici e non su sistemi general purpose...
per quanto riguarda il multitask bastano 512kbyte per avere un micro kernel multitask efficente all 100% e che possa gestire sistemi a 64 bit multi processing....visto che puo' caricare l'exec nella cache L3 interamente cosa possibile solo su sistemi itanium (purtroppo), quindi tutte le funzioni di gestione dei task sono gestine all'interno del processore full speed e prive di ogni wait state da parte dei dma delle periferiche esterne, quindi queste nuove caratteristiche sono certamente commissionate dai grossi produttori di server e non certo per noi piccoli utenti desktop...
in definitiva un passa in avanti sulla linea tracciata ormai negli anni '90 e lungo la quale linux tende a consolidare il suo mercato...
tutto cio' che ruota intorno e' e credo restarà faragginoso e impreciso come è ora, non me ne vogliano i linux fan....
speedwago09 Dicembre 2003, 16:59 #5
Al corso di sistemi operativi mi e' sembrato di capire che l'implementazione del Fully preempive era una cosa quasi impossibile da implementare perche' richiede un process control block molto piu' grande di un pcb di kernel non preemptive in quanto il processo che eventualmente "rientra" nella cpu deve poter eventualmente tornare indietro di qualche istruzione(quindi non basta solo tenere traccia del program counter e dello spazio di memoria). Cmq anche se fosse possibile implementare una cosa del genere... sarebbe piu' gli svantaggi che i vantaggi apportati.... forse un boost solo in casi estremi(tipo migliaia di thread in esecuzione...ma c'e' sempre il problema della memoria aggintiva).
Wonder09 Dicembre 2003, 17:41 #6
Ho il kernel panic
svl209 Dicembre 2003, 17:49 #7
ma tanto con l' arrivo di palladium ..addio linux.
mgiammarco09 Dicembre 2003, 18:16 #8

Mio dio quante castronerie!!!!!!

Cosa sarebbe il low_latency?????
Driver statici e driver dinamici?????
Fully preempitive impossibile/inutile??????????

Ma per favore!
pokestudio09 Dicembre 2003, 18:29 #9
sapevo chi fosse Andrea Arcangeli...

a questo punto mi chiedo chi sia Michele Arcangeli, spero che il Boneschi mi sappia dare spiegazioni
homero09 Dicembre 2003, 19:28 #10
driver statico: il livello piu' basso di gestione dei driver....interrupt clock pci in genere si punta direttamente al bios o ai microcode hardware integrato nel kernel (micro,macro, o quello che sia) non e' possibile in alcun modo variare o intervenire con altri software su questo tipo di driver a meno che di non cambiare parte del kernel..
driver dinamici: driver che gestiscono periferiferiche mediante i inerfacce controllate dai driver statici...e' possibile cambiarli e aggiornarli anche dinamicamente senza interferire con le funzione base del kernel...ingenere si usano per la gestione di scheda audio video usb etc etc sono la maggioranza...
driver esterni....quelli che si basano su HAL(hardware abstraction layer) gestiscono l'hardware mediante protocolli....
un esempio sono i driver scsi o per periferiche usb....
spero di avere fatto luce sulle costronerie....(che poi vuol dire in italiano omissioni, in questo caso della definizione)
low latency...
bassa latenza....
differenza tra un exec gestito in L3 cache e un exec normale e' semplicemente quella di poter eseguire operazione indipendentemente da interrupt hardware esterni a quelli della cpu in poche parole garantisce il reset delle periferiche senza un control esterno.....solo con sistemi simil cluster era possibile ottenere qualcosa del genere fino a qualche tempo fa....

utilizzato per sistemi multiprocessing in cui una gestione degli interrupt centralizzata o parcellizzate porta in genere a sistemi difficilissimi da gestire....solo itanium tra le cpu "commerciali ha questa possibilità di gestire in questo modo la cache L3" e solo con queste funzioni il kernel full pre-emptive ha un senso visto che i driver di linux statici/dinamici/esterni non permettono un reale controllo sull'hardware in sistemi generici....

spero di non aver detto altre castronerie nel caso concedetemi questo delirio

anche se poi le cose grosso modo stanno cosi' che ne dicano gli altri....

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^