SlideShare uma empresa Scribd logo
1 de 33
Baixar para ler offline
11/06/2015 Systemd
SystemD
11 Giugno 2015
Christopher R. Gabriel
< cgabriel @ truelite.it >
© 2015 Truelite Srl - La copia letterale e la distribuzione del materiale qui raccolto nella sua integrità sono permesse con qualsiasi
mezzo, a condizione che questa nota sia riprodotta.
11/06/2015 Systemd
Perchè siamo qui?
● Provare a capire cosa è Systemd.
● Come è fatto, e come impatta nella routine di
un amministratore di sistema.
● Avere le nozioni sufficienti per capire se ci
piace o no.
● Condividere opinioni/esperienze personali.
11/06/2015 Systemd
NON siamo qui per...
● Promuovere Systemd, senza motivazioni
oggettive.
● Respingere Systemd, senza motivazioni
oggettive.
● Valutare la bontà o meno di un software
giudicando l'autore (sarebbe una lista infinita)
11/06/2015 Systemd
WTF?
Fonte: Google Trends, 16/02/2015
11/06/2015 Systemd
WTF!
18 Maggio 2015:
Revert upstream commit 743970d which
immediately SIGKILLs units during shutdown
This leads to problems like bash not being
able to write its history, mosh not saving
its state, and similar failed cleanup
actions.
11/06/2015 Systemd
Contesto: chi sono
● NON sono un amministratore di sistema
● 20 anni che uso e lavoro con Unix, Linux e software
libero
● Incuriosito e interessato alla discussione
● Influenzato professionalmente da Systemd
● Mi piace capire e sapere per poter giudicare
● Non ho mai avuto problemi con systemd sui miei
sistemi
● Giusto per chiarirsi subito: Systemd non mi piace.
11/06/2015 Systemd
11/06/2015 Systemd
Un sistema di init
● Quali sono i compiti di un sistema di init?
11/06/2015 Systemd
Un sistema di init
● In un sistema operativo Unix, è il primo processo
che il kernel manda in esecuzione dopo la fase di
bootstrap. (PID 1)
● Deve avviare programmi e servizi necessari allo
stato operativo.
● Deve prendere in affido i processi orfani (senza
parent PID), curando il recupero della loro
terminazione, per evitare di creare processi
zombie.
11/06/2015 Systemd
Sistemi storici
● SysV Init (runlevel, directory per ogni runlevel)
● BSD (runlevel, script per ogni runlevel)
● Upstart (ubuntu, parallelizzazione)
E poi, nel 2010....
11/06/2015 Systemd
11/06/2015 Systemd
SystemD
● Progetto di Lennart Poettering e Kay Sievers
● Licenza LGPL
● Sviluppato sopra la Linux API (non utilizzabile
su kernel diversi, allo stato attuale)
● Ispirato in parte a launchd (OSX)
● File di configurazione in formato simil-INI
11/06/2015 Systemd
Una breve storia
● 30 Marzo 2010: Prima release di systemd
● Maggio 2011: Fedora è la prima tra le principali distribuzioni Linux ad abilitare l'uso
di system come predefinito.
● 2012: Patrick Volkerding esprime riserve sull'architettura di systemd, a suo dire
contraria alla filosofia Unix. All'agosto 2014, Slackware non supporta ancora
systemd.
● Gennaio 2013: Lennart Poettering scrive un lungo post sul suo blog chiamato “The
Biggest Myths”, per sfatare alcuni miti riguardo systemd.
● Ottobre 2013 Agosto 2014→ : dibattito interno al comitato tecnico Debian riguardo a
quale sistema di init utilizzare per la release Debian 8 “Jessie”, che culmina con la
decisione di utilizzare systemd. Il dibattito in ogni caso è ancora in corso.
● Febbraio 2014: Mark Shuttleworth annuncia che Ubuntu adotterà systemd a seguito
delle decisioni di Debian, pur ricordando i suoi commenti dell'Ottobre 2013 che
descriveva no systemd come “altamente invasivo e difficilmente giustificabile”.
11/06/2015 Systemd
Una breve storia (2)
● Aprile 2014: Linus Torvalds esprime le sue riserve riguardo il comportamento degli autori
principali di systemd verso gli utenti e le segnalazioni di bug (ma dai?).
● Aprile 2014: Viene avviata un campagna di boicottaggio verso systemd, pubblicando su
un sito web dedicato le varie ragioni contro la sua adozione.
● Ottobre 2014: Poettering si lamenta del fatto che “la comunità Open Source è piena di
str*nzi, io sono probabilmente uno dei loro obbiettivi preferiti”
● Novembre 2014: I maintainer Debian e membri del comitato tecnico Joey Hess, Russ
Allbery, Ian Jackson e il maintainer del pacchetto systemd Tollef Fog Heen rassegnano le
dimissioni dai loro ruoli. Hanno giustificato la loro decisione sulla mailing list pubblica di
Debian e su blog personali, adducendola allo straordinario livello di stress riguardo le
disputa dell'integrazione in Debian di systemd, rendendo difficile lavorare con serenità al
suo mantenimento.
● Dicembre 2014: Un fork di Debian, chiamato “Devuan”, è stato annunciato da un gruppo di
persone che si fanno chiamare “Veteran Unix Admins”. L'intento è quello di fornire una
variante di Debian senza systemd installato di default.
11/06/2015 Systemd
Attuale adozione
Distribuzione Repository Predefinito Dal
Arch Linux Gen 2012 Si Ott 2012
CoreOS Lug 2013 Si Ott 2013
Debian Apr 2012 Debian 8 Aprile 2015
Fedora Mag 2011 Si Mag 2011
Gentoo 2011 No
Mageia Mag 2012 Si Mag 2012
OpenSuse Mar 2011 Si Set 2012
RHEL Giu 2014 Si Giu 2014
SUSE ES 2014 si Ott 2014
Tizen 2012 Si 2012
Ubuntu Apr 2013 Pianificato
11/06/2015 Systemd
Perchè Systemd (1)
● Problemi di performance (serializzazione dell'avvio dei
processi)
● Avvio di tutti i processi (anche se già attivi, o anche se
non necessari)
● Dipendenze (es. rete non configurata, avvio di demone
di rete) e successiva serializzazione (Upstart)
● Complessità direttamente proporzionale alla flessibilità
(scripts)
● Creazione di socket per IPC
11/06/2015 Systemd
Perchè Systemd (2)
● Socket e D-Bus activation, avvio servizi on-demand
● Parallelizzazione aggressiva
● Esecuzione asincrona rispetto alla disponibilità delle
risorse
● Logica transazionale di controllo dei servizi e relative
dipendenze
● Snapshotting & restoring
● Approccio utilizzato da superdaemon e launchd (OS-X)
● Uso estensivo dei cgroups
11/06/2015 Systemd
Componenti
● Demoni
● Unit
● Target
● Sistema di log
● Strumenti accessori
11/06/2015 Systemd
Demoni
● systemd
● systemd –user
● consoled: supporto per virtual terminal in userspace
● journald: logger degli eventi, append only, binario.
● logind: gestione dei login (avvio di unit specifiche per l'utenza).
Integrato nei login manager. Sostituisce ConsoleKit
● networkd: gestione della configurazione di rete
● timedated: gestione dell'ora di sistema, timezone. Accessibile tramite
D-Bus
● udevd: gestione dei device (/dev), gestione dei firmware. Integrato in
systemd dall'aprile 2012.
11/06/2015 Systemd
Unit
● Configurazione di:
– Service
– Device
– Mount
– Automount
– Swap
– Target
– Path
– Timer
– Snapshot
– Slice
– Scope
11/06/2015 Systemd
Unit (2)
● Supporta sintassi con specifier
● Configurazione di un servizio, device,
partizione, filesystem, path, timer etc etc
controllati e supervisionati da Systemd
● Estensione uguale alla tipologia di contenuto,
ma sono sempre Unit
● systemd-unit(1)
11/06/2015 Systemd
Target
● Unit con estensione .target
● Raggruppamento di altre unit (cfr. runlevel)
● Fissano punti di sincronizzazione
● Vengono forniti target di compatibilità per i
runlevel, cosi' come tool di supporto tipo telinit
11/06/2015 Systemd
Sistema di log
● systemd-journald.service(8)
● Demone di logging, riceve dati via:
– syslog(3)
– Api nativa
– Messaggi del kernel
– stdout/stderr di service controllati
– Aggiunge metadati
11/06/2015 Systemd
Sistema di log
● Log BINARIO
● Formato ancora incerto
● Messaggi fino a 2^64-1 B
● Dati volatili o meno, a seconda della
configurazione
● Possibilità di interrogazione strutturate
● Log multipli per utente, personalizzati
11/06/2015 Systemd
Strumenti accessori
● systemctl: controllo di systemd e del service
manager
● journalctl: interrogazione del log di sistema
● loginctl: controllo del login manager
11/06/2015 Systemd
Alternative
Rimpiazzi, fork e alternative a systemd, che
garantiscono (o tentano di) fornire compatibilità
verso le applicazioni.
● uselessd
● eudev
● systembsd (per sistemi BSD)
Altra alternativa: non usarlo (il bello del software
libero!)
11/06/2015 Systemd
Critiche (in ordine sparso)
● Contro la filosofia Unix “un compito solo e fallo
bene”
● Log in formato binario
● Solo Linux
● Single Point of Failure ad alta complessità
● Glibc
● Interazione con upstream (problema diffuso)
11/06/2015 Systemd
Cosa mi piace
● Processo di standardizzazione (che in generale, fa
bene alla salute)
● Quindi, compatibilità tra distribuzioni che lo
adottano (write once , run everywhere!)
● Possibilità di personalizzazioni per l'utente non
privilegiato
● Query strutturate sui log
● Uso dei cgroups
11/06/2015 Systemd
Cheat sheet
SysV SystemD Descrizione
service foobar start systemctl start goober Avvia un servizio
service goober stop systemctl stop goober Termina un servizio
service goober restart systemctl restart goober Riavvia un servizio
service goober reload systemctl reload goober Se supportato, ricarica il file di configurazione senza interruzione
service goober condrestart systemctl condrestart
goober
Riavvia un servizio se già avviato
service goober status systemctl status goober Mostra se il servizio è già avviato o meno
chkconfig goober on systemctl enable goober Abilita il servizio al prossimo avvio
chkconfig goober off systemctl disable goober Disabilita il servizio al prossimo riavvio
chkconfig goober systemctl is-enabled goober Mostra se configurato per l'avvio
11/06/2015 Systemd
systemctl
Comando Alias Significato
systemctl default systemctl isolate default.target Modalità predefinita
systemctl rescue systemctl isolate rescue.target Entra in modalità rescue
systemctl emergency systemctl isolate emergency.target Modalità emergenza (init 1)
systemctl halt systemctl start halt.target
--irreversible
Shutdown della macchina, inviando
messaggio agli utenti.
systemctl poweroff systemctl start poweroff.target
--irreversible
Shutdown e spegnimento della
macchina
systemctl reboot systemctl start reboot.target
--irreversible
Riavvio della macchina
systemctl suspend Trigger di suspend.target Suspend to RAM
systemctl hibernate Trigger di hibernate.target Ibernazione
11/06/2015 Systemd
journalctl
Opzione Significato
-b N Limita i risultati a partire dal Nesimo riavvio
-e Si porta direttamente alla fine del log
-f Resta agganciato al terminal per mostrare nuove voci registrate (tail
-f )
-k Solo messaggi del kernel
-p prio Solo i messaggi a partire dalla priorità indicata (0->7)
-u unit Solo i messaggi relativi alla unità indicata
--since=data Solo i messaggi a partire dalla data fornita (in formato date)
11/06/2015 Systemd
Extras
● systemd-bootchart(1)
● systemd-analyze
● systemd-nspawn
● systemd-cgtop
● systemd-machined
11/06/2015 Systemd
Riferimenti
● www.freedesktop.org/wiki/Software/systemd/
● https://wiki.debian.org/systemd
● http://people.truelite.it/~cgabriel/systemd-haiku/

Mais conteúdo relacionado

Destaque (7)

LPIC1 11 02 sécurité système
LPIC1 11 02 sécurité systèmeLPIC1 11 02 sécurité système
LPIC1 11 02 sécurité système
 
LPIC1 10 04 anacron
LPIC1 10 04 anacronLPIC1 10 04 anacron
LPIC1 10 04 anacron
 
présentation des services Open Source pour GNU/Linux
présentation des services Open Source pour GNU/Linuxprésentation des services Open Source pour GNU/Linux
présentation des services Open Source pour GNU/Linux
 
LPIC2 12 01 pare-feu et nating
LPIC2 12 01 pare-feu et natingLPIC2 12 01 pare-feu et nating
LPIC2 12 01 pare-feu et nating
 
Systemd: the modern Linux init system you will learn to love
Systemd: the modern Linux init system you will learn to loveSystemd: the modern Linux init system you will learn to love
Systemd: the modern Linux init system you will learn to love
 
Your first dive into systemd!
Your first dive into systemd!Your first dive into systemd!
Your first dive into systemd!
 
LPIC1 11 01 sécurité réseaux
LPIC1 11 01 sécurité réseauxLPIC1 11 01 sécurité réseaux
LPIC1 11 01 sécurité réseaux
 

Semelhante a Systemd - Como Lug

Semelhante a Systemd - Como Lug (20)

Controllo di versione e Git
Controllo di versione e GitControllo di versione e Git
Controllo di versione e Git
 
Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014
Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014
Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014
 
CodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 1 - Corso Linux, Android e Internet of ThingsCodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
 
Desktop searching
Desktop searchingDesktop searching
Desktop searching
 
Da Windows a Linux: è tempo di migrare
Da Windows a Linux: è tempo di migrareDa Windows a Linux: è tempo di migrare
Da Windows a Linux: è tempo di migrare
 
Git in 5 minuti
Git in 5 minutiGit in 5 minuti
Git in 5 minuti
 
BioDec LinuxDay2012 Erlug
BioDec LinuxDay2012 ErlugBioDec LinuxDay2012 Erlug
BioDec LinuxDay2012 Erlug
 
Android Code Camp for Beginners - Ecosistema Android (IT)
Android Code Camp for Beginners - Ecosistema Android (IT)Android Code Camp for Beginners - Ecosistema Android (IT)
Android Code Camp for Beginners - Ecosistema Android (IT)
 
Linux
LinuxLinux
Linux
 
Open Source per Donne / Girl Geek
Open Source per Donne / Girl GeekOpen Source per Donne / Girl Geek
Open Source per Donne / Girl Geek
 
Open Source e le Girl Geek
Open Source e le Girl GeekOpen Source e le Girl Geek
Open Source e le Girl Geek
 
Linux e fs storia e caratteristiche vincenti
Linux e fs   storia e caratteristiche vincentiLinux e fs   storia e caratteristiche vincenti
Linux e fs storia e caratteristiche vincenti
 
Windows vs-linux
Windows vs-linuxWindows vs-linux
Windows vs-linux
 
Iced tea, la macchina virtuale Java libera
Iced tea, la macchina virtuale Java liberaIced tea, la macchina virtuale Java libera
Iced tea, la macchina virtuale Java libera
 
Linux & Tools: per la piccola azienda e i freelance
Linux & Tools: per la piccola azienda e i freelanceLinux & Tools: per la piccola azienda e i freelance
Linux & Tools: per la piccola azienda e i freelance
 
02 linux corso pratica
02 linux corso pratica02 linux corso pratica
02 linux corso pratica
 
Docker & DevOps
Docker  & DevOpsDocker  & DevOps
Docker & DevOps
 
Corso linux base
Corso linux baseCorso linux base
Corso linux base
 
Moduli del kernel - Boot del sistema
 Moduli del kernel - Boot del sistema Moduli del kernel - Boot del sistema
Moduli del kernel - Boot del sistema
 
Linux Day Torino 2015 applicazioni per iniziare
Linux Day Torino 2015   applicazioni per iniziareLinux Day Torino 2015   applicazioni per iniziare
Linux Day Torino 2015 applicazioni per iniziare
 

Mais de Truelite

Mais de Truelite (14)

Workshop – Il server FUSS: struttura, filosofia progettuale e casi d’uso
Workshop – Il server FUSS: struttura, filosofia progettuale e casi d’usoWorkshop – Il server FUSS: struttura, filosofia progettuale e casi d’uso
Workshop – Il server FUSS: struttura, filosofia progettuale e casi d’uso
 
Introduzione architettura FUSS
Introduzione architettura FUSSIntroduzione architettura FUSS
Introduzione architettura FUSS
 
Sistemi di virtualizzazione in ambiente Linux
Sistemi di virtualizzazione in ambiente LinuxSistemi di virtualizzazione in ambiente Linux
Sistemi di virtualizzazione in ambiente Linux
 
LDAP: caratteristiche e funzionalità
LDAP: caratteristiche e funzionalitàLDAP: caratteristiche e funzionalità
LDAP: caratteristiche e funzionalità
 
Server aziendali con Linux
Server aziendali con LinuxServer aziendali con Linux
Server aziendali con Linux
 
Il software libero nella scuola, esperienze e soluzioni
Il software libero nella scuola, esperienze e soluzioniIl software libero nella scuola, esperienze e soluzioni
Il software libero nella scuola, esperienze e soluzioni
 
Il software libero: una risorsa per lo sviluppo e l'economia locale
Il software libero: una risorsa per lo sviluppo e l'economia localeIl software libero: una risorsa per lo sviluppo e l'economia locale
Il software libero: una risorsa per lo sviluppo e l'economia locale
 
Sistemi di virtualizzazione con Linux
Sistemi di virtualizzazione con LinuxSistemi di virtualizzazione con Linux
Sistemi di virtualizzazione con Linux
 
Esperienze di migrazione a software libero
Esperienze di migrazione a software liberoEsperienze di migrazione a software libero
Esperienze di migrazione a software libero
 
Il testo unico sulla privacy
Il testo unico sulla privacyIl testo unico sulla privacy
Il testo unico sulla privacy
 
Il software libero come scelta strategica d'impresa
Il software libero come scelta strategica d'impresaIl software libero come scelta strategica d'impresa
Il software libero come scelta strategica d'impresa
 
Lo sviluppo del Software Libero per le PMI e la PA"
Lo sviluppo del Software Libero per le PMI e la PA"Lo sviluppo del Software Libero per le PMI e la PA"
Lo sviluppo del Software Libero per le PMI e la PA"
 
Un server aziendale conforme alla normativa sulla privacy con Linux e Samba
Un server aziendale conforme alla normativa sulla privacy con Linux e SambaUn server aziendale conforme alla normativa sulla privacy con Linux e Samba
Un server aziendale conforme alla normativa sulla privacy con Linux e Samba
 
Tecnologie di virtualizzazione per il consolidamento dei server
Tecnologie di virtualizzazione per il consolidamento dei serverTecnologie di virtualizzazione per il consolidamento dei server
Tecnologie di virtualizzazione per il consolidamento dei server
 

Systemd - Como Lug

  • 1. 11/06/2015 Systemd SystemD 11 Giugno 2015 Christopher R. Gabriel < cgabriel @ truelite.it > © 2015 Truelite Srl - La copia letterale e la distribuzione del materiale qui raccolto nella sua integrità sono permesse con qualsiasi mezzo, a condizione che questa nota sia riprodotta.
  • 2. 11/06/2015 Systemd Perchè siamo qui? ● Provare a capire cosa è Systemd. ● Come è fatto, e come impatta nella routine di un amministratore di sistema. ● Avere le nozioni sufficienti per capire se ci piace o no. ● Condividere opinioni/esperienze personali.
  • 3. 11/06/2015 Systemd NON siamo qui per... ● Promuovere Systemd, senza motivazioni oggettive. ● Respingere Systemd, senza motivazioni oggettive. ● Valutare la bontà o meno di un software giudicando l'autore (sarebbe una lista infinita)
  • 5. 11/06/2015 Systemd WTF! 18 Maggio 2015: Revert upstream commit 743970d which immediately SIGKILLs units during shutdown This leads to problems like bash not being able to write its history, mosh not saving its state, and similar failed cleanup actions.
  • 6. 11/06/2015 Systemd Contesto: chi sono ● NON sono un amministratore di sistema ● 20 anni che uso e lavoro con Unix, Linux e software libero ● Incuriosito e interessato alla discussione ● Influenzato professionalmente da Systemd ● Mi piace capire e sapere per poter giudicare ● Non ho mai avuto problemi con systemd sui miei sistemi ● Giusto per chiarirsi subito: Systemd non mi piace.
  • 8. 11/06/2015 Systemd Un sistema di init ● Quali sono i compiti di un sistema di init?
  • 9. 11/06/2015 Systemd Un sistema di init ● In un sistema operativo Unix, è il primo processo che il kernel manda in esecuzione dopo la fase di bootstrap. (PID 1) ● Deve avviare programmi e servizi necessari allo stato operativo. ● Deve prendere in affido i processi orfani (senza parent PID), curando il recupero della loro terminazione, per evitare di creare processi zombie.
  • 10. 11/06/2015 Systemd Sistemi storici ● SysV Init (runlevel, directory per ogni runlevel) ● BSD (runlevel, script per ogni runlevel) ● Upstart (ubuntu, parallelizzazione) E poi, nel 2010....
  • 12. 11/06/2015 Systemd SystemD ● Progetto di Lennart Poettering e Kay Sievers ● Licenza LGPL ● Sviluppato sopra la Linux API (non utilizzabile su kernel diversi, allo stato attuale) ● Ispirato in parte a launchd (OSX) ● File di configurazione in formato simil-INI
  • 13. 11/06/2015 Systemd Una breve storia ● 30 Marzo 2010: Prima release di systemd ● Maggio 2011: Fedora è la prima tra le principali distribuzioni Linux ad abilitare l'uso di system come predefinito. ● 2012: Patrick Volkerding esprime riserve sull'architettura di systemd, a suo dire contraria alla filosofia Unix. All'agosto 2014, Slackware non supporta ancora systemd. ● Gennaio 2013: Lennart Poettering scrive un lungo post sul suo blog chiamato “The Biggest Myths”, per sfatare alcuni miti riguardo systemd. ● Ottobre 2013 Agosto 2014→ : dibattito interno al comitato tecnico Debian riguardo a quale sistema di init utilizzare per la release Debian 8 “Jessie”, che culmina con la decisione di utilizzare systemd. Il dibattito in ogni caso è ancora in corso. ● Febbraio 2014: Mark Shuttleworth annuncia che Ubuntu adotterà systemd a seguito delle decisioni di Debian, pur ricordando i suoi commenti dell'Ottobre 2013 che descriveva no systemd come “altamente invasivo e difficilmente giustificabile”.
  • 14. 11/06/2015 Systemd Una breve storia (2) ● Aprile 2014: Linus Torvalds esprime le sue riserve riguardo il comportamento degli autori principali di systemd verso gli utenti e le segnalazioni di bug (ma dai?). ● Aprile 2014: Viene avviata un campagna di boicottaggio verso systemd, pubblicando su un sito web dedicato le varie ragioni contro la sua adozione. ● Ottobre 2014: Poettering si lamenta del fatto che “la comunità Open Source è piena di str*nzi, io sono probabilmente uno dei loro obbiettivi preferiti” ● Novembre 2014: I maintainer Debian e membri del comitato tecnico Joey Hess, Russ Allbery, Ian Jackson e il maintainer del pacchetto systemd Tollef Fog Heen rassegnano le dimissioni dai loro ruoli. Hanno giustificato la loro decisione sulla mailing list pubblica di Debian e su blog personali, adducendola allo straordinario livello di stress riguardo le disputa dell'integrazione in Debian di systemd, rendendo difficile lavorare con serenità al suo mantenimento. ● Dicembre 2014: Un fork di Debian, chiamato “Devuan”, è stato annunciato da un gruppo di persone che si fanno chiamare “Veteran Unix Admins”. L'intento è quello di fornire una variante di Debian senza systemd installato di default.
  • 15. 11/06/2015 Systemd Attuale adozione Distribuzione Repository Predefinito Dal Arch Linux Gen 2012 Si Ott 2012 CoreOS Lug 2013 Si Ott 2013 Debian Apr 2012 Debian 8 Aprile 2015 Fedora Mag 2011 Si Mag 2011 Gentoo 2011 No Mageia Mag 2012 Si Mag 2012 OpenSuse Mar 2011 Si Set 2012 RHEL Giu 2014 Si Giu 2014 SUSE ES 2014 si Ott 2014 Tizen 2012 Si 2012 Ubuntu Apr 2013 Pianificato
  • 16. 11/06/2015 Systemd Perchè Systemd (1) ● Problemi di performance (serializzazione dell'avvio dei processi) ● Avvio di tutti i processi (anche se già attivi, o anche se non necessari) ● Dipendenze (es. rete non configurata, avvio di demone di rete) e successiva serializzazione (Upstart) ● Complessità direttamente proporzionale alla flessibilità (scripts) ● Creazione di socket per IPC
  • 17. 11/06/2015 Systemd Perchè Systemd (2) ● Socket e D-Bus activation, avvio servizi on-demand ● Parallelizzazione aggressiva ● Esecuzione asincrona rispetto alla disponibilità delle risorse ● Logica transazionale di controllo dei servizi e relative dipendenze ● Snapshotting & restoring ● Approccio utilizzato da superdaemon e launchd (OS-X) ● Uso estensivo dei cgroups
  • 18. 11/06/2015 Systemd Componenti ● Demoni ● Unit ● Target ● Sistema di log ● Strumenti accessori
  • 19. 11/06/2015 Systemd Demoni ● systemd ● systemd –user ● consoled: supporto per virtual terminal in userspace ● journald: logger degli eventi, append only, binario. ● logind: gestione dei login (avvio di unit specifiche per l'utenza). Integrato nei login manager. Sostituisce ConsoleKit ● networkd: gestione della configurazione di rete ● timedated: gestione dell'ora di sistema, timezone. Accessibile tramite D-Bus ● udevd: gestione dei device (/dev), gestione dei firmware. Integrato in systemd dall'aprile 2012.
  • 20. 11/06/2015 Systemd Unit ● Configurazione di: – Service – Device – Mount – Automount – Swap – Target – Path – Timer – Snapshot – Slice – Scope
  • 21. 11/06/2015 Systemd Unit (2) ● Supporta sintassi con specifier ● Configurazione di un servizio, device, partizione, filesystem, path, timer etc etc controllati e supervisionati da Systemd ● Estensione uguale alla tipologia di contenuto, ma sono sempre Unit ● systemd-unit(1)
  • 22. 11/06/2015 Systemd Target ● Unit con estensione .target ● Raggruppamento di altre unit (cfr. runlevel) ● Fissano punti di sincronizzazione ● Vengono forniti target di compatibilità per i runlevel, cosi' come tool di supporto tipo telinit
  • 23. 11/06/2015 Systemd Sistema di log ● systemd-journald.service(8) ● Demone di logging, riceve dati via: – syslog(3) – Api nativa – Messaggi del kernel – stdout/stderr di service controllati – Aggiunge metadati
  • 24. 11/06/2015 Systemd Sistema di log ● Log BINARIO ● Formato ancora incerto ● Messaggi fino a 2^64-1 B ● Dati volatili o meno, a seconda della configurazione ● Possibilità di interrogazione strutturate ● Log multipli per utente, personalizzati
  • 25. 11/06/2015 Systemd Strumenti accessori ● systemctl: controllo di systemd e del service manager ● journalctl: interrogazione del log di sistema ● loginctl: controllo del login manager
  • 26. 11/06/2015 Systemd Alternative Rimpiazzi, fork e alternative a systemd, che garantiscono (o tentano di) fornire compatibilità verso le applicazioni. ● uselessd ● eudev ● systembsd (per sistemi BSD) Altra alternativa: non usarlo (il bello del software libero!)
  • 27. 11/06/2015 Systemd Critiche (in ordine sparso) ● Contro la filosofia Unix “un compito solo e fallo bene” ● Log in formato binario ● Solo Linux ● Single Point of Failure ad alta complessità ● Glibc ● Interazione con upstream (problema diffuso)
  • 28. 11/06/2015 Systemd Cosa mi piace ● Processo di standardizzazione (che in generale, fa bene alla salute) ● Quindi, compatibilità tra distribuzioni che lo adottano (write once , run everywhere!) ● Possibilità di personalizzazioni per l'utente non privilegiato ● Query strutturate sui log ● Uso dei cgroups
  • 29. 11/06/2015 Systemd Cheat sheet SysV SystemD Descrizione service foobar start systemctl start goober Avvia un servizio service goober stop systemctl stop goober Termina un servizio service goober restart systemctl restart goober Riavvia un servizio service goober reload systemctl reload goober Se supportato, ricarica il file di configurazione senza interruzione service goober condrestart systemctl condrestart goober Riavvia un servizio se già avviato service goober status systemctl status goober Mostra se il servizio è già avviato o meno chkconfig goober on systemctl enable goober Abilita il servizio al prossimo avvio chkconfig goober off systemctl disable goober Disabilita il servizio al prossimo riavvio chkconfig goober systemctl is-enabled goober Mostra se configurato per l'avvio
  • 30. 11/06/2015 Systemd systemctl Comando Alias Significato systemctl default systemctl isolate default.target Modalità predefinita systemctl rescue systemctl isolate rescue.target Entra in modalità rescue systemctl emergency systemctl isolate emergency.target Modalità emergenza (init 1) systemctl halt systemctl start halt.target --irreversible Shutdown della macchina, inviando messaggio agli utenti. systemctl poweroff systemctl start poweroff.target --irreversible Shutdown e spegnimento della macchina systemctl reboot systemctl start reboot.target --irreversible Riavvio della macchina systemctl suspend Trigger di suspend.target Suspend to RAM systemctl hibernate Trigger di hibernate.target Ibernazione
  • 31. 11/06/2015 Systemd journalctl Opzione Significato -b N Limita i risultati a partire dal Nesimo riavvio -e Si porta direttamente alla fine del log -f Resta agganciato al terminal per mostrare nuove voci registrate (tail -f ) -k Solo messaggi del kernel -p prio Solo i messaggi a partire dalla priorità indicata (0->7) -u unit Solo i messaggi relativi alla unità indicata --since=data Solo i messaggi a partire dalla data fornita (in formato date)
  • 32. 11/06/2015 Systemd Extras ● systemd-bootchart(1) ● systemd-analyze ● systemd-nspawn ● systemd-cgtop ● systemd-machined
  • 33. 11/06/2015 Systemd Riferimenti ● www.freedesktop.org/wiki/Software/systemd/ ● https://wiki.debian.org/systemd ● http://people.truelite.it/~cgabriel/systemd-haiku/