Deep Insights tas-Sistema Ubuntu Linux - Naraw Dan?


LINUX kif nafu huwa kernel u mhux sistema operattiva, jintbagħat b'diversi distribuzzjonijiet bħal: Debian, Fedora, Ubuntu eċċ. u ħafna aktar. Ubuntu OS żviluppat minn Mark Shuttleworth huwa popolarment magħruf u użat ħafna minn ħafna. Ukoll, li hija ħielsa u Open Source, il-verżjoni l-ġdida tagħha tiġi rilaxxata kull sena li hija kkontribwita minn eluf ta 'żviluppaturi li jikkontribwixxu għall-iżvilupp tagħha. Iżda, kif taħdem? Liema proċessi kollha, lista ta 'avvenimenti jagħmluha taħdem u x'inhu s-sinifikat ta' dawn il-proċessi?

Dan l-artikolu jieħu inti daqsxejn fil-fond fl-intern ta 'Ubuntu OS li huma interessanti ħafna u jgħin novizzi jkollhom fehim sħiħ tal-funzjonament tiegħu.

Lay Down tas-Sistema

Linux għandu proċess għall-funzjonament tiegħu, kull servizz tas-sistema inkluż il-ġestjoni tal-enerġija, il-boot up, l-immaniġġjar tal-ħabta tas-sistema huwa proċess li għandu fajl ta 'konfigurazzjoni f'\/etc/init li jiddeskrivi l-avveniment fuq li se tesegwixxi u l-avveniment korrispondenti li fuqu twaqqaf l-eżekuzzjoni tagħha, flimkien ma 'li żżomm ukoll il-fajls ta' konfigurazzjoni l-oħra tagħha li jiddeskrivu l-imġieba ta 'run-time tagħha fid-direttorju \/etc/ tas-sistema, għalhekk tagħmel sistema waħda mmexxija mill-avvenimenti.

Jekk ikun hemm avvenimenti ġġenerati allura xi ħadd għandu jkun hemm biex jaqbadhom u jesegwixxihom?? Tajjeb ovvjament, il-kontrollur huwa l-proċess ewlieni tagħna li jeżisti bħala ġenitur tal-proċessi kollha bil-proċess id 1 jiġifieri init. Dan huwa l-proċess li jibda mal-bidu tas-sistema u ma jieqaf qatt. Dan il-proċess imut biss ladarba s-sistema titwaqqaf peress li m'hemm l-ebda proċess min huwa l-ġenitur ta 'init.

Verżjonijiet preċedenti ta' Ubuntu qabel 6.10 kienu jinkludu stil antik sysvinit li kien użat biex imexxi skripts fi \/etc/rcx.d direttorju fuq kull istartjar u għeluq tas-sistema. Iżda, wara dik is-sistema upstart issostitwiet is-sistema ta' stil antik sysvinit, iżda xorta tipprovdi kompatibilità b'lura magħha.

L-aħħar verżjonijiet tal-Ubuntu għandhom din is-sistema upstart, iżda mill-evoluzzjoni tagħha minn Ubuntu 6.10 marret diversi reviżjonijiet verżjoni attwali li kienet 1.13.2 bħal fl-4 ta' Settembru 2014. L-aħħar sistema upstart għandha 2 init proċessi, wieħed għall-proċessi tas-sistema u ieħor li jimmaniġġja s-sessjoni attwali tal-utent li illoggja u jeżisti biss sakemm l-utent ikun illoggjat, imsejħa wkoll x-sessjoni init .

Is-sistema kollha ġiet stabbilita bħala waħda ġerarkika, li tikkonsisti minn relazzjoni antenat-wild matul il-qawwa sa l-isfida tas-sistema.

Pereżempju: Relazzjoni ġerarkika żgħira bejn iż-żewġ proċessi init hija: system init(1) -> display manager (kernel space) -> display manager (user space) -> user init (jew x- sessjoni init).

