| systemd | |
|---|---|
| Luoja | Lennart Poettering, Kay Sievers |
| Kehityshistoria | |
| Vakaa versio | 259.1 ()[1] |
| Kehitystilanne | aktiivinen |
| Tiedot | |
| Ohjelmistotyyppi | init |
| Alusta | Linux |
| Lisenssi | GNU Lesser General Public License, versio 2.1 tai myöhempi |
| Aiheesta muualla | |
| Verkkosivusto | |
| Versiohallinta | |
| Infobox OK | |
systemd on suosittuLinux-käyttöjärjestelmässä käytettyinit-ohjelman korvaaja. Muitakin init-ohjelman korvaajia on käytössä.[2] Systemd käynnistää tärkeimmät ohjelmat sekä hoitaa järjestelmän lokitietojen keruun,cron-tyyppisen tehtävien ajoituksen sekä useita muita tehtäviä. Se hoitaa esimerkiksi virranhallinnan, laitteistohallinnan, liittää levyosiot, huolehtii levyjen salauksesta, verkkoyhteyksien hallinnasta, järjestelmään kirjautumisesta, järjestelmän nimen, kellonajan ja maa-asetusten hallinnasta.[3]systemd:n ovat kehittäneetRed Hatillä Lennart Poettering ja Kay Sievers.[3]
Ohjelma on ensimmäinenprosessi, jonkaLinux-ydin käynnistää tietokoneen käynnistyessä.[4] Eräitä kehityskohteita aiempiin ratkaisuihin olivat käynnistymisnopeuden parantaminen sekä laitteiston ja ohjelmiston muutoksien käsittely käynnissä olevassa järjestelmässä.[5] systemd korvaa perinteiset Unix-tyyliset suoritustasot (runlevel) omalla ratkaisullaan, mutta tarjoaa yhteensopivuuden.[6]
Tyypillisesti Linuxilla käyttöjärjestelmän eri palvelut ajetaan eri käyttäjätunnuksilla, mutta palveluille voidaan asettaa lisää rajoitteita tarpeiden mukaan. Systemd käyttää käyttöjärjestelmän ytimen ominaisuuksia palveluiden hallintaan.[7] Systemd sisältää useita konfiguroitavia asetuksia käynnistettävien palveluiden suorittamiseen rajatuilla oikeuksilla. Hiekkalaatikossa ajettaville palveluille voi asettaa tietyt hakemistot vain luettaviksi, esimerkiksi palvelun suorittamiseen käytettävän käyttäjätunnuksen kotihakemiston ja väliaikaisille tiedostoille tarkoitetut hakemistot voivat olla yksityisiä. Tietyt palveluiden hallintaan käytettävät ominaisuudet ovat käytettävissä vain alustoilla joissa on mukana niille tuki, esimerkiksiseccomp,cgroups jaLinux-nimiavaruuksien tuki.[8] Suoritettavat palvelut ja toiminnot konfiguroidaan unit-tiedostoissa.[9] Suoritettavien palveluiden tilaa voi tarkastellasystemd-analyze-komennon avulla.[10]
Systemd sisältää toiminnotvirtuaalikoneiden jasäiliöiden käynnistämiseen.[11][12]
Systemd sisältää mahdollisuuden käynnistää palveluita käyttäjäkohtaisesti sisäänkirjautuneiden käyttäjien yhteydessä, ja kyseiset palvelut voidaan sammuttaa kun käyttäjä kirjautuu ulos. Käyttäjäkohtaiset palvelut ovat jaettuja käyttäjäkohtaisesti mikäli käyttäjällä on useita rinnakkaisia istuntoja samaan aikaan. Kun useampi käyttäjä on kirjautunut sisään samaan aikaan systemd voi suorittaa käyttäjälle määriteltyjä palveluita.[13][14]
systemd-logind on käyttäjien sisäänkirjautumisien ja istuntojen hallintaan tarkoitettu palvelu, joka tukee istuntojen vaihtoa ja useaa samanaikaista käyttäjää (monipaikkainen istunto,multiseat).[15]
Systemd:n käynnistämiä palveluita muokataansystemctl-ohjelmalla.[16]systemd:n hallinta tapahtuuD-Bus-väylän kautta ja systemd myös julkaisee kaikkien palvelujensa tilan väylällä.[17]systemd:n lokeja puolestaan tarkastellaanjournalctl-komennolla.[18]
systemd-resolved onnimipalvelun käsittelyyn tarkoitettu paikallinen palvelu, joka tarjoaa tietokoneen sovelluksille nimipalvelun käsittelyn. Palvelu tukee nimipalvelutietojen välimuistia ja siinä on kokeellinen tukiDNSSEC jaDNS over TLS -varmistuksille. Nimipalvelutuki on saatavilla kolmen rajapinnan kautta: D-Bus, natiiviohjelmointirajapinta (Varlink), jaglibc:n tukemaName Service Switch (NSS). Lisäksi se kuuntelee paikallisesti nimipalvelulle tarkoitetussaportissa jotta ohjelmat, jotka eivät käytä näitä rajapintoja voivat käyttää palvelua kuten muuta DNS-palvelua. systemd:n nimipalvelun toimintaa tarkastellaanresolvectl-komennolla.[19][20]
Aiemmin Linux-alustalla käytettiinSystem V:n tyylistäSysVInit:iä jaBSD:n initiä, joiden jälkeen tulivatservice jachkconfig -ohjelmat.[21] Myöhemmin tuliUpstart, jonka systemd on korvannut useissa paikoissa.[21] Red Hat halusi pitääCanonicalin ylläpitämän Upstartin, muttaDebian-projektin siirryttyä käyttämään systemd:tä kiinnostus Upstartiin päättyi.[22]systemd:n käyttö tuli pakolliseksiGNOME:n version 3.8 myötä.[3]
Ohjelmaa on kritisoitu ja boikotoitu useita kertoja. Kriitikkojen mielestä systemd "laittaa kaikki munat samaan koriin". Ohjelman kaatuminen tietää suurella todennäköisyydellä koko järjestelmän kaatumista ja sen päivittämiseksi koko järjestelmä täytyy käynnistää uudelleen. systemd:n lokitiedostot on tallennettu sen omassa binäärimuodossa, eikä niitä voi lukea tavanomaisilla tekstitiedostoja käsittelevillä ohjelmilla.[3]Linus Torvalds ei vastusta systemd:n käyttöä, mutta on kertonut eräiden kehittäjien olevan liian välinpitämättömiä bugeista.[3][23] Ohjelman mukana ollutudev-ohjelmisto on poistettu systemd-projektista koskafirmwaren lataaminen on ytimen vastuulla.[24]Theodore Ts’o on kritisoinut tapaa, jolla järjestelmään vaikuttavia muutoksia tehdään välittämättä tietyn käyttökohteen ulkopuolisista.[3]