Chương này tiếp tục trình bày về hệ thống file trong Linux. Thông qua chương này người học sẽ biết được cách để lưu trữ dữ liệu trong bộ nhớ, cách để người dùng truy cập được dữ liệu, biết được các loại hệ thống file,... Mời các bạn cùng tham khảo để nắm bắt các nội dung chi tiết.
Trang 1NHẬP MÔN HỆ ĐIỀU HÀNH INTRODUCTION TO OPERATING
SYSTEMS [214242]
Trang 4• Current Version: 2.3, 29 Jan 2004.
Trang 20cpuinfo meminfo devices interrupts net sys
tcp udp net kernel
1 129
Trang 31– mount <options> <device> <mount point>
– mount -t vfat /dev/sdb1 /mnt/flash
– umount <mount point>
– umount /mnt/flash
Trang 34• Linux được thi t k và th c thi m t file system m i đế ế ự ộ ớ ược
ch a trong nhân c a h đi u hành Linux chu n. File system ứ ủ ệ ề ẩnày được g i là Second Extended File System (Ext2 fs)ọ
Trang 35v y có kh năng s d ng đĩa có dung l ậ ả ử ụ ượ ng
l n mà không c n thi t ph i t o nhi u ớ ầ ế ả ạ ề partition
Trang 36Đi u này cho phép qu n tr h th ng khôi ph c d dàng t ề ả ị ệ ố ụ ễ ừ
nh ng tính hu ng mà x lý c a ngữ ố ử ủ ười dùng làm đ y h th ng ầ ệ ố
t p tin.ậ
Trang 37• Ng ườ i dùng có th thi t l p các thu c tính cho m t ể ế ậ ộ ộ
t p tin hay m t th m c. Trong tr ậ ộ ư ụ ườ ng h p thi t l p ợ ế ậ thu c tính cho th m c, các t p tin m i đ ộ ư ụ ậ ớ ượ ạ c t o trong th m c s th a h ư ụ ẽ ừ ưở ng các thu c tính này ộ
• Cho phép ng ườ i qu n tr h th ng l a ch n kích ả ị ệ ố ự ọ
th ướ c kh i (block) logic khi t o h th ng t p tin. ố ạ ệ ố ậ Kích th ướ c kh i có th là 1024, 2048 và 4096. S ố ể ử
d ng kích th ụ ướ c kh i l n có th làm tăng t c đ ố ớ ể ố ộ
nh p xu t c n đ ậ ấ ầ ượ c th c hi n đ truy nh p m t ự ệ ể ậ ộ
t p tin do có ít yêu c u nh p xu t h n và do đó có ít ậ ầ ậ ấ ơ thao tác truy tìm v trí trên đĩa h n nh ng s lãng phí ị ơ ư ẽ không gian đĩa h n ơ
Trang 38li u mà đ ệ ượ ư c l u tr trong inode c a b n thân ữ ủ ả
nó. Chính sách này có th ti t ki m đ ể ế ệ ượ c m t s ộ ố không gian đĩa (không c n c p phát kh i d li u) ầ ấ ố ữ ệ
và tăng t c đ thao tác liên k t (không c n đ c ố ộ ế ầ ọ
kh i d li u khi truy nh p m t liên k t. Chi u dài ố ữ ệ ậ ộ ế ề
t i đa c a tên t p tin liên k t trong m t symbolic ố ủ ậ ế ộ link là 60 ký tự
• Ext2 l u tr v t c a tr ng thái h th ng t p tin có ư ữ ế ủ ạ ệ ố ậ tác d ng ki m tra h th ng khi có các thay đ i ụ ể ệ ố ổ
Trang 39• T t c các c u trúc d li u đấ ả ấ ữ ệ ược đ t kích c d a trên kích ặ ỡ ự
thước m t block. Kích thộ ước m t block ph thu c vào kích ộ ụ ộ
thướ ủc c a file system. Ví d : đĩa m m kích thụ ề ước block là 1KB (2 sector), kích thước block trên partition 10GB có th là 4KB.ể
• File system được chia thành các block group, s lố ượng các block group cũng ph thu c vào kích thụ ộ ước c a file system. Ví ủ
d : đĩa m m ch có m t block group, m t partition 10GB có th ụ ề ỉ ộ ộ ể
được chia thành 30 block group
Trang 40• T i đ u m i block group có ch a các thông tin xác đ nh v trí, ạ ầ ỗ ứ ị ị
s block và các thông tin mô t tr ng thái h th ng hi n hành. ố ả ạ ệ ố ệCác thông tin này bao g mồ
– Super block: Ch a các thông tin c b n nh t ứ ơ ả ấ
và các thu c tính c a file system. Ví d : t ng ộ ủ ụ ổ
s inode, t ng s kh i, tr ng thái c a file ố ổ ố ố ạ ủ system…
– Group descriptors: Là m t mãng c u trúc, ộ ấ
m i c u trúc mô t m t block group, v trí ỗ ấ ả ộ ị
b ng inode c a nó, b ng đ kh i (block ả ủ ả ồ ố bitmap) và b ng đ inode (inode bitmap)… ả ồ
Trang 41– Block th 1 c a block group đ ứ ủ ượ c đ i di n b ng bit th 0 c a byte th ạ ệ ằ ứ ủ ứ 0
– Block th 2 c a block group đ ứ ủ ượ c đ i di n b ng bit th 1 c a byte 0 ạ ệ ằ ứ ủ
– Block th 8 đ i di n b ng bit th 7 c a byte 0 ứ ạ ệ ằ ứ ủ
– Block th 9 c a block group đ ứ ủ ượ c đ i di n b ng bit 0 c a byte th 1… ạ ệ ằ ủ ứ
Trang 42đượ ưc l u tr trong các inode. Tên t p tin không đữ ậ ượ ưc l u
tr trong inode do trong b ng inode t t c các t p tin đ u ữ ả ấ ả ậ ề
được tham chi u b i s inode (inode number). S inode là ế ở ố ố
m t ch s trong b ng inode ch t i m t c u trúc inode. M i ộ ỉ ố ả ỉ ớ ộ ấ ỗblock group ch a m t inode tableứ ộ
– Data block: Được s d ng đ l u tr n i dung t p tin, các ử ụ ể ư ữ ộ ậdanh sách th m c, các thu c tính m r ng, các symbolic ư ụ ộ ở ộlink…
Trang 44t t c các thông tin v m t t p tin và m i ấ ả ề ộ ậ ỗ
t p tin ch có m t inode duy nh t. Nh ng ậ ỉ ộ ấ ữ thông tin này bao g m: ch nhân t p tin, th i ồ ủ ậ ờ
đi m thay đ i n i dung t p tin, th i gian t p ể ổ ộ ậ ờ ậ tin đ ượ c truy nh p sau cùng, kích th ậ ướ c, các quy n trên t p tin, s l ề ậ ố ượ ng t p tin liên ậ
k t… ế
Trang 45– Đ a ch c a các kh i d li u đã c p phát cho ị ỉ ủ ố ữ ệ ấ
m t t p tin đ ộ ậ ượ ư c l u tr trong inode c a nó. ữ ủ Inode ch a m t t p h p các con tr Nh ng ứ ộ ậ ợ ỏ ữ con tr này tr đ n các kh i d li u c a t p ỏ ỏ ế ố ữ ệ ủ ậ tin.
– 10 con tr đ u tiên đ ỏ ầ ượ c tìm n p t đĩa đ n ạ ừ ế
b nh chính khi t p tin đ ộ ớ ậ ượ c m Đ i v i ở ố ớ
t p tin l n h n con tr ti p theo trong inode ậ ớ ơ ỏ ế
s ch đ n m t block trên đĩa g i là ẽ ỉ ế ộ ọ single indirect block. Block này ch a các đ a ch d ứ ị ỉ ữ
li u (block) b sung. ệ ổ
Trang 46Ễ – N u v n không đ , con tr th 12 trong i ế ẫ ủ ỏ ứ
node tr t i ỏ ớ double indirect block. Block này
có ch a đ a ch c a block ch a danh sách các ứ ị ỉ ủ ứ single indirect block. M i single indirect ỗ block tr t i hàng trăm kh i d li u. N u ỏ ớ ố ữ ệ ế
v n không đ m t ẫ ủ ộ triple indirect block cũng
có th d ể ượ c dùng…
Trang 48– Các th m c đư ụ ược xây d ng nh là m t t p tin có ki u ự ư ộ ậ ể
đ c bi t. Th c t , m t th m c là m t t p tin có ch a m t ặ ệ ự ế ộ ư ụ ộ ậ ứ ộdanh sách các m c t , m i m c t có c u trúc đ n gi n ụ ừ ỗ ụ ừ ấ ơ ảbao g m hai trồ ường: s inode c a t p tin và tên t p tin đó. ố ủ ậ ậKhi m t ti n trình có tham chi u đ n th m c, mã nhân h ộ ế ế ế ư ụ ệ
đi u hành tìm ki m trong các th m c đ tìm ki m s iề ế ư ụ ể ế ốnode tương ng. Sau khi tên đã đứ ược chuy n đ i thành s ể ổ ốinode, inode được n p vào trong b nh và đạ ộ ớ ượ ử ục s d ng
b i nh ng yêu c u ti p theo.ở ữ ầ ế
Trang 50– Tính s n có: Nh vào nh t ký đ ẵ ờ ậ ượ c cung
c p b i file system Ext3, trong tr ấ ở ườ ng h p ợ
h th ng b t t đ t ng t, Ext3 không c n ệ ố ị ắ ộ ộ ầ
th c hi n ngay thao tác ki m tra tính nh t ự ệ ể ấ quán c a hê th ng khi file system đ ủ ố ượ c mount.
Trang 51Ext3 ch ki m tra tính nh t quán trong m t s ỉ ể ấ ộ ố
tr ườ ng h p đ t bi t khi có l i v đĩa c ng x y ợ ặ ệ ỗ ề ứ ả
ra. Th i gian đ khôi ph c m t file system Ext3 ờ ể ụ ộ
không ph thu c vào kích th ụ ộ ướ ủ c c a nó mà ch ỉ
ph thu c vào kích th ụ ộ ướ ủ c c a nh t ký đ ậ ượ c dùng
đ b o trí tính nh t quán c a h th ng t p tin ể ả ấ ủ ệ ố ậ
– Tính toàn v n d li u: File system Ext3 cung ẹ ữ ệ
c p m t c ch đ m b o tính toàn v n d ấ ộ ơ ế ả ả ẹ ữ
li u trong tr ệ ườ ng h p h th ng b t t đ t ợ ệ ố ị ắ ộ
ng t. Ext3 cho phép ng ộ ườ i dùng ch n ki u và ọ ể
m c đ b o v d li u ứ ộ ả ệ ữ ệ
Trang 52– T c đ : Ext3 có t c đ cao h n Ext2 ố ộ ố ộ ơ
– H tr ph c h i d li u hi u qu h n ext2 (s d ng ỗ ợ ụ ồ ữ ệ ệ ả ơ ử ụ
chương trình e2fsck đ ph c h i l i nh ng h h ng d ể ụ ồ ạ ữ ư ỏ ữ
li u) ệ
– D dàng chuy n đ i t ext2 sang ext3ễ ể ổ ừ
Trang 53• Nhân h đi u hành Linux có ch a m t l p h th ng t p tin ệ ề ứ ộ ớ ệ ố ậ
o (VFS). Đ c s d ng trong su t quá trình h th ng g i
kích ho t các t p tin. VFS là m t l p gián ti p qu n lý các ạ ậ ộ ớ ế ả
l i g i h th ng t p tin và g i các ch c năng c n thi t trong ờ ọ ệ ố ậ ọ ứ ầ ế
mã h th ng t p tin v t lý đ th c hi n nh p xu t.ệ ố ậ ậ ể ứ ệ ậ ấ
• C ch gián ti p này đơ ế ế ược s d ng thử ụ ường xuyên trong các
h đi u hành Linux đ d dàng hoà nh p và s d ng đệ ề ể ễ ậ ử ụ ược nhi u ki u file system khac nhau.ề ể
Trang 54l i g i t i m t ch c năng ch a trong mã h th ng t p tin v t ờ ọ ớ ộ ứ ứ ệ ố ậ ậ
lý. Mã h th ng t p tin s d ng các ch c năng l u tr b ệ ố ậ ử ụ ứ ư ữ ộ
đ m (buffer cache) đ yêu c u nh p/xu t trên các thi t bệ ể ầ ậ ấ ế ị
Trang 56• VFS bi t v các ki u file system đế ề ể ược h tr trong nhân c a ỗ ợ ủ
h đi u hành b ng cách là s d ng m t b ng đệ ề ằ ử ụ ộ ả ược đ nh nghĩa ịtrong quá trình c u hình nhân c a h đi u hành. M i m c t ấ ủ ệ ề ỗ ụ ừtrong h th ng này mô t m t ki u file system nó có ch a tên ệ ố ả ộ ể ứ
c a ki u file system và m t con tr hàm đã g i trong quá trình ủ ể ộ ỏ ọthao tác mount file system vào h th ng.ệ ố
Trang 583.4.1. Các ki u t p tin trong Linuxể ậ
• Regular: Là t p tin ch ch a d li u thông th ng. D li u có ậ ỉ ứ ữ ệ ườ ữ ệ
th là chể ương trình, t p tin d ng text, mã ngu n ậ ạ ồ
• Directory: T ng t nh ki u regular, nó ch a m t b các byte ươ ự ư ể ứ ộ ộ
d li u là danh sách các t p tin khác. Không có gi i h n v ki u ữ ệ ậ ớ ạ ề ể
t p tin mà m t th m c có th ch a.ậ ộ ư ụ ể ứ
Trang 59đi u khi n thi t b th c hi n các thao tác nh p xu t ch trong ề ể ế ị ự ệ ậ ấ ỉ
ph m vi nh ng đo n l n 512 hay 1024 byte. M t s ki u ph n ạ ữ ạ ớ ộ ố ể ầ
c ng nh là đĩa có th đ i di n cho c hai ki u t p tin ứ ư ể ạ ệ ả ể ậcharacter device và block device
Trang 60• Name pipes: Cho phép truy n thông gi a hai ti n trình không ề ữ ế
có quan h ch y trên cùng m t máy.ệ ạ ộ
• Hard link: Th c s không ph i là m t t p tin mà là m t t p tin ự ự ả ộ ậ ộ ậliên k t. M i t p tin có ít nh t m t hard link.ế ỗ ậ ấ ộ
Trang 61Khi m t hard link m i đ ộ ớ ượ ạ c t o cho m t t p tin, ộ ậ
m t tên hi u (alias) cho t p tin đó s đ ộ ệ ậ ẽ ượ ạ c t o ra.
N i dung c a hard link và t p tin nó liên k t t i luôn ộ ủ ậ ế ớ
gi ng nhau. Khi thay đ i n i dung c a hard link, n i ố ổ ộ ủ ộ dung c a t p tin mà nó liên k t t i cũng thay đ i theo ủ ậ ế ớ ổ
và ng ượ ạ c l i.
• Symbolic link: Là m t t p tin ch ch a tên c a t p ộ ậ ỉ ứ ủ ậ tin khác. Khi nhân h đi u hành m ho c duy t ệ ề ở ặ ệ qua các symbolic link, nó đ ượ c d n đ n t p tin mà ẫ ế ậ symbolic link ch đ n thay vì chính b n thân ỉ ế ả symbolic link. S khác nhau quan tr ng gi a ự ọ ữ symbolic link và hard link là hard link là tham chi u ế
tr c ti p trong khi đó symbolic link là m t tham ự ế ộ
Trang 62• M i h đi u hành đi u có m t ph ọ ệ ề ề ộ ươ ng pháp đ ể
l u tr các th m c và t p tin c a chúng đ t o ư ữ ư ụ ậ ủ ể ạ
đi u ki n cho các công tác b sung s a đ i và các ề ệ ổ ử ổ thay đ i khác v sau. Trong Linux m i t p tin đ u ổ ề ọ ậ ề
đ ượ ư c l u tr trên h th ng v i m t tên duy nh t, ữ ệ ố ớ ộ ấ trong các th m c cũng có th ch a các t p tin và ư ụ ể ứ ậ
Trang 64• Đ mô t m t v trí xác đ nh trong cây h th ng t p tin ta ph i ể ả ộ ị ị ệ ố ậ ả
ch ra đỉ ường d n (path). Đẫ ường d n đ n m t v trí có th đẫ ế ộ ị ể ược
đ nh nghĩa nh m t đị ư ộ ường d n tuy t đ i t đi m root, ho c ẫ ệ ố ừ ể ặ
nh m t đư ộ ường d n tẫ ương đ i đố ược b t đ u t v trí hi n hành.ắ ầ ừ ị ệ
• Khi ch ra m t đỉ ộ ường d n ta ch c n th c hi n “theo v t đẫ ỉ ầ ự ệ ế ường đi” trong cây h th ng t p tin b ng cách li t kê tu n t nh ng ệ ố ậ ằ ệ ầ ự ữ
th m c ta đi qua t đi m này đ n đi m khác. M i th m c ư ụ ừ ể ế ể ỗ ư ụ
được li t kê trong th t này ph i đệ ứ ự ả ược phân cách nhau b ng ằ
d u /.ấ
Trang 66• /dev: Ch a nh ng th m c t file system đ i di n cho các thi t ứ ữ ư ụ ừ ạ ệ ế
b đị ược g ng v i h th ng. Nh ng t p tin này c n thi t cho ắ ớ ệ ố ữ ậ ầ ế
th ng và thi hành các l nh trong h th ng t p tin root.ố ệ ệ ố ậ
Trang 67• /opt: Ch a đ ng các gói ph n m m ng d ng ứ ự ầ ề ứ ụ tĩnh. Các gói ph n m m này đ ầ ề ượ c ch a đ ng ứ ự trong t ng th m c con riêng r Trong tr ừ ư ụ ẽ ườ ng
h p các gói l n ch a nhi u gói con nh h n, m i ợ ớ ứ ề ỏ ơ ỗ gói con này có th th c hi n m t ch c năng hoàn ể ự ệ ộ ứ
ch nh nào đó, m i gói con này cũng đ ỉ ỗ ượ ư c l u tr ữ riêng trong t ng th m c con trong th m c c a ừ ư ụ ư ụ ủ gói l n. V i cách th c t ch c này, ng ớ ớ ứ ổ ứ ườ i qu n tr ả ị
h th ng s d dàng xác đ nh đ ệ ố ẽ ễ ị ượ c vai trò c a ủ
m i t p tin trong m t gói c th nào đó ỗ ậ ộ ụ ể
Trang 69có th để ượ ử ục s d ng cho các chương trình và d li u cho phép ữ ệdùng chung trên m ng mà không có trong /usr.ạ
• /var: Ch a các t p tin d li u kh bi n nh là t p tin, th m c ứ ậ ữ ệ ả ế ư ậ ư ụ
“đường ng”, d li u nh t ký (log), các t p tin t m th i…ố ữ ệ ậ ậ ạ ờ
Trang 70• Nh ng lo i ngữ ạ ười dùng : superuser (root), user thường.
• M t kh u : phân bi t ch hoa, thậ ẩ ệ ữ ường; được mã hóa
Trang 713.5.2. Giao di n ngệ ườ ử ụi s d ng
• Dòng l nh ệ (Shell prompt command line) : th ng dùng b i ườ ởroot đ thao tác nhanh.ể
c a ngủ ười dùng thường
Trang 72gi a ngữ ườ ử ụi s d ng và HĐH hay nói cách khác shell là m t ộ
chương trình được thi t k đ nh n l nh c a ngế ế ể ậ ệ ủ ườ ử ụi s d ng
và thi hành l nh.ệ
– Red Hat Linux có nhi u l ai shell: sh (Bourne); Korn (ksh); ề ọ
C (csh); bash (Bourne Again Shell)…
Trang 73% d u nh c khi ch y C shellấ ắ ạ
$ d u nh c khi ch y Bourne shell ho c Korn shellấ ắ ạ ặ
~ d u ấ nh c ắ khi ch y ạ tcsh shell
• Shell m c đ nh c a Linux là bash, file bash trong /bin ặ ị ủ
Trang 81a: Li t kê t t c các t p tin có trong th m c k c t p tin n.ệ ấ ả ậ ư ụ ể ả ậ ẩ
l: Hi n th thông tin chi ti t v n i dung t p tin.ể ị ế ề ộ ậ
R: Li t kê c n i dung c a các th m c con trong th m c ệ ả ộ ủ ư ụ ư ụ
mu n xem.ố
S: S p x p danh sách t p tin theo kích thắ ế ậ ước gi m d n.ả ầ
t: S p x p danh sách t p tin theo th t ngày tháng thay đ i ắ ế ậ ứ ự ổ
t p tin.ậ
F: B sung thêm m t ký t vào cu i m i m c t : /là th m c; ổ ộ ự ố ỗ ụ ừ ư ụ
@ là symbolic link t i t p tin khác; * t p tin thi hành.ớ ậ ậ
Trang 85• B ng ghi các các giá tr quy n truy c p ả ị ề ậ
Bảng ghi các các giá trị quyền truy cập khi dùng lệnh 'chmod'
(Các giá trị nhị phân trong ngoặc đơn dùng để đối chiếu)
Trang 86• Option: p: Cho phép t o c cây th m c (t o c th m c cha ạ ả ư ụ ạ ả ư ụ
n u ch a có) nh yêu c uế ư ư ầ
Trang 89i: xu t hi n thông báo trấ ệ ước khi ghi đè
f: không xu t hi n l i nh c trấ ệ ờ ắ ước khi ghi đè
Trang 91– r: xóa t t c n i dung c a các th m c conấ ả ộ ủ ư ụ
– f: Không thông báo khi th c hi n xóa t p tinự ệ ậ
– i: Nh c trắ ước khi xóa
Trang 93is included in this OS version as a Technology Preview and is not officially supported. However, because of the new features ext4 provides, it is gaining more popularity. The benchmark results show how much performance increase can be expected from the current ext4 system included with Red Hat Linux.
Two Dell PowerVault MD 1200 RAID arrays are used for these experiments. Each array contains twelve 450 GB 15K rpm SAS6 disks. The storage is configured as a single RAID 5 volume spanning over 24 disks. A Dell PowerEdge R710 server with a PERC H800 card is used to connect to the arrays. First port of the H800 card is connected to the first array and the second port is connected to the second array. We used the IOzone benchmark version 3.327 available from www.iozone.org. The read ahead setting on the OS was set to 8192 sectors to improve sequential read performance using the blockdev command. For this study, the defaults were used for the other settings however the performance can be further tuned by modifying other
OS and storage settings.
The charts above show the results of the benchmark runs. Every test was run 10 times and the average is reported with the standard deviation. Only one IOzone thread was used since increasing the number of IOZone threads did not result in improved performance. The experiment results show that ext2 has higher performance than ext3, which is consistent with what we have observed in the past and is attributable to the fact that ext2 does not use
a journal which enables it to perform writes faster. It is possible to improve the ext3 performance by using a different drive to keep the journal, however we did not investigate that option for this study. Ext4 resulted in better read and write performance compared to ext3 due to its
enhancements, such as the usage of extents and delayed block allocation.
The results are very encouraging as ext4 is considerably faster than ext3 and has the reliability advantage over ext2. As ext4 evolves, its performance characteristics may change, however once the file system becomes supported we expect it to be a very good choice to be used under Linux.