Cosa distingue systemd dagli altri sistemi init?


23

Non è del tutto ufficiale, ma sembra che systemd stia arrivando su Debian e dopo aver letto alcune accese discussioni sulla mailing list su quella decisione, sono curioso della natura polarizzante di systemd tra gli utenti di Linux. Gestisco i sistemi Debian (sysvinit) e Gentoo (OpenRC) e non so nulla di concreto su systemd, anche se sembra che stia arrivando sulla mia strada.

Ho visto questa domanda correlata che chiedeva vantaggi e svantaggi di systemd vs upstart, ma sono passati 3 anni da quando è stata pubblicata la domanda e sono sicuro che le cose sono cambiate in quel momento.

La mia domanda è: come si confronta systemd con altri sistemi init?

  • Cosa lo distingue: cosa può fare ciò che gli altri sistemi init non possono fare?
  • C'è qualcosa da perdere nel passare ad esso da un altro sistema init?
  • In che modo l'amministrazione di systemd si confronta con gli altri?

1
Con Gentoo si può avere un mani su esperienza dei systemd e lo hanno in esecuzione abbastanza facilmente!

Una cosa a cui sono particolarmente interessato sono le sessioni utente. Funzionano abbastanza bene in questo momento, con alcune notevoli eccezioni. Questo è qualcosa che penso sia stato davvero trascurato dalla maggior parte degli altri sistemi init.
Chris Down,

@ChrisDown, l'avvio / arresto del sistema e la gestione dei suoi servizi sono funzionalità fondamentali, che dovrebbero essere strettamente integrate (quindi "tentare la panacea" è una cattiva caratterizzazione). Inoltre, non è solo Lennart da solo, sono le persone di tutte le distribuzioni che ci stanno lavorando.
vonbrand,

@ Chris, per favore, non essere ridicolo. systemdora non include un server Web né lo farà mai, né sta leggendo QR nella roadmap. Per favore, controlla di cosa si tratta, considera che mentre parliamo di tutte le distribuzioni importanti (tranne Ubuntu per ora) usalo come predefinito (le persone open source tendono ad essere rabbiosamente indipendenti, nessuna "pressione" li farà fare questo se non lo fanno non credo sia la migliore alternativa).
vonbrand,

Oggi arriva anche RHEL7 systemd. Mi chiedo quando diavolo Py3kdiventerà l'interprete Python predefinito nelle distribuzioni.
yegle,

Risposte:


26

Probabilmente tutto ciò che vuoi sapere è qui nelle pagine " Debate Init System To Use " che il progetto Debian ha messo insieme per decidere quale initsystem scegliere. All'interno di quella pagina è presente un collegamento separato a ciascuna delle scelte di initsystems.

Per un primer su Systemd, questa pagina contiene praticamente tutto ciò che occorre sapere per iniziare, RHEL7: Come iniziare con Systemd .

Risorse aggiuntive che ho trovato utili per comprendere meglio le 2 scelte principali Avrei anche letto le pagine di Wikipedia sulle rispettive tecnologie:

Il progetto Gentoo mantiene anche un bel confronto di alcune delle caratteristiche chiave tra i vari sistemi:

La mia opinione sulle tue domande

Q # 1: Come si confronta systemd con altri sistemi init?

Questa è una domanda molto difficile da affrontare nello spazio di una risposta SE, quindi preferirei rinviare alle varie fonti a cui ho fatto riferimento in precedenza. Dirò questo però. Nel leggere gran parte degli articoli sulle systemdalternative sta cercando di affrontare molti aspetti di ciò che era carente nei precedenti strumenti usati per avviare servizi su sistemi Linux. Ha un design molto ben congegnato e sta cercando di fornirlo in modo molto modulare.

componenti di sistema

   ss di componenti systemd

Quindi, IMO, direi che confronta molto favorevolmente sia in termini di sforzo nella sua progettazione, esecuzione di tale progettazione, sia nell'adozione da parte di diverse distro Linux più grandi.

D # 2: Cosa lo distingue - cosa può fare che gli altri sistemi init non possono fare?

Sono molte le cose che sytemdpossono fare che altri sistemi non possono fare. Probabilmente 3 delle sue caratteristiche più forti sono:

  1. Registrazione
  2. Limitazione delle risorse
  3. Trattare con demoni che biforcano

1. registrazione

Sul fronte della registrazione, systemdha istituito un nuovo sistema di registrazione chiamato "Journal", il servizio è chiamato systemd-journald.service. Questo è il suo argomento, puoi leggere di più qui in questo articolo intitolato: Presentazione del diario . Ecco un esempio di un utente, "harald", che accede.

_SERVICE=systemd-logind.service
MESSAGE=User harald logged in
MESSAGE_ID=422bc3d271414bc8bc9570f222f24a9
_EXE=/lib/systemd/systemd-logind
_COMM=systemd-logind
_CMDLINE=/lib/systemd/systemd-logind
_PID=4711
_UID=0
_GID=0
_SYSTEMD_CGROUP=/system/systemd-logind.service
_CGROUPS=cpu:/system/systemd-logind.service
PRIORITY=6
_BOOT_ID=422bc3d271414bc8bc95870f222f24a9
_MACHINE_ID=c686f3b205dd48e0b43ceb6eda479721
_HOSTNAME=waldi
LOGIN_USER=500

2 e 3. Limitazione delle risorse e demoni che biforcano

systemdutilizza un nuovo approccio qui per utilizzare cgroupssia per contenere che per limitare le risorse tutti i servizi che richiedono il fork o la limitazione dell'accesso alle risorse.

estratto

Systemd ha una soluzione molto intelligente al problema di rintracciare i demoni che si biforcano, che per coincidenza capita di gestire contemporaneamente la limitazione delle risorse. Laddove Upstart utilizza ptrace per osservare il fork, systemd esegue ogni demone in un gruppo di controllo (richiede Linux 2.6.24 o più recente) da cui non può sfuggire con qualsiasi quantità di fork. Ciò consente una facile limitazione delle risorse, sia per i demoni di fork che non, poiché i gruppi di controllo sono stati creati per questo tipo di cose.

Fonte: Daemon Showdown: Upstart vs. Runit vs. Systemd vs. Circus vs. God

D # 3: c'è qualcosa da perdere nel passare ad esso da un altro sistema init?

Probabilmente il più grande avvertimento per passare a systemd su Upstart o sysV init è quello di abbracciare molte nuove complessità. Systemd ha molte parti in movimento ed è estremamente ricco di funzionalità e con quelle funzionalità aggiuntive probabilmente trascorrerai un bel po 'di tempo a capire come funziona tutto.

D # 4: In che modo la gestione di systemd si confronta con le altre?

Come indicato nella mia risposta precedente a Q # 3. Ripeto di nuovo qui. Laddove sysV init era abbastanza banale per imparare a gestire e navigare in poche ore o giorni, Upstart probabilmente impiegherà una settimana o più per aggiornarsi, mentre systemd probabilmente impiegherà molto più tempo, sto prevedendo di prenderne diversi settimane per acquisire abbastanza conoscenza superficiale al riguardo, dove sarò in grado sia di produrre i miei .servicefile, sia di interrompere / avviare i servizi con la stessa facilità di cui ora mi diverto con sysV init.

Riferimenti


@Caleb, il problema è molto complesso e, soprattutto, un problema delicato per molte persone. Credo che la risposta sia OK così com'è-
vonbrand,

@Caleb - sì, sei il benvenuto, grazie per il feedback.
slm
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.