Movatterモバイル変換


[0]ホーム

URL:


Siirry sisältöön
Wikipedia
Haku

init

Wikipediasta
(Ohjattu sivultaSysVInit)
Prosessien käynnistyminenUbuntussa. Aika etenee vasemmalta oikealle. Ensimmäisenä käynnistyvä init näkyy ylimpänä.

init onUnixissa jaUnixin kaltaisissa käyttöjärjestelmissä ensimmäinenprosessi, jonka tehtävä on käynnistää muut prosessit ja palveluttietokoneen käynnistyksen yhteydessä. Initin prosessinumero on 1 kaikki muut prosessit ovat siten sen lapsiprosesseja.[1]

Perinteisesti käytössä on ollutUnix System V -tyylisiä (sysvinit) jaBSD-tyylisiä init-ohjelmaa. Perinteisille init-ohjelmille on kehitetty useita korvaajia.[1]

Toiminta

[muokkaa |muokkaa wikitekstiä]

init on ensimmäinen (ja ainoa) prosessi jonka Unixinkäyttöjärjestelmän ydin käynnistää tietokoneen käynnistyksen jälkeen. init myös pysyy käynnissä koko järjestelmän toiminnan ajan. Koska init käynnistyy ensimmäisenä, se saa prosessinumeron 1, ja kaikki myöhemmin käynnistettävät prosessit ovat sen lapsiprosesseja. Unixin toiminnan mukaan prosessit, joiden isäprosessi on kuollut saavat isäprosessikseen prosessin 1, joka on init. Tällä on merkitystä lähinnä Unixin signaalinkäsittelyn kannalta, koska init saa tiedon lapsiprosessiensa lopettamisesta.

Toinen initin tehtävä on käynnistää kaikkidaemonit (palvelinprosessit) koneen käynnistyessä. Näiden käynnistämisessä, ja etenkin niiden konfiguraatiossa on eroja eri käyttöjärjestelmissä.

Perinteiset initit

[muokkaa |muokkaa wikitekstiä]

Varhaiset init-toteutukset ajoivat tiedoston/etc/rc sisältämänkomentosarjan, joka käynnisti tyypillisesti joukongetty-prosesseja käyttäjänterminaaliyhteyksiä varten. 1980-luvulla tapahtui jako perinteisiin BSD-tyylisiin ja uusiin System V -tyylisiin initteihin.[2]

BSD-init

[muokkaa |muokkaa wikitekstiä]

BSD-tyylinen init perustuu/etc-hakemistossa sijaitseviin rc-komentosarjoihin. Aluksi init ajaa pääasiallisen/etc/rc-komentotiedoston[huom 1], joka suorittaa koko käynnistysprosessin. Nykyään se lukee joukon asetustiedostoja (esim./etc/rc.conf jne.) ja suorittaa apukomentosarjoja (esim.rc.*), jotka käynnistävät palvelut. BSD-tyylisen initin etuja on nopeus ja yksinkertaisuus. Haittapuolena on skaalautuvuus sekä virhealttius: Ohjelman lisääminen käynnistyssekvenssiin vaatii käynnistystiedostojen muokkaamista, mikä virheen sattuessa saattaa johtaa koko käynnistysprosessin epäonnistumiseen.[2][3]

SysVInit

[muokkaa |muokkaa wikitekstiä]

AT&T:n vuonna 1983 julkaisema Unix System V toi mukanaan uudistetun initin.System V -tyylinen init perustuu ajotasoihin (runlevel), joita on tyypillisesti kahdeksan: 0–6 sekä S. Kukin ajotaso määrittelee joukon ajettavia prosesseja. Ajotasoista 0 on varattu järjestelmän sammuttamiseen ja 6 uudelleenkäynnistykseen. Tasot S ja 1 ovat ylläpitoon tarkoitettuja yhden käyttäjän tiloja. Loput tasot 2–5 ovat normaaleja monen käyttäjän tiloja, joiden käyttötarkoitus vaihtelee eri käyttöjärjestelmissä ja jakeluissa. EtenkinLinuxissa taso 5 on usein täysigraafinen tilaX:llä ja tasot 3 sekä 2tekstitilojaverkkoyhteydellä sekä ilman verkkoa.[2][4][5]

Asetustiedostossa/etc/inittab[huom 1] on määritelty eri ajotasoilla suoritettavat toimenpiteet sekä oletusajotaso, johon järjestelmä siirtyy käynnistyksen yhteydessä. Käyttäjä voi vaihtaa ajotasoatelinit-komennolla. Normaalisti uudelle ajotasolle siirryttäessä ajetaan komentosarja/etc/init.d/rc[huom 1], joka pysäyttää edellisen ajotason palvelut ja käynnistää uuden tason palvelut. Kullakin palvelulla on hakemistossa/etc/init.d[huom 1] oma komentosarjatiedosto, jota kutsumallarc-skripti (tai käyttäjä) voi käynnistää ja pysäyttää palvelun. Jokaisella ajotasolla lisäksi on oma hakemisto (/etc/rc0.d,/etc/rc1.d, jne.[huom 1]), joka sisältäälinkit tasolla käynnistettävien ja sammutettavien palvelujen/etc/init.d-komentosarjoihin. Ajotason vaihdon yhteydessärc-skripti määrittää ajettavat pysäytys ja käynnistysskriptit näiden linkkien perusteella.[2][3][6]

Uusi sukupolvi

[muokkaa |muokkaa wikitekstiä]

Perinteisille initeille on kehitetty lukuisia nykyaikaisempia korvaajia. Aiemmasta poiketen nämä tukevat tyypillisesti palvelujenrinnakkaista käynnistämistä sekä palvelujen välisiä riippuvuussuhteita ja usein monipuolisempaa prosessien elinkaaren hallintaa. Monet pyrkivät myös korvaamaan tehtävien ajastamiseen käytettyjä työkaluja kutencronin jainetd:n. Mikään näistä ei ole kuitenkaan vielä noussut standardin asemaan SysVInitin tilalle.[2][3]

Seuraavassa on listattu yleisiä uuden sukupolven inittejä:

  • Launchd on ollut käytössäMac OS X:ssä versiosta 10.4 lähtien (vuodesta 2005). Se korvasi aiemmin käytetytmach_initin ja BSD-initin sekä suuren osanSystemStarterin,cronin jaxinetdn toiminnallisuudesta.[7][8]
  • Upstart perustuu riippuvuuksien sijaan tapahtumiin[9]. Upstart on ollut käytössä ainakinUbuntussa (versiosta 6.10 lähtien[10], vuodesta 2006) jaFedorassa (versiosta 9 lähtien[11], vuodesta 2008).
  • systemd onRed Hatin jafreedesktop.org:n ylläpitämä init-prosessi, joka on yhteensopiva sysvinit-skriptien ja -komentojen kanssa ja tarjoaa myös oman konfigurointimahdollisuutensa. Kuten Upstart, systemd voi suorittaa eri toimintoja järjestelmätapahtumien johdosta. systemd on useimmissa Linux-jakeluissa vaihtoehtona tai oletuksena (mm.Fedora jaopenSUSE) käytössä.
    • systemd:n mukana ollutudev-ohjelmisto on poistettu systemd-projektista koskafirmwaren lataaminen on ytimen vastuulla.[12]
  • Service Management Facility, on osaSun Solarista versiosta 10 eteenpäin (vuodesta 2005).[3]
  • Gentoo käyttää OpenRC:tä, jonka käynnistää SysVInit-järjestelmä. OpenRC aloittaa muutpalveluprosessit. OpenRC tukee rinnakkaisuutta ja riippuvuuksia.[13]
  • Initng pyrkii nopeuttamaan käynnistystä rinnakkaisuudella.[14]
  • Runit[15]
  • S6[16]
  • GNU Shepherd, jota GNU Guix System käyttää oletuksena[17]

Muita vaihtoehtoja ovat esimerkiksineed (SysVInitin laajennos) jaminit.

Huomautukset

[muokkaa |muokkaa wikitekstiä]
  1. abcdeTyypillinen sijainti. Tiedostojen sijainnit saattavat vaihdella eri järjestelmissä.

Lähteet

[muokkaa |muokkaa wikitekstiä]
  1. abInit linux.fi. Viitattu 22.7.2009.
  2. abcdeRick Moen: Understanding Init and Alternatives linuxmafia.com. Viitattu 28.7.2009. (englanniksi)
  3. abcdYvan Royon, Stéphane Frénot: A Survey of Unix Init Schemes (PDF) 20.6.2007. INRIA. Viitattu 9.8.2009. (englanniksi)
  4. Mayank Sarup: A look at System V initialization 14.1.2001. FreeOS.com. Viitattu 9.8.2009. (englanniksi)
  5. Phil Dibowitz: Run Levels for Various Unices phildev.net. Viitattu 9.8.2009. (englanniksi)
  6. käynnistysprosessi GNU/Linuxin käynnistysprosessi linux.fi. Viitattu 9.8.2009.[vanhentunut linkki]
  7. Getting Started with launchd Apple Developer Connection. 22.8.2005. Viitattu 9.8.2009. (englanniksi)
  8. Rich Rosen, Brian Jepson: ”Chapter 4: Startup”, Mac OS X for Unix Geeks, s. 69–71. (4. painos) O'Reilly, 2008. ISBN 9780596520625 (englanniksi)
  9. upstart - event-based init daemon upstart.ubuntu.com. Arkistoitu 30.12.2018. Viitattu 9.8.2009. (englanniksi)
  10. Ubuntu 6.10 Release Notes ubuntu.com. 26.10.2006. Arkistoitu 16.3.2007. Viitattu 23.5.2009. (englanniksi)
  11. Fedora 9:n julkaisutiedote / 17. Järjestelmäpalvelut docs.fedoraproject.org. 16.4.2008. Viitattu 23.5.2009. (englanniksi)[vanhentunut linkki]
  12. Cristian Rodríguez: [systemd-devel [PATCH] Drop the udev firmware loader] lists.freedesktop.org. 29.5.2014. Viitattu 16.6.2019. (englanniksi)
  13. OpenRC - Gentoo Wiki wiki.gentoo.org. 18.10.2024. Viitattu 29.11.2024. (englanniksi)
  14. Initng initng.org. Arkistoitu 11.9.2017. Viitattu 9.8.2009. (englanniksi)
  15. Pape, Gerrit: Runit - kotisivut smarden.org. 29.11.2024. Viitattu 29.11.2024. (englanniksi)
  16. An overview of s6-linux-init skarnet.org. 9.10.2024. Viitattu 29.11.2024. (englanniksi)
  17. GNU Shepherd - kotisivut gnu.org. 29.11.2024. Viitattu 29.11.2024. (englanniksi)

Aiheesta muualla

[muokkaa |muokkaa wikitekstiä]
Noudettu kohteesta ”https://fi.wikipedia.org/w/index.php?title=Init&oldid=23279699#SysVInit
Luokka:
Piilotettu luokka:

[8]ページ先頭

©2009-2026 Movatter.jp