Il-fajls tal-konfigurazzjoni għall-proċessi ġestiti mis-sistema init jirrisjedu fi \/etc/init” u għal dawk immexxija mis-sessjoni init jirrisjedu fi \/usr/share/upstart” (skond il-verżjonijiet attwali upstart hawn fuq 1.12) u dawn il-fajls ta 'konfigurazzjoni huma essenzjali għal ħafna sigrieti mikxufa dwar proċessi kif deskritt f'dan l-artikolu.

Insiru aktar fil-fond fil-Ġerarkija

Ubuntu jirrikonoxxi żewġ tipi ta 'proċessi:

  1. Impjiegi ta' ħajja qasira (jew impjiegi ta' xogħol u jmutu).
  2. Impjiegi ta' ħajja twila (jew impjiegi ta' waqfa u xogħol).

Il-ġerarkija li ssir fuq is-sistema hija dovuta għal relazzjoni ta 'dipendenza bejn il-proċessi li nistgħu nifhmu billi naraw il-fajls tal-konfigurazzjoni tagħhom. Ejja l-ewwel nibdew minn relazzjoni ġerarkika sempliċi bejn il-proċessi li jagħmlu s-sistema tibda u tifhem is-sinifikat ta 'kull wieħed minnhom.

Init huwa l-ewwel proċess li jibda meta tixgħel is-sistema u huwa kklassifikat taħt xogħol work-and-stay peress li qatt ma jinqatel u l-ħin biss li jinqatel l-init huwa mixgħul powering down jiġifieri init imut biss u li wkoll darba għal kull sessjoni u li tkun fuq powering down. Meta tixgħel, init jiġġenera l-ewwel avveniment fuq is-sistema jiġifieri avveniment tal-istartjar. Kull fajl ta' konfigurazzjoni f'\/etc/init għandu żewġ linji li jiddefinixxu l-avveniment li jikkawża li l-proċess jibda u jieqaf. Dawk il-linji huma kif enfasizzat fil-figura hawn taħt:

Dan huwa fajl ta' konfigurazzjoni ta' proċess failsafe-x u dawn jibdew u jieqfu fuq kundizzjonijiet jiddeskrivu l-avveniment li fuqu jibda l-proċess. Mal-ġenerazzjoni ta 'avveniment tal-istartjar mill-proċess init dawk il-proċessi li għandhom l-istartjar bħala l-bidu tagħhom bil-kundizzjoni huma eżegwiti b'mod parallel u dan jiddefinixxi biss il-ġerarkija, u l-proċessi kollha li jeżegwixxu mal-istartjar huma tfal ta' init.

Il-proċessi li jibdew mal-istartjar huma elenkati kif hawn taħt u dawn huma kollha impjiegi li jaħdmu u jmutu:

1. hostname – Dan huwa proċess li jgħid biss lis-sistema tal-hostname tagħha definit fil-fajl /etc/hostname.

2. kmod – Tgħabbi l-moduli tal-kernel jiġifieri s-sewwieqa kollha mill-fajl /etc/modules.

3. mountall – Dan il-proċess jiġġenera ħafna avvenimenti u huwa prinċipalment responsabbli għall-immuntar tas-sistemi tal-fajls kollha fuq il-boot inklużi s-sistemi tal-fajls lokali u s-sistemi tal-fajls remoti.

Il-fajl /proc huwa mmuntat ukoll b'dan il-proċess stess u wara x-xogħol kollu tal-immuntar l-aħħar avveniment iġġenerat minnu huwa avveniment tas-sistemi tal-fajls li jkompli jagħmel il-ġerarkija tkompli.

4. plymouth – Dan il-proċess jesegwixxi mal-bidu tal-mountall u huwa responsabbli biex juri dak l-iskrin iswed li jidher fl-istartjar tas-sistema li juri xi ħaġa bħal hawn taħt:

5. plymouth-lest – Jindika li l-plymouth huwa up.

Dawn li ġejjin huma l-proċess prinċipali, oħrajn li jeżegwixxu wkoll fuq l-istartjar jinkludu, bħal udev-fallback-graphics, eċċ. Niġu lura għall-ġerarkija tal-boot, fil-qosor l-avvenimenti u l-proċessi li ġejjin huma kif f'sekwenza:

