Red Hat (Lennart Poettering, Kay Sievers, Harald Hoyer, Daniel Mack, Tom Gundersen, David Herrmann) 345 autori diferiți în 2018 și 1317 autori diferiți în total[2]
Versiune inițială
martie 30, 2010; acum 14 ani, 9 luni și 9 zile (2010-03-30)
systemd este un daemon de inițializare și un manager de sistem pentru distribuții Linux. Înlocuiește init SysV și Upstart, dar este compatibil cu scripturile de pornire SysV.[4]Proiectul a fost lansat de Lennart Poettering și Kay Sievers în 2010 inspirat de launchd al MacOS și introdus de Red Hat în Fedora (noiembrie 2010) și apoi adoptat ca un nou standard în numeroase distribuții majore Linux.[5]
Similar cu init, systemd este părintele tuturor celorlalte procese în mod direct sau indirect și este primul proces care începe la pornire, de aceea i se atribuie de obicei PID 1. Este un proces de fundal care este conceput pentru a porni procesele în paralel, reducând astfel timpul de pornire și suprasarcina calculatorului.[6] systemd este și o suită de programe care oferă un spectru de componente pentru sisteme de operare Linux. Gestionează nu numai daemonii și procesele dintr-un sistem Linux, ci și diverse resurse, cum ar fi dispozitive, socket-uri și puncte de încărcare. [7]
starea systemd poate fi păstrată pentru a fi apelată mai târziu în viitor
conectarea utilizatorilor gestionată de systemd-logind
integrare mai bună cu Gnome pentru interoperabilitate
oferă un mod unic și centralizat de a gestiona procesul de inițiere
începe și oprește procesele și serviciile, în timp ce ține evidența dependențelor. Poate începe un proces ca răspuns la cerința de dependență a altui proces
poate porni când sistemul este activat ca răspuns la anumite evenimente de declanșare, cum ar fi atunci când un dispozitiv este conectat
spre deosebire de SysV init, systemd poate gestiona serviciile care rulează fără a fi nevoie să treacă prin lungul proces de inițializare a daemonilor
recunoaște și urmărește toate procesele, inclusiv PID-urile, iar obținerea de informații despre procese este mult mai simplă pentru administratorii de sistem
acceptă containere care sunt practic medii de servicii izolate fără cerință de virtualizare. [8]
Arhitectură
Systemd este controlat de fișiere text. În centrul sistemului systemd sunt fișierele de configurare care sunt fișiere text simple codificate unitar.
.automount: configurează un punct de montare care va fi montat automat.
.device: unități pentru comandarea, montarea și accesarea dispozitivelor. De asemenea descrie un dispozitiv care a fost desemnat ca având nevoie de management systemd de către udev sau sistemul de fișiere sysfs.
.mount: responsabil pentru montarea sistemelor de fișiere
.path: controlează ierarhia sistemului de fișiere.
.scope: unități create automat de systemd din informațiile primite de la interfețele sale de magistrală. Acestea sunt folosite pentru a gestiona seturi de procese de sistem care sunt create extern.
.service: lansarea serviciilor, acceptă, de asemenea, apelarea interpreților pentru executarea scripturilor utilizatorului
.slice: responsabil pentru crearea containerului cgroups.
.snapshot: unitate creată automat de către comanda systemctl snapshot. Permite reconstruirea stării curente a sistemului după efectuarea modificărilor.
.socket: oferă servicii cu suport pentru mecanismul de activare bazată pe socket. Acestea au întotdeauna asociat un fișier .service care va fi pornit atunci când se vede activitatea pe socket-ul pe care îl definește această unitate.
.swap: descrie spațiul de schimb de pe sistem. Numele acestor unități trebuie să reflecte dispozitivul sau calea fișierului din spațiu.
.target: folosită pentru a furniza puncte de sincronizare pentru alte unități la pornirea sau schimbarea stărilor. De asemenea, pot fi folosite pentru a aduce sistemul într-o stare nouă.
.timer: definește un cronometru care va fi gestionat de systemd, similar unui job cron pentru activare întârziată sau programată.[9]
Componente auxiliare
Pe lângă scopul său principal de a oferi un sistem alternativ de inițializare Linux, setul de sistem oferă funcționalități suplimentare, inclusiv următoarele componente:
journald: daemon responsabil pentru înregistrarea evenimentelor, cu fișierele binare atașate care servesc doar ca fișiere jurnal.
libudev: bibliotecă standard pentru utilizarea udev, care permite aplicațiilor terțe să interogheze resursele udev.
login: daemon care gestionează login-urile și locurile utilizatorilor într-o varietate de moduri. Este un manager de autentificare integrat care înlocuiește ConsoleKit
networkd: daemon care se ocupă de configurarea interfețelor de rețea
systemd-boot: este un încărcător de pornire, cunoscut anterior ca gummiboot.
timedated: daemon care poate fi folosit pentru a controla setările legate de timp, cum ar fi ora, fusul orar al sistemului sau selecția între UTC și ceasul de fus orar local. Este accesibil prin D-Bus
tmpfiles: utilitar care se ocupă de crearea și curățarea fișierelor și directoarelor temporare. În mod normal, rulează o dată la pornire și apoi la intervale specificate.
udevd: manager de dispozitive pentru nucleul Linux, care se ocupă de directorul /dev și de toate acțiunile din spațiul utilizatorului la adăugarea/eliminarea dispozitivelor, inclusiv încărcarea firmware-ului.
Interfață grafică bazată pe GTK 3 pentru systemd. Oferă o interfață de utilizator simplă pentru gestionarea serviciilor și un agent grafic pentru a solicita parolele utilizatorului.
Systemd-kcm
Oferă o interfață grafică pentru desktop-ul KDE Plasma 5. Se integrează în fereastra de setări a sistemului și permite monitorizarea și controlul unităților de sistem și sesiunile de conectare, precum și editarea grafică a fișierelor de configurare. Systemd-kcm a fost redenumit SystemdGenie și este acum o aplicație autonomă.[10]
Cockpit
Interfață folosită în browser pentru admin, este conceput mai puțin ca un instrument de administrare pentru sistemele locale. Instrumentul oferă acces ușor la systemd de pe servere și permite administratorilor să gestioneze serviciile și procesele sistemului init de la fiecare stație de lucru.[11]
Implementări
Distribuții în care systemd este activat implicit: