Maoni ya kina ya Mfumo wa Ubuntu Linux - Je, Tunaona Hii?


LINUX kama tunavyojua ni kernel na si mfumo wa uendeshaji, meli zilizo na usambazaji kadhaa kama vile: Debian, Fedora, Ubuntu n.k. na mengine mengi. Ubuntu OS iliyotengenezwa na Mark Shuttleworth inajulikana sana na inatumiwa sana na wengi. Pia, kuwa huru na Open Source toleo lake jipya hutolewa kila mwaka ambalo huchangiwa na maelfu ya wasanidi wanaochangia maendeleo yake. Lakini, inafanya kazi vipi? Je! ni michakato gani yote, orodha ya matukio huifanya ifanye kazi na ni nini umuhimu wa michakato hii?

Makala haya yangekuchukua ndani kidogo katika mambo ya ndani ya Ubuntu OS ambayo yanavutia sana na yangemsaidia mwanafunzi kupata ufahamu kamili wa utendakazi wake.

Weka Chini ya Mfumo

Linux ina mchakato wa utendakazi wake, kila huduma ya mfumo ikijumuisha usimamizi wa nguvu, kuwasha, kushughulikia hitilafu ya mfumo ni mchakato ambao una faili ya usanidi katika \/etc/init” inayofafanua tukio kwenye ambayo itatekeleza na tukio linalolingana ambalo ingesimamisha utekelezaji wake, pamoja na kwamba pia inadumisha faili zake zingine za usanidi zinazoelezea tabia yake ya wakati wa kukimbia kwenye saraka ya \/etc/ ya mfumo, kwa hivyo. kufanya mfumo kuwa tukio linaloendeshwa.

Iwapo kuna matukio yamezalishwa basi awepo mtu wa kuyakamata na kuyatekeleza?? Hakika, kidhibiti ni mchakato wetu mkuu ambao upo kama mzazi wa michakato yote yenye kitambulisho cha mchakato 1 yaani init. Huu ndio mchakato unaoanza na mfumo kuanza na hauachi. Mchakato huu hufa mara tu mfumo unapozimwa kwani hakuna mchakato ambaye ni mzazi wa init.

Matoleo ya awali ya Ubuntu kabla ya 6.10 yalijumuisha mtindo wa zamani sysvinit ambao ulitumika kuendesha hati katika \/etc/rcx.d” kwenye kila uanzishaji na kuzima kwa mfumo.Lakini, baada ya mfumo huo upstart ulibadilisha mfumo wa zamani wa sysvinit, lakini bado unatoa upatanifu wake wa nyuma.

Matoleo ya hivi punde ya Ubuntu yana mfumo huu wa uanzishaji, lakini tangu kubadilika kwake kutoka Ubuntu 6.10 imefanyia masahihisho kadhaa toleo la sasa la 1.13.2 kama tarehe 4 Septemba 2014. Mfumo wa kisasa zaidi wa kuanzisha ina 2 init michakato, moja ya michakato ya mfumo na nyingine ambayo inadhibiti kipindi cha sasa cha mtumiaji kilichoingia na ipo tu hadi mtumiaji ameingia, pia huitwa x-session init. .

Mfumo mzima umewekwa kama mfumo wa tabaka, unaojumuisha uhusiano wa babu na mtoto katika kipindi chote cha mamlaka hadi chini ya mfumo.

Kwa mfano: Uhusiano mdogo wa daraja kati ya michakato yote miwili ya init ni: init ya mfumo(1) -> meneja wa onyesho(nafasi ya kernel) -> meneja wa kuonyesha(nafasi ya mtumiaji) -> mtumiaji init(au x- kikao cha kwanza).

Faili za usanidi za michakato inayodhibitiwa na init ya mfumo hukaa katika \/etc/init” na kwa zinazodhibitiwa na session init hukaa katika \/usr/share/upstart” (kulingana na matoleo ya sasa ya mwanzo juu ya 1.12) na faili hizi za usanidi ni muhimu kwa siri nyingi zilizofichuliwa kuhusu michakato kama ilivyofafanuliwa katika makala haya.

Kupata Kina zaidi katika Hierarkia

Ubuntu inatambua aina mbili za michakato:

  1. Kazi za muda mfupi (au kazi za kufa-kazi).
  2. Kazi za muda mrefu (au kazi za kukaa na kufanya kazi).

Daraja linaloundwa kwenye mfumo linatokana na uhusiano wa utegemezi kati ya michakato ambayo tunaweza kuelewa kwa kutazama faili zao za usanidi. Wacha kwanza tuanze kutoka kwa uhusiano rahisi wa kihierarkia kati ya michakato inayofanya mfumo kuwasha na kuelewa umuhimu wa kila mmoja wao.

