Kiến trúc hệ thống File EXT2, EXT3, EXT4 của các hệ điều hành họ LINUX - Pdf 33

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA QUỐC TẾ VÀ ĐÀO TẠO SAU ĐẠI HỌC
*********
Bài tập tiểu luận môn Hệ Điều Hành Mạng Nâng Cao
Kiến trúc hệ thống File EXT2, EXT3, EXT4 của
các hệ điều hành họ LINUX
Nhóm thực hiện: Nguyễn Trường Giang
Vũ Hoàng Anh - Nguyễn Ngọc Ân
Phạm Khánh Chung - Tô Danh Dũng
Nguyễn Anh Dũng - Dương Văn Dũng
Đặng Xuân Điệp - Đinh Quang Định
Nguyễn Thu Giang - Chu Hải Hà

Giảng viên hướng dẫn: Ts Hoàng Xuân Dậu
Lớp: TDL&MMT (Đợt 1) - M11CQCT01-B
Đề tài: Kiến trúc hệ thống File EXT2, EXT3, EXT4 của các hệ điều hành họ LINUX

Hà Nội, tháng 12 - 2011
Nhóm 7- Lớp TDL&MMT Đợt 1 2
Đề tài: Kiến trúc hệ thống File EXT2, EXT3, EXT4 của các hệ điều hành họ LINUX
MỤC LỤC
MỤC LỤC........................................................................................................................1
LỜI GIỚI THIỆU...............................................................................................................3
CÁC TỪ VIẾT TẮT.............................................................................................................4
Chương 1. Tìm hiểu về hệ điều hành Linux......................................................................5
1.1 Linux là gì?......................................................................................................................5
1.2 Tại sao Linux phát triển?.................................................................................................. 6
1.3 Các bản phát hành Linux..................................................................................................7
1.4 Lợi thế của Linux.............................................................................................................7
1.5 Ai phát triển Linux ?........................................................................................................9
Chương 2. Phân vùng đĩa cứng.....................................................................................10

2.4.2.3 Lưu file theo nhóm block (Extents)...............................................................................................44
2.4.2.4 Chống phân mảnh trực tuyến .......................................................................................................46
2.4.2.5 Cải tiến độ tin cậy..........................................................................................................................47
4.4.2.6 Đếm số inode (index-node) chưa dùng và việc làm lệnh e2fsck nhanh hơn...............................47
2.4.2.7 Kiểm tra tổng thể (checksum).......................................................................................................49
2.4.2.8 Các đặc điểm mới..........................................................................................................................50
Kết luận........................................................................................................................56
TÀI LIỆU THAM KHẢO....................................................................................................57
Nhóm 7- Lớp TDL&MMT Đợt 1 2
Đề tài: Kiến trúc hệ thống File EXT2, EXT3, EXT4 của các hệ điều hành họ LINUX
LỜI GIỚI THIỆU
Trong những năm gần đây HDH Linux đang ngày càng trở nên phổ biến trong
trường học và môi trường công nghiệp. Hệ điều hành này, với chức năng và tính ổn
định cho phép nó tồn tại song song với các hệ điều hành thương mại khác. Hơn nữa,
sự phổ biến của mã nguồn Linux trên Internet đã đóng góp rất nhiều cho sự phổ cập
của Linux. Một trong những đặc điểm quan trọng của Linux là nó hỗ trợ nhiều hệ
thống tập tin. Điều này làm cho nó rất linh động và có thể cùng tồn tại với nhiều hệ
điều hành khác. Từ những phiên bản đầu tiên, Linux đã hỗ trợ 15 loại tập tin : ext,
ext2, xia, minix, umsdos, msdos, vfat, proc, smb, ncp, iso9660, sysv, hpfs, affs và ufs.
Trong Linux, cũng như Unix, hệ thống tập tin được truy xuất thông qua một
cấu trúc cây thừa kế đơn thay vì là các thiết bị xác định (như tên ổ đĩa hoặc số hiệu
của ổ đĩa). Linux thêm những hệ thống tập tin mới vào cây này khi nó được thiết lập
(mount). Tất cả hệ thống tập tin được thiết lập vào một thư mục và được gọi là thư
mục thiết lập. Khi một đĩa được khởi tạo, trên đĩa được chia thành nhiều partitions.
Mỗi partition có một hệ thống tập tin.
Nhóm sinh viên chúng em đã chọn đề tài: “Kiến trúc hệ thống File EXT2,
EXT3, EXT4 của các hệ điều hành họ LINUX”. Nhưng do kiến thức và kinh
nghiệm còn ít, sự nghiên cứu về đề tài còn nhiều thiếu sót, kính mong thầy giúp đỡ
và chỉnh sửa những thiếu sót giúp chúng em để chúng em có thể hoàn thiện hơn kiến
thức của mình.

