Bài tập lớn nghiên cứu về cấu trúc NTFS - Pdf 24



TRƯỜNG ĐẠI HỌC HÙNG VƯƠNG
KHOA TOÁN-CÔNG NGHỆ
BÀI TẬP LỚN
Môn : Hệ Điều Hành

ĐỀ TÀI: Nghiên cứu về kiến trúc NTFS

Giảng viên :
Sinh viên thực hiện : Đỗ Việt Anh
Ph Th, 2013

MỤC LỤC

1
Nhóm 8 Nghiên cứu về kiến trúc NTFS MỤC LỤC
PHẦN 1 : LỜI NÓI ĐẦU 2
PHẦN 2 : NỘI DUNG 3
I. Sơ lược về NTFS 3
1. Tổ chức phân vùng trên đĩa cứng: 3
2. NTFS là gì? 3

trợ cải tiến cho các siêu dữ liệu và sử dụng các cấu trúc dữ liệu tiên tiến để cải
thiện hiệu suất, độ tin cậy, và sử dụng không gian ổ đĩa, cộng thêm phần mở rộng
như các danh sách kiểm soát truy cập bảo mật (access control list-ACL) và bản
ghi hệ thống tập tin.
NTFS là viết tắt của “New Technology File System” (Hệ thống tập tin công nghệ
mới) là hệ thống tập tin tiêu chuẩn của Windows NT, bao gồm cả các phiên bản
sau này của Windows như Windows 2000, Windows XP, Windows Server
2003, Windows Server 2008, Windows Vista, và Windows 7.
Vì thời gian tìm hiểu không nhiều và khả năng chuyên môn có hạn nên chưa
thể nghiên cứu thật sâu, kĩ càng về đề tài này. Rất mong được thầy giáo và bạn bè
góp ý để sản phẩm được hoàn thiện hơn.

PHẦN 2 : NỘI DUNG
Sơ lược về NTFS
3
Nhóm 8 Nghiên cứu về kiến trúc NTFS

PHẦN 2 : NỘI DUNG

I. Sơ lược về NTFS
1. Tổ chức phân vùng trên đĩa cứng:
Mỗi ổ đĩa cứng có thể được chia thành nhiều vùng riêng biệt được gọi là các phân
vùng (partition), ví dụ:
HDD
Partition 1
Partition 2
Partition 3
Partition 4
Thông tin về việc chia phân vùng được ghi trong sector đầu tiên của đĩa cứng
(Master Boot Record) và được gọi là Partition Table.

NTFS hầu như đã loại trừ được những hạn chế về số cluster, kích thước tối đa của
tập tin trên một phân vùng đĩa cứng.
NTFS sử dụng bảng quản lý tập tin MFT (Master File Table) thay cho bảng FAT
quen thuộc nhằm tăng cường khả năng lưu trữ, tính bảo mật cho tập tin và thư
mục, khả năng mã hóa dữ liệu đến từng tập tin. Ngoài ra, NTFS có khả năng chịu
lỗi cao, cho phép người dùng đóng một ứng dụng “chết” (not responding) mà
không làm ảnh hưởng đến những ứng dụng khác. Tuy nhiên, NTFS lại không thích
hợp với những ổ đĩa có dung lượng thấp (dưới 400 MB) và không sử dụng được
trên đĩa mềm.
NTFS là hệ thống file có khả năng ghi lại được các hoạt động mà hệ điều hành
đã và đang thao tác trên dữ liệu. Nó có khả năng xác định được ngay những file bị
sự cố mà không cần phải quét lại toàn bộ hệ thống file, giúp quá trình phục hồi dữ
liệu trở nên tin cậy và nhanh chóng hơn.
Ngoài ra, NTFS còn có rất nhiều tiện ích chuyên sâu khác cho giới người dùng
cao cấp khác như “mount partition”, tạo “hard link” tới một file, hỗ trợ dùng
RAID
NTFS được thiết kế để phù hợp với một số mục đích đặc biệt :
a. .Khả năng cứu dữ liệu:
NTFS sử dụng khái niệm “Thực hiện mức nguyên tử” (“Atomic transaction”) để
thực hiện tính tăng khôi phục dữ liệu hệ thống. Nếu một chương trình đưa ra các
yêu cầu làm thay đổi cấu trúc của hệ thống file NTFS như: thay đổi cấu trúc thư
mục, kéo dài file, tạo file mới , NTFS sẽ thực hiện yêu cầu này, có 2 khả năng
xảy ra:
 Thành công tốt đẹp
 Quay lui lại trạng thái tốt trước đó nếu bị lỗi.
