Linux Mind Italia

Di tutto un po' => Attualità => Topic aperto da: Gianky54 - Martedì 08 Settembre 2009, 21:49:08

Titolo: Debian: da Init a Upstart
Inserito da: Gianky54 - Martedì 08 Settembre 2009, 21:49:08
Debian abbandona Init e passa ad Upstart
Fonte:OpenSource
di Gianluca Masone - Martedì 8 Settembre 2009 alle 10:01


Una notizia squisitamente tecnica arriva direttamente dal fronte Debian impegnato nella realizzazione della nuova versione Debian 6 Squeeze: si passa all’utilizzo di upstart. A comunicarlo è stato Petter Reinholdtsen di Debian, e detta così, in realtà, la notizia è solo la punta dell’icesberg, e sotto c’è molto di più.

Il processo di boot di una distribuzione Linux, e di Debian in particolare, per lo più si basa su un utilizzo concertato del processo /sbin/init e degli script contenuti nelle cartelle /etc/rc.d e /etc/init.d. All’avvio il kernel avvia il processo /sbin/init che a sua volta inizia ad eseguire lo script /etc/rcS. In base alle informazioni contenute proprio in /etc/rcS si passa all’esecuzione degli script contenuti in una delle sottocartelle di /etc/rc.d.


Ora, l’esigenza, che hanno quelli di Debian è l’avere un sistema di boot più in linea con le necessità moderne. Il kernel Linux è cambiato, è più reattivo, molte delle chiamate di sistema sono più veloci, o anche non più bloccanti. Il kernel e il software di sistema, insomma, non sono più quelli di una volta. Sono migliori.

Un esempio chiarirà il tutto. Supponiamo che all’avvio il sistema deve montare in automatico una partizione NFS, e questo perché il file /etc/fstab contiene una entry di tipo nfs. Bene, può capitare che a causa della lentezza dell’hardware della scheda di rete il sistema impiega tempo a tirare su i moduli di rete e a configurare l’interfaccia. In questo caso può capitare che all’instante del mounting della partizione NFS non sia stata ancora inizializzata l’interfaccia di rete. Il risultato è che “la partizione non viene montata”.

Problemi come questo sono dovuti al fatto che il sistema di boot in uso su Debian non è ad eventi, ovvero non è in grado di catturare e sincronizzare tra loro le diverse azioni del processo di avvio.

Distribuzioni come Ubuntu e Fedora più orientate al desktop rispetto a Debian si sono già poste da tempo problemi di questo tipo e li hanno risolti usando il processo di init incluso nel pacchetto upstart. Questo processo è in grado di ricevere eventi dagli script di avvio e di stop (shutdown) e di sincronizzare così i task da effettuare durante l’accensione o lo spegnimento del sistema.

Torniamo a Debian. Cosa cambia? Debian ha deciso di ammodernare l’intero processo di boot. Primo utilizzerà anche lei il più moderno pacchetto upstart. Secondo, modificherà il sistema di script passando da quello sysv-rc a quello file-rc. Terzo, e qui Debian dimostra di essere Debian, creerà un sistema di auto-configurazione in grado di modificare dinamicamente l’ordine di esecuzione degli script in base ai pacchetti installati e alla configurazione del sistema.

Quando sarà pronto il tutto? La mail di Petter Reinholdtsen non è proprio chiara su questo. Si cercherà di fare tutto il possibile per includere quanto più lavoro in Debian 6 Squeeze. Tuttavia quello che non potrà essere incluso nella versione 6.0 lo sarà certamente nella successiva Debian 7.0.

Nota tecnica finale, Debian intende innovare il proprio sistema di boot, ma nel contempo rimanere fedele alle specifiche LSB (Linux Standard Base) che obbligano all’utilizzo di un sistema basato sulla cartella /etc/init.d.