Mi a különbség a démonok, az init és hasonló eljárások születnek leszármazottai

Mi a különbség a démonok, az init és hasonló eljárások születnek leszármazottai

Ha valaha is dolgozott c Unix rendszerek, akkor valószínűleg hallott a „démon”. Ebben a cikkben szeretnék megmagyarázni, hogy milyen démonok és hogyan működnek, annál is inkább, mivel a nevük is sugallja, hogy ez valami rossz.

Általában a démon - egy háttérben futó folyamat, amely nem kapcsolódik a terminálhoz, amely indult. De, hogyan viszonyulnak más folyamatok, hogyan működnek? Ez az, amit mi beszélünk, de először nézzük meg, hogyan init folyamatot, és hogyan a születés, az új folyamatokat.

Hogy az init

Először is beszéljünk a init folyamatot. néven is ismert PID 1 (mert annak ID mindig egyenlő 1). Ez a folyamat jön létre azonnal indításkor, azaz az összes többi folyamat annak leszármazottai.

Hogyan elágazó folyamatok

Az egyetlen módja annak, hogy hozzon létre egy új folyamat Unix - másolni egy már meglévőt. Ez a módszer, az úgynevezett elágazás vagy Forking, létrehozunk egy másolási folyamatot a gyermek és exec rendszerhívás indítására az új programot. Mi használjuk a „elágazási” fork - ez egy igazi módja Unix C standard könyvtár, amely létrehoz egy új folyamat ezen a módon. A folyamat meghívja villa parancsot tartják a szülő a teremtett. A gyermek folyamat majdnem megegyezik a szülő: különböznek csak azonosítóját, a szülő azonosítót, és néhány egyéb pontokat.

A modern disztribúció, Unix és Linux, akkor létrehozhat folyamatok és más módon (pl segítségével posix_spawn), de a legtöbb folyamat jön létre ezen a módon.

Most, hogy már értesült a hagyományos jelentését a „villa”, világossá válik, hogy miért ugyanaz a fogalom használt GitHub. De elkalandoztam - vissza a démonok!

Mi a különbség a démonok

Maxwell démon rendszer

Mielőtt ásni a munka démonok, nézzük meg, ahol a név származik. A „démon” származott Project MAC. ami viszont kapta nevét a Maxwell-démon - egy kitalált lény egy gondolat kísérlet rendezi molekulák böjt. A szó démon szó a görög démon. egy természetfeletti lény, aki folyamatosan fut a háttérben, és nem jó vagy rossz (szemben a szokásos modern értékek). Azaz, a „démon” (Unix-eljárás értelemben) valójában leszármazottja egy kitalált természetfölötti lények.

Demons - egy háttérben futó folyamat fut elkülönítve a terminál és szinte mindig indult az init folyamat Általában ezek nem olyan dolgok, mint a hálózati kéréseket, a munka hardver és egyéb feladatok „kivárás”.

Demons kétféleképpen jelentkezik. Ezek létre egy folyamat az init, vagy előfordulnak a következő helyzetet: a folyamat létrehozása utódaikat, és azonnal megszűnik. Az első esetben egyértelmű, de mi történik a második: mivel az init a szülő a démonok?

Amikor létrehoz egy gyermek folyamatot, majd a „kill” a szülei, a gyermek lesz árva folyamat (nem tévesztendő össze a zombi folyamatot. Például egy leszármazottja, amely már elkészült, de még mindig vár, amikor a szülő fogja olvasni a kilépési állapot) . Alapértelmezés szerint, ha az eljárás árva lesz, az ő „örökbefogadó” szülő válik init. Ez minden, ami a démonok egyedülálló!

következtetés

Általában a démonok - ez egy nagyon egyszerű fogalom, hogy megértsék, hanem teljesen megérteni őket, tudnunk kell, mi az init-folyamatot és a rendezett elágazás folyamatokat.