b. Bảo mật:
Hệ bảo mật trong NTFS được thừa kế trực tiếp từ mô hình hướng đối tượng trong
Kernel của Windows. Các đối tượng chính của kernel bao gồm:
- Files
PHẦN 2 : NỘI DUNG

- Phá bỏ rào cản kích thước – không như FAT, một phân vùng cực đại lớn
nhất chỉ là 4GB, NTFS cho phép phân vùng lớn hơn vào khoảng 16 exa-
byte
PHẦN 2 : NỘI DUNG
Sơ lược về NTFS
6
Nhóm 8 Nghiên cứu về kiến trúc NTFS

- Cơ chế đánh thứ tự (indexing)
- Đánh dấu bad sectors động
- Nén file (compression)
- Lưu lại các thay đổi
- Mã hóa (encryption)
- Chống phân mảnh (defragmentation)
- Hỗ trợ chỉ đọc (read-only)
3. Lịch sử phát triển NTFS
Microsoft bắt đầu phát triển hệ điều hành Windows NT. Hệ thống tập tin HPFS
của OS/2 có một số tính năng mới quan trọng. Khi Microsoft tạo ra hệ điều hành
mới, họ đã vay mượn nhiều khái niệm cho NTFS. Có lẽ do có chung nhiều khái
niệm nên HPFS và NTFS có cùng mã phân loại nhận dạng phân vùng ổ đĩa (07).
Có cùng một số nhận dạng là không bình thường khi có tới hàng chục mã có sẵn,
và các hệ thống tập tin ổ đĩa lớn khác có mã của riêng chúng. FAT có hơn 9 mã
(mỗi mã cho FAT12, FAT16, FAT32, vân vân). Các thuật toán trong đó xác định
hệ thống tập tin trong một kiểu phân vùng 07 phải thực hiện kiểm tra bổ sung. Đây
cũng rõ ràng rằng NTFS cũng dùng chung thiết kế kiến trúc cho Files-11 được sử
dụng bởi VMS. Điều này hầu như không đáng ngạc nhiên khi Dave Cutler là
người đứng đầu của cả VMS và Windows NT.
NTFS có 5 phiên bản được phát hành:
 Phiên bản 1.0 (v1.0) với NT 3.1, phát hành giữa năm 1993
 Phiên bản 1.1 (v1.1) với NT 3.5, phát hành cuối năm 1994

2000. Dựa vào trình quản lý vào-ra như đóng vai trò trung gian cho phép mỗi bộ
phận điều khiển để duy trì sự độc lập vì vậy nó có thể tải vào hoặc chuyển đi mà
không bị ảnh hưởng bởi các bộ phận điều khiển khác.Thêm vào đó, bộ phận điều
khiển NTFS tương tác với ba thành phần thực thi khác trong Windows 2000.
Dịch vụ file bản ghi (log file service LFS) là một phần của NTFS mà cung cấp
các dịch vụ để duy trì một bản ghi các đĩa ghi. Việc ghi các file bản ghi LFS
được sử dụng để khôi phục lại đĩa đã dịnh dạng NTFS trong trường hợp hệ thống
bị lỗi.
Log File Service
Log file service (LFS) là một sêri các thường trình “kernel-mode” bên trong
bộ phận điều khiển NTFS được NTFS sử dụng để truy nhập log file. Mặc dù ban
PHẦN 2 : NỘI DUNG
Hệ thống file NTFS
9
Nhóm 8 Nghiên cứu về kiến trúc NTFS

