systemd
Systemd | |
Inițializare systemd pe Debian | |
Autor inițial | Lennart Poettering[1] |
---|---|
Dezvoltator | 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ă | 30 martie 2010 |
Ultima versiune | 256.7[3] () |
Repo | github.com/systemd/systemd |
Scris în | C |
Sistem de operare | Linux |
Tip | Software sistem Supervizor de procese |
Licență | LGPLv2.1+ |
Prezență online | |
systemd.io | |
Modifică date / text |
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]
Caracteristici
modificare- API mai bun
- posibilitatea de a elimina componentele opționale
- amprente reduse de memorie
- proces de pornire mai simplu
- tehnică îmbunătățită de exprimare a dependențelor
- instrucțiunea de inițializare este scrisă în fișierul de configurare și nu în scriptul shell
- înregistrare evenimente cu journald
- alegerea înregistrării evenimentelor de sistem cu systemd și syslog
- jurnalele sunt stocate într-un fișier binar
- 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ă
modificareSystemd 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
modificarePe 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.
systemd GUI
modificareSunt disponibile câteva interfețe grafice:
Systemd manager
modificareInterfață 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
modificareOferă 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
modificareInterfață 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
modificareDistribuții în care systemd este activat implicit:
- Arch Linux, din octombrie 2012
- CentOS, iulie 2014 (v7.0)
- CoreOS, octombrie 2013 (v94.0.0)
- Debian, aprilie 2015 (v8.0 Jessie)
- Fedora, mai 2011 (v15)
- Linux Mint, august 2018 (LMDE 3)
- Mageia, mai 2012 (v2.0)
- Manjaro, noiembrie 2013
- openSUSE, septembrie 2012 (v12.2)
- Parsix, v7.5r0
- Red Hat Enterprise Linux, iunie 2014 (v7.0)
- Siduction, versiunea 2013.2
- Solus
- SUSE Linux Enterprise Server, octombrie 2014 (v12)
- Ubuntu, aprilie 2015 (v15.04) [12]
În sistemele de operare mobile, systemd este utilizat în Tizen, v2.0 și Sailfish OS.
Note
modificare- ^ „Lennart Poettering on systemd's Tumultuous Ascendancy”. Accesat în .
- ^ „Systemd Hits A High Point For Number Of New Commits & Contributors During 2018 - Phoronix”.
- ^ Release 256.7 (în engleză), , accesat în
- ^ What is systemd? linode.com, February 10, 2022
- ^ Systemctl - gestionarea serviciilor și unităților Systemd despre-linux.eu, 3 martie 2018
- ^ The Story Behind ‘init’ and ‘systemd’: Why ‘init’ Needed to be Replaced with ‘systemd’ in Linux tecmint.com, January 27, 2017
- ^ Linux Logging with Systemd loggly.com
- ^ Systemd – Ce trebuie să știți[nefuncțională – arhivă] routech.ro, octombrie 7, 2020
- ^ Understanding Systemd Units and Unit Files digitalocean.com, Justin Ellingwood, January 24, 2022
- ^ Graphical interfaces for systemd linux-magazine.com, Erik Bärwaldt
- ^ Cockpit cockpit-project.org
- ^ Linux distros with systemd distrowatch.com