điều hành kiểu UNIX cài đặt trên máy tính cá nhân chạy với bộ vi xử lý Intel,
tương hợp họ máy tính IBM-PC (còn gọi tắt là PC). Từ lâu, UNIX đã nổi tiếng là
một hệ điều hành mạnh, tin cậy và linh hoạt, nhưng vì khá đắt nên chủ yếu chỉ
dùng cho các trạm tính toán hoặc máy chủ cao cấp.
Ngày nay Linux có thể cài đặt trên nhiều họ máy tính khác nhau, không chỉ
riêng cho họ PC. Qua Internet, Linux được hàng nghìn nhà lập trình khắp trên thế
giới tham gia thiết kế, xây dựng và phát triển, với mục tiêu không lệ thuộc vào
bất kỳ thương phẩm nào và để cho mọi người đều có thể sử dụng thoải mái. Khởi
thuỷ, Linux xuất phát từ ý tưởng của Linus Torvalds, khi đó chàng sinh viên Đại
học Helsinki ở Phần Lan đã muốn thay thế Minix, một hệ điều hành nhỏ kiểu
UNIX.
Về cơ bản, Linux bắt chước UNIX cho nên cũng có nhiều ưu điểm của UNIX.
Tính đa nhiệm thực sự của Linux cho phép chạy nhiều chương trình cùng lúc.
Với Linux, bạn có thể đồng thời thực hiện một số thao tác, thí dụ chuyển tệp, in
ấn, sao tệp, nghe nhạc, chơi game v.v.
Linux là hệ điều hành đa người dùng, nghĩa là nhiều người có thể đăng nhập
và cùng lúc sử dụng một hệ thống. Ưu điểm này có vẻ không phát huy mấy trên
máy PC ở nhà, song ở trong công ty hoặc trường học thì nó giúp cho việc dùng
chung tài nguyên, từ đó giảm thiểu chi phí đầu tư vào máy móc.
Ngay cả khi ở nhà, bạn cũng có thể đăng nhập vào Linux với nhiều account
khác nhau qua các terminal ảo và tổ chức dịch vụ trên mạng riêng cho mình bằng
cách sử dụng Linux với nhiều modem.
Nhóm 7- Lớp TDL&MMT Đợt 1 5
Đề tài: Kiến trúc hệ thống File EXT2, EXT3, EXT4 của các hệ điều hành họ LINUX
Bản thân việc độc lập với những công ty lớn cũng tiềm tàng một điểm yếu của
Linux. Khi chưa có một mạng lưới riêng cung cấp dịch vụ bảo trì thì tất nhiên
người ta sẽ ngại sử dụng Linux. Tuy thế, với sự phát triển của Internet, các tổ
chức hỗ trợ người dùng Linux đã tạo nên các Website và forum để tháo gỡ cho
bạn nhiều vấn đề khó khăn.
Hơn nữa Linux có thể không chạy tốt với một số phần cứng ít phổ biến, thậm

Trung Quốc đã phát triển hệ điều hành Hồng Kỳ từ kernel của Linux để không bị
lệ thuộc Microsoft Windows, cũng như họ đang tự nghiên cứu bộ vi xử lý Hồng
Tâm để thay thế cho họ chip Intel.
Tại Việt Nam, việc nghiên cứu xây dựng một hệ điều hành từ kernel Linux đã
thu được một số thành công nhất định. Chắc bạn cũng đã biết đến Vietkey Linux
và CMC RedHat Linux (phiên bản tiếng Việt của RedHat Linux 6.2).
Gần đây, các công ty nổi tiếng như IBM, Sun, Intel, Oracle cũng bắt đầu
nghiên cứu Linux và xây dựng các phần mềm ứng dụng cho nó.
1.3 Các bản phát hành Linux
Nhiều người đã biết đến các nhà sản xuất phần mềm RedHat, ManDrake,
SuSE, Corel và Caldera. Có thể chính bạn cũng đã từng nghe đến tên các phiên
bản Linux như Slackware, Debian, TurboLinux và VA Linux, v.v. Quả thật,
Linux được phát hành bởi nhiều nhà sản xuất khác nhau, mỗi bản phát hành là
một bộ chương trình chạy trên nhóm tệp lõi (kernel) của Linus Tordvalds. Mỗi
bản như vậy đều dựa trên một kernel nào đó, thí dụ bản RedHat Linux 6.2 sử
dụng phiên bản kernel 2.2.4.
Hãng RedHat đã làm ra chương trình quản lý đóng gói RPM (RedHat
Package Manager), một công cụ miễn phí giúp cho bất cứ ai cũng có thể tự đóng
gói và phát hành một phiên bản Linux của chính mình. Thí dụ bản OpenLinux
của Caldera cũng đã được tạo ra như thế.
1.4 Lợi thế của Linux
Tại sao có thể chọn Linux thay vì chọn một trong những hệ điều hành khác
chạy trên PC như DOS, Windows 95/98, Windows NT, hoặc Windows 2000 ?
Nhóm 7- Lớp TDL&MMT Đợt 1 7
Đề tài: Kiến trúc hệ thống File EXT2, EXT3, EXT4 của các hệ điều hành họ LINUX
Linux cung cấp cho bạn một môi trường học lập trình mà hiện nay chưa có hệ
nào sánh được. Với Linux, bạn có đầy đủ cả mã nguồn, trong khi đó các sản
phẩm mang tính thương mại thường không bao giờ tiết lộ mã nguồn.
Cuối cùng, Linux mang đến cho bạn cơ hội sống lại bầu không khí của cuộc
cách mạng vi tính trước kia. Cho đến giữa thập niên 1970, máy tính điện tử còn

và tính liên tác (interoperability) đều gắn với khả năng của những hệ điều hành
có thể liên lạc với nhau. Phần lớn các hệ mở đòi hỏi phải thoả mãn tương thích
tiêu chuẩn IEEE POSIX (giao diện hệ điều hành khả chuyển). Linux đáp ứng
những tiêu chuẩn ấy và được lưu hành với mã nguồn mở.
1.5 Ai phát triển Linux ?
Nói chung, Linux là một hệ thống được xây dựng bởi các hacker và cho các
hacker. Mặc dù hiện nay trong xã hội từ hacker thường có hàm ý tiêu cực, song
nếu theo nghĩa ban đầu thì hacker không phải là tội phạm. Hacker tìm hiểu
những gì có bên trong một hệ thống cho đến từng chi tiết và có khả năng sửa
chữa nếu hệ thống ấy bị hỏng hóc. Đa số các hacker không xâm nhập hệ thống vì
tiền bạc hoặc ác ý, mặc dù sau này đã có những người vượt qua giới hạn ấy và bị
tập thể các hacker gọi là cracker (tin tặc) hay hacker mũ đen. Giới hacker cảm
thấy bị xúc phạm khi mọi người xem họ như lũ phá hoại và gọi chung là tin tặc.
Thực ra, những hacker chân chính, còn gọi là hacker mũ trắng, rất có công
trong việc phát hiện kẽ hở của các phần mềm, giúp mọi người và chủ nhân của
những phần mềm ấy cảnh giác trước sự tấn công của giới tin tặc. Cũng nhờ công
cuộc bảo vệ này mà Linux và các ứng dụng Linux (nói rộng hơn là các phần
mềm nguồn mở) càng ngày càng an toàn hơn
Ngoài đời, phần lớn những người sử dụng UNIX chỉ được cấp cho một số
account với quyền hạn thu hẹp, do đó một người bình thường không thể thử
nghiệm đầy đủ các câu lệnh UNIX. Với Linux bạn có một phiên bản hoạt động
tương tự UNIX nhưng cho phép quản trị, sử dụng, vào ra thoải mái không giới
hạn, một điều hiếm gặp trong cuộc sống.
Nhóm 7- Lớp TDL&MMT Đợt 1 9
Đề tài: Kiến trúc hệ thống File EXT2, EXT3, EXT4 của các hệ điều hành họ LINUX
Chương 2. Phân vùng đĩa cứng
2.1 Giới thiệu chung
Với sự hình thành và phát triển của hệ điều hành Linux, giờ đây chúng ta có
rất nhiều cách trong việc chọn lựa các hệ thống file (file system) cho từng loại
ứng dụng.

