Ubuntu Linux ulgamynyň çuňňur düşünjeleri - Muny görýärismi?


LINUX bilşimiz ýaly ýadro we operasiýa ulgamy däl, birnäçe paýlaýyş gämisi: Debian, Fedora, Ubuntu we ş.m. Mark Şuttlewort tarapyndan işlenip düzülen Ubuntu OS köpler tarapyndan meşhur we giňden ulanylýar. Şeýle hem, erkin we açyk çeşme bolmak bilen, onuň ösüşine goşant goşýan müňlerçe işläp düzüjiniň goşant goşýan täze wersiýasy her ýyl çykýar. Emma, bu nähili işleýär? Processeshli prosesler, wakalaryň sanawy ony işlemäge mejbur edýär we bu prosesleriň manysy näme?

Bu makala, gaty gyzykly we täze gelenleriň işleýşine doly düşünmegine kömek edýän Ubuntu OS içerki ulgamyna birneme çuňňur düşüner.

Ulgamy goýuň

Linux-yň işlemegi üçin bir prosesi bar, güýç dolandyryşy, ýüklemek, ulgam heläkçiligini dolandyrmak ýaly her bir ulgam hyzmaty, wakany suratlandyrýan\/etc/init konfigurasiýa faýly bolan prosesdir. ýerine ýetirjek we ýerine ýetirilmegini bes etjek degişli hadysany, şeýle hem ulgamyň\/etc/ katalogynda işleýşini beýan edýän beýleki konfigurasiýa faýllaryny saklaýar. ulgamy hadysalara öwürmek.

Eger döredilen wakalar bar bolsa, olary tutmak we ýerine ýetirmek üçin kimdir biri bolmalymy ?? Elbetde, gözegçilik ediji biziň 1 , ýagny init prosesi bolan ähli prosesleriň ene-atasy hökmünde bar bolan esasy işimizdir. Bu ulgamyň işe başlamagy bilen başlaýar we hiç wagt durmaýar. Bu proses diňe ulgam işledilenden soň ölýär, sebäbi initiň ene-atasy bolan hiç hili proses ýok.

6.10 dan öň Ubuntu -yň öňki wersiýalarynda\ /etc/rcx.d <-de skriptleri işletmek üçin ulanylýan köne stil sysvinit bar./b> ulgamyň her başlangyjy we ýapylmagy boýunça katalog. Emma, şondan soň ýokary çykmak ulgamy köne stil sysvinit ulgamyny çalyşdy, ýöne şonda-da yza gabat gelýänligi üpjün edýär.

Iň soňky Ubuntu wersiýalarynda bu ýokary derejeli ulgam bar, ýöne Ubuntu 6.10 üýtgäninden bäri, 2014-nji ýylyň 4-nji sentýabryna çenli häzirki wersiýasy 1.13.2 bolup, birnäçe wersiýa geçdi. Iň täze upstart ulgamy 2 init prosesi bar, biri ulgam amallary üçin, beýlekisi häzirki ulanyjy sessiýasyny dolandyrýan we diňe ulanyjy girýänçä bar, oňa x-sessiýa init hem diýilýär. .

Tutuş ulgam, ulgamyň güýjüni ýitirýänçä ata-baba gatnaşyklaryndan ybarat iýerarhiki ulgam hökmünde goýuldy.

Mysal üçin : Init prosesleriniň ikisiniň arasynda kiçi iýerarhiki baglanyşyk: ulgam init (1) -> displeý dolandyryjysy (ýadro meýdançasy) -> görkeziş dolandyryjysy (ulanyjy meýdançasy) -> ulanyjy init (ýa-da x- sessiýa init).

Ulgam init tarapyndan dolandyrylýan amallar üçin konfigurasiýa faýllary\/etc/init -de we sessiýa init tarapyndan dolandyrylýanlar üçin\/usr/share/upstart -da ýerleşýär. ( 1.12 ýokardaky häzirki ýokarky wersiýalaryna görä) we bu konfigurasiýa faýllary, bu makalada beýan edilişi ýaly prosesler barada köp açylmadyk syrlaryň açarydyr.

Iýerarhiýa has çuňňur girmek

Ubuntu iki görnüşi ykrar edýär:

  1. Gysga ömürli işler (ýa-da işlemek we ölmek).
  2. Uzak ýaşan iş (ýa-da işlemek we işlemek).

Ulgamda döredilen iýerarhiýa, konfigurasiýa faýllaryny görüp düşünip boljak amallaryň arasyndaky garaşlylyk bilen baglanyşykly. Ilki bilen ulgamy açmaga we olaryň hersiniň ähmiýetine düşünmäge mümkinçilik berýän prosesleriň arasyndaky ýönekeý iýerarhiki gatnaşykdan başlalyň.

