1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

58 3,1K 35
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Kiến Trúc Hệ Thống File EXT2, EXT3, EXT4 Của Các Hệ Điều Hành Họ Linux
Tác giả 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à
Người hướng dẫn Ts Hoàng Xuân Dậu
Trường học Học Viện Công Nghệ Bưu Chính Viễn Thông
Chuyên ngành Hệ Điều Hành Mạng Nâng Cao
Thể loại Bài Tập Tiểu Luận
Năm xuất bản 2011
Thành phố Hà Nội
Định dạng
Số trang 58
Dung lượng 574 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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.

Trang 1

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

Hà Nội, tháng 12 - 2011

Trang 2

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.1 Giới thiệu chung 10

2 2 Hệ thống File EXT2 10

2 2.1 Giới thiệu 10

2.2.2 Tổ chức đĩa 12

2.2.2.1 Superblock 14

2.2.2.2 Group Descriptor 20

2.2.2.3 Block Bitmap 21

2.2.2.4 Inode Bitmap 21

2.2.2.5 Inode Table 22

2.2.2.6 Data Blocks 28

2.2.3 Cấu trúc thư mục 28

2.2.3.1 Định dạng Directory File 28

2.2.3.2 Ví dụ về Directory 30

2.2.3.4 Indexed Directory Format 31

2.2.4 Inodes, File Identifiers 35

2.2.4.1 Inode Number 36

2.4.2 Định vị cấu trúc của Inode 36

2.2.4.3 Định vị Inode Table 37

2.2.5 Các Thuộc Tính Của File 37

2.2.5.1 Các thuộc tính chuẩn 37

2.2.5.2 Các thuộc tính mở rộng 37

2.2.6 Quản trị hệ thống file EXT2 38

Trang 3

2.3 Hệ thống File EXT3 39

2.4 Hệ thống File EXT4 43

2.4.1 Giới thiệu 43

2.4.2 Khả năng nâng cấp mở rộng 44

2.4.2.1 Hệ Thống Tệp Tin Lớn 44

2.4.2.2 Đặc điểm 44

2.4.2.3 Lưu file theo nhóm block (Extents) 45

2.4.2.4 Chống phân mảnh trực tuyến 47

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 48

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

Trang 4

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ếntrong 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ớinhiề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ậptin : 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ộtcấ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ệucủ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ơnkiến thức của mình

Chúng em xin chân thành cảm ơn!

Trang 5

CÁC TỪ VIẾT TẮT

 Client: máy khách

 IP: Internet Address

 RPM: Redhat Package Manager

 FQDN: Fully Qualifield Domain Name

 NFS: Network File System

 Server: máy chủ

 SMB= Samba chương trình dùng chia sẻ tài nguyên giữa các Windows PC

và Linux PC

 MTA: Mail Transport Agent

 PC= Personal computer: máy tính cá nhân

 Point, mount_point: điểm truy cập, thường là thư mục, nơi mount các hệthống tập tin

 Mount: gắn kết các tập tin vào 1 point nào đó

 Umount: gỡ bỏ các tập tin đã được mount vào 1 point nào đó

 Username: tên tài khoản người dùng

 Password: mật khẩu tương ứng với username

 SMB: Samba

 SWAT: Samba Web Administration Tool

 …

Trang 6

Chương 1 Tìm hiểu về hệ điều hành Linux

1.1 Linux là gì?

Linux xuất hiện như một sản phẩm nguồn mở miễn phí và đến nay đã có thể sánh vai với các hệ điều hành thương phẩm như MS Windows, Sun Solaris v.v Linux ra đời từ một dự án hồi đầu những năm 1990 có mục đích tạo ra một hệ đ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ênmá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

Trang 7

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ậmchí việc hỏng hóc hoặc xoá mất dữ liệu đôi khi cũng xảy ra, bởi vì Linux luôn thay đổi và khó được thử nghiệm đầy đủ trước khi đưa lên Internet

Linux không phải là đồ chơi sẵn có, nó được thiết kế nhằm mang đến cho người sử dụng cảm giác cùng tham gia vào một dự án mới Tuy nhiên thực tế cho thấy Linux chạy tương đối ổn định và cho bạn một cơ may không tốn kém

để học và sử dụng UNIX, một họ hệ điều hành chuyên nghiệp hiện nay đang được rất nhiều người dùng trên các máy chủ và trạm tính toán cao cấp

1.2 Tại sao Linux phát triển?

Trước hết, Linux phát triển vì là một trong những hệ điều hành miễn phí và

có khả năng đa nhiệm cho nhiều người sử dụng cùng lúc trên các máy tính tương thích với PC So với những hệ điều hành thương phẩm, Linux giúp bạn ítphải nâng cấp và lại không cần trả tiền, cũng như phần lớn các phần mềm ứng dụng cho nó Hơn nữa, Linux và những ứng dụng đó được cung cấp với cả mã nguồn miễn phí mà bạn có thể lấy về từ Internet, sau đó chỉnh sửa và mở rộng chức năng của chúng theo nhu cầu riêng

Linux có khả năng thay thế một số hệ điều hành thuộc họ UNIX đắt tiền Nếu tại nơi làm việc mà bạn sử dụng UNIX thì ở nhà bạn cũng thích sử dụng một hệ nào đó giống như thế nhưng rẻ tiền Linux giúp bạn dễ dàng truy cập, lướt qua các Website và gửi nhận thông tin trên mạng Internet Nếu bạn là một quản trị viên UNIX thì về nhà bạn cũng có thể sử dụng Linux để thực hiện mọi công việc quản trị hệ thống

Một nguyên nhân khác làm cho Linux dễ đến với người dùng là nó cung cấp

mã nguồn mở cho mọi người

Trang 8

Chính điều này đã khiến một số tổ chức, cá nhân hay quốc gia đầu tư vào Linux nhằm mở rộng sự lựa chọn ra ngoài các phần mềm đóng kín mã nguồn

Họ cho rằng, mặc dù có dịch vụ hậu mãi nhưng không gì đảm bảo được rằng khi dùng các sản phẩm đóng kín này trên Internet, các thông tin cá nhân hay quốc gia của họ có bị gửi về một tổ chức hay một quốc gia nào khác hay không.Thí dụ 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 ?

Trang 9

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

là sân chơi riêng của các tổ chức lớn, chẳng hạn như chính quyền, tập đoàn doanh nghiệp và trường đại học Người dân thường đã không thể sử dụng những thành tựu kỳ diệu của công nghệ thông tin

Ngày nay Linux đang làm một cuộc cách mạng ở lĩnh vực phần mềm hệ thống Linux là lá cờ tập hợp những con người không muốn bị kiểm sát bởi các hãng khổng lồ nhân danh kinh tế thị trường để làm xơ cứng óc sáng tạo và cải tiến

Với Linux bạn sẽ khai thác được nhiều thế mạnh của UNIX Trong số những

hệ điều hành thông dụng hiện nay, Linux là hệ điều hành miễn phí được nhiều người sử dụng rộng rãi nhất Bản thân Linux đã hỗ trợ sẵn sàng bộ giao thức mạng TCP/IP, giúp bạn dễ dàng kết nối Internet và gửi thư điện tử Linux thường đi kèm XFree86 là một giao diện đồ hoạ cho người sử dụng (GUI) và cũng được phát hành miễn phí XFree86 cung cấp cho bạn các chức năng phổ biến ở một số thương phẩm khác, chẳng hạn như Windows

Linux đã có hàng ngàn ứng dụng, từ các chương trình bảng tính điện tử, quảntrị cơ sở dữ liệu, xử lý văn bản đến các chương trình phát triển phần mềm cho nhiều ngôn ngữ, chưa kể nhiều phần mềm viễn thông trọn gói Ngoài ra Linux cũng có hàng loạt trò chơi giải trí trên nền ký tự hoặc đồ hoạ Phần lớn những chương trình tiện ích và ứng dụng có sẵn cho Linux lại không mất tiền mua Các bạn chỉ phải trả chi phí cho việc tải chúng từ Internet xuống hoặc trả cước phí bưu điện

Đến với Linux, giới lập trình sẽ có một loạt các công cụ phát triển chương trình, bao gồm các bộ biên dịch cho nhiều ngôn ngữ lập trình hàng đầu hiện nay, chẳng hạn như C, C++ Bạn cũng có thể dùng ngôn ngữ Pascal thông qua trình biên dịch FreePascal Nếu bạn không thích sử dụng những ngôn ngữ vừa

Trang 10

kể, Linux có sẵn các công cụ như Flex và Bison để bạn xây dựng ngôn ngữ riêng cho mình

Hai khái niệm hiện nay được đề cập rất nhiều là hệ thống mở (open system)

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

Trang 11

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

Hệ thống tập tin Linux được tổ chức theo dạng cây Có một vị trí khởi điểm, gọi là root (gốc) Bất kỳ một hệ thống Unix/Linux nào cũng có một thư mục đặc biệt gọi là thư mục gốc (root directory) ký hiệu là dấy slash (“ / ”) Đây là điểm bắt đầu để gắn (mount point) tất cả các phần tử còn lại như hệ thống disks,partitions, CD ROM … vào hệ thống Linux/Unix Tất cả các thư mục và tập tin khác, kể cả các tập tin hệ thống và các thư mục hệ thống cũng chỉ là cấp con của root Khi hệ thống Linux/Unix khởi động, thông qua tiến trình init – nó sẽ

tự động moun (gắn) các tập tin hệ thống và thư mục hệ thống vào root (/) Trong phần này chúng tôi muốn giới thiệu các hệ thống file tiên tiến được sử dụng trong Linux như EXT2, EXT3, EXT4 có tính tin cậy cao và có khả năng ghi nhớ quá trình thao tác trên dữ liệu (journaling)

2 2 Hệ thống File EXT2

2 2.1 Giới thiệu

Ext2 hay hệ thống tập tin mở rộng thứ hai là một hệ thống tập tin dành chocác hệ thống nhân Linux Lúc đầu nó được thiết kế để thay thế cho hệ thống tậptin mở rộng Nó đủ nhanh để dùng làm tiêu chuẩn để công năng của các loại hệđiều hành Linux Hạn chế chính của nó là không phải hệ thống tập tin nhật ký

Hệ thống file ext2 được giới thiệu vào đầu năm 1993 và được thiết kế riêngcho Linux Nó có nhiều tính năng tăng cường để khắc phục các hạn chế của các

hệ thống file khác

Trang 12

Kích thước hệ thốngfile lớn nhất

Kích thước file lớnnhất

Kích thước block tuỳbiến

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ôngthườ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ữngphâ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ănglên đến giới hạn là 4TB Vì vậy, ngày nay nó có thể sử dụng các đĩa dunglượ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ớihạ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ôngthườ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 choExt2

Trang 13

Mỗi block lại được chia nhỏ hơn thành các fragment, nhưng tôi vẫn chưa thấymột hệ thống tập tin nào mà kích thước fragment không khớp với kích thước mộtblock Ngoài trừ superblock, tất cả các cấu trúc dữ liệu được thay đổi lại kích thướccho khớp với các block Đây là cái cần nhớ khi cố gắng mount bất kỳ hệ thống tậptin nào khác trên một đĩa mềm Ví dụ, Inode Table Block chứa entry trong mộtblock 4KB nhiều hơn một block 1KB, nên người ta phải đưa vào tính toán khi nàonên truy xuất cấu trúc đặc biệt này.

Block đầu tiên trong mỗi partition Ext2 không bao giờ được quản lý bởi hệthống tập tin Ext2, bởi vì nó được dùng cho partition boot sector Phần còn lại củapartition Ext2 được chia thành các block group, được biểu diễn như hình sau:

Sự bố trí của một phân vùng Ext2 và của một block group

Tất cả các block group đều có cùng kích thước và lưu trữ liên tiếp nhau, vì vậy nhân

có thể tìm thấy được vị trí của một block group trên đĩa từ số chỉ mục kiểu nguyêncủa nó Trong khi một đĩa mềm chỉ chứa một block group điều khiển tất cả cácblock của hệ thống tập tin, thì một đĩa cứng 10GB có thể dễ dàng được chia thành

30 block group như vậy, mỗi block group điều khiển một số lượng block cụ thể

Trang 14

Vị trí đầu của mỗi block group là các cấu trúc dữ liệu khác nhau liệt kê đườngdẫn của phần còn lại, cung cấp nhiều thông tin hơn, cấu trúc dữ liệu xác định trạngthái hệ thống tập tin hiện hành Sau đây là một tổ chức hệ thống tập tin Ext2 trênmột đĩa mềm:

Figure 1-1 Bố trí dữ liệu trên đĩa mềm.

offset # of blocks description

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

Một bản sao superblock của hệ thống tập tin

Một bản sao của nhóm các ký hiệu miêu tả block group

Một block bitmap dữ liệu

Một bảng các inode

Một khoanh dữ liệu thuộc một tập tin, ví dụ như block data

Trang 15

Nếu một block không chứa bất kỳ thông tin có nghĩa nào, thì block đó trống.Việc bố trí trên đĩa có thể đoán trước với điều kiện bạn biết một vài thông tin

cơ bản sau: kích thước block, số block trên một block group, số inode trên mộtblock group Thông tin này đều được xác định hay tính toán từ cấu trúc củasuperblock

Nếu không có thông tin về superblock, đĩa sẽ vô ích; do đó nếu đủ khoảngtrống có sẵn thì sẽ tạo ra một hay nhiều bản sao lưu superblock trên đĩa

Block bitmap và Inode bitmap được dùng để xác định block nào và các entryinode nào trống để sử dụng Các data block là nơi lưu trữ nhiều loại tập tin Lưu ýrằng một thư mục cũng được xem là một tập tin trong Exts, sau đây chúng ta sẽ đitìm hiểu chi tiết hơn

Trong khi tất cả sự bổ sung Ext2 cố gắng tương thích, một số field trong cáccấu trúc khác nhau được tùy biến để khớp với những yêu cầu của một hệ điều hành

cụ thể

2.2.2.1 Superblock

Superblock là cấu trúc trên một đĩa Ext2 chứa thông tin cơ bản về các đặc tínhcủa hệ thống tập tin Không có Superblock thì không dùng đĩa được vì Superblockchứ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ộtblock 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

Trang 17

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ớnhơ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 sectorthứ 3

s_frags_per_group

Giá trị 32 bit cho biết tổng số fragment trên một block group Nó cũng được dùng

để xác định kích thước của một block bitmap của mỗi block group

Trang 18

Phiên bản Unix, như được xác định bởi POSIX, của lần viết gần nhất truy cập vào

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áthiệ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_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

Trang 20

Giá trị 32 bit được dùng như chỉ mục đến inode đầu tiên có thể sử dụng cho các tậptin chuẩn Trong việc duyệt hệ thống tập tin không động, inode không dự trữ đầutiên được cố định là 11 Với câu lệnh duyệt động của hệ thống tập tin, nó có thể bổsung giá trị này

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ỳ bitmasknào không được hỗ trợ

Trang 21

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ầnnhấ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ự

Các group descriptor được định vị ở block đầu tiên sau block chứa trong cấu trúcsuperblock Các thành phần của group descriptor:

Figure 1-4 Cấu trúc group_desc

offset size description

Tất cả chỉ cho biết số thứ tự block là tuyệt đối

Trang 22

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 blockgroup 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 đó blockthứ 9 được mô tả bởi bit 0 (bit ít quan trọng nhất) của byte 1

Trang 23

Có một vùng inode table trên một group và nó có thể được xác định bởi việc đọc giátrị bg_inode_table trong group descriptor tương ứng của nó Có các inodes_inodes_per_group trên một bảng

Mỗi inode chứa thông tin về tập tin vật lý đơn trên hệ thống một tập tin có thể làmột thư mục, một socket, một bộ đệm, ký tự hay tập tin thiết bị, tập tin liên kết haytập tin thông thường Vì vậy một inode có thể được hiểu như một block có thông tinliên quan đến một thực thể, mô tả vị trí của nó trên đĩa, kích thước và quyền sở hữucủa nó Cấu trúc của một inode như sau:

Figure 1-5 Cấu trúc inode

offset size description

Trang 24

Một số entry đầu tiên của bảng inode được dự trữ TrongEXT2_GOOD_OLD_REV có 11 entry dự trữ trong khi ở EXT2_DYNAMIC_REVmới hơn số entry của inode được dự trữ được chỉ rõ trong s_first_ino của cấu trúcsuperblock Sau đây là danh sách của các entry inode dữ trữ được biết đến nhiềunhất:

Table 1-4 Bảng giá trị EXT2_*_INO

Trang 25

EXT2_S_IRWXU 0x01C0 user access rights mask

Trang 26

Giá trị 32 bit cho biết số lượng các block được dự trữ cho dữ liệu tập tin tương ứng

nó bao gồm cả các block đã dùng và block dự trữ trong trường hợp tập tin tăng kích thước

Một điểm quan trọng cần lưu ý là giá trị này cho biết số block 512 byte và không xác định kích thước của số block được xác định trong superblock Vì vậy nếu một tập tin chỉ dùng một block của hệ thống tập tin và kích thước là 1024 byte, giá trị i_blocks của nó sẽ là 2

Entry thứ 13 là một số block gián trực tiếp, có nghĩa là tại block dữ liệu cụ thể, bạn

sẽ tìm thấy một dãy số các block trực tiếp

Trang 27

Entry thứ 14 là một số block gián tiếp hai lần Điều này có nghĩa là tại block dữ liệu

