You are on page 1of 7

Qu trnh khi ng (boot) h iu hnh

Linux

Chng 5

Qu trnh khi ng h iu hnh Linux thc hin qua cc bc c


bn nh sau:
1.
BIOS thc hin kim tra tnh ton vn trn b nh v tm kim cc
ch dn trn Master Boot Record (MBR) trn a mm hay trn
cng
2.
MBR gi b np khi ng ca Linux LILO hay GRUB
3.
LILO/GRUB sau s nhn din nhn h iu hnh thi hnh v
sau s np nhn h iu hnh Linux t phn chia /boot/
4.
Nhn h iu hnh chuyn iu khin cho chng trnh /sbin/init.
5.
Da trn mc thi hnh tng ng, /sbin/init thc hin np cc dch
v v gn (mount) tt c cc phn chia h thng (c khai bo
trong /etc/fstab).

Qun l tin trnh

2/26/2014

open sourse

1/35
2/26/2014

Gii thiu

Cc kiu tin trnh (1)

Mt tin trnh = thc thi ca mt chng trnh


Mi tin trnh s tng ng vi mt tp cc thng tin
sau:

Cc tin trnh h thng


Thng

thuc v quyn root


c giao din tng tc
Thng c chy di dng cc tin trnh ngm
(daemon)
m nhim cc nhim v chung, phc v mi ngi
s dng.
V d:

Mt nh danh (pid)
Mt tin trnh cha (ppid)
Ngi s hu (uid) v nhm (gid)
Cu lnh khi to tin trnh
Mt u vo chun (stdin), mt u ra chun (stdout), mt knh
bo li chun (stderr)
Thi gian s dng CPU (CPU time) v mc u tin
Th mc hot ng hin ti ca tin trnh
Bng cc tham chiu n cc file c tin trnh s dng.

Khng

Cc tin trnh c sp xp chia s thi gian s


dng CPU

2/26/2014

open sourse

3/35

Cc kiu tin trnh (2)

2/26/2014

4/35

open sourse

Hin th cc tin trnh

Thc hin di dng mt shell tng ng vi mt s ng


nhp.
Thc hin di dng mt lnh thng qua shell

Theo ngm nh, lnh ps hin th cc tin trnh thuc v ngi


s dng terminal.
S dng ty chn aux hin th tt c cc tin trnh ang chy
trong my.

$ ps
PID TTY
2803 pts/1
2965 pts/1
$ ps aux
USER
PID
root
1
...
ttanh 951
ttanh 953
ttanh 966
...

c thc hin, qun l bng mt terminal

d:
cp
vi
man

open sourse

2/26/2014

hin cc nhim v ca mt ngi dng c th

Thng

lpsched: Qun l cc dch v in n


cron: t ng thc hin mt lnh/chng trnh vo mt thi
gian xc nh trc.
inetd: qun l cc dch v mng.

Lnh ps

Cc tin trnh ca ngi s dng


Thc

2/35

open sourse

5/35

2/26/2014

TIME CMD
00:00:00 bash
00:00:00 ps
%CPU
0.1

%MEM
0.1

0.0
0.0
0.0

0.3
1.9
0.3

VSZ
1104

RSS
460

1728 996
6860 4916
2704 1000

TTY
?

STAT START TIME COMMAND


S
15:26 0:03 init[3]

pts/0 S
pts/0 S
pts/0 R

open sourse

16:09 0:00 bash


16:09 0:00 emacs
16:23 0:00 ps aux

6/35

Lnh ps

Trng thi ca tin trnh

C php: ps [option]
* Cc tham s n gin
-A, -e : chn hin th tt c cc tin trnh.
-T : chn hin th cc tin trnh trn trm cui ang chy.
-a : chn hin th tt c cc tin trnh trn mt trm cui
-r : ch hin th tin trnh ang c chy.
*Chn theo danh sch
-C : chn hin th cc tin trnh theo tn lnh.
-G : hin th cc tin trnh theo ch s nhm ngi dng.
-U : hin th cc tin trnh theo tn hoc ch s ca ngi dng thc s
-p : hin th cc tin trnh theo ch s ca tin trnh.
-s : hin th cc tin trnh thuc v mt phin lm vic.
-t : hin th cc tin trnh thuc mt trm cui.
-u : hin th cc tin trnh theo tn v ch s ca ngi dng hiu qu.
7/35

