Ero sivun ”Init” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
(Lisätty linkki systemd:hen.)
(Ajantasaistettu artikkelia)
Rivi 3: Rivi 3:
==Perinteiset initit==
==Perinteiset initit==


Linux-järjestelmissä on perinteisesti ollut käytössä kahden tyyppisiä init-ohjelmia, [[wikipedia:en:System V|System V Unixin]] ([[sysvinit]]) ja [[wikipedia:fi:BSD|BSD-Unixin]] initin toimintaa jäljitteleviä. Lähes kaikki [[jakelu]]t käyttävät nykyisin System V -tyylistä initiä poikkeuksena esimerkiksi [[Slackware]] ja [[Arch Linux]] jotka käyttävät [[BSD-init]]iä.  
Linux-järjestelmissä on perinteisesti ollut käytössä kahden tyyppisiä init-ohjelmia, [[wikipedia:en:System V|System V Unixin]] ([[sysvinit]]) ja [[wikipedia:fi:BSD|BSD-Unixin]] initin toimintaa jäljitteleviä. Aikanaan lähes kaikki [[jakelu]]t käyttivät System V -tyylistä initiä poikkeuksena esimerkiksi [[Slackware]] ja [[Arch Linux]] jotka käyttivät [[BSD-init]]iä.  


System V -initin toiminta pohjautuu ns. [[ajotaso]]ihin (''runlevel''), joiden avulla määritellään järjestelmän eri tilojen (esim. monen käyttäjän tekstipohjainen, monen käyttäjän graafinen, yhden käyttäjän tila sekä uudelleenkäynnistys ja sulkeminen) yhteydessä käynnistettävät ja suljettavat prosessit. Käytännössä nämä määritellään yleensä /etc/rc?.d-hakemistojen alle sijoitettavilla [[symbolinen linkki|symlinkeillä]]. BSD-init taas pohjautuu /etc-hakemiston alle sijoitettaviin rc-[[wikipedia:fi:skripti|skripteihin]]. BSD-initin valttina on nopeus ja yksinkertaisuus.
System V -initin toiminta pohjautuu ns. [[ajotaso]]ihin (''runlevel''), joiden avulla määritellään järjestelmän eri tilojen (esim. monen käyttäjän tekstipohjainen, monen käyttäjän graafinen, yhden käyttäjän tila sekä uudelleenkäynnistys ja sulkeminen) yhteydessä käynnistettävät ja suljettavat prosessit. Käytännössä nämä määritellään yleensä /etc/rc?.d-hakemistojen alle sijoitettavilla [[symbolinen linkki|symlinkeillä]]. BSD-init taas pohjautuu /etc-hakemiston alle sijoitettaviin rc-[[wikipedia:fi:skripti|skripteihin]]. BSD-initin valttina on nopeus ja yksinkertaisuus.


==Uusia init-toteutuksia==
==Uudempia init-toteutuksia==


On myös olemassa uudempia initejä kuten [[Initng]] sekä [[Upstart]], jotka pohjautuvat järjestelmän palveluiden käynnistämiseen rinnakkain. Rinnakkain käynnistäminen nopeuttaa jossain määrin käynnistysprosessia, kun esimerkiksi [[DHCP]]-palvelimelta vastausta odotellessa järjestelmän resursseja voidaan käyttää jonkin muun palvelun käynnistämiseen.  
On myös olemassa uudempia initejä kuten [[Initng]] sekä [[Upstart]], jotka pohjautuvat järjestelmän palveluiden käynnistämiseen rinnakkain. Rinnakkain käynnistäminen nopeuttaa jossain määrin käynnistysprosessia, kun esimerkiksi [[DHCP]]-palvelimelta vastausta odotellessa järjestelmän resursseja voidaan käyttää jonkin muun palvelun käynnistämiseen.  
Rivi 14: Rivi 14:


Initng ei ole toistaiseksi saavuttanut kovin suurta suosiota. Upstart on käytössä [[Fedora]]ssa ja [[Ubuntu]]ssa. Näiden lisäksi on olemassa myös eräitä vähemmän tunnettuja initejä, kuten [[runit]], [[eINIT]] ja [[minit]] (kevyt init).
Initng ei ole toistaiseksi saavuttanut kovin suurta suosiota. Upstart on käytössä [[Fedora]]ssa ja [[Ubuntu]]ssa. Näiden lisäksi on olemassa myös eräitä vähemmän tunnettuja initejä, kuten [[runit]], [[eINIT]] ja [[minit]] (kevyt init).
== Nykyinen init-järjestelmä ==
Nykyisin ylivoimaisesti suosituin init-järjestelmä on [[Systemd]]. Siihen on lisätty komentojen ajastusominaisuuksia, jotka Upstartista puuttuivat. Myös käynnistettyjen palveluiden lokitiedostot tallentaa nykyään Systemd:n alainen journalointi.
Systemd onkin käytössä lähes kaikissa tunnetuimmissa Linux-jakeluissa, ja luultavimmin järjestelmien ylläpitäjänä törmääkin juuri siihen. Kuitenkin joitain muita Init-järjestelmiä on, tunnetuinpana näistä Gentoossa käytössä oleva [[OpenRC]].