Init ni mchakato wa kwanza kuanza kwa kuwasha mfumo na imeainishwa chini ya kazi-na-kukaa kwa kuwa haiuwi kamwe na ni muda tu ambapo kifaa kimewashwa. kuzima yaani init inakufa tu na hiyo pia mara moja kwa kila kikao na hiyo iko kwenye kuwasha. Inapowasha, init hutoa tukio la kwanza kabisa kwenye mfumo yaani tukio la kuanza. Kila faili ya usanidi katika \/etc/init” ina mistari miwili inayofafanua tukio linalosababisha mchakato kuanza na kusimamishwa. Mistari hiyo ni kama ilivyoangaziwa kwenye kielelezo kilicho hapa chini:

Hili ni faili la usanidi la mchakato failsafe-x na haya huanza na kuacha kwa masharti kuelezea tukio ambalo mchakato utaanza. Katika uundaji wa tukio la kuanza kwa mchakato wa init michakato hiyo ambayo inaanza kama kuanza kwa sharti inatekelezwa sambamba na hii inafafanua tu safu, na michakato yote inayotekelezwa kwenye uanzishaji ni watoto wa init.

Taratibu zinazoanza kwa uanzishaji zimeorodheshwa kama chini na hizi zote ni kazi za kufanya kazi na kufa:

1. jina la mpangishaji - Huu ni mchakato unaoelezea tu mfumo wa jina lake la mpangishaji lililofafanuliwa katika faili ya /etc/hostname.

2. kmod - Hupakia moduli za kernel yaani viendeshi vyote kutoka /etc/modules faili.

3. mountall - Mchakato huu huzalisha matukio mengi na unawajibika hasa kwa kuweka mifumo yote ya faili kwenye buti ikijumuisha mifumo ya faili ya ndani na mifumo ya faili ya mbali.

Faili ya /proc pia imewekwa na mchakato huu na baada ya kazi yote ya uwekaji tukio la mwisho lililotolewa nalo ni tukio la mifumo ya faili ambalo hufanya uongozi kuendelea zaidi.

4. plymouth - Mchakato huu hutekelezwa wakati wa kuanzisha mountall na ina jukumu la kuonyesha skrini nyeusi inayoonekana kwenye uanzishaji wa mfumo inayoonyesha kitu kama hiki hapa chini:

5. plymouth-ready - Inaonyesha kuwa plymouth iko juu.

Ifuatayo ni mchakato mkuu, nyingine ambazo pia hutekelezwa kwenye uanzishaji ni pamoja na, kama vile udev-fallback-graphics, n.k. Kurejea kwenye mfumo wa hali ya juu, kwa ufupi matukio na michakato inayofuata ni kama inavyofuatana:

1. init pamoja na uzalishaji wa tukio la kuanza.

2. mountall kuweka mifumo ya faili, plymouth (pamoja na kuanzia mlima) inayoonyesha skrini ya Splash, na moduli za upakiaji wa kmod.

3. mfumo wa faili wa ndani tukio lililotolewa na mountall na kusababisha dbus kufanya kazi. (Dbus ni basi la ujumbe mpana wa mfumo ambalo huunda soketi inayoruhusu michakato mingine kuwasiliana kwa kila mmoja kupitia kutuma ujumbe kwenye soketi hii na mpokeaji husikiliza ujumbe kwenye soketi hii na kuchuja iliyokusudiwa kwake).

4. mfumo wa faili wa ndani pamoja na dbus iliyoanzishwa na tukio tuli-mtandao-up linalosababishwa na mtandao wa mchakato ambao pia unatumia tukio la mfumo wa ndani wa faili husababisha msimamizi wa mtandao kufanya kazi.

5. virtual-filesystem tukio linalotokana na mountall husababisha udev kufanya kazi. (udev ndiye kidhibiti cha kifaa cha linux ambacho kinasimamia uwekaji-plug-moto wa vifaa na ana jukumu la kuunda faili kwenye saraka ya /dev na kuzisimamia pia.) udev huunda faili za ram, rom n.k katika saraka ya /dev ambazo mountall imemaliza kuweka faili za mtandaoni. -filesystems na imetoa tukio virtual-mfumo wa faili unaoashiria uwekaji wa saraka ya /dev.

6. udev husababisha upstart-udev-bridge kufanya kazi ambayo inaashiria kuwa mtandao wa ndani uko juu. Halafu baada ya mountall kumaliza kuweka mfumo wa mwisho wa faili na kutoa tukio la mfumo wa faili.

7. tukio la mfumo wa faili pamoja na tukio la tuli-network-up husababisha kazi ya rc-sysinit kufanya kazi. Hapa, inakuja utangamano wa nyuma kati ya sysvinit ya zamani na upstart…

9. rc-sysinit huendesha amri ya telinit inayoelezea kiwango cha uendeshaji cha mfumo.

10. Baada ya kupata runlevel, init hutekeleza hati zinazoanza na 'S' au 'K' (kuanzisha kazi ambazo zina 'S' mwanzoni mwa jina lao na kuua wale walio na 'K' mwanzoni mwa jina lao) kwenye saraka/nk/rcX.d (ambapo 'X' ndio kiwango cha sasa cha kukimbia).