tự
255 ký
tự
Kích thước block tuỳ
biến
Không Không Có
Những đặc trưng của hệ thống tập tin Ext2 chuẩn:
- Hệ thống tập tin Ext2 hỗ trợ các kiểu tập tin Unix chuẩn: các tập tin thông
thường, các tập tin thiết bị đặc biệt và các tập tin liên kết.
- Hệ thống tập tin Ext2 có khả năng quản lý các hệ thống tập tin trên những
phân vùng kích cỡ rất lớn. Trong khi mã nhân (kernel) gốc giới hạn kích cỡ hệ
thống tập tin lớn nhất là 2GB, nghiên cứu gần đây trong lớp VFS đã tăng lên
đến giới hạn là 4TB. Vì vậy, ngày nay nó có thể sử dụng các đĩa dung lượng
lớn mà không cần tạo nhiều phân vùng.
- Hệ thống tập tin Ext2 cung cấp tên tập tin dài. Đây là khả năng của Linux mà
trên các hệ thống UNIX chuẩn không hề cung cấp. Tối đa một tên tập tin là
255 ký tự và có thể có khoảng trắng. Nghiên cứu gần đây trên lớp VFS, giới
hạn này đã tăng lên 4TB. Vì thế, nó có thể sử dụng các đĩa kích thước rất lớn
mà không cần tạo nhiều phân vùng.
- Hệ thống tập tin Ext2 dự trữ một vài block cho super user (root). Thông
thường, 5% các block này được dự trữ. Điều này cho phép người quản lý phục
hồi dễ dàng từ quá trình người dùng làm đầy các hệ thống tập tin.
- Hệ thống tập tin Ext2 cho phép truy xuất đến các hệ thống khác như FAT,
FAT32, MSDOS trên Windows 9.x và DOS một cách dễ dàng. Ngược lại,
chúng ta có thể cũng có thể từ các hệ thống FAT, NTFS, BeOS, OS/2, MacOS
truy xuất đến Ext2 thông qua các trình tiện ích như LTOOLS. Và còn nhiều
khả năng khác như có thể dễ dàng thêm vào các khả năng cho Ext2.
Nhóm 7- Lớp TDL&MMT Đợt 1 11
Đề tài: Kiến trúc hệ thống File EXT2, EXT3, EXT4 của các hệ điều hành họ LINUX
2.2.2 Tổ chức đĩa

0 1 boot record
-- block group 0 --
(1024 bytes) 1 superblock
2 1 group descriptors
3 1 block bitmap
4 1 inode bitmap
5 23 inode table
28 1412 data blocks