Init ulgamda işlemäge başlan ilkinji prosesdir we hiç haçan öldürilmeýär we diňe init öldürilen wagty iş we galmak işine bölünýär. öçürmek, ýagny init diňe ölýär we her sessiýada bir gezek öçýär. Işledilende, init ulgamda ilkinji hadysany döredýär, ýagny başlangyç hadysasy.\/etc/init daky her bir konfigurasiýa faýlynda prosesiň başlamagyna we togtadylmagyna sebäp bolýan wakany kesgitleýän iki setir bar. Bu setirler aşakdaky suratda görkezilişi ýaly:

Bu failsafe-x prosesiň konfigurasiýa faýly we bular başlaýar we şertlerde dowam edýär we prosesiň başlajak wakasyny suratlandyrýar. Init prosesi bilen başlangyç hadysasynyň emele gelmeginde başlangyç şertleri başlangyç hökmünde başlanan prosesler paralel ýerine ýetirilýär we bu diňe iýerarhiýany kesgitleýär we başlangyçda ýerine ýetirilýän ähli amallar init çagalarydyr.

Başlangyçdan başlaýan amallar aşakdaky ýaly sanalandyr we bularyň hemmesi iş we ölmeli işler:

1 . host ady - Bu, diňe/etc/hostname faýlynda kesgitlenen host adynyň ulgamyny aýdýan amal.

2 . kmod - ýadro modullaryny, ýagny/etc/modul faýlyndaky ähli draýwerleri ýükleýär.

3 . gurnamak - Bu amal köp hadysalary döredýär we esasan ýerli faýl ulgamlaryny we uzakdaky faýl ulgamlaryny goşmak bilen bootdaky ähli faýl ulgamlaryny düzmek üçin jogapkärdir.

/proc faýly hem şu proses bilen gurnalan we ähli gurnama işinden soň döredilen iň soňky waka faýl ulgamy hadysasy bolup, iýerarhiýany hasam dowam etdirýär.

4 . plimouth - Bu amal gurnama işinde ýerine ýetirilýär we ulgam başlangyjynda aşakdaky ýaly bir zady görkezýän gara ekrany görkezmek üçin jogapkärdir:

5 . plimut taýyn - plimutyň ýokarydygyny görkezýär.

Aşakda esasy proses bar, başlangyçda ýerine ýetirýän beýleki amallar, udev-fallback-grafika we ş.m. öz içine alýar.

1 . init başlangyç hadysasynyň döremegi bilen bilelikde.

2 . gurnamak faýl ulgamlaryny gurnamak, plimut (gurnama başlangyjy bilen bilelikde) çyzgy ekranyny görkezýär we ýadro modullaryny kmod ýükleýär.

3 . ýerli faýl ulgamy dbusyň işlemegine sebäp bolýan gurnama arkaly döredilen waka. .

4 . ýerli faýl ulgamy başlanan dbus we ýerli faýl ulgamy hadysasynda işleýän proses tory sebäpli ýüze çykan statiki-tor hadysasy ulgam dolandyryjysynyň işlemegine sebäp bolýar.

