Hệ điều hành (2) - Hệ thống quản lý tập tin

Bài trước: Hệ điều hành (1) - Tổng quan
-----

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

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]





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 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