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 systemd
alternative 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
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 sytemd
possono fare che altri sistemi non possono fare. Probabilmente 3 delle sue caratteristiche più forti sono:
- Registrazione
- Limitazione delle risorse
- Trattare con demoni che biforcano
1. registrazione
Sul fronte della registrazione, systemd
ha 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
systemd
utilizza un nuovo approccio qui per utilizzare cgroups
sia 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 .service
file, sia di interrompere / avviare i servizi con la stessa facilità di cui ora mi diverto con sysV init.
Riferimenti