cụ thể, bạn sẽ tìm thấy một dãy số block gián tiếp, cái mà chứa một dãy số block có thẻ được truy xuất một cách trực tiếp

Entry thứ 15 là một số block gián tiếp ba lần Nó là một số block chứa một dãy số block gián tiếp hai lần, v.v…

Mỗi dãy block gián tiếp/gián tiếp hai lần/ gián tiếp ba lần chứa nhiều entry của số block 32 bit nếu có thể (để lấp đầy toàn bộ block)

Trang 29

Giá trị 16 bit cao của user_id

l_i_gid_high: Giá trị 16 bit cao của group_id

m_i_frag: Giá trị 8 bit cho biết số fragment

m_i_fsize: Giá trị 8 bit cho biết kích thước fragment

2.2.2.6 Data Blocks

Vùng Data block gồm các block dữ liệu Được quản lý bởi các bit tương ứngtrong vùng block bitmap Nếu là một tập tin bình thường thì đây là nơi lưu trữ nộidung của tập tin, nhưng nếu tập tin là thư mục thì nơi đây sẽ chứa các directory-entry

2.2.3 Cấu trúc thư mục

Thư mục là một file đặc biệt mà nội dung của nó (chứa tại vùng Data blocks)gồm toàn các directory entry Thư mục được lưu trữ giống như tập tin và có thểđược nhận ra bằng việc tìm trong các bit dịnh dạng tập tin ext2_inode.i_mode đốivới giá trị EXT2_S_IFDIR.

Thư mục gốc luôn là entry thứ hai của bảng inode (EXT2_ROOT_INO có giá trị

là 2) Bất kỳ thư mục con nào từ thư mục gốc có thể được định vị bằng việc quansát nội dung của tập tin thư mục gốc

2.2.3.1 Định dạng Directory File

Các directory-entry trong Ext2 của Linux có kích thước không bằng nhau(directory-entry còn được gọi là record) Nhưng mỗi directory-entry đều có đủ 5trường (field) sau:

Figure 2-1 directory-entry

offset size description

Ngày đăng: 26/04/2013, 11:47

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[5] Tham khảo File: Ext4-File-System 6/2007 IBM Linux Technology CenterCác địa chỉ Website tham khảo : [1] http://www.diendanlinux.org Sách, tạp chí
Tiêu đề: Ext4-File-System
Tác giả: IBM Linux Technology Center
Năm: 2007
[1] Trần Thạch Tùng, Bảo mật và Tối ưu trong Red Hat Linux, 2003 [2] Tiêu Đông Nhơn, Giáo trình hệ điều hành Linux, NXB ĐH QG TP.HCM Khác
[3] Tiêu Đông Nhơn, Giáo trình dịch vụ mạng Linux, NXB ĐH QG TP.HCM Khác
[4] Huỳnh Thúc Cước, Giáo Trình HĐH Linux, Viện Công Nghệ Thông Tin Khác
[5] Một số website liên quan khác Khác

HÌNH ẢNH LIÊN QUAN

Sơ đồ một hệ thống file nhật ký. - Kiến trúc hệ thống File EXT2, EXT3, EXT4 của  các hệ điều hành họ LINUX
Sơ đồ m ột hệ thống file nhật ký (Trang 41)
Hình trên cho thấy với định dạng ext3 thì lệnh e2fsck tăng lên tỉ lệ thuận với tổng số inode của định dạng tập tin, không kể đến số lượng inode đã được sử dụng. - Kiến trúc hệ thống File EXT2, EXT3, EXT4 của  các hệ điều hành họ LINUX
Hình tr ên cho thấy với định dạng ext3 thì lệnh e2fsck tăng lên tỉ lệ thuận với tổng số inode của định dạng tập tin, không kể đến số lượng inode đã được sử dụng (Trang 49)
Hình trên cho thấy kết quả của việc đọc ghi 512MB tập tin. Tổng kết lại ta thấy kết quả là đã có sự tăng tốc vượt trội của ext4 so với ext3, đặc biệt là với quá trình ghi đè, ghi ngẫu nhiên và đọc lại - Kiến trúc hệ thống File EXT2, EXT3, EXT4 của  các hệ điều hành họ LINUX
Hình tr ên cho thấy kết quả của việc đọc ghi 512MB tập tin. Tổng kết lại ta thấy kết quả là đã có sự tăng tốc vượt trội của ext4 so với ext3, đặc biệt là với quá trình ghi đè, ghi ngẫu nhiên và đọc lại (Trang 56)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w