Pagina 1 di 2

Opinioni su systemd

Inviato: sab 9 nov 2013, 15:32
da ilmich
Ciao a tutti,

mentre guardavo i 'buoni propositi' del progetto mate-desktop ho visto che fra i tanti c'e' il supporto a systemd al posto del 'obsoleto' console-kit
Per il momento dai commit sembra un opzione da attivare, quindi compatibile a vecchio.

La parola 'obsoleto' associata a console-kit mi ha fatto pero' pensare al 'vecchio' hal, anche lui rimpiazzato.
Io systemd lo conosco poco e ne ho sempre sentito parlare male (ma su linuxquestion forum slackware è piu' che normale) e vorrei capire, da chi lo conosce/usa anche su altre distro se effettivamente ha un qualcosa in piu'.. se quando un giorno slackware dovra' adottarlo (penso pena l'incompatibilità con i desktop environment maggiori) cosa cambierà etc etc etc

Re: Opinioni su systemd

Inviato: sab 9 nov 2013, 16:00
da hashbang
Il problema non è la compatibilità con i DE maggiori, quanto l'integrazione dei componenti quali logind (sostituto di ConsoleKit e acpid) e udevd, che è richiesto dal kernel Linux.
Poettering ha detto che in futuro si potrebbero rilasciare i componenti in maniera separata, ma un po' tutta la comunità Linux (io compreso) sono scettico su questa possibilità.

Comunque il discorso andrebbe impostato in maniera leggermente differente.
systemd ha dei pro? Sì, ce li ha.
- Niente overhead causato dal caricamento al boot di un interprete per gli script di INIT (la shell)
- Sintassi per i servizi molto semplice ed immediata
- Parallelizzazione automatica dei servizi, a differenza di Upstart che parallellizza sulla base di un ordine prestabilito.
- socket handling

EDIT:
Giusto per completezza, posto la differenza tra la sintassi di uno script INIT e quella di un servizio systemd.
Userò l'init di ZFS che ho creato per Slackware.

Codice: Seleziona tutto

#!/bin/bash
#
# ZFS INIT script for Slackware
# Based on the LSB SysV INIT script.
# Copyright (c) 2013, Luca De Pandis. All rights reserved.
# Contact me at lucadepandis@gmail.com

LOCKFILE=/var/lock/zfs
ZFS="$(which zfs)"
ZPOOL="$(which zpool)"

# Source zfs configuration.
[ -r '/etc/default/zfs' ] &&  . /etc/default/zfs

[ -x "$ZPOOL" ] || exit 1
[ -x "$ZFS" ] || exit 2

start()
{
	if [ -f "$LOCKFILE" ]; then
                 echo "Service already running"
                 return 3
        fi

	# Delay until all required block devices are present.
	udevadm settle

	# Load the zfs module stack, if it is not already loaded
	if [ -z "$(lsmod | grep zfs)" ]; then
                /sbin/modprobe zfs
        fi

	# Ensure / exists in /etc/mtab, if not update mtab accordingly.
	# This should be handled by rc.sysinit but lets be paranoid.
	awk '$2 == "/" { exit 1 }' /etc/mtab
	RETVAL=$?
	if [ "$RETVAL" -eq 0 ]; then
		/bin/mount -f /
	fi

	# Import all pools and then mount all filesystems
	# based on their properties.
        echo -n "Importing ZFS pools... "
        "$ZPOOL" import 2>&1 > /dev/null
	"$ZPOOL" import -aN 2>&1 > /dev/null
         if [ "$?" != "0" ]; then
                echo "skipped"
         else
                echo "done"
         fi

         echo -n "Mounting ZFS filesystems... "
	 "$ZFS" mount -a
         if [ "$?" != "0" ]; then
                echo "failed"
                return 15
         else
                echo "done"
         fi

         echo -n "Sharing ZFS filesystems... "
 	 "$ZFS" share -a
         if [ "$?" != "0" ]; then
                echo "failed"
                return 20
         else
                echo "done"
         fi
	
	touch "$LOCKFILE"
}

stop()
{
	if [ ! -f "$LOCKFILE" ]; then
                 echo "Service is not running"
                 return 3
        fi

	echo -n "Unmounting ZFS filesystems... "
	"$ZFS" umount -a
	if [ "$?" != "0" ]; then
                 echo "failed"
                 return 130
        else
                 echo "done"
        fi

	rm -f "$LOCKFILE"
}

status()
{
	if [ ! -f "$LOCKFILE" ]; then
                 echo "Service is not running "
                 return 3
        else
	         "$ZPOOL" status && echo "" && "$ZPOOL" list
        fi
}

