KDE potrà usare systemd per l’avvio

3

Un articolo di David Edmundson, sviluppatore KDE di lungo corso, racconta di come, e perché, abbia iniziato la revisione del codice del diffuso desktop environment (DE) per permetterne l’avvio tramite systemd. Il post è davvero dettagliato e interessante, ma non scende troppo nel tecnico: risulta una piacevole lettura.

Sintetizzandolo molto, la questione è semplice: l’avvio di un DE prevede una serie di programmi e di azioni da fare in sequenza, con un groviglio di dipendenze che è difficile gestire. Prima del suo intervento KDE risolveva la questione con un programmone (ksmserver) che si occupava di fare le cose una dietro l’altra, ma lo svantaggio principale è la poca flessibilità: per poter cambiare un comportamento, inserire o togliere qualche passaggio, l’unica è andare a modificare il codice sorgente. Di certo, non alla portata di tutti, e prono a problemi ed errori.

Confrontandosi con alcuni sistemisti è diventata chiara una cosa: il programmone per gestire avvii e dipendenze (ormai) è diffuso e disponibile praticamente su ogni distribuzione Linux, ovvero systemd. E in effetti systemd è nato proprio per questo: avvio simultaneo dei servizi, con file di configurazione che possano stabilire l’ordine, indicare dipendenze e precedenze, ma anche impostare limiti e dettagli per l’esecuzione sfruttando specifiche del Kernel Linux come i CGroup.
Bisognava solo spezzettare nelle sue componenti il programmone attuale, ognuna specifica per un pezzetto di avvio, e dire a systemd in che ordine chiamarle. Approccio KISS ordinario, ironicamente.

Facile no? No. Perché i singoli pezzi devono comunicare l’un l’altro, usando variabili d’ambiente impostate da un altro pezzetto prima. Cosa che finché l’ambiente è uno solo, un unico programma, è più o meno implicito sia così, ma quando si avviano i pezzetti in maniera indipendente ognuno ha il suo ambiente con le sue impostazioni.

Difficile ma non impossibile, in un paio d’anni David Edmundson è riuscito a fare esattamente questo, e nel processo ha scovato molti punti di miglioramento o bug veri e propri. E, con la versione 5.21 in uscita a breve, sarà possibile scegliere di usare systemd per avviare la propria sessione di KDE. Qui lo schema delle dipendenze (preso dal post): capirete al primo sguardo la complessità del lavoro svolto. Complimenti!

Sì, lo sappiamo: systemd non piace ad alcuni. Ma c’è, e tanti lo stanno accettando, se non addirittura apprezzando, per i suoi lati positivi.
I detrattori sostengono che sia troppo totalizzante, andando oltre le competenze previste per un gestore di processi. Noi non vogliamo prendere posizione su questo, in quanto – di fatto – sono valutazioni.

Quello che a noi interessa è la possibilità di scelta dell’utente, e in questo l’integrazione di KDE con systemd è molto diversa da quanto fatto per GNOME: systemd non sarà una dipendenza di KDE, ma una possibilità di avvio. Rimarrà (almeno per un po’) il sistema attuale, basato su script, ma (dice Edmundson) sulla carta i due sistemi faranno le stesse cose con gli stessi tempi: semplicemente si potrà scegliere il direttore d’orchestra.

Ho coltivato la mia passione per l’informatica fin da bambino, coi primi programmi BASIC. In età adulta mi sono avvicinato a Linux ed alla programmazione C, per poi interessarmi di reti. Infine, il mio hobby è diventato anche il mio lavoro.
Per me il modo migliore di imparare è fare, e per questo devo utilizzare le tecnologie che ritengo interessanti; a questo scopo, il mondo opensource offre gli strumenti perfetti.

3 risposte a “KDE potrà usare systemd per l’avvio”

  1. Avatar JaK
    JaK

    La cosa che preoccupa me è che, in tal caso, GNU/Linux diventerà un OS incompatibile con gli altri UNIX. Nessun *BSD lo ha adottato e le critiche che hanno portato alla nascita di progetti alternativi (runit o Shepherd), mi fanno chiedere a cosa si voglia puntare esattamente. Just my 5 cents

  2. Avatar Marco Bonfiglio
    Marco Bonfiglio

    systemd è più modulare di quanto comunemente si crede, caratteristica sfruttata da progetti specifici per “rendere autonome” certe dipendenze. Ci sono esempi in cui questo lavoro funziona (mi viene in mente gentoo con GNOME).
    Il motivo per cui systemd non è stato portato su UNIX è che è intimamente legato al Kernel Linux – e ad alcune caratteristiche che UNIX non ha. Primo esempio fra tutti: CGroup.
    Ascrivo la scelta di KDE di rimanere compatibile con gli script di avvio ad una volontà di non escludere nessuno (e per questo credo sia duratura), ma allo stesso permettere a chi (per fortuna o per sfortuna) ha systemd a disposizione di usarlo – e sfruttarlo.

  3. Avatar carlo coppa
    carlo coppa

    Secondo me questo è il giusto approccio, se non vuoi usare systemd non usarlo, tuttavia un DE e distribuzione deve scegliere quello che ritengano sia il migliore per loro, una distribuzione Gnu/linux non può preoccuparsi della compatibilità con altri sistemi. Dopotutto il demonio systemd è software libero, che può piacere o meno, ma tutta la polemica lo sempre trovata sterile.
    Perché ogni distribuzione è libera si usare un diverso sistema di init, basta solo mantenerlo ed è questo il grande problema…tutti vogliono alternative, ma poi sono in pochi a prendersi carico del lavoro di mantenimento, che non può essere scaricato sempre sulle distribuzioni.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *