(Translated by https://www.hiragana.jp/)
init - Wikipedia コンテンツにスキップ

init

chūdiăn: フリーbaĭshìdiăn『ウィキペディア(Wikipedia)』

initは、UNIXおよびUnixシステムのプログラムのひとつであり、quánてのプロセスdòngするchíつ。デーモンとしてdòngzuòし、bānPID 1 をされる。ブートローダカーネルdòngし、カーネルがinitをdòngする。daìshoŭduànyòngせずにinitをxuēchúすると、huíのリブートshíにシステムはカーネルパニックxiànnéngxìngがある。

init のnéngBSDSystem Vではきくなるため、ユーザーはfēnのシステムがどちらのバージョンを使shĭっているかをマニュアルで調diaòべるyaòがある。duōくのLinuxディストリビューション使shĭわれていたinitはSystem Vとhuànxìngがある。SlackwareのようなLinuxディストリビューションではBSDのinitを使shĭっていた。Gentoo Linuxなどではのinitを使shĭyòngしていた。ISO/IEC 23360-1:2006のguóguī[1]になったLinux Standard Baseではinitをdìngしている[2]

にもいくつかinitのshèshàngxiànjièduìchŭしたdaìとして、systemdUpstartがあり、Ubuntu[3][4]のLinuxディストリビューションでcaĭyòngしている[5][6]

System Vのinit

[biān]

System Vのinitは、/etc/inittabファイルneì:initdefault:エントリを調diaòべてdìngランレベルがあるかチェックする。dìngのランレベルがないcháng、コンソールduānらかのbiaŏshìがなされるので、ユーザはshoŭでランレベルをしなければならない。

  • diăn: roúruănkuòzhāngxìngがある。
  • qiàndiăn: である。

ランレベル

[biān]

System Vランレベル (runlevel) は、マシンのzhuàngtaìshíxíngするプロセスqúnによってfēnleìしたものである。bānに 0 - 6とSまたはsという8duànjiēのランレベルがある。Sとsはtóngじランレベルのbiémíngである。この8duànjiēのうち、xiàの3つはyuēされたランレベルである。

0. tíngzhĭ (Halt)
1. シングルユーザーモード
6. zaìdòng (Reboot)

これらwaìのランレベルは、システムによってそれぞれweìなる。bānに、/etc/inittabファイルで、ランレベルでをするかをdìngしている。

デフォルトのランレベル

[biān]
OS デフォルトのランレベル
AIX 2
CentOS 3(コンソール/サーバ)または5(グラフィカル/デスクトップ)[7]
Debian 2[8]
Gentoo Linux 3[9]
HP-UX 3(コンソール/サーバ/マルチユーザ)または4(グラフィカル)
macOS 3
Mandriva Linux 3(コンソール/サーバ)または5(グラフィカル/デスクトップ)
Red Hat Linux / Fedora Core 3(コンソール/サーバ)または5(グラフィカル/デスクトップ)[10]
Slackware 3
Solaris 3[11]
SUSE Linux 3(コンソール/サーバ)または5(グラフィカル/デスクトップ)[12]
Ubuntu 2[8]

shàngbiaŏでデフォルトのランレベルを5としているLinuxディストリビューションでは、5というランレベルはマルチユーザーのグラフィカルhuánjìngX Window Systemと、そのshàngディスプレイマネージャdòngされる)である。しかし、Solarisでは、ランレベル5はシャットダウンとdiànyuánオフのdònghuàのためにyuēされている。

xiànzaìのランレベルはxiàのようなコマンドを使shĭって調diaòべることができる。

$ runlevel
$ who -r

tōngcháng、ランレベルはroottelinitコマンドまたはinitコマンドをshíxíngすることでbiàngèngすることができる。デフォルトのランレベルは/etc/inittabファイルの:initdefault:エントリにある。

BSDのinit

[biān]

Berkeley Software Distribution (BSD) のinitは、/etc/rcにあるchūhuàyòngシェルスクリプトshíxíngし、/etc/ttyszhìxiàにあるテキストベースduānyònggettydòngしたり、グラフィックスduānyòngXなどをdòngしたりする。ランレベルというgaìniànく、/etc/rcファイルでinit のdòngzuòjuédìngしている。

  • diăn: shoŭbiàngèngxiūzhèngするのがróngである。
  • qiàndiăn: ブートshíサードパーティーのパッケージのchūhuàスクリプトをshíxíngするyaòがあるchángshàngのスクリプトのいずれかをbiānするyaòがあるが、ちょっとしたjiānweíいでブートnéngzhuàngtaìになってしまう。

BSDのsūnでは、yúntŏngde/etc/rc.localファイルをブートchŭzuìhoùjìnくにshíxíngすることでブートとなるweīxiănxìngらげていた。

NetBSD 1.5ではwánquánにモジュールhuàしたシステムをdaŏし、それがFreeBSD 5.0およびそれjiàngにもzhíされている。このシステムは、/etc/rc.d ディレクトリpeìxiàにあるスクリプトqúnshíxíngするものである。System Vでのスクリプトshíxíngshùnスクリプトのファイルmíngshùnfānだが、BSDではスクリプトファイルにmíngshìdecúnguānshìすタグをzhìいている[13]。スクリプトのshíxíngshùnは、それらタグにづいてrcorderスクリプトがjuédìngする。

initをスキップする