đầu được thiết kế để logging và dịch vụ khôi phục cho hơn một máy khách, LFS
chỉ được sử dụng bởi NTFS. Trình gọi – trong trường hợp này là NTFS- đi qua
LFS một con trỏ tới một đối tương file mở mà định rõ một log file để truy nhập.
LFS hoặc là khởi chạy một log file mới hoặc là gọi bộ phận quản lý cache trong
Windows 2000 để truy nhập log file hiện tại xuyên qua cache, trong hình dưới
đây. Hnh 2: Log file service(LFS)

Bộ phận quản lý cache là một thành phần của Windows 2000 executive mà
cung cấp systemwide trữ các dịch vụ cho NTFS và các bộ phận quản lý hệ thống
file khác, bao gồm cả bộ phận quản lý hệ thống file mạng(servers và redirectors).
Tất cả các hệ thống file cung cấp cho Windows 2000 truy cập cached file bằng

NTFS đi theo vài con trỏ để có từ đối tượng hồ sơ đến sự định vị hồ sơ trên
đĩa. Hình 4 chỉ ra một đối tượng hồ sơ, mà đại diện một lời gọi đơn tới dịch vụ
hệ thống hồ sơ mở,trỏ vào một khối điều khiển dòng (SCB) cho thuộc tính hồ sơ
mà lời gọi đang cố gắng đọc hoặc viết. Trong hình 4 một tiến trình đã mở cả
thuộc tính dữ liệu không tên lẫn một dòng có tên (thuộc tính dữ liệu xen kẽ) cho
hồ sơ. Khối điều khiển dòng (SCB) đại diện những thuộc tính hồ sơ riêng lẽ và
chứa đựng thông tin về làm sao để tìm thấy những thuộc tính đặc biệt bên trong
hồ sơ.Tất cả SCB cho một hồ sơ trỏ vào một cấu trúc dữ liệu chung gọi là một
khối điều khiển hồ sơ (FCB).Khối điều khiển hồ sơ (FCB) chứa đựng một con
trỏ tới bản ghi của hồ sơ trên bảng master file (MFT) trên nền đĩa .
2. Cấu trc đĩa NTFS
Hình sau minh hoạ các lớp của NTFS sau khi định dạng :
Partition boot sector
Master File Table
System files
File area
a. Partition Boot Sector
Tại sector đầu tiên phân vùng NTFS, theo quy định của BIOS, có một sector chứa
mã khởi động và khối tham số đĩa của BIOS (BIOS Parameter Block – BPB),
được gọi là Boot Sector và được NTFS đặt tên cho file tương ứng là $Boot. Cấu
trúc này chứa những thông tin về cấu trúc đĩa nên rất quan trọng đối với hệ thống
như kích thước một sector, số sector một cluster, số sector mỗi track Nếu sector
này bị hỏng thì rất có khả năng cả phân vùng không thể truy nhập được. Do vậy,
để phòng ngừa trường hợp bị hỏng Boot Sector, hệ thống NTFS dành sector cuối
cùng của phân vùng để chứa bản sao của Boot Sector. Trong trường hợp Boot Sec-
tor bị hỏng, hệ thống sẽ dùng bản sao này để thay thế. Khi bạn format một phân
vùng theo định dạng NTFS, trình format sẽ phân bố 16 sector đầu tiên của phân
vùng đó cho bootsector và một số thông tin khác.
Boot sector của một phân vùng NTFS có cấu trúc như sau :


0x00
3 bytes
Lệnh JMP đến Bootstrap Code
0x03
8 bytes
OEM ID
0x0B
25 bytes
BPB
0x24
48 bytes
BPB mở rộng
0x54
426 bytes
Bootstrap Code
0x01FE
WORD
Chữ kí của Hệ điều hành
PHẦN 2 : NỘI DUNG
Hệ thống file NTFS
13
Nhóm 8 Nghiên cứu về kiến trúc NTFS

Offset
Field Length
Sample Value
Field Name
0x0B
WORD
0x0002

WORD
0xFF00
Số đầu đọc (heads)
0x1C
DWORD
0x3F000000
Số sectors ẩn
0x20
DWORD
0x00000000
Không sử dụng bởi NTFS
0x24
DWORD
0x80008000
Không sử dụng bởi NTFS
0x28
LONGLONG
0x4AF57F0000000000
Tổng số sector trên phân vùng
0x30
LONGLONG
0x0400000000000000
Cluster logic bắt đầu $MFT
0x38
LONGLONG
0x54FF070000000000
Cluster logic bắt đầu
$MFTMirr
0x40
DWORD

Hệ thống file NTFS
14
Nhóm 8 Nghiên cứu về kiến trúc NTFS

b. Cluster
NTFS cũng chia đĩa thành các cluster như trong hệ thống file FAT để thuận tiện
cho việc quản lý thay vì phải quản lý theo từng sector. Mỗi cluster là đơn vị lưu
trữ thông tin nhỏ nhất trong NTFS, bao gồm một số sector liên tuc nhất định tùy
thuộc vào kích thước phân vùng. Số sector mỗi cluster được gọi là “hệ số cluster”.
Hệ số cluster bao giờ cũng là số nguyên và là lũy thừa của 2. Ví dụ : 1, 2, 4, 8
NTFS sử dụng số nguyên 64-bit để đánh số cluster. Do đó về lý thuyết phân vùng
NTFS có thể lên tới 16 exabytes (16384 TB). Tuy nhiên Windows giới hạn kích
thước một phân vùng NTFS sao cho có thể đánh địa chỉ được cluster bằng số 32-
bit, tức là xấp xỉ 256TB (dùng cluster 64KB). Sau đây là bảng kích thước cluster
mặc định đối với phân vùng NTFS:
Kích thước partition
Kích thước cluster mặc định
≤ 512MB
512MB ÷ 1GB
1GB ÷ 2GB
2GB ÷ 2TB
≥ 2TB
512 bytes (1 sector)
1 KB (2 sectors)
2 KB (4 sectors)
4 KB (8 sectors)
Tùy thuộc kích thước partition

Trong hệ thống file NTFS, tất cả các tham số liên quan đến định vị trên đĩa
đều được tính bằng đơn vị cluster. Cluster đảm bảo hệ thống quản lý độc lập đối

của đĩa” : quản lý dữ liệu file trên đĩa là vai trò của hệ điều hành.
Từ hình minh họa có thể thấy rõ:
 Dòng dữ liệu “Data” có 2 mạch dữ liệu khác nhau.
 Mạch dữ liệu đầu tiên : các VCN 0 ÷ 3 tương ứng với các LCN 1355 ÷
1358.
PHẦN 2 : NỘI DUNG
Hệ thống file NTFS
16
Nhóm 8 Nghiên cứu về kiến trúc NTFS

 Mạch dữ liệu thứ 2 : các VCN 4 ÷ 7 tương ứng với các LCN 1588 ÷ 1591.
Có thể thấy cơ chế ánh xạ VCN – LCN gần tương tự như tổ chức FAT trên hệ
thống file FAT.
c. Master File Table – MFT
Trong NTFS tất cả dữ liệu trên đĩa đều được lưu dưới dạng file. Lưu trữ mọi
thứ theo file cho phép hệ thống dễ dàng định vị và duy trì dữ liệu ,mỗi file riêng
biệt có thể được bảo vệ bằng một bộ bảo mật (sercurity descriptor). Ngoài ra, nếu
một phần nào đó của đĩa bị hỏng, NTFS có thể định vị lại file siêu dữ liệu để bảo
vệ ổ đĩa, tránh việc không thể truy cập vào ổ đĩa.
Hệ thống file NTFS bao gồm một file gọi là master file table hay MFT. MFT là
một mảng các bản ghi kiểu file, kích thước của mỗi bản ghi được ngầm định là
một KB ,không phụ thuộc vào kích thước của liên cung . Mỗi file trên đĩa NTFS
,gồm cả chính file MFT đều có ít nhất một lốI vào MFT .Tất cả thông tin về file
gồm :kích thước ,nhãn thời gian ,ngày tháng ,sự cho phép ,nội dung dữ liệu , đều
được lưu trữ hoặc trong các lối vào MFT ,hoặc trong vùng trống phía ngoài MFT
mà được các lối vào MFT mô tả .Khi một file được thêm vào một đĩa NTFS thì
các lối vào cũng được thêm vào MFT và kích thước của MFT tăng lên .Khi một
file bị loại bỏ khỏi một đĩa NTFS ,các lối vào MFT của nó được đánh dấu như
con trống và có thể được sử dụng lại. Tuy nhiên ,vùng trống mà đã được cấp phát
cho các lối vào này thì không được dùng để cấp phát lại ,và kích thước của MFT