==Käyttö==
==Käyttö==

Versio 5. tammikuuta 2019 kello 17.16

Init on Unix-järjestelmissä ohjelma, jonka tehtävänä on kaikkien muiden ohjelmien (prosessien) käynnistäminen. Tyypillisesti järjestelmän ydin käynnistää init-ohjelman ensimmäisenä ulkoisena prosessina (PID 1). Nykyään tässä artikkelissa kuvatut init-järjestelmät on useimmissa Linux-jakeluissa korvannut systemd.

Perinteiset initit

Linux-järjestelmissä on perinteisesti ollut käytössä kahden tyyppisiä init-ohjelmia, System V Unixin (sysvinit) ja BSD-Unixin initin toimintaa jäljitteleviä. Aikanaan lähes kaikki jakelut käyttivät System V -tyylistä initiä poikkeuksena esimerkiksi Slackware ja Arch Linux jotka käyttivät BSD-initiä.

System V -initin toiminta pohjautuu ns. ajotasoihin (runlevel), joiden avulla määritellään järjestelmän eri tilojen (esim. monen käyttäjän tekstipohjainen, monen käyttäjän graafinen, yhden käyttäjän tila sekä uudelleenkäynnistys ja sulkeminen) yhteydessä käynnistettävät ja suljettavat prosessit. Käytännössä nämä määritellään yleensä /etc/rc?.d-hakemistojen alle sijoitettavilla symlinkeillä. BSD-init taas pohjautuu /etc-hakemiston alle sijoitettaviin rc-skripteihin. BSD-initin valttina on nopeus ja yksinkertaisuus.

Uudempia init-toteutuksia

On myös olemassa uudempia initejä kuten Initng sekä Upstart, jotka pohjautuvat järjestelmän palveluiden käynnistämiseen rinnakkain. Rinnakkain käynnistäminen nopeuttaa jossain määrin käynnistysprosessia, kun esimerkiksi DHCP-palvelimelta vastausta odotellessa järjestelmän resursseja voidaan käyttää jonkin muun palvelun käynnistämiseen.

Upstartiin sisältyy perinteisten init-ominaisuuksien lisäksi mahdollisuus hallita palveluiden käynnistämistä joustavasti erilaisten järjestelmätapahtumien pohjalta. Siihen on suunnitteilla myös komentojen ajastusominaisuuksia, jotka korvaisivat perinteiset at:n, cronin ja anacronin.

Initng ei ole toistaiseksi saavuttanut kovin suurta suosiota. Upstart on käytössä Fedorassa ja Ubuntussa. Näiden lisäksi on olemassa myös eräitä vähemmän tunnettuja initejä, kuten runit, eINIT ja minit (kevyt init).

Nykyinen init-järjestelmä

Nykyisin ylivoimaisesti suosituin init-järjestelmä on Systemd. Siihen on lisätty komentojen ajastusominaisuuksia, jotka Upstartista puuttuivat. Myös käynnistettyjen palveluiden lokitiedostot tallentaa nykyään Systemd:n alainen journalointi.

Systemd onkin käytössä lähes kaikissa tunnetuimmissa Linux-jakeluissa, ja luultavimmin järjestelmien ylläpitäjänä törmääkin juuri siihen. Kuitenkin joitain muita Init-järjestelmiä on, tunnetuinpana näistä Gentoossa käytössä oleva OpenRC.

Käyttö

Esimerkiksi käynnistyslataimessa voidaan ytimen parametrilla init määrittää oletuksesta poikkeava init-ohjelma. Hyvin yleinen käyttökohde tälle on järjestelmän käynnistäminen vikatilanteessa suoraan root-komentotulkkiin. Esimerkiksi parametrilla

init=/bin/bash

voitaisiin järjestelmä määrittää käynnistymään suoraan Bash-komentotulkkiin ilman varsinaisen initin lataamista.

Muita ytimelle annettavia parametreja ovat mm.

S

joka käynnistää initin yhden käyttäjän tilassa sekä

rdinit=<polku initrd:llä initiin>

joka ajaa initrd:n initin ohjelman /init sijaan.

Katso myös