[biān]

initはマシンをshàngげるweífāngではない。zuìjìnブートローダ(たとえばLILOGRUB)では、カーネルがchūhuàzuìhoùdòngするかをzhĭdìngすることができる(dìngzhíはもちろん/sbin/initである)。これは、ブートローダのプロンプトにinit=/foo/barなどとち込むことでshíxiànされる。これはzhíjiēシェルBashzsh)を使shĭいたいcháng便biànnéngである。たとえば、init=/bin/bash使shĭえば、シェルが使shĭえるzhuàngtaìshàngがり、パスワードをするyaòもない。システムguănzhěがこれをānquánでないとpànduànするchángは、ブートローダのパスワードをshèdìngすればよい。

BSDでは、ブートchŭzhōngり込むことができ、boot -sコマンドでシングルユーザーモードでshàngげることができる。このcháng/sbin/initshíxíngされるが、exec()zhĭdìngするプログラムのパスをwénいてくる(デフォルトでは/bin/sh)。

ブートがxíngわれているduān/etc/ttysファイルで "insecure" とされているcháng(システムによってはxiànzaìの "securelevel" もguānする)、initはzuìchūにrootのパスワードをwénいてくる(あるいは、ユーザーがCTRL+Dxiàするとtōngchángのマルチユーザーshàngげにる)。このプログラムがzhōngliaŏさせられたcháng、カーネルはマルチユーザーモードでのzaìshàngげをxíngう。tōngchángdòngzuòzhōngにマルチユーザーモードからシングルユーザーモードへxíngさせようとしたときもtóngyàngのことがきる。

カーネルのブートchŭhoù、initをdòngできないchángはパニックがshēngして、システムはyòngできなくなる。initのパスzhĭdìngfāngオペレーティングシステム (OS) によってなる(NetBSDではboot -a、FreeBSDではinit_pathというローダーbiànshùである)。

initのdaì

[biān]

initにjiaòしてらかのchángsuŏchídaìがいくつもkaīされてきた。

  • GoboLinuxのBootScripts
  • eINIT - initをwánquánzhìhuànえるものであり、feītóngなプロセスkaīshĭchŭzhēng。シェルスクリプトをquán使shĭわないfāngをとることもnéng
  • Initng - initをwánquánzhìhuànえるものであり、feītóngなプロセスkaīshĭchŭzhēng
  • launchdmacOSMac OS X v10.4jiàng)でのプロセスkaīshĭchŭMac OS X v10.3qiánはinitを使shĭyòng)。rc.localはSystemStarterでう。
  • Mudur - PardusというLinuxディストリビューションでcaĭyòngしているPythonshūかれたinitdaìで、feītóngなプロセスdòngnéng[14]
  • OpenRC - Gentoo Linuxのデフォルトのinitシステム
  • Service Management Facilityyīngbăn - Solaris 10からdaŏされたinitのzhìhuàn/zaìshè
  • systemd - Fedora 15からデフォルトで使shĭyòngしているinitのdaì。サービスをbìnglièdòngでき、シェルのオーバーヘッドをjiănしている。
  • Upstart - initをwánquánzhìhuànえるものであり、feītóngなプロセスkaīshĭchŭzhēngUbuntuyuán

jiaŏzhù

[biān]
  1. ^ ISO/IEC 23360-1:2006 Linux Standard Base (LSB) core specification 3.1 Part 1: Generic specification https://www.iso.org/standard/43781.html
  2. ^ Linux Standard Base(LSB) 22.2. Init Script Actions https://refspecs.linuxfoundation.org/lsb.shtml
  3. ^ Know Thy Ubuntu”. Help.ubuntu.com (2009nián8yuè7). 2011nián6yuè13yuèlăn
  4. ^ since we have no /etc/inittab”. Linuxquestions.org (2006nián11yuè30). 2011nián6yuè13yuèlăn
  5. ^ Upstart Plans to Ease Linux Management — Streamlining the init Processes”. Reports. LinuxPlanet (2007nián3yuè8). 2011nián6yuè13yuèlăn
  6. ^ Remnant, Scott James (2006nián8yuè26). “Upstart in Universe”. Netsplit.com. 2011nián6yuè13yuèlăn
  7. ^ SysV Init Runlevels”. 2012nián9yuè22yuèlăn
  8. ^ a b Debian and Ubuntu Linux Run Levels”. Debianadmin.com (2009nián4yuè2). 2011nián6yuè13yuèlăn
  9. ^ Initscripts”. Gentoo Linux Documentation. Gentoo.org (2011nián3yuè2). 2011nián6yuè13yuèlăn
  10. ^ SysV Init Runlevels”. 2012nián9yuè22yuèlăn
  11. ^ Oracle Documentation”. Docs.sun.com (2010nián9yuè7). 2011nián6yuè13yuèlăn
  12. ^ SUSE Documentation: The init Process”. suse.com (2014nián4yuè25). 2014nián5yuè4yuèlăn
  13. ^ Andrew Smallshaw (2009nián12yuè7). “Unix and Linux startup scripts, Part 2”. 2012nián4yuè6yuèlăn
  14. ^ Gürer Özen, Görkem Çetin. “Speeding Up Linux: One Step Further With Pardus Pardus”. Pardus.org.tr. 2011nián6yuè13yuèlăn

guānliánxiàng

[biān]

waìリンク

[biān]