Master File
Table2
$MftMirr
1
mirror ba bản ghi đầu tiên của MFT
,dử dụng trong để truy cập MFT trong
trường hợp có một sector bị hỏng.
Log File
$LogFile
2
một danh sách các bước chuyển ,dùng
cho khả năng phục hồI của NTFS .
Volume
$Volume
3
Tên của đĩa ,version NTFS và các
thông tin khác
Attribute Def-
inition Table
$AttrDef
4
Bảng tên ,số thứ tự và mô tả các thuộc
tính
Root Filename
Indexs
$.
5
thư mục gốc
Cluster Bitmap
$Bitmap

liệu mở rộng
$Extend
11
Chứa các file object identifier,file
quota… 12-15
dự trữ
Lưu ý: Hồ sơ từ 11 đến 15 trong MFT (thứ 12 thông qua hồ sơ 16, kể từ khi hồ sơ MFT
được đánh số bắt đầu từ số không) được dành riêng cho các tập tin siêu dữ liệu trong
tương lai.
Mỗi file siêu dữ liệu NTFS đều có tên bắt đầu bằng dấu $,mặc dù dấu này được ẩn
NTFS sẽ dành 16 entries đầu tiên để lưu trữ các file hệ thống đăc biệt (các file
này có tên bắt đầu bằng kí tự $), trong đó :
- Entry đầu tiên được dành dành cho file $Mft, lưu trữ thông tin về bản
thân MFT.
- Entry thứ hai được dành cho file $MFTMirr, lưu trữ bản sao một số
trường đầu tiên của MFT.
- Entry thứ ba được dành cho file $Logfile, lưu trữ các thay đổi làm ảnh
hưởng đến cấu trúc của phân vùng dùng để khôi phục phân vùng khi có
sự cố.
- Entry thứ tư được dành cho file $Volume, lưu trữ thông tên và một số
thông tin khác về phân vùng.
- Entry thứ năm được dành cho file $AttrDef, lưu trữ định nghĩa các thuộc
tính cơ bản của file.
- Entry thứ sáu được dành cho thư mục gốc, lưu trữ danh mục các file và
thư mục con của thư mục gốc. Khi NTFS nhận được yêu cầu truy xuất
file, nó sẽ bắt đầu công việc tìm kiếm của mình từ thư mục gốc.
- Entry thư bẩy được dành cho file $Bitmap, lưu trữ thông tin về việc phân

Bảng 3 : Cấu trúc MFT entry cho một file hay thư mục nhỏ
Đối với các file hoặc thư mục có kích thước lớn hơn, không thể được lưu trữ
toàn bộ trong một entry của MFT, NTFS sẽ cấp phát thêm các dãy cluster liên
tiếp trên phân vùng (còn gọi là các data runs) để lưu trữ chúng. Trong trường hợp
PHẦN 2 : NỘI DUNG
Hệ thống file NTFS
20
Nhóm 8 Nghiên cứu về kiến trúc NTFS