1. init flimkien mal-ġenerazzjoni tal-avveniment tal-istartjar.

2. Sistemi ta' fajls ta' muntaġġ ta' mountall, plymouth (flimkien mal-bidu ta' mountall) li juru l-isprach screen, u kmod tagħbija moduli tal-kernel.

3. Avveniment local-filesystem ġġenerat minn mountall li jikkawża dbus biex jaħdem. (Dbus huwa l-bus tal-messaġġi kollha tas-sistema li joħloq socket li jħalli proċessi oħra jikkomunikaw lil xulxin billi jibgħat messaġġi lil dan is-sokit u r-riċevitur jisma' l-messaġġi fuq dan is-sokit u jiffiltra dawk maħsuba għalih).

4. sistema tal-fajls lokali flimkien ma 'dbus li beda u avveniment statiku-network-up ikkawżat min-netwerk tal-proċess li jaħdem ukoll fuq avveniment tas-sistema tal-fajls lokali jikkawża l-manager tan-netwerk biex jaħdem.

5. L-avveniment ta' virtual-filesystem ġġenerat minn mountall jikkawża udev biex jaħdem. (udev huwa l-maniġer tal-apparat għal-linux li jamministra l-hot-plugging ta' apparati u huwa responsabbli għall-ħolqien ta' fajls fid-direttorju /dev u jamministrahom ukoll.) udev joħloq fajls għal ram, rom eċċ f'direttorju /dev dawk li l-mountall spiċċa mmuntar virtwali -filesystems u ġġenera l-avveniment virtwali-filesystem li jfisser immuntar tad-direttorju /dev.

6. udev jikkawża li jibda jaħdem upstart-udev-bridge li jfisser li n-netwerk lokali huwa attiv. Imbagħad wara li mountall spiċċa mmunta l-aħħar sistema tal-fajls u ġġenera l-avveniment tas-sistema tal-fajls.

7. L-avveniment ta' sistema ta' fajls flimkien ma' avveniment ta' static-network-up jikkawża xogħol rc-sysinit biex jaħdem. Hawnhekk, tidħol il-kompatibilità b'lura bejn sysvinit anzjani u upstart...

9. rc-sysinit imexxi kmand ta' telinit li jgħid lis-sistema runlevel.

10. Wara li jikseb ir-runlevel, l-init jesegwixxi l-iskripts li jibdew b''S' jew 'K' (li jibdew impjiegi li għandhom 'S' fil-bidu ta' isimhom u joqtol lil dawk li għandhom 'K' fil-bidu ta' isimhom) fid-direttorju/etc/rcX.d (fejn 'X' huwa l-runlevel attwali).

Dan is-sett żgħir ta 'avvenimenti jikkawża li s-sistema tibda kull darba li tixgħelha. U, dan l-avveniment li jiskatta l-proċessi huwa l-unika ħaġa responsabbli għall-ħolqien tal-ġerarkija.

Issa, żieda oħra għal hawn fuq hija l-kawża tal-avveniment. Liema proċess jikkawża liema avveniment huwa speċifikat ukoll f'dak l-istess fajl ta' konfigurazzjoni tal-proċess kif muri hawn taħt f'dawn il-linji:

Hawn fuq hemm sezzjoni tal-fajl tal-konfigurazzjoni tal-proċess mountall. Dan juri l-avvenimenti li joħroġ. L-isem tal-avveniment huwa wieħed wara l-kelma ‘avveniment’. L-avveniment jista 'jkun jew dak definit fil-fajl tal-konfigurazzjoni kif hawn fuq jew jista' jkun l-isem tal-proċess flimkien mal-prefiss bidu, bidu, waqfien jew waqfien.

Allura, Hawnhekk niddefinixxu żewġ termini:

  1. Ġeneratur ta' l-Avvenimenti: Wieħed li għandu l-linja 'jitmet xxx' fil-fajl tal-konfigurazzjoni tiegħu fejn xxx huwa l-isem ta' l-avveniment li għandu jew jiġġenera.
  2. Event Catcher: Wieħed li għandu l-kundizzjoni tal-bidu jew tal-waqfien tiegħu bħala xxx jew li jibda jew jieqaf fuq l-avveniment iġġenerat wieħed mill-ġeneraturi tal-Avvenimenti.

Għalhekk, issegwi l-ġerarkija u għalhekk id-dipendenza bejn il-proċessi:

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

S'issa, trid tkun fhimt kif il-ġerarkija tad-dipendenza ġenitur-wild bejn il-proċessi hija stabbilita minn mekkaniżmu ta' event triggering permezz ta' mekkaniżmu ta' boot up sempliċi.

Issa, din il-ġerarkija qatt mhi relazzjoni waħda għal waħda li jkollha ġenitur wieħed biss għal wild wieħed. F'din il-ġerarkija jista' jkollna ġenitur wieħed jew aktar għal wild wieħed jew wieħed jipproċessa li jkun ġenitur ta' aktar minn wild wieħed. Kif dan jitwettaq?? Ukoll it-tweġiba tinsab fil-fajls tal-konfigurazzjoni stess.

Dawn il-linji huma meħuda mill-proċess – netwerking u hawnhekk il-bidu bil-kundizzjoni jidher daqsxejn kumpless wisq magħmul minn lottijiet ta 'avvenimenti jiġifieri – local-filesystems, udevtrigger, container, runlevel, networking.

Is-sistemi tal-fajl lokali huwa emess minn mountall, udevtrigger huwa l-isem tax-xogħol, l-avveniment tal-kontejner huwa emess minn container-detect, l-avveniment ta 'runlevel emess minn rc-sysinit, u n-netwerking huwa għal darb'oħra xogħol.

Għalhekk, f'ġerarkija n-netwerking tal-proċess huwa tifel ta' mountall, udevtrigger u container-detect peress li ma jistax ikompli l-funzjonament tiegħu (il-funzjonament tal-proċess huwa l-linji kollha li huma definiti taħt script jew sezzjonijiet exec fil-fajl tal-konfigurazzjoni tal-proċess) sakemm il-proċessi ta' hawn fuq jiġġeneraw l-avvenimenti tagħhom.
Bl-istess mod, jista 'jkollna proċess wieħed li jkun ġenitur ta' ħafna jekk l-avveniment iġġenerat minn proċess wieħed huwa cached minn ħafna.

Kif definit qabel, jista' jkollna impjiegi ta' ħajja qasira (jew xogħol u jmutu) jew impjiegi ta' ħajja twila (jew joqgħod u xogħol) iżda kif niddistingwu bejn minnhom??

L-impjiegi li għandhom kemm 'bidu fuq' kif ukoll 'stop on' speċifikati fil-fajls tal-konfigurazzjoni tagħhom u għandhom kelma 'kompitu' fil- Il-fajl tal-konfigurazzjoni huma impjiegi work-and-die li jibdew fuq l-avveniment iġġenerat, jeżegwixxu l-iskript jew is-sezzjoni exec tagħhom (waqt li jeżegwixxu, jimblukkaw l-avvenimenti li kkawżawhom) u jmutu wara jirrilaxxaw dawk l-avvenimenti li huma mblukkati .

Dawk l-impjiegi li m'għandhomx kundizzjoni 'stop on' fil-fajl tal-konfigurazzjoni tagħhom għandhom ħajja twila jew joqgħod u jaħdmu u qatt ma jmutu. Issa l-impjiegi ta' waqfa u xogħol jistgħu jiġu kklassifikati aktar bħala:

  1. Dawk li m'għandhomx kundizzjoni ta' respawn u jistgħu jinqatlu minn root user.
  2. Dawk li jkollhom kundizzjoni ta' respawn fil-fajl tal-konfigurazzjoni tagħhom u għalhekk jerġgħu jibdew wara li jinqatlu sakemm ix-xogħol tagħhom ma jkunx tlesta.

Konklużjoni

Għalhekk, kull proċess f'LINUX huwa dipendenti fuq xi wħud u għandu xi proċessi dipendenti fuqu u din ir-relazzjoni hija ħafna fuq ħafna u hija speċifikata mas-sistema upstart flimkien ma' dettalji oħra tal-proċess.