Và đây là tổ chức của một hệ thống file Ext2 20MB:
Figure 1-2. Bố trí dữ liệu trên phân vùng 20MB
offset # of blocks description
-------- ----------- -----------
0 1 boot record
-- block group 0 --
(1024 bytes) 1 superblock
2 1 group descriptors
3 1 block bitmap
4 1 inode bitmap
5 214 inode table
219 7974 data blocks
-- block group 1 --
8193 1 superblock backup
8194 1 group descriptors backup
8195 1 block bitmap
8196 1 inode bitmap
8197 214 inode table
8408 7974 data blocks
-- block group 2 --
16385 1 block bitmap

chứa các thông tin cơ bản như: kích thước của một block, tổng số block trên một
block group, tổng số inode trên một block group… Nhờ các thông tin này mà ta có
thể dự đoán, tính toán các thành phần và cấu trúc trong một block group.
Cấu trúc chi tiết của một Superblock như sau:
Figure 1-3. Cấu trúc của Superblock
offset size description
------- ------- -----------
0 4 s_inodes_count
4 4 s_blocks_count
8 4 s_r_blocks_count
12 4 s_free_blocks_count
16 4 s_free_inodes_count
20 4 s_first_data_block
24 4 s_log_block_size
28 4 s_log_frag_size
32 4 s_blocks_per_group
36 4 s_frags_per_group
40 4 s_inodes_per_group
44 4 s_mtime
48 4 s_wtime
52 2 s_mnt_count
54 2 s_max_mnt_count
56 2 s_magic
58 2 s_state
60 2 s_errors
62 2 s_minor_rev_level
64 4 s_lastcheck
68 4 s_checkinterval
72 4 s_creator_os
76 4 s_rev_level

s_blocks_count
Giá trị 32 bit cho biết tổng số block trên toàn bộ partition, bao gồm cà block đã
dùng và chưa dùng trong hệ thống tập tin.
s_r_blocks_count
Giá trị 32 bit cho biết tổng số block dành riêng cho super user. Điều này hữu dụng
nhất nếu vì một số lý do một người dùng có cố tình làm đầy hệ thống tập tin hay
không. Super user sẽ có một lượng block chưa dùng cụ thể này để có thể tạo và lưu
các tập tin cấu hình.
s_free_blocks_count
Giá trị 32 bit cho biết tổng số các block còn trống, bao gồm cả số block dành cho
super user. Đây là tổng số tất cả các block còn trống của tất cả các block group.
s_free_inodes_count
Giá trị 32 bit cho biết tổng số inode còn trống. Đây là tổng tất cả các inode trống của
tất cả block group.
s_first_data_block
Giá trị 32 bit cho biết vị trí của data block đầu tiên, hay xác định số thứ tự của khối
chứa cấu trúc superblock.
Nhóm 7- Lớp TDL&MMT Đợt 1 15
Đề tài: Kiến trúc hệ thống File EXT2, EXT3, EXT4 của các hệ điều hành họ LINUX
Chú ý rằng giá trị này luôn là 0 cho hệ thống tập tin có kích thước một block lớn hơn
1KB, và bằng 1 với hệ thống tập tin có kích thước một block là 1KB. Superblock
luôn bắt đầu từ byte thứ 1024 của đĩa, thường là byte đầu tiên của sector thứ 3.
s_log_block_size
Kích thước block được tính toán sử dụng giá trị 32 bit này như là số bit để dịch trái
giá trị 1024. Giá trị này phải là số dương:
block size = 1024 << s_log_block_size;
s_log_frag_size
Kích thước fragment được tính toán sử dụng giá trị 32 bit như là số bit dịch trái giá
trị là 1024. Chú ý một giá trị âm sẽ dịch bit sang phải hơn là sang trái:
if( positive )