case "$1" in
	start)
		start
		RETVAL=$?
		;;
	stop)
		stop
		RETVAL=$?
		;;
	status)
		status
		RETVAL=$?
		;;
	restart)
		if [ -f "$LOCKFILE" ]; then
			stop
			start
		fi
		;;
	help)
		echo $"Usage: $0 {start|stop|status|restart|help}"
		;;
        *)
                echo "Illegal Command: $1"
		echo $"Usage: $0 {start|stop|status|restart|help}"
                RETVAL=1
                ;;
esac

exit $RETVAL
E qui la versione systemd

Codice: Seleziona tutto

[Unit]
Description=Zettabyte File System (ZFS)
Documentation=man:zfs(8) man:zpool(8)
DefaultDependencies=no
After=local-fs.target
Before=multi-user.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/sbin/modprobe zfs
ExecStart=/usr/sbin/zpool import -c /etc/zfs/zpool.cache -aN
ExecStart=/usr/sbin/zfs mount -a
ExecStart=/usr/sbin/zfs share -a
ExecStop=/usr/sbin/zfs umount -a

[Install]
WantedBy=multi-user.target
Ha dei contro? Sì, ce li ha.
- È Linux-only, ciò vuol dire che non si possono portare script di INIT su sistemi UNIX alternativi come BSD, e viceversa, ma bisogna riscriverli completamente.
- È difficile da debuggare (problema messo in evidenza da Alan Cox). È molto più facile debuggare uno script INIT, che avviare systemd con strace e/o gdb.
Senza contare che il binario systemd viene strippato, quindi addio ad un debug dettagliato.
- È anti-UNIX perché viola il principio del "un software deve gestire uno e un solo compito e farlo bene". systemd è invasivo e un monolite che gestisce tutto, dai servizi alla sospensione/ibernazione (va, infatti, a sostituire le pm-utils).
L'essere un monolite è un problema anche per la portabilità.
I componenti sono tutti completamente integrati fra loro. Ciò vuol dire, ad esempio, che non si può portare solo una parte di systemd su FreeBSD per far girare GNOME (qualora quest'ultimo lo richiedesse esplicitamente), perché andrebbero portate molte funzioni Linux.
E non è vero ciò che Poettering ha detto, ovvero che basta implementare qualche ifdef e tutto funziona, perché portarlo su BSD senza integrare cgroup, udev ed altre interfacce Linux-only vuol dire riscrivere mezzo systemd.

E proprio sulla questione udev che i dev FreeBSD hanno storto il naso. Questo pezzo di software viene accettato solo nel mondo Linux. Su FreeBSD si usa devd, e loro non hanno alcuna intenzione di sostituirlo, dato che è una delle parti del core di sistema che più vantano.

Inoltre viola pesantemente la hier(7). Non digerisce sistemi con /usr separata, e questo ha portato ai vari merge /-/usr fatti su Fedora, openSUSE e Arch Linux (qui poi la cagata più grande di unire /usr/bin, /usr/sbin, /bin e /sbin in un'unica directory /usr/bin).

Re: Opinioni su systemd

Inviato: sab 9 nov 2013, 16:16
da ilmich
Ottima analisi, grazie =D>
hashbang ha scritto:Inoltre viola pesantemente la hier(7). Non digerisce sistemi con /usr separata, e questo ha portato ai vari merge /-/usr fatti su Fedora, openSUSE e Arch Linux (qui poi la cagata più grande di unire /usr/bin, /usr/sbin, /bin e /sbin in un'unica directory /usr/bin).
con questo m'hai convinto ancor di piu' che al momento è il male puro, almeno per chi usa linux come server.

ma quindi secondo te, visto l'andazzo sarà un passaggio inevitabile?!!?!

Re: Opinioni su systemd

Inviato: sab 9 nov 2013, 16:26
da hashbang
Sì.
IMHO systemd è una piaga inevitabile, anche per Slackware.

Parliamoci chiaro: se i dev di Gentoo non hanno la minima idea di come implementare eudev (il fork di udev "libero" da systemd), come possiamo pensare che ce la faccia Pat?
Difatti anche Gentoo offre systemd, anche se in seconda scelta, rispetto a OpenRC.
L'unica salvezza si chiama Debian, che avendo GNU/kFreeBSD con cui fare i conti, non penso utilizzerà systemd tanto facilmente.
Al massimo IMHO passeranno ad Upstart.

Re: Opinioni su systemd

Inviato: sab 9 nov 2013, 23:17
da tornadomig
porto la mia modesta esperienza come semplice utente in merito a systemd su arch e gentoo

su arch, beh, lo adotta in tutto e per tutto. molto veloce l'avvio, non parliamo poi dello spegnimento. fa quasi tutto lui come servizi intendo. io ho installato arch kde-only con uno script scritto da helmuthdu su git. e' semiautomatizzato. l'ho provato e va, niente da dire. non adoro poi cosi' tanto arch. ci paciocco poco, compilo poco. pero' fila veloce come SO. e' la loro scelta. gli va bene che e' tutto pacchettizzato.
adopero gentoo su due drive differenti a se' stanti. sempre kde. in uno uso gli init.d (ssd) e sull'altro systemd (hdd). e' dall' ultimo stage 3 che mi son accorto che lo si puo' selezionare come profilo. esiste un wiki e consiglio di seguirlo. ho provato diverse volte a installare gentoo con systemd per vedere come si comportava. sul kernel bisogna settare delle cose in piu' rispetto a una compilazione diciamo cosi', canonica. sempre occhio alle use flags da settare, globali e locali. io preferisco trovare la maniera giusta di inserirle piano piano per non compilare in eterno e rigorosamente in ram. morale: chi cerca la velocita' di utilizzo come me, usi gli ssd e usi tanta ram. per ora mi va bene anche gli init.d e ok per la sperimentazione su systemd. non si adotta consolekit in kde. consiglio di abilitare sempre solo e soltanto gli indispensabili .service. di alcuni non ho proprio capito la funzione, anzi mi impallavano il sistema. nei forum ho avuto poco supporto e cio' mi dispiace. dico la mia opinione, non amo quel forum. sia quando ci scrivo che quando leggo i vari post di tanti che si approcciano a gentoo. direi che son veramente pochi quelli che vi approcciano, secondo me. i wiki vengono aggiornati piu' lentamente della distro stessa, anche quelli in inglese. compilare e' bello ma ci va molta attenzione e pazienza. il terminale si usa tanto.
ho provato una volta anche sabayon che adotta systemd su gnome-shell 3.8 ma non ho feeling con esso. non so perche', non mi fa impazzire. con gentoo batti forte il naso, e' utile per addentrarsi nel filesystem. come slackware. per il resto ci pensa portage su cui gira tutto.
su funtoo (gentoo sid, diciamo) systemd non e' ancora supportato.
grub2 e' d'obbligo.

Re: Opinioni su systemd

Inviato: lun 11 nov 2013, 19:51
da SIV
hashbang ha scritto:Sì.
IMHO systemd è una piaga inevitabile, anche per Slackware.
:cry: :cry: :cry: :cry:

Re: Opinioni su systemd

Inviato: mer 13 nov 2013, 16:58
da tornadomig

Re: Opinioni su systemd

Inviato: mer 13 nov 2013, 17:09
da ilmich
tornadomig ha scritto:http://slackware.omgwtfroflol.com/

e te pareva...
#-o

EDIT: anche se per carità.. a quanto ho capito io dalla documentazione il vecchio sistema di avvio rimane con questi pacchetti, che poi a me sinceramente è la cosa che piace di piu' di slackware (il sistema di boot pulito e molto customizzabile)

Re: Opinioni su systemd

Inviato: gio 14 nov 2013, 17:28
da brg
La fine di ConsoleKit non mi dispiace per niente. Tuttavia il discorso sulla velocità di avvio e spegnimento non mi convince del tutto. Sul netbook ho Linux Crunchbang*, una Debian derivata, ed è molto più rapida ad avviarsi che le Slackware sul portatile e sul fisso. È solo Slackware che è lenta, altre distribuzioni sono più veloci anche senza systemd.

*Usa Busybox e Slim, che su un server serio probabilmente non useresti mai; tuttavia un server nemmeno lo devi avviare e spengere tanto spesso, quindi non vedo il problema a continuare ad usare Init e Busybox-init.

Re: Opinioni su systemd

Inviato: gio 14 nov 2013, 17:50
da ilmich
brg ha scritto: È solo Slackware che è lenta, altre distribuzioni sono più veloci anche senza systemd.
Offtopic: non voglio andare troppo offtopic pero' secondo me questo tipo di paragoni sono un po' forzati.
Quella distribuzione la conosco perchè vi si trovano un sacco di customizzazioni carine per openbox/conky/tint2 e da quello che ho visto io lo scopo è totalmente differente.
quello che sto cercando di dire è che sicuramente il sistema di avvio di slackware è tutto in bash, quindi meno veloce etc etc etc etc.. pero' se ti installi una versione minimale di slackware (tipo questa con l'aggiunta dei pacchetti per far andare il server x con openbox e slim) non so quanto diventi piu' lenta di crunchbang. cercando di ottimizzare un po' l'avvio mi sono accorto per esempio che uno dei momenti 'topici' è quando vengono scansionati i fonts... io sul mio picci ho persino quelli indiani, proprio perchè di solito slackware si installa full :D

Re: Opinioni su systemd

Inviato: gio 14 nov 2013, 19:15
da hashbang
brg ha scritto:La fine di ConsoleKit non mi dispiace per niente.
Hai fondamentalmente ragione, però - e c'è un però - per lo meno ConsoleKit lo puoi installare ovunque. Se GNOME, KDE o altri desktop si legassero indissolubilmente a logind, ci sarebbero enormi problemi per gli utenti non-Linux in quanto questo software funziona solo da noi.
Già su FreeBSD si è perso l'automount in Thunar a causa dell'abbandono del supporto ad HAL (altro schifo spacciato per panacea) e l'uso esclusivo di udisks. Se ci mettiamo pure con l'abbandono completo di ConsoleKit stiamo freschi...

Insomma, la situazione è un po' più complessa di quel che sembra.

Re: Opinioni su systemd

Inviato: lun 9 dic 2013, 12:45
da mohaa
systemd è soltanto un hobby di un impiegato della Red Hat. Lo stesso che ci ha portato Pulseaudio. Tutte quante belle cose, insomma.
Red Hat ha preso una direzione propria, come la Novell al suo tempo, quella della rovina del desktop Linux. Nei fatti, la Red Hat cerca di essere sempre più vicina a dei partner commerciali i cui standard sono "soldi soldi".
In una discussione su systemd, si legge anche della direzione analoga del progetto Gnome che non solo ha fatto fare il passo verso Pulseaudio (che tutti amano) ma anche systemd.
Ora il desktop Gnome dipende di systemd e questo è il risultato del lobbying della Red Hat che ora vuole espandere le sue scelte a tutte le distro Linux. Infatti, fare senza systemd richiede risorse.
Gnome3.8 è disponibile su gentoo da qualche settimana ma sinceramente il passaggio da openrc a systemd non lo farò. Perché anche se systemd è un software buono, ce ne sono altri che fanno un buon lavoro senza interferire con la portabilità.
Grazie a systemd, il desktop gnome è fermo e limitato a Linux. E non solo il desktop. Anche sui server arriverà questo coso. Auguri a tutti gli admin. Qui non c'entra soltanto la velocità di avvio e spegnimento. Ci sono altre cose che la squadra systemd lascia da parte o vede in modo parziale, come i vari contesti di uso del software (desktop, server) o la portabilità.
Ogni tanto, questo signore pagato da Red Hat verrà con un software per il desktop Linux. Anche se si può stare lontani da PulseAudio (auguri a chi riesce ad essere felice con quello), sarà molto più difficile con systemd. Prossimamente arrivano altri regali, sempre finanziati dalla Red Hat, che faranno che Linux te lo dimentichi se il tuo server non è touchscreen. Mica un troll.

Re: Opinioni su systemd

Inviato: sab 15 feb 2014, 23:33
da brg
A quanto pare systemd è il nuovo standard de facto per il sistema d'avvio di Linux. Debian e Ubuntu hanno annunciato che le prossime versioni stabili delle rispettive distribuzioni useranno systemd, andandosi così ad unire a Fedora, openSuse, Mageia, Arch, Gentoo, Red Hat e compagnia. Mark Shuttleworth in persona ha annunciato che la transizione da Upstart a systemd è ormai iniziata: http://www.markshuttleworth.com/archives/1316 .

Che dire se non il re è morto (sysvinit), lunga vita al re (systemd)? :king:

Re: Opinioni su systemd

Inviato: dom 16 feb 2014, 9:21
da rik70
Se non ho visto male, anche la futura versione di Openelec userà systemd.

P.s.
In base alla mia esperienza, il giudizio comunque non è negativo.

Re: Opinioni su systemd

Inviato: dom 16 feb 2014, 10:59
da tornadomig
ciao a tutti!

permettetemi: su gentoo non si è obbligati a impiegare systemd. non è ancora preso in considerazione del tutto sull'handbook tanto è vero che si rimanda a un wiki di una pagina, a mio avviso spiegato neanche tanto bene. troppo poco secondo me per uno standard de facto. parlo per gentoo: è sempre meglio iniziare from scratch partendo dallo stage 3 e quindi impiegare systemd tramite "eselect profile" piuttosto che far modifiche al sistema già in openrc.

su slack preferisco che sia il buon pat a metterci le mani, se ritiene il caso. è roba sua, no? ;)