đặc biệt, khi file hoặc thư mục có quá nhiều thuôc tính cần lưu trữ, NTFS sẽ sử
dụng nhiều MFT entries để quản lý; khi đó entry đầu tiên sẽ xác định vị trí của
các entries khác và được gọi là bản ghi file cơ sở (base file record).
Cách thức tổ chức quản lý file bằng MFT như trên có khá nhiều ưu điểm.
Thứ nhất, nó khiến cho việc truy xuất file và các thông tin liên quan nhanh
chóng hơn rất nhiều so với cấu trúc quản lý bằng Root Directory và File Alloca-
tion Table của FAT. Thứ hai, nó cung cấp cho từng file chế độ bảo mật riêng. Và
thứ ba, nó cho phép vị trí lưu trữ các file hệ thống có thể được thay thế khi cần
thiết.
d. File và thuộc tính của file
Mỗi file hay một thư mục chiếm một hay nhiều phần tử trong MFT. Trong
trường hợp một file hay thư mục chiếm nhiều phần tử thì:
 Phần tử đầu tiên được gọi là “Bản ghi file cơ sở” (Base File Record)
 (Các) phần tử tiếp theo gọi là “Bản ghi file mở rộng” (Extension File Rec-
ord)
NTFS tổ chức file thành các đối tượng bao gồm các cặp thuộc tính (attrib-
ute) và giá trị (value) tương ứng. Ví dụ :
- Thuộc tính Tên file ($FILE_NAME) và giá trị “a.txt”
- Thuộc tính Dữ liệu ($DATA) và giá trị “hello NTFS!”
Mỗi thuộc tính trong file được xác định bởi ba tham số, mã thuộc tính xác định
loại của thuộc tính, giá trị của thuôc tính và tên của thuôc tính. Trong ba thông số

ume. Chúng lưu trữ thông tin
về volume versions và label in-
formation.
Standard
infor-
mation
$STANDARD_
INFORMATION
Xác định các thuộc tính của file
như read-only, archive ;lưu trữ
các tem thời gian trong đó có
thời điểm được tạo ra hoặc thời
điểm cuối cùng bị sửa đổi của
file; lưu trữ số thư mục trỏ đến
file (số lượng hard link của
file).
Filename
$FILE_NAME
Tên file theo các kí tự
UNICODE. Trong NTFS, một
file có thể có nhiều thuộc tính
tên khi tồn tại hard link đến nó;
các file có tên dài cũng tự động
có thêm một tên ngắn khác để
có thể được truy xuất bởi các
ứng dụng chạy trên nền DOS
hay Windows 16-bit.
Security
$SECURI-
Thuộc tính này lưu trữ miêu tả

Các thuộc tính này dùng để xây
dựng cấu trúc cây nhị phân b+
cho các thư mục có có kích
thước lớn.
Attribute
list
$ATTRIBUTE_LIST
Được dùng trong trường hợp
nhiều MFT entries được dùng
để lưu trữ thông tin về một file.
Khi đó, thuộc tính này sẽ xác
định các thuộc tính khác của
file và vị trí lưu trữ của từng
thuộc tính.
Object ID
$OBJECT_ID
Là một định danh có kích thước
64 bytes, dùng để xác định một
file hay thư mục nào đó. NTFS
cũng cung cấp một số hàm API
cho phép truy xuất file theo giá
trị này thay vì theo đường dẫn
đến nó.
Reparse
infor-
$REPARSE_POINT
Thuộc tính này lưu trữ dữ dữ
liệu về điểm lặp (reparse point)
PHẦN 2 : NỘI DUNG
Hệ thống file NTFS

EFS in-
formation
$LOGGED_UTILITY_ST
REAM
Lưu trữ danh sách người sử
dụng được phép truy xuất file
cũng như các thông tin được sử
dụng trong quá trình mã hoá và
giải mã file.
PHẦN 2 : NỘI DUNG
Hệ thống file NTFS
24
Nhóm 8 Nghiên cứu về kiến trúc NTFS

VCN (Virtual Cluster Number) là việc đánh số các cluster của cùng một file (bắt
đầu từ 0), LCN (Logical Cluster Number) là việc đánh số các cluster của một
phân vùng theo khoảng cách tương đối với cluster đầu tiên của phân vùng. MTF
record của một file là nơi ta có thể tìm thấy mọi thông tin cần thiết cho việc
chuyển đổi giữa VCN của file đó và LCN của phân vùng. Sơ đồ trên miêu tả (một cách tương đối) thuộc tính FileName của file
MYFILE.DAT. Thuộc tính trên gồm hai phần, phần header (nền mầu xám) và
phần giá trị (nền mầu trắng) và được gọi là thường trú vì phần giá trị của nó
được lưu trữ trong MFT record.


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