vào, trạng thái này được thiết lập là EXT2_ERROR_FS. Khi mà hệ thống tập tin chưa
được gắn vào, giá trị này có thể là EXT2_VALID_FS hoặc EXT2_ERROR_FS trong trường
hợp hệ thống tập tin không gắn vào một cách không dễ dàng.
s_errors
Giá trị 16 bit cho biết trình điều khiển hệ thống tập tin nào được thực thi khi phát
hiện thấy một lỗi. Các giá trị chi tiết được liệt kê trong bảng sau:
Table 1-1. Giá trị EXT2_ERRORS
EXT2_ERRORS_CONTINUE 1 Tiếp tục nếu không có gì xảy ra
EXT2_ERRORS_RO 2 remount read-only
EXT2_ERRORS_PANIC 3 Gây ra lỗi ở nhân (kernel panic)
EXT2_ERRORS_DEFAULT Thay đổi Kể từ việc xét lại 0.5, cái này cũng
giống như
EXT2_ERRORS_CONTINUE
s_minor_rev_level
Giá trị 16 bit xác định cấp xét lại thứ cấp (minor revision) trong phạm vi cấp độ xét
lại của nó (revision level).
s_lastcheck
Phiên bản Unix, như được định nghĩa bởi POSIX, của sự kiểm tra hệ thống tập tin
gần đây nhất.
s_checkinterval
Nhóm 7- Lớp TDL&MMT Đợt 1 17
Đề tài: Kiến trúc hệ thống File EXT2, EXT3, EXT4 của các hệ điều hành họ LINUX
Khoảng thời gian lớn nhất giữa các lần Unix, được định nghĩa bởi POSIX, cho phép
giữa các lần kiểm tra hệ thống tập tin.
s_creator_os
Giá trị 32 bit cho biết hệ điều hành tạo hệ thống tập tin. Giá trị này được xác định
như sau:
Table 1-2. Giá trị của EXT2_OS
EXT2_OS_LINUX 0 Linux
EXT2_OS_HURD 1 Hurd

tin được giải phóng để hỗ trợ cho chúng hoặc không hỗ trợ mà không có sự rủi ro về
việc hư dữ liệu.
s_feature_incompat
Giá trị 32 bit cho biết các đặc trưng có thể có của bitmask. Việc thực thi hệ thống tập
tin được từ chối để gắn vào hệ thống tập tin nếu bất kỳ đặc tính xác định nào không
được hỗ trợ.
s_feature_ro_compat
Giá trị 32 bit cho biết các đặc trưng chỉ đọc “read-only” của bitmask. Việc thực thi hệ
thống tập tin nên gắn vào như chỉ đọc nếu đặc tính xác định của bất kỳ bitmask nào
không được hỗ trợ.
s_uuid
Giá trị 128 bit được dùng như số thứ tự của bộ đĩa. Nếu có thể, cái này nên là duy
nhất cho mỗi hệ thống tập tin được định dạng.
s_volume_name
Giá trị 16 byte cho biết tên của ổ đĩa, hầu như không được sử dụng. Một tên ổ đĩa
hợp lệ sẽ bao gồm các ký tự ISO-Latin-1 và kết thúc là 0.
s_last_mounted
Giá trị 64 byte cho biết đường dẫn thư mục ở đó hệ thống tập tin được gắn vào gần
nhất. Thông thường không được dùng, nó có thể phục vụ cho việc tự tìm kiếm thời
điểm gắn vào mà không xác định trên dòng lệnh. Hơn nữa đường dẫn được kết thúc
là 0 vì những lý do tương thích. Đường dẫn hợp lệ được tạo từ các ký tự ISO-Latin-
1.
s_algo_bitmap
Nhóm 7- Lớp TDL&MMT Đợt 1 19
Đề tài: Kiến trúc hệ thống File EXT2, EXT3, EXT4 của các hệ điều hành họ LINUX
Giá trị 32 bit được dùng bởi thuật toán nén để xác định những phương thức được sử
dụng.
2.2.2.2 Group Descriptor
Group descriptor là một mảng cấu trúc group_desc, mỗi phần tử mô tả một block
group, cho biết đường dẫn của bảng inode, các block và các inode bitmap của nó, và