2/26/2014

Trng thi ca tin trnh

open sourse

8/35

Trng thi ca tin trnh

User running

Created
Mt tin trnh mi c to. Cc tin trnh c to c thng tr ton b
trong b nh hay khng l ph thuc vo cc chi tit ca h thng qun l b nh.
Trng thi ny cng c th bao gm cc tin trnh cha c to hon chnh.
Ready to run in memory
Tin trnh sn sng c thi hnh trong b nh.
Kernel running
Tin trnh ang chy trong ch nhn h iu hnh (kernel mode). N c th
qun l mt li gi h thng hoc mt ngt hay tin trnh khc (cng trong ch nhn
h iu hnh) c th chy theo lch lp sn. Tin trnh c th quyt nh rng n kt
thc (kt thc bnh thng thng qua lnh exit() hoc khi nhn h iu hnh pht hin
iu kin khng bnh thng) hoc n c ng (block) i mt s s kin nh l
mt tn hiu thi gian hoc s hot ng ca thit b ngoi vi.

System call or Interrupt


Return to user mode
Interrupt and Interrupt return

Return to user mode

Pre-empt
exit()

Kernel running
Pre-empted

Zombie
Sleep

Re -schedule

Ready to run in memory

wake up

Sleeping
in memory

Enough Memory

Created
Swap out

Swap out

Swap in
fork()

wake up
Not Enough Memory

Sleeping
Swapped out

Ready to run
Swapped out

9/35

2/26/2014

2/26/2014

Trng thi ca tin trnh

open sourse

10/35

Trng thi ca tin trnh

User running

Sleeping in memory

Trng thi hot ng bnh thng ca tin trnh.

Tin trnh b ng i mt s kin. Tt c tin trnh c th trng thi ny

Pre-empted

l tin trnh c th sang trng thi wake up (bng cch thay i trng thi ca n

Tin trnh b gin on v sp sa ly li qu trnh hot ng bnh thng trong


ch ngi dng (user mode). B lp lch ca nhn h iu hnh c th chuyn mt

thnh ready to run) hoc swapped out.


Sleeping, swapped out

tin trnh vo trong trng thi ny.

Tin trnh ang i mt s kin (cc chi tit trong bng tin trnh ca tin trnh)

Zombie

v c swapped out

Tin trnh ngng thi hnh.

Ready to run, swapped in


Sao chp ngc tin trnh t a vo trong b nh trc khi c tip tc thi
hnh.

2/26/2014

open sourse

11/35

2/26/2014

open sourse

12/35

Tin trnh init

Tin trnh init

Cc bc khi ng ca init
Bc1, init gi thi hnh script /etc/rc.d/rc.sysinit thit lp

init l mt trong nhng chng trnh thit yu i vi hot

ng dn, khi ng tp tin tro i, kim tra cc h thng

ng ca mt h thng Linux. init c nhiu nhim v quan trng,

tp tin v.v

nh l khi np cc th hin ca getty ( ngi dng c th

V c bn, rc.sysinit qun l tt c mi thao tc m h thng

ng nhp), thc thi cc mc thi hnh chng trnh v qun l

cn phi thc hin ti thi im khi ng, th d nh khi ng b

nhng tin trnh v ch (mt tin trnh cha)

nh thi (ng h), khi np cng ni tip

init l tin trnh cha ca mi tin trnh

Bc 2, init s thc thi script /etc/inittab. Script ny m t

Khng th kt thc c tin trnh init khi h thng cn hot

cch thc h thng cn c thit lp ti mi mc thi hnh


(run level) v thit lp mc thi hnh mc nh (ti dng

ng

initdefault trong tp tin /etc/inittab).


Mi khi thay i mc thi hnh, init s dng cc script c trong th mc
/etc/rc.d/init.d/ khi ng v dng thi hnh cc dch v khc nhau.

2/26/2014

open sourse

13/35

2/26/2014

open sourse

Tin trnh init

Tin trnh init

