-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
1/50
Jaiux M`ri`j Aitrfeuktafi
Rr`s`it`e Cy
Wufitrg [[email protected]
Kfitgkt Ps;53? Taitgo` kar,[@ [lyrig,
OG-;22>2
Rnfi` 8 (525)-122-11>> / (525)-112-
;22?
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
2/50
Nastfry
PIA^8 7141 Unflpsfi & Satkna` GU&U C`jj Jgcs.
C[E8 71?> C`rm`j`y [fdtwgr` Eastracutafi.
Kfll`rkagj T`iefrs8 [ui, NR, ACL, [OA, E@K.
OIP8 71>5 Sakngre [tgjjlgi, D[D.
RF[A^8 71>4 A@@@ Rfrtgcj` Fp`rgtaio [yst`l uiA^.
Laiax8 71>? Giey Ugii`icgul.
[TS58 71>1 GU&U gie [ui.
Jaiux8 7117 Jaius Ufrvgjes Ait`j ;>4 (a;>4).
Fp`i [furk`8 ORJ.
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
3/50
Jaiux D`gtur`s
PIA^-jam` fp`rgtaio syst`l.
D`gtur`s8 Rr``lptav` lujtatgsmaio.
Tartugj l`lfry (prft`kt`e l`lfry, pgoaio).
[ngr`e jacrgra`s.
E`lgie jfgeaio, eyiglak m`ri`j lfeuj`s.
[ngr`e kfpy-fi-wrat` `x`kutgcj`s.
UKR/AR i`twfrmaio. [LR suppfrt.
Fp`i sfurk`.
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
4/50
_ngts g M`ri`j6
GMG8 `x`kutav`, syst`l lfiatfr.
Kfitrfjs gie l`eagt`s gkk`ss tf ngrewgr`.
Alpj`l`its gie suppfrts duiegl`itgj gcstrgktafis8
Rrfk`ss`s, daj`s, e`vak`s `tk. [kn`euj`s / gjjfkgt`s syst`l r`sfurk`s8
L`lfry, KRP, easm, e`skraptfrs, `tk.
@idfrk`s s`kuraty gie prft`ktafi.
S`spfies tf us`r r`qu`sts dfr s`rvak` (syst`l kgjjs). @tk`tk
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
5/50
M`ri`j E`saoi Ofgjs
R`rdfrlgik`8 `ddaka`iky, sp``e. Ptajaz` r`sfurk`s tf kgpgkaty watn jfw fv`rn`ge.
[tgcajaty8 rfcusti`ss, r`saja`ik`.
Pptal`, orgk`duj e`orgegtafi. Kgpgcajaty8 d`gtur`s, dj`xacajaty, kflpgtacajaty.
[`kuraty, prft`ktafi. Rrft`kt us`rs drfl `gkn ftn`r & syst`l drfl cge
us`rs. Rfrtgcajaty.
@xt`isacajaty.
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
6/50
@xglpj` Kfr` M`ri`j
Gppjakgtafis
[yst`l Jacrgra`s (jack)
[yst`l Kgjj Ait`rdgk`
Ngrewgr`
Grknat`ktur`-E`p`ie`it Kfe`
A/F S`jgt`e Rrfk`ss S`jgt`e
[kn`euj`r
L`lfry Lgigo`l`it
ARK
Daj` [yst`ls
I`twfrmaio
E`vak` Erav`rs
Lfeuj`s
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
7/50
Grknat`kturgj Gpprfgkn`s
Lfifjatnak.
Jgy`r`e.
Lfeujgraz`e. Lakrf-m`ri`j.
Tartugj lgknai`.
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
8/50
Jaiux [furk` Ur`` Jgyfut
/usr/srk/jaiuxEfkul`itgtafi
grkn
ds
aiat m`ri`j
aikjue`
apk
erav`rs
i`t
lljac
skrapts
gjpng
grl
a;>4
ag45
l4>m
laps
laps45
ppks;12
sn
spgrk
spgrk45
gkfri
gtlcjfkm
kerfl
kngr
eaf
dk5
a3k
a3f
ae`a```7;15
asei
lgkaitfsn
lask
i`t
gedsgdds
gutfds
gutfds5
cds
kfe`
krglds
e`vds
e`vpts
`ds
`xt3
dgt
nds
npds
gsl-gjpnggsl-grl
gsl-o`i`rak
gsl-a;>4
gsl-ag45
gsl-l4>m
gsl-laps
gsl-laps45jaiux
lgtn-`lu
i`t
pklkag
sksa
vae`f
geds
gdds
gutfds
gutfds5
cds
kfe`
krglds
e`vdse`vpts
`ds
`xt3
dgt
nds
npds
>23
gppj`tgjmgtl
gx30
craeo`
kfr`
e`ki`t
`kfi`t
`tn`ri`t
apv5apv4
apx
areg
mnttpe
jgpc
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
9/50
jaiux/grkn
[ucear`ktfra`s dfr `gkn kurr`it pfrt.
@gkn kfitgais m`ri`j, jac, ll, cfftgie ftn`rear`ktfra`s wnfs` kfit`its fv`rrae` kfe`
stucs ai grknat`ktur` aie`p`ie`it kfe`. jackfitgais naonjy-fptalaz`e kfllfi utajaty
rfutai`s sukn gs l`lkpy, kn`kmsuls, `tk.
grkngs fd 3.58 gjpng, grl, a;>4, ag45, l4>m, laps, laps45.
ppk, s;12, sn, spgrk, spgrk45.
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
10/50
jaiux/erav`rs
Jgro`st glfuit fd kfe` ai tn` m`ri`j tr`` (~7.0L).
e`vak`, cus, pjgtdfrl gie o`i`rgj ear`ktfra`s.
erav`rs/kngriVtty.k as tn` e`dgujt jai` easkapjai`.
erav`rs/cjfkm`j`vgtfr.k, o`ine.k, jai`gr.k, jjVrwVcjm.k, rgaeI.k.
erav`rs/i`tsp`kadak erav`rs gie o`i`rgj rfutai`s [pgk`.k gie i`tVaiat.k. erav`rs/sksasksaV*.k daj`s gr` o`i`rak= se.k (easm), sr.k (KE-SFL), st.k
(tgp`), so.k (o`i`rak).
O`i`rgj8
kerfl, ae`, asei, pgrpfrt, pklkag, pip, sfuie, t`j`pnfiy, vae`f.
Cus`sdk5, a3k, iucus, pka, scus, tk, usc. Rjgtdfrlsgkfri, lgkaitfsn, s;12, soa.
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
11/50
jaiux/ds
Kfitgais8
vartugj daj`syst`l (TD[) drgl`wfrm.
sucear`ktfra`s dfr gktugj daj`syst`ls.
vds-r`jgt`e daj`s8
`x`k.k, caidltV*.k - daj`s dfr lgppaio i`w prfk`ss algo`s.
e`vak`s.k, cjmVe`v.ke`vak` r`oastrgtafi, cjfkm e`vak` suppfrt.
sup`r.k, daj`syst`ls.k.
aife`.k, ekgkn`.k, igl`a.k, cudd`r.k, daj`Vtgcj`.k.
fp`i.k, r`geVwrat`.k, s`j`kt.k, pap`.k, dadf.k. dkitj.k, afktj.k, jfkms.k, equft.k, stgt.k.
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
12/50
jaiux/aikjue`
aikjue`/gsl-*8
Grknat`ktur`-e`p`ie`it aikjue` sucear`ktfra`s.
aikjue`/jaiux8
N`ge`r aidf i``e`e cftn cy tn` m`ri`j gie us`r gpps.
Psugjjy jaim`e tf /usr/aikjue`/jaiux.
M`ri`j-fijy pfrtafis ougre`e cy #ade`ds
#ade`d VVM@SI@JVV
/* m`ri`j studd */
#`iead Ftn`r ear`ktfra`s8
lgtn-`lu, i`t, pklkag, sksa, vae`f.
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
13/50
jaiux/aiat
Hust twf daj`s8 v`rsafi.k, lgai.k.
v`rsafi.kkfitgais tn` v`rsafi cgii`r tngt
praits gt cfft.
lgai.kgrknat`ktur`-aie`p`ie`it cfft kfe`.
stgrtVm`ri`j as tn` pralgry `itry pfait.
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
14/50
jaiux/apk
[yst`l T ARK dgkajata`s.
Ad easgcj`e gt kflpaj`-tal`, utaj.k `xpfrts
stucs tngt salpjy r`turi@IF[Q[.
Fi` daj` dfr `gkn dgkajaty8
s`l.ks`lgpnfr`s.
snl.ksngr`e l`lfry.
lso.kl`ssgo` qu`u`s.
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
15/50
jaiux/m`ri`j
Un` kfr` m`ri`j kfe`.
skn`e.ktn` lgai m`ri`j daj`8
skn`euj`r, wgat qu`u`s, tal`rs, gjgrls, tgsm qu`u`s.
Rrfk`ss kfitrfj8
dfrm.k, x`k.k, saoigj.k, `xat.k tk
M`ri`j lfeuj` suppfrt8
mlfe.k, msyls.k, lfeuj`.k.
Ftn`r fp`rgtafis8
tal`.k, r`sfurk`.k, elg.k, sfdtarq.k, atal`r.k. praitm.k, aidf.k, pgiak.k, sysktj.k, sys.k.
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
16/50
jaiux/jac
m`ri`j kfe` kgiift kgjj stgiegre K jacrgryrfutai`s.
Daj`s8 crjfkm.kCao S`ge`r spaijfkms.
klejai`.km`ri`j kfllgie jai` pgrsaio rfutai`s.
`rrif.kojfcgj e`daiatafi fd `rrif.
aidjgt`.kouizap pgrt fd ozap.k us`e euraio cfft.
straio.kpfrtgcj` straio kfe`. Psugjjy r`pjgk`e cy fptalaz`e, grknat`ktur`-e`p`ie`it
rfutai`s.
vspraitd.kjack r`pjgk`l`it.
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
17/50
jaiux/ll
Rgoaio gie swgppaio8
swgp.k, swgpdaj`.k (pgoaio e`vak`s), swgpVstgt`.k (kgkn`).
vlskgi.kpgoaio pfjaka`s, mswgpe.
pgo`Vaf.kjfw-j`v`j pgo` trgisd`r.
Gjjfkgtafi gie e`gjjfkgtafi8
sjgc.ksjgc gjjfkgtfr.
pgo`Vgjjfk.kpgo`-cgs`e gjjfkgtfr.
vlgjjfk.km`ri`j vartugj-l`lfry gjjfkgtfr.
L`lfry lgppaio8
l`lfry.kpgoaio, dgujt-ngiejaio, pgo` tgcj` kfe`. daj`lgp.kdaj` lgppaio.
llgp.k, lr`lgp.k, ljfkm.k, lprft`kt.k.
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
18/50
jaiux/skrapts
[krapts dfr8
L`iu-cgs`e m`ri`j kfidaourgtafi.
M`ri`j pgtknaio.
O`i`rgtaio m`ri`j efkul`itgtafi.
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
19/50
[ullgry
Jaiux as g lfeujgr, PIA^-jam` lfifjatnak m`ri`j.
M`ri`j as tn` n`grt fd tn` F[ tngt `x`kut`s watn
sp`kagj ngrewgr` p`rlassafi (m`ri`j lfe`).
Kfr` m`ri`j prfvae`s drgl`wfrm, egtg
struktur`s, suppfrt dfr erav`rs, lfeuj`s,
sucsyst`ls.
Grknat`ktur` e`p`ie`it sfurk` suc-tr``s jav` ai/grkn.
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
20/50
Cfftaio gie M`ri`j Aiatagjazgtafi
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
21/50
[yst`l Jad`kykj`8 Pps & Efwis
Rfw`rfi
Rfw`rfdd
Cfft M`ri`j
Aiat
F[
Aiat
SPI! [nut
efwi
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
22/50
Cfft U`rlaifjfoy
Jfge`r8 Rrforgl tngt lfv`s cats drfl easm (usugjjy)
tf l`lfry gie tn`i trgisd`rs KRP kfitrfj tf tn` i`wjy
jfge`e cats (`x`kutgcj`).
Cfftjfge`r / Cfftstrgp8 Rrforgl tngt jfges tn` darst prforgl (tn` m`ri`j).
Cfft RSFL / RSFL Lfiatfr / CAF[8 R`rsast`it kfe` tngt as gjr`gey jfge`e fi pfw`r-up.
Cfft Lgigo`r8 Rrforgl tngt j`ts yfu knffs` tn` darst prforgl tf jfge.
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
23/50
JAJF8 Jaiux Jfge`r
G v`rsgtaj cfft lgigo`r tngt suppfrts8
Knfak` fd Jaiux m`ri`js.
Cfft tal` m`ri`j pgrgl`t`rs.
Cfftaio ifi-Jaiux m`ri`js.
G vgra`ty fd kfidaourgtafis. Kngrgkt`rastaks8
Jav`s ai LCS fr pgrtatafi cfft s`ktfr.
Ngs if mifwj`eo` fd daj`syst`l struktur` sf
Cuajes g s`ktfr lgp daj` (cjfkm lgp) tf daie m`ri`j.
/scai/jajflgp aistgjj`r.
/`tk/jajf.kfid as jajf kfidaourgtafi daj`.
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
24/50
@xglpj` jajf.kfid Daj`
cfft
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
25/50
/scai/aiat
Gik`stfr fd gjj prfk`ss`s (`xk`pt aej`/swgpp`rprfk`ss).
Kfitrfjs trgisatafis c`tw``i ruij`v`js8 28 snutefwi
78 saioj`-us`r
38 lujta-us`r (if ID[)
;8 dujj lujta-us`r
08 ^77
48 r`cfft
@x`kut`s stgrtup/snutefwi skrapts dfr `gknruij`v`j.
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
26/50
[nutefwi
Ps` /cai/snutefwi tf gvfae egtg jfss giedaj`syst`l kfrruptafi.
[nutefwi ainacats jfoai, gsms aiat tf s`ie
[AOU@SL tf gjj prfk`ss`s, tn`i [AOMAJJ. Jfw-j`v`j kfllgies8 ngjt, r`cfft, pfw`rfdd.
Ps` -n, -r fr -p fptafis tf snutefwi aist`ge.
Ktrj-Gjt-E`j`t` Tujkgi i`km paikn8
e`dai`e cy g jai` ai /`tk/aiattgc.
kg88ktrjgjte`j8/scai/snutefwi -t; -r ifw.
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
27/50
Gevgik`e Cfft Kfik`pts
Aiatagj rgleasm (aiatre)twf-stgo` cfft dfr dj`xacajaty8
Darst lfuit aiatagj rgleasm gs rfft.
@x`kut` jaiuxrk tf p`rdfrl geeatafigj s`tup, kfidaourgtafi.
Daigjjy lfuit r`gj rfft gie kfitaiu`.
[`` Efkul`itgtafi/aiatre.txt dfr e`tgajs. Gjsf s`` lgi aiatre.
I`t cfftaio8
S`lft` rfft (Easmj`ss-rfft-NF_UF).
Easmj`ss cfft (Easmj`ss-NF_UF).
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
28/50
[ullgry
Cfftstrgppaio g syst`l as g kflpj`x, e`vak`-e`p`ie`it prfk`ss tngt
aivfjv`s trgisatafi drfl ngrewgr`, tf darlwgr`, tf sfdtwgr`.
Cfftaio watnai tn` kfistrgaits fd tn` Ait`j grknat`ktur` as `sp`kagjjy
kflpj`x gie usugjjy aivfjv`s darlwgr` suppfrt (CAF[) gie g cfft lgigo`r
(JAJF).
/scai/jajf as g lgp aistgjj`r tngt r`ges kfidaourgtafi aidfrlgtafi gie
wrat`s g cfft s`ktfr gie cjfkm lgp daj`s us`e euraio cfft.
stgrtVm`ri`j as Jaiux lgai gie s`ts up prfk`ss kfit`xt c`dfr` spgwiaio
prfk`ss 2 (aej`) gie prfk`ss 7 (aiat).
Un` aiat() duiktafi p`rdfrls naon-j`v`j aiatagjazgtafi c`dfr` `x`kaio tn`us`r-j`v j aiat prfk`ss.
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
29/50
[yst`l Kgjjs
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
30/50
[yst`l Kgjjs
Ait`rdgk` c`tw``i us`r-j`v`j prfk`ss`s giengrewgr` e`vak`s. KRP, l`lfry, easms `tk.
Lgm` prforgllaio `gsa`r8 J`t m`ri`j tgm` kgr` fd ngrewgr`-sp`kadak assu`s.
Aikr`gs` syst`l s`kuraty8 J`t m`ri`j kn`km r`qu`st`e s`rvak` vag syskgjj.
Rrfvae` pfrtgcajaty8 Lgaitgai ait`rdgk` cut kngio` duiktafigj
alpj`l`itgtafi.
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
31/50
RF[A^ GRAs
GRA < Gppjakgtafi Rrforgll`r Ait`rdgk`.
Duiktafi e`di sp`kadyaio nfw tf fctgai s`rvak`.
Cy kfitrgst, g syst`l kgjj as gi `xpjakat r`qu`st tf m`ri`j lge` vag g
sfdtwgr` ait`rrupt.
[tgiegre K jacrgry (jack) kfitgais wrgpp`r rfutai`s tngt lgm` syst`l kgjjs. `.o., lgjjfk, dr`` gr` jack rfutai`s tngt us` tn` crm syst`l kgjj.
RF[A^-kflpjagit < ngvaio g stgiegre s`t fd GRAs.
Ifi-PIA^ syst`ls kgi c` RF[A^-kflpjagit ad tn`y fdd`r tn` r`quar`e s`t fd
GRAs.
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
32/50
Jaiux [yst`l Kgjjs (7)
Aivfm`e cy `x`kutaio ait $2x>2. Rrforgll`e `xk`ptafi v`ktfr iulc`r 73>.
KRP swatkn`s tf m`ri`j lfe` & `x`kut`s g m`ri`jduiktafi.
Kgjjaio prfk`ss pgss`s syskgjj iulc`rae`itadyaio syst`l kgjj ai `gxr`oast`r (fi Ait`jprfk`ssfrs).
[yskgjj ngiej`r r`spfisacj` dfr8 [gvaio r`oast`rs fi m`ri`j lfe` stgkm. Aivfmaio syskgjj s`rvak` rfutai`.
@xataio cy kgjjaio r`tVdrflVsysVkgjj().
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
33/50
Jaiux [yst`l Kgjjs (3)
[yst`l kgjj easpgtkn tgcj`8
Gssfkagt`s syskgjj iulc`r watn kfrr`spfieaio
s`rvak` rfutai`.
[tfr`e ai sysVkgjjVtgcj`grrgy ngvaio up tfISVsyskgjj`itra`s (usugjjy 304 lgxalul).
itn `itry kfitgais s`rvak` rfutai` geer`ss fd
syskgjj i.
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
34/50
Aiatagjazaio [yst`l Kgjjs
trgpVaiat()kgjj`e euraio m`ri`j aiatagjazgtafis`ts up tn` AEU (ait`rrupt e`skraptfr tgcj`) `itrykfrr`spfieaio tf v`ktfr 73>8
s`tVsyst`lVogt`(2x>2, &syst`lVkgjj)= G syst`l ogt` e`skraptfr as pjgk`e ai tn` AEU,
ae`itadyaio geer`ss fd syst`lVkgjjrfutai`. Ef`s ift easgcj` lgsmgcj` ait`rrupts.
[`ts tn` e`skraptfr pravaj`o` j`v`j (ERJ) tf ;8 Gjjfws Ps`r Lfe` prfk`ss`s tf aivfm` `xk`ptafi ngiej`rs
(a.`. syskgjj rfutai`s).
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
35/50
Un` syst`lVkgjj() Duiktafi
[gv`s syskgjj iulc`r & KRP r`oast`rs us`e cy
`xk`ptafi ngiej`r fi tn` stgkm, `xk`pt tnfs`
gutflgtakgjjy sgv`e cy kfitrfj uiat.
Kn`kms dfr vgjae syst`l kgjj.
Aivfm`s sp`kadak s`rvak` rfutai` gssfkagt`e
watn syskgjj iulc`r (kfitgai`e ai `gx)8
kgjj *sysVkgjjVtgcj`(2, %`gx, 5)
S`turi kfe` fd syst`l kgjj as stfr`e ai`gx.
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
36/50
Rgrgl`t`r Rgssaio
Fi tn` ;3-cat Ait`j >2x>48
4 r`oast`rs gr` us`e tf stfr` syskgjj pgrgl`t`rs.
`gx(syskgjj iulc`r).
`cx, `kx, `ex, `sa, `eastfr` pgrgl`t`rs tf syskgjjs`rvak` rfutai`, ae`itada`e cy syskgjj iulc`r.
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
37/50
_rgpp`r Sfutai`s
M`ri`j kfe` (`.o., m`ri`j tnr`ges) kgiift us`
jacrgry rfutai`s.
Vsyskgjj2 Vsyskgjj0lgkrfs e`dai`
wrgpp`r rfutai`s dfr syst`l kgjjs watn up tf 0
pgrgl`t`rs.
`.o.,Vsyskgjj;(ait,wrat`,ait,de,kfist kngr *,cud,uisaoi`e ait,kfuit)
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
38/50
@xglpj`8 N`jjf, wfrje!
.egtg # s`ktafi e`kjgrgtafi
lso8.straio "N`jjf, wfrje!Zi" # fur e`gr straioj`i < . - lso # j`iotn fd fur e`gr straio
.t`xt # s`ktafi e`kjgrgtafi
# w` lust `xpfrt tn` `itry pfait tf tn` @JD jaim`r fr.ojfcgj Vstgrt # jfge`r. Un`y kfiv`itafigjjy r`kfoiaz` Vstgrt gs tn`ar
# `itry pfait. Ps` je -` dff tf fv`rrae` tn` e`dgujt.
Vstgrt8
# wrat` fur straio tf stefut
lfvj $j`i,%`ex # tnare groul`it8 l`ssgo` j`iotnlfvj $lso,%`kx # s`kfie groul`it8 pfait`r tf l`ssgo` tf wrat`
lfvj $7,%`cx # darst groul`it8 daj` ngiej` (stefut)lfvj $5,%`gx # syst`l kgjj iulc`r (sysVwrat`)ait $2x>2 # kgjj m`ri`j
# gie `xat
lfvj $2,%`cx # darst groul`it8 `xat kfe`lfvj $7,%`gx # syst`l kgjj iulc`r (sysV`xat)ait $2x>2 # kgjj m`ri`j
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
39/50
Jaiux Daj`s S`jgtaio tf [yskgjjs
Lgai daj`s8
grkn/a;>4/m`ri`j/`itry.[
[yst`l kgjj gie jfw-j`v`j dgujt ngiejaio rfutai`s.
aikjue`/gsl-a;>4/uiaste.n
[yst`l kgjj iulc`rs gie lgkrfs.
m`ri`j/sys.k
[yst`l kgjj s`rvak` rfutai`s.
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
40/50
grkn/a;>4/m`ri`j/`itry.[
.egtg@IUSQ(sysVkgjjVtgcj`).jfio [QLCFJVIGL@(sysViaVsyskgjj) /* 2 - fje "s`tup()" syst`l
kgjj*/.jfio [QLCFJVIGL@(sysV`xat)
.jfio [QLCFJVIGL@(sysVdfrm)
.jfio [QLCFJVIGL@(sysVr`ge)
.jfio [QLCFJVIGL@(sysVwrat`)
Gee syst`l kgjjs cy gpp`ieaio `itry tf
sysVkgjjVtgcj`8
.jfio [QLCFJVIGL@(sysVlyVsyst`lVkgjj)
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
41/50
aikjue`/gsl-a;>4/uiaste.n
@gkn syst`l kgjj i``es g iulc`r ai tn`
syst`l kgjj tgcj`8
`.o., #e`dai` VVISVwrat` 5
#e`dai` VVISVlyVsyst`lVkgjj iii,wn`r` iiias i`xt dr`` `itry ai syst`l kgjj tgcj`.
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
42/50
m`ri`j/sys.k
[`rvak` rfutai` cfea`s gr` e`dai`e n`r`8
`.o., gsljaimgo` r`tvgj
sysVlyVsyst`lVkgjj (pgrgl`t`rs) {
cfey fd s`rvak` rfutai`=
r`turi r`tvgj=
}
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
43/50
M`ri`j Lfeuj`s
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
44/50
M`ri`j Lfeuj`s
[`` G. Sucaia, E`vak` Erav`rs, Kngpt`r 3.
Lfeuj`s kgi c` kflpaj`e gie eyiglakgjjy
jaim`e aitf m`ri`j geer`ss spgk`.
Ps`duj dfr e`vak` erav`rs tngt i``e ift gjwgys c`
r`sae`it uitaj i``e`e.
M``ps kfr` m`ri`j dfftprait slgjj.
Kgi c` us`e tf `xt`ie duiktafigjaty fd m`ri`jtff!
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
45/50
@xglpj`8 N`jjf, wfrje!
#e`dai` LFEPJ@#aikjue` :jaiux/lfeuj`.n9ait aiatVlfeuj`(vfae) {
praitm(:79N`jjf, wfrje!Zi)=r`turi 2=}vfae kj`giupVlfeuj`(vfae) {
praitm(:79Offecy` kru`j wfrjeZi)=
}
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
46/50
Psaio Lfeuj`s
Lfeuj` fch`kt daj` as aistgjj`e ai ruiiaio
m`ri`j usaio aislfe lfeuj`Vigl`.
Jfges lfeuj` aitf m`ri`j geer`ss spgk` gie jaims
uir`sfjv`e sylcfjs ai lfeuj` tf sylcfj tgcj` fdruiiaio m`ri`j.
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
47/50
Un` M`ri`j [ylcfj Ugcj`
[ylcfjs gkk`ssacj` tf m`ri`j-jfgegcj`
lfeuj`s gpp`gr ai /prfk/msyls.
r`oast`rVsyltgcr`oast`rs g sylcfj tgcj` ai
tn` m`ri`js lgai tgcj`.
S`gj ngkm`rs `xpfrt sylcfjs drfl tn` m`ri`j cy
lfeadyaio m`ri`j/msyls.k
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
48/50
Rrfh`kt [uoo`stafis (7)
S`gj-Ual` tnr`ge jacrgry. [kn`euj`r gktavgtafis ai Jaiux.
G Jaiux upkgjj l`kngiasl.
S`gj-Ual` l`lfry gjjfkgtfr / ogrcgo` kfjj`ktfr. G eastracut`e sngr`e l`lfry syst`l.
G Wf[-cgs`e sfkm`t jacrgry.
Gi `v`it-cgs`e l`kngiasl dfr alpj`l`itaio
gegptav` syst`ls. E_K[ pgkm`t skn`eujaio.
G n`gp-cgs`e prafraty skn`euj`r dfr Jaiux.
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
49/50
Rrfh`kt [uoo`stafis (3)
l[ r`sfjutafi tal`rs dfr Jaiux. Rfrtaio tn` Cgiewaetn-Crfm`r tf Jaiux.
G Wf[ Lgigo`l`it drgl`wfrm jam` WuF frEafiasys.
G S`gj-Ual` kflluiakgtafis prftfkfj.
G d``ecgkm-kfitrfj syst`l dfrdjfw/`rrfr/rgt`/kfio`stafi kfitrfj.
Gktav` L`ssgo`s dfr Jaiux. G tnr`ge kfitaiugtafi l`kngiasl.
G tnr`ge laorgtafi / jfge-cgjgikaio syst`l.
-
8/11/2019 Introduction to Linux Kernel by Quontra Solutions
50/50
Ungim Qfu