bg_free_blocks_count
Giá trị 16 bit cho biết tổng số block còn trống đối với group được mô tả.
bg_free_inodes_count
Giá trị 16 bit cho biết tổng số inode trống đối với group được mô tả.
bg_used_dirs_count
Giá trị 16 bit cho biết số inode định phần đến thư mục đối với group được mô tả.
bg_pad
Giá trị 16 bit được dùng cho việc đệm cấu trúc trong giới hạn 32 bit.
bg_reserved
Ba giá trị 32 bit kế tiếp nhau lưu trữ cho những sự thực thi trong tương lai.
2.2.2.3 Block Bitmap
Block bitmap thông thường được xác định tại block đầu tiên, hoặc block thứ hai nếu
bản sao lưu của một superblock hiện diện, của block group. Đường dẫn chính thức
của nó có thể được xác định bằng cách đọc “bg_block_bitmap” trong các group
descriptor tương ứng của nó.
Mỗi bit diễn tả trạng thái hiện tại của một block với group đó, trong đó 1 có nghĩa là
“đã dùng” và 0 có nghĩa là “còn trống/có thể dùng được”. block đầu tiên của block
group này được mô tả bởi bit 0 của byte 0, cái thứ hai được mô tả ở bit 1 của byte 0.
block thứ 8 được mô tả bởi bit 7 (bit quan trọng nhất) của byte 0 trong khi đó block
thứ 9 được mô tả bởi bit 0 (bit ít quan trọng nhất) của byte 1.
2.2.2.4 Inode Bitmap
Inode bitmap làm việc giống như Block bimap, chỉ khác nhau ở chỗ trong bảng Inode
mỗi bit diễn tả một inode hơn là một block.
Một inode bitmap trên group và vị trí của nó có thể được xác định bằng việc đọc giá
trị bg_inode_bitmap và group descriptor tương ứng của nó.
Nhóm 7- Lớp TDL&MMT Đợt 1 21
Đề tài: Kiến trúc hệ thống File EXT2, EXT3, EXT4 của các hệ điều hành họ LINUX
Khi bảng inode được tạo ra, tất cả các inode dự trữ được đánh dấu như đã dùng. Đối
với Good Old Revision điều này có nghĩa là 11 bit đầu tiên của inode bitmap.
2.2.2.5 Inode Table

108 4 i_dir_acl
112 4 i_faddr
116 12 i_osd2

Một số entry đầu tiên của bảng inode được dự trữ. Trong
EXT2_GOOD_OLD_REV có 11 entry dự trữ trong khi ở EXT2_DYNAMIC_REV
mới hơn số entry của inode được dự trữ được chỉ rõ trong s_first_ino của cấu trúc
superblock. Sau đây là danh sách của các entry inode dữ trữ được biết đến nhiều
nhất:
Table 1-4. Bảng giá trị EXT2_*_INO
EXT2_BAD_INO 0x01 bad blocks inode
Nhóm 7- Lớp TDL&MMT Đợt 1 22
Đề tài: Kiến trúc hệ thống File EXT2, EXT3, EXT4 của các hệ điều hành họ LINUX
EXT2_ROOT_INO 0x02 root directory inode
EXT2_ACL_IDX_INO 0x03 ACL index inode
EXT2_ACL_DATA_INO 0x04 ACL data inode
EXT2_BOOT_LOADER_INO 0x05 boot loader inode
EXT2_UNDEL_DIR_INO 0x06 undelete directory inode
i_mode
Giá trị 16 bit này được dùng để cho biết định dạng của tập tin được mô tả và lượt
truy xuất. Sau đây là các giá trị có thể có:
Table 1-5. Các giá trị của EXT2_S_I
-- file format --
EXT2_S_IFMT 0xF000 format mask
EXT2_S_IFSOCK 0xC000 socket
EXT2_S_IFLNK 0xA000 symbolic link
EXT2_S_IFREG 0x8000 regular file
EXT2_S_IFBLK 0x6000 block device
EXT2_S_IFDIR 0x4000 directory
EXT2_S_IFCHR 0x2000 character device


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status