Cc bc khi ng ca init
Bc 3, init gi thi hnh script /etc/rc.d/init.d/functions.
Script ny cho bit cch thc khi ng hay ngng mt
chng trnh v cch thc xc nh PID ca mt chng
trnh.
Bc 4, init khi ng tt c cc tin trnh 'ngm' cn thit
cho h thng hot ng bng cch thi hnh cc script c
trong th mc (/etc/rc.d/rc0.d/, /etc/rc.d/rc1.d/,
/etc/rc.d/rc2.d/, , /etc/rc.d/rc6.d/) tng ng i vi mc
thi hnh c xc nh.
Thi hnh tt c cc script khi ng trong cng th mc
tng ng vi mc thi hnh (bng cch thi hnh lnh
/etc/rc.d/init.d/command start) khi ng cc ng dng
v dch v.
2/26/2014

open sourse

14/35

15/35

Cc bc khi ng ca init
Bc 5, Gi thi hnh script /etc/rc.d/rc.local. Script ny dng
b sung thm cc lnh cn thit cho mi trng h
thng.
Bc 6, Sau khi init x l tt c cc mc thi hnh, script
/etc/inittab pht sinh mt tin trnh getty cho mi bn giao
tip o (virtual console) cho mi mc thi hnh (mc 2-5 c 6
tin trnh getty, mc 1 ch c duy nht mt tin trnh, cn ti
mc 0 v 6 khng c tin trnh)

2/26/2014

Tin trnh init

open sourse

16/35

Qun l khi ng dch v - chkconfig

Cc mc thi hnh v cu hnh /etc/inittab

Cc script qun l daemon dch v h thng thc s c t


0

Ngng thi hnh h thng (shutdown)

trong th mc /etc/rc.d/init.d/ v c lin kt (dng symbolic

Ch mt ngi dng

link) vo cc th mc /etc/rc.d/rc[0-6].d/ tng ng. Tin ch

Khng dng (ngi dng c th nh ngha)

/sbin/chkconfig l mt cng c dng lnh n gin c s

Ch a ngi dng y

dng gip to hay xo b nhng lin kt ny. N gip

Khng dng (ngi dng c th nh ngha)

ngi qun tr h thng khng cn phi thc hin th cng

Ch a ngi dng trong mi trng X

to cc symbolic link trong cc th mc nm trong /etc/rc.d/.

Khi ng li my

2/26/2014

open sourse

17/35

2/26/2014

open sourse

18/35

Qun l khi ng dch v - chkconfig

Qun l khi ng dch v - chkconfig

--del name

Lnh chkconfig c s dng vi mt s c php c bn


sau:

chkconfig
--add name

To cc symbolic link ca script ca dch v name ny vo trong tt c


cc th mc /etc/rc.d/rc[0-6].d/ (thng l vi script thc hin ngng dch
v), ng thi a dch v name vo s qun l ca chkconfig

--level
levels

Xc nh mc thi hnh ca dch v name. Mc thi hnh l mt chui s


gm cc con s t 0-6 ch ra cc mc thi hnh c chn.

chkconfig --add name


chkconfig --del name
chkconfig [--lelvel levels] name [on | off]

Nu mt trong cc c on hay off c ch ra sau tn dch v name,


chkconfig s thay i thng tin khi ng cho dch v ti mc thi
hnh c ch ra. Theo mc nh, cc la chn on v off s ch tc
ng trn cc cp thi hnh 3, 4 v 5

chkconfig --list [name]


--list

2/26/2014

open sourse

19/35

2/26/2014

Lnh kill

21/35

open sourse

20/35

open sourse

22/35

u tin ca cc tin trnh

Tt c cc tin trnh u c u tin ban u c


ngm nh l 0
Mc u tin ca mt tin trnh dao ng trong
khong t -20 n +19
Ch ngi s dng c quyn root mi c th gim
gi tr biu din u tin ca tin trnh. Mt ngi
s dng thng thng ch c th lm gim u tin
ca tin trnh thng qua vic tng gi tr biu din
u tin.

2/26/2014

open sourse

Lnh killall: dng kt thc tt c cc tin trnh ca mt


cu lnh thng qua vic truyn tn ca cu lnh di
dng mt tham s.
Quyn hy tin trnh thuc v ngi s hu tin trnh

2/26/2014

u tin ca cc tin trnh

Lit k thng tin trng thi (khi ng hay ngng) ca tt c cc dch


v m chkconfig qun l ti mi cp thi hnh. Nu c i s name,
ch c thng tin v dch v name c hin th.

Lnh kill

C php: kill [ty-chn] <ch-s-ca-tin-trnh>


