-----
3 Hệ thống quản lý tập tin
3.1
Một số khái niệm
Xem clip số 6: đặt vấn đề (clip này bị lặp lại một số đoạn)
Máy tính phải có khả năng lưu trữ dữ liệu, thông tin. Ví dụ
dữ liệu bao gồm văn bản, hình ảnh, âm thanh, video, mã nguồn, mã thực thi. Hệ
thống quản lý tập tin có nhiệm vụ lưu trữ, quản lý, truy xuất dữ liệu, thông
tin vào/từ các loại đĩa.
Hệ thống quản lý tập tin chịu trách nhiệm tổ chức, sắp xếp dữ
liệu một cách hợp lý, để tối ưu việc lưu trữ, chia sẻ và truy cập.
Phần này sẽ tìm hiểu về một số phương pháp được thiết kế để
quản lý tập tin, từ đơn giản đến phức tạp. Làm một số bài thực hành để hiểu hơn
về hệ thống quản lý tập tin.
Một số chủ đề cần nắm, sau khi học xong chương này: Đĩa cứng,
Phân vùng đĩa, Ổ đĩa logic, Thư mục, Tập tin, Track, Cluster, Sector, Cylinder,
Head, MBR và GPT, FAT, NTFS, I-nodes.
Xem clip số 7: một số khái niệm (tập tin, thư mục, volume)
Đọc thêm trang 24, tài liệu môn Hệ điều hành:
Xem clip số 15 (tiếng Anh):
Nhớ lại vai trò trung gian của Hệ điều hành:
Với người dùng
|
Vai trò trung gian
|
Đối tượng phần cứng
|
Processes/Threads
|
<= OS =>
|
CPU
|
Address Space
|
<= OS =>
|
Memory
|
Files
|
<= OS =>
|
Disk
|
Hệ điều hành giúp chuyển đổi các đối tượng có tính trừu tượng
(Files) thành các đối tượng vật lý (Disk).
Cụ thể:
Files
|
Vai trò trung gian
|
Disk
|
Open(), Close(),
Read(), Write()
|
<= OS =>
|
Sector, Track,
Seek(), ReadBlock(), WriteBlock()
|
3.1.1
Đĩa cứng
Đọc về đĩa cứng trên wiki:
Theo wiki: “Ổ đĩa cứng, hay còn gọi là ổ cứng (tiếng Anh:
Hard Disk Drive, viết tắt: HDD) là thiết bị dùng để lưu trữ dữ liệu trên bề mặt
các tấm đĩa hình tròn phủ vật liệu từ tính.” Đĩa cứng là bộ nhớ ngoài, không bị
mất dữ liệu khi mất nguồn điện (non-volatile).
Xem hình về cấu tạo bên trong đĩa cứng (HDD):
Platter (đĩa từ), Spindle (trục quay đĩa từ), Head (đầu đọc/ghi
dữ liệu), Actuator Arm (cần di chuyển đầu đọc), Actuator Axis (trục truyền động),
Power Connector (chân nguồn điện), Jumper Block (khối thiết đặt chế độ làm việc
– master/slave), IDE Connector (cổng truyền dữ liệu), Actuator (bộ truyền động).
SSD
Theo Wiki: “SSD (tiếng Anh: Solid State Drive - Ổ lưu trữ thể
bền vững hay Ổ cứng điện tử), trong tiếng Việt có một số tên khác trong đời sống
như Ổ cứng thể rắn hoặc Ổ lưu trữ bán dẫn là một thiết bị lưu trữ sử dụng bộ nhớ
flash để lưu trữ dữ liệu trên máy tính một cách bền vững. Một ổ SSD đồng thời
mô phỏng quá trình lưu trữ và truy cập dữ liệu giống như ổ đĩa cứng (HDD) thông
thường và do đó dễ dàng được sử dụng cho nhiều mục đích khác nhau. Ổ SSD sử dụng
SRAM hoặc DRAM hoặc bộ nhớ Flash để lưu dữ liệu.”
Xem hình minh họa,
1.1.2
Track, Cylinder, Sector, Platter, Cluster
Xem hình minh họa,
– Platter: đĩa từ, làm bằng nhôm hoặc thủy tinh, trên bề mặt
được phủ một lớp vật liệu từ tính, là nơi chứa dữ liệu. Mỗi đĩa từ có thể sử dụng
hai mặt, đĩa cứng có thể có nhiều đĩa từ, chúng gắn song song, quay đồng trục,
cùng tốc độ với nhau khi hoạt động.
– Track: rãnh, trên một mặt làm việc của đĩa từ chia ra nhiều
vòng tròn đồng tâm thành các track. Track trên ổ đĩa cứng không cố định từ khi
sản xuất, chúng có thể thay đổi vị trí khi định dạng cấp thấp ổ đĩa (low-level
format ).
– Cylinder: trụ, tập hợp các track cùng bán kính (cùng số hiệu
trên) ở các mặt đĩa khác nhau thành các cylinder.
– Sector: cung từ, trên track chia thành những phần nhỏ bằng
các đoạn hướng tâm thành các sector. Các sector là phần nhỏ cuối cùng được chia
ra để chứa dữ liệu. Theo chuẩn thông thường thì một sector chứa dung lượng 512
byte.
– Cluster: liên cung, là một đơn vị lưu trữ gồm một hoặc nhiều
sector.
3.1.3 Partition/Logic Drive
Partition
Theo wiki: [Disk partitioning or disk slicing is the creation of one
or more regions on secondary
storage, so that each region can be managed separately. These
regions are called partitions. It is typically the first step of preparing a
newly installed disk, before any file system is created.
The disk stores the information about the partitions' locations and sizes in an
area known as the partition
table that the operating system reads before any other part
of the disk. Each partition then appears to the operating system as a distinct
"logical" disk that uses part of the actual disk. System administrators use a program called a partition
editor to create, resize, delete, and manipulate the
partitions. Partitioning allows the use of different filesystems to be
installed for different kinds of files. Separating user data from system data
can prevent the system partition from becoming full and rendering the system
unusable. Partitioning can also make backing up easier. A disadvantage is that
it can be difficult to properly size partitions resulting in having one
partition with much free space and another nearly totally allocated.]
– Partition là một phân vùng (region) đĩa, có thể quản lý độc
lập
– Trước khi sử dụng đĩa cứng cần tạo ra các phân vùng, sau
đó lựa chọn loại hệ thống tập tin sẽ được áp dụng cho phân vùng (ví dụ FAT, NTFS)
– Thông tin về vị trí, kích thước của phân vùng được chứa
trong partiton table
– Khi khởi động, hệ điều hành sẽ đọc thông tin của partiton
table trước tiên
– Hệ điều hành xem mỗi phân vùng là một ổ đĩa logic (logical
disk)
– Có hai phương pháp quản lý phân vùng phổ biến: MBR (master
boot record) và GPT (GUID partition table) (GUID: globally unique identifires)
MBR
Đọc tài liệu sau (từ
trang 3 tới trang 18):
https://drive.google.com/file/d/0B4FOelgeetqJSkpuTlN0Rm12SmM/view?usp=sharing
https://drive.google.com/file/d/0B4FOelgeetqJSkpuTlN0Rm12SmM/view?usp=sharing
Lab 3. Sử dụng Disk Management Tool
để kiểm tra đĩa cứng được phân vùng theo MBR hay GPT?
Làm bài Lab 4. Khảo sát MBR bằng phần mềm Disk editor.
GPT
GPT là viết tắt của GUID Partition Table, là một chuẩn được
sử dụng để phân vùng (chia) đĩa cứng (HDD hoặc SSD).
GPT sử dụng định danh duy nhất toàn cầu (GUID – Globally
Unique Identifier). Đọc thêm về GUID tại đây: https://en.wikipedia.org/wiki/Universally_unique_identifier
GPT là một phần của chuẩn UEFI, mặc dù vậy, GPT vẫn hỗ trợ
cho một số hệ thống máy tính chạy BIOS.
Trong khi, MBR sử dụng chuỗi 32 bit để đánh địa chỉ cho các
khối nhớ, GPT sử dụng chuỗi 64 bit. Điều này cho phép GPT quản lý đĩa cứng có
kích thước tối đa là 8ZiB (Zebibyte).
Xem hình cấu trúc của GPT:
GPT cũng sử dụng cách đánh địa chỉ theo LBA (logical block
addressing).
– Protective MBR được đặt trong LBA0, vùng thông tin dùng để
bảo vệ đĩa cứng khi người dùng sử dụng các phần mềm cũ (chỉ làm việc được với
đĩa MBR) thao tác với đĩa GPT. Phần mềm cũ này cũng xem đĩa GPT là một đĩa cứng
gồm một phân vùng duy nhất.
– GPT header đặt trong LBA1, trong GPT header có con trỏ trỏ
tới bảng thông tin partition (partition table hay partition entry array),
partition table thường nằm trong LBA2.
– Partition table có kích thước là 16.384 byte, gồm nhiều
entry, mỗi entry có kích thước 128byte. Sector thứ 34 là sector đầu tiên có thể
sử dụng để lưu dữ liệu.
– Hybrid MBR (LBA0 + GPT): dùng trong trường hợp hệ điều
hành hỗ trợ boot từ BIOS vào đĩa GPT. Khi đó, MBR sẽ chứa một phần đoạn mã mồi
khởi động (bootloader), đoạn mã này sẽ tìm và nhận diện ra đĩa GPT.
Cấu trúc của partiton table header (LBA1)[1]
Cấu trúc của partiton table header (LBA1)[1]
Partition entries
(LBA 2–33)
GUID partition entry format
|
||
Offset
|
Length
|
Contents
|
0 (0x00)
|
16 bytes
|
Partition type GUID (mixed endian) – giá trị của
partition type
|
16 (0x10)
|
16 bytes
|
Unique partition GUID (mixed endian) – giá trị của unique
partion
|
32 (0x20)
|
8 bytes
|
First LBA (little endian) – LBA đầu tiên của partition
|
40 (0x28)
|
8 bytes
|
Last LBA (inclusive, usually odd) – LBA cuối cùng của
partition
|
48 (0x30)
|
8 bytes
|
Attribute flags (e.g. bit 60 denotes read-only) – cờ thuộc
tính
|
56 (0x38)
|
72 bytes
|
Partition name
(36 UTF-16LE code units) – tên của partition
|
Làm bài Lab 5. Khảo sát đĩa GPT.
3.2 Tập
tin
Xem clip sau (tiếng
Anh), từ phút thứ 10
Đọc trang 24 tới
trang 45 tài liệu này: https://drive.google.com/file/d/1P_zsBstk_qvbf531CAV_-rV9GxSE7WwV/view
Theo wiki, tập
tin (viết tắt cho tập thông tin; còn được gọi là tệp, tệp tin); tiếng Anh:
file; là một tập hợp của thông tin được đặt tên. Thông thường thì các tập tin
này chứa trong các thiết bị lưu trữ như đĩa cứng, đĩa mềm, CD, DVD cũng như là
các loại chip điện tử dùng kĩ thuật flash có thể thấy trong các ổ nhớ có giao
diện USB. Nói cách khác, tập tin là một dãy các bit có tên và được chứa trong
các thiết bị lưu trữ dữ liệu kỹ thuật số.
Tập tin là đơn vị
lưu trữ thông tin.
Tập tin thường gồm
hai phần, phần nội dung của tập tin (file data) và vùng chứa thông tin mô tả tập
tin (ví dụ: tên, ngày tạo, kích thước).
Ví dụ, phần thông
tin mô tả cho tập tin trên giao diện Windows,
Ví dụ, phần thông
tin mô tả cho tập tin trên đĩa cứng (hệ thống FAT32),
Cấu trúc mô tả
cho tập tin (hệ thống FAT32),
Byte thứ
|
Mô tả
|
0-0
|
Kí tự đầu tiên của
tên tập tin, hoặc trạng thái cấp phát (0xE5 hoặc 0x00: nếu chưa được cấp
phát)
|
1-10
|
Kí tự thứ 2 đến
11 của tên tập tin
|
11-11
|
Byte thuộc tính
(xem bảng về Byte thuộc tính)
|
12-12
|
Chưa sử dụng
|
13-13
|
Thời gian tạo tập
tin (mili giây)
|
14-15
|
Thời gian tạo tập
tin (giờ:phút:giây)
|
16-17
|
Ngày tạo tập tin
|
18-19
|
Thời gian truy cập
mới nhất (gồm thao tác đọc/ ghi), nếu là ghi thì giá trị của trường này sẽ giống
với trường WrtTime.
|
20-21
|
Phần byte cao
(High word) của cluster bắt đầu.
|
22-23
|
Thời gian ghi tập
tin mới nhất. Chú ý: tạo tập tin cũng được coi là ghi tập tin (giờ:phút:giây).
|
24-25
|
Ngày ghi tập tin
mới nhất. Chú ý: tạo tập tin cũng được coi là ghi tập tin. Kí hiệu WrtTime.
|
26-27
|
Phần byte thấp
(Low word) của cluster bắt đầu.
|
28-31
|
Kích thước của tập
tin, đơn vị tính là byte. (nếu là thư mục, giá trị này là 0).
|
Dữ liệu trên đĩa,
Một tập tin luôn luôn kết thúc bằng một ký tự đặc biệt (hay
dấu kết thúc) có mã ASCII là 255 ở hệ thập phân. Ký tự này thường được ký hiệu là EOF (viết tắt của
End Of File).
Một tập tin có thể
không chứa một thông tin nào ngoại trừ tên và dấu kết thúc. Tuy nhiên, điều này
không hề mâu thuẫn với định nghĩa vì bản thân tên của tập tin cũng đã chứa
thông tin. Những tập tin này gọi là tập tin rỗng hay tập tin trống.
Độ dài (kích thước)
của tập tin có thể chỉ phụ thuộc vào khả năng của máy tính, khả năng của hệ điều
hành cũng như vào phần mềm ứng dụng dùng nó. Đơn vị nhỏ nhất dùng để đo độ dài
của tập tin là byte. Độ dài của tập tin không bao gồm độ dài của tên tập tin và
dấu kết thúc.
Các thuộc tính của tập tin (ví dụ trên FAT): Archive,
hidden, read-only, system, sub-directory.
Định dạng của tập tin: cấu trúc của một tập tin định nghĩa
cách thức mà tập tin đó được chứa, được thực thi, và thể hiện trên các thiết bị
(như màn hình hay máy in) gọi là định dạng của tập tin. Định dạng này có thể
đơn giản hay phức tạp. Phần mở rộng cho biết định dạng của tập tin.
Tên tập tin: thường gồm tên và phần mở rộng. Phần mở rộng của
tập tin có thể không bắt buộc phải có. Phần tên có thể phải tránh dùng một số
kí tự đặc biệt, có độ dài tối đa tùy theo từng hệ điều hành.
3.3 Cấu
trúc thư mục
Cần phân biệt thư mục (directory) và cấu trúc thư mục (directory
structure). Thư mục làm một tập tin chứa thông tin mô tả cho thư mục con hoặc/và
các tập tin trong thư mục đó.
Cấu trúc thư mục là cấu trúc dùng để quản lý tất cả các tập
tin trên đĩa.
Đọc trang 26, 27,
28,
Một số kiến thức
cần quan tâm:
– Thư mục một cấp,
hai cấp và đa cấp
– Bảng thư mục (directory table)
– Các mục (directory entry) trong bảng thư mục
3.4 Cài đặt hệ thống quản lý tập tin
Một số kiến thức cần quan tâm:
– Cấp phát khối nhớ liên tục
– Cấp phát khối nhớ không liên tục (danh sách liên kết, bảng
chỉ mục, bảng cấp phát, bảng I-nodes)
– Quản lý các khối trống
3.5 Khảo
sát FAT32
3.6 Khảo
sát NTFS (đọc thêm)
-------
Câu hỏi ôn tập
Câu hỏi ôn tập
Câu hỏi 7. HDD và SSD
là viết tắt của?
A. Hard Disk Driver và Soft State Drive
B. Hard Disk Driver và Solid State Driver
C. Hard Disk Drive và Solid State Drive
D. Hard Disc Drive và Solid State Drive
Câu hỏi 8. Cái nào dưới
đây chứa được ít dữ liệu nhất?
A. Track
B. Platter
C. Cluster
D. Sector
Câu hỏi 9. Using MBR
technique to patitioning, how many primary partition you can create?
A. 1
B. 3
C. 4
D. No limited
Câu hỏi 10.
Using MBR technique to partitoning, if
OS was required installing on the primary partition, how many OS you can
install on that disk?
A. 1
B. 2
C. 4
D. No limited
Câu hỏi 11.
So sánh HDD và SSD?
Câu hỏi 12.
Bạn biết gì về định dạng cấp thấp (low format)?
Câu hỏi 13.
Trong đĩa cứng chia theo GPT, tại sao dữ liệu của người dùng thường được lưu tại
sector thứ 34 trở đi?
Câu hỏi 14.
Đĩa cứng MBR tạo được tối đa bao nhiêu ổ đĩa (giả sử dùng một chữ cái để đặt
tên ổ đĩa)? giải thích?
Câu hỏi 15.
Đĩa cứng GPT tạo được tối đa bao nhiêu ổ đĩa? giải thích?
Câu hỏi 16. Diễn giải cho các tình huống
sau:
Firmware tại Mainboard
|
Phân vùng đĩa cứng
|
Ý nghĩa sử dụng trong thực tế (ví dụ: khả
thi, không khả thi, tốt, không tốt, tối ưu, không tối ưu)
|
BIOS
|
MBR
|
|
BIOS
|
GPT
|
|
UEFI
|
MBR
|
|
UEFI
|
GPT
|
-------
Thực hành
Lab 3. Sử dụng Disk Management Tool
để kiểm tra đĩa cứng được phân vùng theo MBR hay GPT?
How to Check Which
Partition Table Your Disk Is Using
To check which partition table your disk is using, you have
two options: You can use Windows’
graphical Disk Management tool, or you can use the command line.
Option One: Use the Disk Management Tool
You can view this information in the Disk Management tool
included with Windows. To access it, right-click the Start menu or press
Windows Key+X and select “Disk Management.” You can also press Windows Key+R to
open the Run dialog, type “diskmgmt.msc” into the box, and press Enter.
Locate the disk you want to check in the Disk Management
window. Right-click it and select “Properties.”
Click over to the “Volumes” tab. To the right of “Partition
style,” you’ll see either “Master Boot Record (MBR)” or “GUID Partition Table
(GPT),” depending on which the disk is using.
Option Two: Use the Diskpart Command
You can also check using the standard diskpart command in a
Command Prompt window. First, launch a Command Prompt window as Administrator
by right-clicking the Start button or pressing Windows Key+X and selecting
“Command Prompt (Admin).” You can also locate the Command Prompt shortcut in
the Start menu, right-click it, and select “Run as Administrator.”
Type the following two commands, pressing Enter after each
one:
diskpart
list disk
You’ll see a table listing your connected disks. If a disk
is GPT, it will have an asterisk (that’s a * character) under the “Gpt” column.
If it’s an MBR disk, it will be blank under the Gpt column.
For example, in the screenshot below, Disk 0 and Disk 1 are
both GPT disks, while Disk 2 is an MBR disk.
Lab 4. Khảo sát MBR bằng phần mềm Disk
editor.
Hướng dẫn đọc đĩa cứng bằng Disk editor: https://legiacong.blogspot.com/2012/10/oc-ia-cung-bang-phan-mem-disk-editor.html
Lab 5.
Khảo sát GPT bằng phần mềm Active@ disk editor.
Sử dụng phần mềm Active@ disk editor, khảo sát đĩa cứng định
dạng theo GPT, điền các thông tin vào bảng sau:
Offset
|
Length
|
Giá trị và giải thích
|
0 (0x00)
|
8 bytes
|
|
8 (0x08)
|
4 bytes
|
|
12 (0x0C)
|
4 bytes
|
|
16 (0x10)
|
4 bytes
|
|
20 (0x14)
|
4 bytes
|
|
24 (0x18)
|
8 bytes
|
|
32 (0x20)
|
8 bytes
|
|
40 (0x28)
|
8 bytes
|
|
48 (0x30)
|
8 bytes
|
|
56 (0x38)
|
16 bytes
|
|
72 (0x48)
|
8 bytes
|
|
80 (0x50)
|
4 bytes
|
|
84 (0x54)
|
4 bytes
|
|
88 (0x58)
|
4 bytes
|
|
92 (0x5C)
|
*
|
Khảo sát các partition hiện có trên đĩa cứng và điền các
thông tin theo bảng sau:
Khảo sát Entry số:
|
||
Offset
|
Length
|
Nội dung và giải thích
|
0 (0x00)
|
16 bytes
|
|
16 (0x10)
|
16 bytes
|
|
32 (0x20)
|
8 bytes
|
|
40 (0x28)
|
8 bytes
|
|
48 (0x30)
|
8 bytes
|
|
56 (0x38)
|
72 bytes
|
Lab 7. Làm các bài tập sau:
-------
[1] https://thestarman.pcministry.com/asm/mbr/GPT.htm
--------
Cập nhật: 25/09/2019
-------
Bài tiếp theo: Hệ điều hành (3) - Quản lý tiến trình
Danh sách các bài học