Init

Linux.fista
Versio hetkellä 5. tammikuuta 2007 kello 11.37 – tehnyt Maakuth (keskustelu | muokkaukset) (siirsi sivun ”Peelo” uudelle nimelle ”Init”)
Siirry navigaatioon Siirry hakuun

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).

Linux-järjestelmissä on perinteisesti ollut käytössä kahden tyyppisiä init-ohjelmia, System V Unixin (sysvinit) ja BSD-Unixin initin toimintaa jäljitteleviä. Lähes kaikki jakelut käyttävät nykyisin System V -tyylistä initiä poikkeuksena esimerkiksi Slackware ja Arch Linux jotka käyttävä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 /etc/rc?.d-hakemistojen alle sijoitettavilla symlinkeillä. BSD-init taas pohjautuu /etc-hakemiston alle sijoitettaviin rc-skripteihin. BSD-initin valttina on nopeus ja yksinkertaisuus.

Nykyisin System V -init on alkanut hitautensa ja joustamattomuutensa vuoksi käydä monella tapaa vanhentuneeksi. Tästä syystä on viime aikoina perustettu lukuisia projekteja, joiden tehtävänä on korvaavan järjestelmän kehittäminen. Tunnetuin näistä on Initng, joka pohjautuu useiden prosessien käynnistämiseen samanaikaisesti perinteisen yksi prosessi kerrallaan -tavan sijaan. Joissain tapauksissa Initng on jopa puolittanut järjestelmän käynnistysajan verrattuna vanhanmalliseen initiin.

Käytettävän init-ohjelman voi itse vaihtaa ytimen init-parametrilla. Esimerkiksi parametrilla init=/bin/zsh ydin korvaisi normaalin init-ohjelman Zsh-komentotulkilla.