Lnh kill s gi mt tn hiu n tin trnh c ch ra. Nu khng
ch ra mt tn hiu no th ngm nh l tn hiu TERM s c gi.
-s : xc nh tn hiu c gi. Tn hiu c th l s hoc tn ca tn
hiu. Di y l mt s tn hiu hay dng:
o SIGHUP
(hang up) y l tn hiu c gi n tt c cc qu
trnh ang chy trc khi logout khi h thng
o SIGINT (interrupt) y l tn hiu c gi khi nhn Ctrl+C
o SIGK (kill) tn hiu ny s dng tin trnh ngay lp
o SIGT tn hiu ny yu cu dng tin trnh ngay lp tc, nhng cho
php chng trnh xa cc file tm
-p : lnh kill s ch a ra ch s ca tin trnh m khng gi mt tn
hiu no.
-l : hin th danh sch cc tn hiu m lnh kill c th gi n cc
tin trnh (cc tn hiu ny c trong file /usr/include/Linux/signal.h)

Xo b tt c cc symbolic link ca dch v name ra khi cc th mc


/etc/rc.d/rc[0-6].d v dch v name c loi b khi s qun l ca

chy mt chng trnh vi u tin nh trc,


hy s dng lnh nice.
C php lnh: nice [ty-chn] [lnh [tham-s ]... ]
Lnh nice s chy mt chng trnh (lnh) theo u
tin sp xp. Nu khng c lnh, mc u tin
hin ti s hin th. u tin c sp xp t -20
(mc u tin cao nht) n 19 (mc u tin thp nht).
-ADJUST : tng u tin theo ADJUST u tin
--help : hin th trang tr gip v thot

23/35

2/26/2014

open sourse

24/35

u tin ca cc tin trnh

Lnh top

- thay i u tin ca mt tin trnh ang chy,


hy s dng lnh renice.
C php lnh: renice <-u-tin> [ty-chn]
Lnh renice s thay i mc u tin ca mt hoc
nhiu tin trnh ang chy.
-g : thay i quyn u tin theo nhm ngi dng
-p : thay i quyn u tin theo ch s ca tin trnh
-u : thay i quyn u tin theo tn ngi dng

2/26/2014

open sourse

Phn
Phn

$ top [d]
chn d cho php xc nh thi gian nh k cp
nht thng tin (tnh theo giy).

25/35

Lnh top cho php ngi s dng tng tc v


qun l cc tin trnh (thay i u tin, gi
cc tn hiu, )

2/26/2014

Thc thi nhiu lnh c lp


S dng k t ; thc thi nhiu lnh lin tip, cc

Thc thi nhiu lnh ph thuc nhau


S

dng k hiu && thc thi nhiu lnh lin tip,