Seti hii ndogo ya matukio husababisha mfumo kuanza kila unapowasha. Na, tukio hili la uanzishaji wa michakato ndilo jambo pekee linalohusika na kuunda uongozi.

Sasa, nyongeza nyingine hapo juu ndio sababu ya tukio. Mchakato gani husababisha ni tukio gani pia limeainishwa katika faili hiyo hiyo ya usanidi wa mchakato kama inavyoonyeshwa hapa chini katika mistari hii:

Hapo juu ni sehemu ya faili ya usanidi ya process mountall. Hii inaonyesha matukio ambayo hutoa. Jina la tukio ni lile linalofuata neno ‘tukio’. Tukio linaweza kuwa lile lililofafanuliwa katika faili ya usanidi kama ilivyo hapo juu au linaweza kuwa jina la mchakato pamoja na kiambishi awali 'kuanza' , 'kuanza', 'kuacha' au 'kusimamishwa'.

Kwa hivyo, hapa tunafafanua maneno mawili:

  1. Kizalishaji Tukio: Ile iliyo na laini ‘inatoa xxx’ katika faili yake ya usanidi ambapo xxx ni jina la tukio inalomiliki au kuzalisha.
  2. Kikamata Tukio: Kinachowasha au kuacha hali kama xxx au kinachoanza au kusimamishwa kwenye tukio kilizalisha moja ya jenereta za Tukio.

Kwa hivyo, uongozi unafuata na kwa hivyo utegemezi kati ya michakato:

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

Kufikia sasa, lazima uwe umeelewa jinsi daraja la utegemezi wa mzazi na mtoto kati ya michakato inavyowekwa na utaratibu wa kuanzisha tukio kupitia utaratibu rahisi wa kuwasha.

Sasa, uongozi huu kamwe sio uhusiano wa mtu-mmoja kuwa na mzazi mmoja tu kwa mtoto mmoja. Katika uongozi huu tunaweza kuwa na mzazi mmoja au zaidi kwa mtoto mmoja au mchakato mmoja kuwa mzazi wa zaidi ya mtoto mmoja. Hii inatimizwa vipi?? Kweli jibu liko kwenye faili za usanidi zenyewe.

Mistari hii imechukuliwa kutoka kwa mchakato - mtandao na hapa kuanza kwa hali inaonekana kuwa ngumu sana inayojumuisha matukio mengi ambayo ni - mifumo ya faili za mitaa, udevtrigger, kontena, kiwango cha kukimbia, mitandao.

Mifumo ya faili za ndani hutolewa na mountall, udevtrigger ni jina la kazi, tukio la kontena hutolewa na chombo-gunduzi, tukio la runlevel linalotolewa na rc-sysinit, na mitandao ni kazi tena.

Kwa hivyo, katika uongozi mchakato wa mitandao ni mtoto wa mountall, udevtrigger na container-detect kwani haiwezi kuendelea na kazi yake (utendaji wa mchakato ni mistari yote ambayo imefafanuliwa chini ya hati au sehemu za kutekeleza kwenye faili ya usanidi wa mchakato) hadi michakato iliyo hapo juu itengeneze matukio yao.
Vivyo hivyo, tunaweza kuwa na mchakato mmoja kuwa mzazi wa wengi ikiwa tukio linalotokana na mchakato mmoja limehifadhiwa na wengi.

Kama ilivyoelezwa hapo awali, tunaweza kuwa na kazi za muda mfupi (au kazi-na-kufa) au kazi za muda mrefu (au kukaa-na-kazi) lakini jinsi ya kutofautisha kati ya wao??

Kazi ambazo zote mbili 'zinaanza kwa' na 'kuacha kwa' masharti yaliyobainishwa katika faili zao za usanidi na zina neno 'kazi' katika zao. faili ya usanidi ni kazi-na-kufa kazi zinazoanza kwenye tukio lililozalishwa, kutekeleza hati zao au sehemu ya kutekeleza (wakati wa kutekeleza, wanazuia matukio yaliyosababisha) na kufa baadaye wakitoa matukio hayo ambayo walizuia. .

Kazi hizo ambazo hazina hali ya ‘komesha’ katika faili zao za usanidi ni kazi za kuishi kwa muda mrefu au kukaa-na-kazi na hazifi kamwe. Sasa kazi za kukaa na kufanya kazi zinaweza kuainishwa zaidi kama:

  1. Zile ambazo hazina hali ya kuzaa upya na zinaweza kuuawa na mtumiaji wa mizizi.
  2. Wale ambao wametoa hali upya katika faili zao za usanidi na hivyo wanaanza upya baada ya kuuawa isipokuwa kazi yao imekamilika.

Hitimisho

Kwa hivyo, kila mchakato katika LINUX unategemea baadhi na ina michakato fulani inayoitegemea na uhusiano huu ni mwingi kwa wengi na umebainishwa na mfumo wa kuanzisha pamoja na maelezo mengine ya mchakato.