Debian abbandona Init e passa ad Upstart

post_090907_3.jpg

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.

Tag: ,

Commenti

  1. [1]

    non sarebbe ora di dare un’aggiornatina a queste specifiche LSB?

  2. [2]

    Non ho capito una cosa: quello che serve ora, sarà pronto tra 4 anni?
    Spero di aver capito male…

  3. [3]

    @ cla
    pienamente d’accordo

  4. [4]

    @MpMp: copio quello che è riportato sulla mail di Petter Reinholdtsen:

    >

  5. [5]

    @MpMp: eccolo

    The planned time frame for this is to replace /sbin/init with upstart
    for Squeeze, and see if we manage to change the very early boot to
    become event based in time for Squeeze too, fixing the most pressing
    of the current boot problems (failing fsck and mount with USB
    disks). For Squeeze+1, more of the early boot system will be
    converted, to handle more of the existing problems.

  6. [6]

    [...] supponiamo che all’ avvio il sistema DEBBA montare [...]

    il congiuntivo!!
    non è un vezzo.

  7. [7]

    [...] supponiamo che all’ avvio il sistema DEBBA montare [...]

    [...] a causa della lentezza dell’hardware della scheda di rete il sistema IMPIEGHI tempo [...]

    il congiuntivo!!
    non è un vezzo.

  8. [8]

    scusate il doppio post ;-)

  9. [9]

    beh ma è normale che si resti fedeli alle specifiche LSB anche ubuntu pur usando upstart da un pò non ha intenzione di abbandonare /etc/init.d

  10. [10]

    Scrivo qualche tempo dopo questo interessantissimo post.

    Allo stato attuale Debian sembra rimasto a sysv-rc e ad un “dependency based boot”.
    Non ho capito una cosa: questo DBB è un derivato di Upstart oppure è Debian-hand-made?

Inserisci il tuo commento