cc lnh ny ph thuc nhau, lnh sau ch c thc
hin nu lnh trc khng gp li.
$cp public/* perso && rm -r public

open sourse

27/35

2/26/2014

Chy ch hin (foreground v


chy ch ngm (background) (1)

Thc

hin qu trnh fork , nhn bn tin trnh cha


(trong trng hp thc thi cc lnh, s l tin trnh
shell)
Thc hin qu trnh wait , a tin trnh cha vo
trng thi ng (sleep).
Thc hin qu trnh exec , thc thi tin trnh con.
Sau khi tin trnh con thc thi xong, mt tn hiu
nh thc s c gi n tin trnh cha.
Do qu trnh chy nh trn => trong qu trnh thc
hin tin trnh con, ngi s dng khng th tng
tc vi tin trnh cha.
open sourse

$ cmd1 | cmd2

open sourse

28/35

Chy ch hin (foreground v


chy ch ngm (background) (2)

Qu trnh chy ch hin s tin hnh theo


nhng bc nh sau:

2/26/2014

26/35

C ch ng ng gia
hai tin trnh cho php
nh hng li u ra ca
tin trnh th nht tr
thnh u vo ca tin
trnh th hai
C ch ng ng c
thit lp bng cch s
dng k t: |

2/26/2014

open sourse

c ch ng ng

lnh ny hot ng c lp vi nhau.


$cp public/* perso; rm -r public

trm s dng CPU


trm s dng b nh trong (RAM)

Ty

Cc kiu thc thi

Hin th v cp nht cc thng tin sau ca cc


tin trnh ang chy:

29/35

Qu trnh chy ch ngm cho php thc thi


tin trnh cha v tin trnh con mt cch c lp.
V d: $ emacs&
Sau khi thc hin lnh trn, emacs s chy
ch ngm, ngi s dng c th tip tc s
dng console thc thi cc lnh khc

2/26/2014

open sourse

30/35

Qun l tc v

V d

Mt tc v = vic thc hin mt cu lnh. Mt tc v c th


lin quan n mt nhm cc tin trnh (mt tin trnh cha v
tp cc tin trnh con ca n)
Khng th c nhiu hn 1 tc v chy ch hin
(foreground)
C th c nhiu hn 1 tc v chy ch ngm
(background)
$ command

$ command &
kill
Kt
thc

fg
Foreground

Background
fg

bg

Ctrl-C

Kt
thc

$ emacs &
[1] 756
$ stop 756
# or $ stop %1
$ bg 756
# or $ bg %1
$ kill 756
# or $ kill %1

Stop
stop
2/26/2014

Ctrl-Z
open sourse

31/35

2/26/2014

S dng k t nh hn cng vi mt tn tp tin nh sau:


< file1
trong mt lnh ch dn shell c thng tin u vo t mt tp tin
gi l file1 thay th vic nhp t bn phm.
Th d, s dng chuyn hng u vo gi ni dung tp tin
/etc/passwd ti lnh more:
$ more < /etc/passwd
Nhiu lnh ca Linux chp nhn mt tn tp tin nh l mt i s
dng lnh, ng thi cng chp nhn nhp thng tin t tp tin nhp
chun nu khng c tp tin no c a ra trn dng lnh.
Th d, xem 10 dng u tin ca tp tin /etc/passwd, hai lnh
sau y u thc hin chc nng nh nhau:
$ head /etc/passwd
$ head < /etc/passwd

Mi tin trnh s hu:

Mt u vo chun (ngm nh l bn phm)


Mt u ra chun (ngm nh l terminal)
Mt knh bo li chun (ngm nh l terminal)

Chuyn hng u vo chun (<)


$ tee < test.txt

Chuyn hng u ra chun (>, >>)


$ ls > /dev/lp
$ ls >> test.txt

Chuyn hng knh bo li


$ rm prog.c 2> /dev/null
$ gcc prog.c 2>> erreur.txt

2/26/2014

open sourse

33/35

2/26/2014

S dng k t ln hn cng vi mt tn tp tin nh


sau:
> file2
cho php shell chuyn u ra ca mt lnh vo trong
mt tp tin gi l file2 thay th vic xut ra tp tin xut
chun (mn hnh). Nu tp tin file2 c, tp tin c s b
ghi .
Th d, chuyn hng xut ca lnh ls vo tp tin
ls.out trong th mc ch ca ngi dng, ta thi hnh
lnh sau:
$ ls /temp > ~/ls.out

2/26/2014

open sourse

open sourse

34/35

Chuyn hng u ra

Chuyn hng u ra

32/35

Chuyn hng u vo

Chuyn hng cc knh chun

open sourse

35/35

S dng hai du ln hn b sung thm ni dung ti mt


tp tin c. Th d lnh c s dng chuyn hng u ra
nh sau:
>> file2
s thng bo cho shell b sung thm ni dung xut ca mt
lnh vo cui tp tin file2; trng hp tp tin file2 cha c, n
s c to.
Th d, lit k ni dung ca th mc /tmp, v ghi kt qu
vo tp tin myls. Sau lit k ni dung ca th mc /etc, v
b sung ni dung ny vo phn cui tp tin myls, ta thc hin
cc lnh sau:
$ ls /tmp > myls
$ ls /etc >> myls

2/26/2014

open sourse

36/35

Chuyn hng li

tee command

S chuyn hng tp tin li chun l kh phc tp, ph thuc


vo kiu shell ang s dng. Trong bash, chuyn hng tp
tin li chun bng k t '2>'
Th d, ta c th thc hin sp xp th t tp tin /etc/passwd,
ghi kt qu vo trong mt tp tin c tn l foo, v bt cc li
(nu c) ghi vo mt tp tin c tn l err bng lnh nh sau:
$ sort < /etc/passwd > foo 2> err

2/26/2014

open sourse

37/35

2/26/2014

open sourse

38/35

You might also like