1
Bài 4. Qun trhthng
Ngô Duy Hòa – KHMT - CNTT
Ni dung bài hc
•Quátrình khi động hthng.
•Qun lý người dùng.
•Hthng log files.
•…..
1. Quá trình khi động
Boot process
Các bước cthPower-up / Reset
Máy tính bt đầu khi động, CPU thc
hin chương trình địa ch0xFFFF0 trong
BIOS (Basic Input Output System).
Công vic chia làm 2 phn:
POST – Power On Self Test:
•Np vào RAM code ÆKim tra các phn cng
•Nếu OK ÆPOST code b đảy ra khi RAM.
Runtime services:
Đọc CMOS Ætìm ra boot device.
2
BIOS boot monitor
Runtime Services xác định được thiết b
khi động: HDD, Floppy, CD-ROM,..
•Xác định MBR (Master Boot Record) ca
thiết b.
MBR – first sector : 512 Byte.
Địa ch: sector 1, cylinder 0, header 0.
•Np MBR vào RAM ÆBIOS trao quyn
thc hin cho MBR.
Boot Sector Floppy & HDD
Master Boot Record Master Boot Record
•MBR cha 3 phn:
BootLoader (446 bytes) chương trình mi
gm 2 phn:
Code chương trình: thc hin vic tìm kiếm phân
vùng tích cc (để khi động).
Các thông báo li (error message).
–Bng phân vùng (64 bytes):
4 thành phn (16 bytes): lưu trthông tin vcác
phân vùng chính (primary partition).
Magic number: 0xAA55.
Cu trúc các thành phnMaster Boot Record
•Ch 4 phân vùng chính (primary Part.).
•Nếu cn nhiu hơn 4 phân vùng:
1 phân vùng chính = 1 phân vùng mrng
(extended part.).
Chia thành các phân vùng logic (logical Part.)
•Sector đầu tiên ca các phân vùng đều là
boot sector Æ thcài OS trong phân
vùng bt k.
3
Extended Partition Stage 1 bootloader
•Xác định phân vùng tích cc thông qua
boot flag.
•Nếu không tn ti Æthông báo li.
Sau khi xác định đưc:
–Np boot sector ca phân vùng khi động
vào RAM Ætrao quyn điu khin cho
chương trình boot sector.
–Bt đầu giai đon th2 (stage 2 bootloader)
Stage 2 bootloader
•Nhim vchính ca giai đon này là:
–Np nhân HĐH (Linux kernel) vào RAM.
–Np RamDisk vào RAM.
•Cóskhác bit gia các chương trình
BootLoader:
LILO : Linux Loader
GRUB : GRand Unified Bootloader.
LILO
Linux Loader là chương trình truyn thng
ca Linux htrkhi động hthng vi
nhiu dng HĐH khác nhau.
LILO có kích thước >> 512 byte Æ được
chia làm 2 giai đon:
Stage 1 (như đã nói phn trước):
•Cóthnm MBR
•Cóthnm phân vùng cài Linux.
Stage 2 : np nhân HĐH
Các bước LILO thc hin
•Thc hin và in ký tra màn hình:
Stage 1 thc hin và in chL.
Stage 1 np mã lnh ca Stage 2 vào RAM
in chI.
Stage 2 bt đầu thc hin và in chL.
–Ca sgõ lnh xut hin. Thc hin lnh lilo
để truy cp đến map-file, là file xác định các
nhân HĐH.
Khi map-file được np hoàn toàn vào RAM Æ
hin thký tcui cùng O.
File cu hình LILO
•Cu hình LILO:
/etc/lilo.conf
boot: boot device
map: map-file
install: cha bootstrap
code - chương trình
mi khi động OS
image: kernel image
4
Nhược đim LILO
•LILO đọc map-file để xác định vtrí vt lý các
nhân OS.
•Nếu kernel hoc đĩa có 1 s thay đổi nào đó
Æ map-file thay đổi Æphi to li map-file.
GRUB
•Gii quyết vn đề ca LILO bng cách trong
stage 2 chia ra hai phn:
Stage 1.5: xác định kiu file system ca phân vùng
cha nhân OS.
Stage 2: np nhân OS vào RAM.
Cu hình GRUB
File cu hình: /etc/grub/grub.conf
Chy GRUB bng tay
d
Khi màn hình hin thdòng chGRUB thì n C
để chy chế độ dòng lnh.
–Lnh kernel xác định kernel image.
–Lnh initrd xác định ramdisk.
–Lnh boot np kernel image Ækhi động hthng.
Kernel stage
Kernel image được np vào RAM Æ
quyn điu khin chuyn đến kernel img.
Kernel image là dng file nén:
zImage : dng nén vi kích thước < 512KB.
bImage : dng nén vi kích thước > 512KB.
•Gi mt slnh đặc bit Æchia thành các
chế độ làm vic riêng: user & kernel mode.
•Thc hin gii nén kernel image.
5
Linux 2.6 kernel image Sơ đồ các bước thc hin
Sơ đồ các bước thc hin
Startup_32() : swapper - process 0:
–Gii nén kernel image.
–Khi to bng trang trong bnh(page tables,
memory tables)
–Xác định kiu CPU.
Startup_kernel():
–Thiết lp hthng ngt (interrupt).
–Np RAMdisk vào hthng.
Init process 1: tiến trình người dùng đầu tiên.
Vai trò RAMdisk
•To mt file system tm thi trong RAM.
Cho phép hthng khi động mà không
cn làm vic trc tiếp vi cng.
•Cha mt scác modules cn thiết làm
vic vi các thiết bphn cng.
Sau khi kernel boot Æfile system tm b
đẩy ra ngoài, thay vào đólàfile system
thc ca OS.
Cây thư mc trong RAMdisk Init process
•Hthng khi độngđược cu hình làm
vic các mc khác nhau: runlevel.
Init là tiến trình người dùng đầu tiên luôn
có PID = 1.
•Init đọc cu hình t file /etc/inittab để khi
động các dch vcn thiết.
•Mi mt mc làm vic có mt tp các dch
vcth tương ng.