5 . wirtual faýl ulgamy gurnama netijesinde döredilen waka udeviň işlemegine sebäp bolýar. (udev, enjamlaryň gyzgyn birikdirilmegini dolandyrýan we/dev katalogynda faýl döretmek we olary dolandyrmak üçin jogapkär linux üçin enjam dolandyryjysydyr. -faýl ulgamlary we/dev katalogynyň gurulmagyny aňladýan hadysany wirtual-faýl ulgamy döretdi.

6 . udev ýerli setiň işleýändigini görkezýän upstart-udev-köprüsiniň işlemegine sebäp bolýar. Soňra gurnama iň soňky faýl ulgamyny gurnap, faýl ulgamy hadysasyny döretdi.

7 . faýl ulgamy hadysasy, statiki set-up hadysasy bilen birlikde rc-sysinit işiniň işlemegine sebäp bolýar. Ine, köne sysvinit bilen upstartyň arasyndaky yza gabat geliş gelýär…

9 . rc-sysinit ulgamyň işleýiş derejesini aýdýan telinit buýrugyny işledýär.

10 . Iň ýokary derejäni alandan soň, init 'S' ýa-da 'K' bilen başlanýan skriptleri ýerine ýetirýär (adynyň başynda 'S' bolan işe başlamak we adynyň başynda 'K' bolanlary öldürmek)/etc/rcX.d (bu ýerde 'X' häzirki iş derejesi).

Bu kiçijik wakalar toplumy, her gezek işledeniňizde ulgamyň başlamagyna sebäp bolýar. Bu hadysanyň başlamagy, iýerarhiýany döretmek üçin jogapkär ýeke-täk zat.

Indi ýokardaky başga bir goşmaça hadysanyň sebäbi. Haýsy proses haýsy hadysanyň şu setirlerde aşakda görkezilişi ýaly şol konfigurasiýa faýlynda görkezilmegine sebäp bolýar:

Oveokarda prosess gurnamagynyň konfigurasiýa faýlynyň bir bölümi bar. Bu çykýan wakalary görkezýär. Çäräniň ady, waka sözüniň ýerine ýetýän biri. Waka ýokardaky ýaly konfigurasiýa faýlynda kesgitlenen ýa-da başlamak, başlamak, durmak ýa-da durmak prefiksi bilen bilelikde prosesiň ady bolup biler.

Şeýlelikde, bu ýerde iki termini kesgitleýäris:

  1. Waka generatory : konfigurasiýa faýlynda xxx çykar diýen setir bar, bu ýerde xxx eýeçilik edýän ýa-da döredýän wakanyň ady.

Şeýlelik bilen, iýerarhiýa yzarlanýar we prosesleriň arasyndaky garaşlylyk:

Event generator (parent) -> Event catcher (child)

Şu wagta çenli, ene-ata amallaryň arasyndaky garaşlylygyň iýerarhiýasynyň ýönekeý ýükleme mehanizmi arkaly hadysany başlamak mehanizminiň nädip kesgitlenýändigine düşünen bolmaly.

Indi bu iýerarhiýa hiç haçan bir çaga üçin diňe bir ene-atasy bolan ýeke-täk gatnaşyk däl. Bu iýerarhiýada bir çaga üçin bir ýa-da birnäçe ene-atamyz bolup biler ýa-da birden köp çaganyň ene-atasy bolmagy mümkin. Bu nädip ýerine ýetirilýär ?? Jogap konfigurasiýa faýllarynyň özünde.

Bu setirler - ulgamlaýyn baglanyşykdan alnan we bu ýerde şertli başlangyç köp hadysalardan düzülen birneme çylşyrymly ýaly görünýär - ýerli faýl ulgamlary , udevtrigger , konteýner , iş derejesi , torlaýyn .

Localerli faýl ulgamlary gurnama arkaly çykarylýar, udevtrigger işiň ady, konteýner hadysasy konteýner-detektor tarapyndan çykarylýar, rc-sysinit tarapyndan çykarylan derejeli hadysa we aragatnaşyk ulgamy ýene bir iş.

Şeýlelik bilen, iýerarhiýada proses ulgamy, işini dowam etdirip bilmeýänligi üçin gurnama, udevtrigger we konteýner-detektiň çagasydyr (amalyň işleýşi, konfigurasiýa faýlyndaky skript ýa-da ýerine ýetiriş bölümleri bilen kesgitlenýän setirlerdir) ýokardaky amallar hadysalaryny döredýänçä.
Edil şonuň ýaly-da, bir prosesiň netijesinde döredilen waka köpler tarapyndan keşde saklansa, köpleriň ene-atasy bolmak üçin bir prosessimiz bolup biler.

Öň kesgitlenişi ýaly, gysga ömri (ýa-da işlemek we ölmek iş) ýa-da uzak ýaşamak (ýa-da galmak we işlemek ) bolup biler, ýöne nädip tapawutlandyrmaly? olar ??

Konfigurasiýa faýllarynda görkezilen we ' ýumuş ' sözleri bolan ' başlamak ' we ' durmak ' şertleri bar. konfigurasiýa faýly, döredilen hadysada başlaýan, skriptini ýa-da ýerine ýetiriş bölümini ýerine ýetirýän (ýerine ýetirilende, sebäp bolan wakalary bloklaýarlar) we blokirlän wakalaryny goýberip ölýän iş we ölmek işlerdir. .

Konfigurasiýa faýlynda durmak ýagdaýy bolmadyk bu işler uzak ömür sürýär ýa-da galmak we işlemek işleri we olar hiç haçan ölmeýärler. Indi iş we iş ýerleri mundan beýläk aşakdakylara bölünip bilner:

  1. Dem alyş ýagdaýy bolmadyk we kök ulanyjy tarapyndan öldürilip bilinýänler.
  2. Konfigurasiýa faýlynda gaýtadan dikeldiş ýagdaýy bolanlar we işleri gutarmasa öldürilenden soň täzeden başlaýarlar.

Netije

Şeýlelik bilen, LINUX daky her bir proses käbirlerine bagly we käbir proseslere bagly we bu gatnaşyk köplere bagly we bu prosesiň beýleki jikme-jiklikleri bilen birlikde ýokarky ulgam bilen kesgitlenýär.