lOMoARcPSD| 61552860
ĐẠI HỌC BÁCH KHOA HÀ NỘI
TRƯỜNG CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
------
TIỂU LUẬN
ĐỀ TÀI: GIAO DIỆN QUẢN LÝ BỘ NHỚ TRONG LINUX
Giáo viên hướng dẫn: Đỗ Tuấn Anh
Sinh viên thực hiện: Lê Tuấn Phi
Lớp:Nguyên lý hđiều hành - 141296
Năm học 2022 - 2023
lOMoARcPSD| 61552860
I. Tổng
quan..........................................................................................................................................2
II. Khái niệm
File................................................................................................................................2
1. Thuộc tính file trong hệ điều hành Linux....................................................................................3
2. Các thao tác với File......................................................................................................................4
3. Các loại File....................................................................................................................................5
4. Cấu trúc File..................................................................................................................................5
5. Cấu trúc File nội bộ.......................................................................................................................6
III. Access
Methods..............................................................................................................................8
1. Sequential Access...........................................................................................................................8
2. Direct Access..................................................................................................................................8
3. Other method Access.....................................................................................................................9
IV. Directory and Disk
Structure.....................................................................................................10
1. Storage structure.........................................................................................................................12
2. Directory overview.......................................................................................................................13
3. Single-Level Directory.................................................................................................................14
4. Two-Level Directory....................................................................................................................14
5. Tree-Structure Directory............................................................................................................15
6. Acyclic-Graph Directories...........................................................................................................16
7. General Graph Directory............................................................................................................17
V. File System
Mounting......................................................................................................................18
VI. File
Sharing..................................................................................................................................19
1. Multiple Users..............................................................................................................................20
2. Remote File System......................................................................................................................21
3. Consistency Semantics.................................................................................................................21
VII. Protection.....................................................................................................................................2
2
1. Type of access...............................................................................................................................23
lOMoARcPSD| 61552860
2. Access control...............................................................................................................................23
3. Other Protection Approaches.....................................................................................................24
VIII. SUMMARY..............................................................................................................................25
I. Tổng quan.
Đối với hầu hết người dùng, hệ thống file là khía cạnh dễ thấy nhất của hệ
điều hành hệ thống. Nó cung cấp cơ chế lưu trữ trực tuyến và truy cập vào
cả hai dữ liệu của hệ điều hành tất cả người dùng máy tính hệ thống. H
thống File bao gồm hai phần riêng biệt: một tập hợp các File, mỗi File lưu
trữ dữ liệu liên quan và cấu trúc thư mục tổ chức và cung cấp thông tin về
tất cả các tập tin trong hệ thống. Hệ thống file trực tiếp trên thiết bị,
chúng đã mô
II. Khái niệm File
Máy tính thể lưu trữ thông tin trên các phương tiện lưu trữ khác nhau,
chẳng hạn như từ đĩa, băng từ và đĩa quang. Vì vậy mà hệ thống máy tính
sẽ thuận tiện khi sử dụng, hệ điều hành cung cấp một cái nhìn logic thống
nhất của thông tin được lưu trữ. Hệ điều hành trừu tượng hóa từ vật lýcác
thuộc tính của thiết bị lưu trữ để xác định đơn vị lưu trữ logic, File. tập tin
ánh xạ bởi hệ điều hành lên các thiết bị vật lý. Các thiết bị lưu trữ này
thường không biến đổi, do đó, nội dung được lưu giữ giữa các lần khởi
động lại hệ thống.
File là một tập hợp có tên của thông tin liên quan được ghi lại trên lưu
trữ thcấp. Từ quan điểm của người dùng, một file phần nhỏ nhất lưu
trữ thứ cấp hợp lý; nghĩa là, dữ liệu không thể được ghi vào thứ cấp u
trữ trừ khi chúng nằm trong một file. Thông thường, các file đại diện cho
các chương trình (cả các dạng nguồn và đối tượng) và dữ liệu. File dữ liệu
thể số, chữ cái, chữ số, hoặc nhị phân. Các File thể dạng tự
do, chẳng hạn như File văn bản hoặc thể là được định dạng một cách
cứng nhắc. Nói chung, File là một chuỗi các bit, byte, dòng hoặc bản ghi,
ý nghĩa của nó được xác định bởi người tạo và người dùng của File. Khái
niệm của do đó, một tập tin là vô cùng chung chung.
lOMoARcPSD| 61552860
Thông tin trong một File được xác định bởi người tạo ra nó. Nhiều loại
khác nhau của thông tin thể được lưu trữ trong một tập tin—các chương
trình nguồn hoặc thực thi, số hoặc dữ liệu văn bản, ảnh, nhạc, video, v.v.
Một tập tin một cấu trúc được xác định nhất định, phụ thuộc vào
loại của nó. File văn bản là một dãy các tự được sắp xếp thành các dòng
(và có thể là các trang). File nguồn là một chuỗi các chức năng, mỗi chức
năng được tổ chức thêm dưới dạng các khai báo theo sau các câu lệnh
thực thi. File thực thi một loạt các đoạn mã trình tải thể đưa vào
bộ nhớ và thực thi.
1. Thuộc tính file trong hệ điều hành Linux.
Một File được đặt tên, để thuận tiện cho người dùng được tham chiếu
bởi tên của nó. Tên thường một chuỗi tự, chẳng hạn như example.c.
Một số hệ thống phân biệt giữa chữ hoa chữ thường trong tên, trong khi
các hệ thống khác thì không. Khi một File được đặt tên, sẽ trở nên độc lập
của quy trình, người dùng thậm chí cả hệ thống đã tạo ra nó. Ví dụ, một
người dùng thể tạo File example.c người dùng khác thể chỉnh sửa
File đó bằng cách chỉ định tên của nó. Chủ sở hữu File thể ghi File vào
đĩa USB, gửi File dưới dạng File đính kèm e-mail hoặc sao chép qua mạng
và nó vẫn có thể được gọi là example.c trên hệ thống đích. Các thuộc tính
của File trong Linux bao gồm những thuộc tính này:
Tên: Tên File tượng trưng thông tin duy nhất được lưu giữ dạng
con người có thể đọc được.
Định danh: Thẻ duy nhất này, thường là một số, xác định File trong hệ
thống tập tin; đó là tên không thể đọc được của con người đối với File.
Kiểu: Thông tin này cần thiết cho các hthống hỗ trợ các loại khác
nhau của các tập tin.
Vị trí: Thông tin này là một con trỏ tới một thiết bị và tới vị trí của tập
tin trên thiết bị đó.
Kích cỡ: Kích thước hiện tại của File (tính bằng byte, từ hoặc khối) và
có thể kích thước tối đa cho phép được bao gồm trong thuộc tính này.
Sự bảo vệ: Thông tin kiểm soát truy cập xác định ai thể đọc, viết,
thực thi, v.v.
lOMoARcPSD| 61552860
Thời gian, ngày tháng nhận dạng người dùng: Thông tin này có thể
được lưu giữ cho tạo, sửa đổi lần cuối và lần sử dụng cuối cùng. Những dữ
liệu này có thể hữu ích cho bảo vệ, bảo mật và giám sát sử dụng.
Đặt tên cho File: Trong số các thuộc tính, tên file là thuộc tính rất quan
trọng cho phép xác định file, thông tin người dùng thường sử dụng
nhất khi làm việc với file. Tên tên tồn tại cùng với file cho phép truy cập tới
file khi cần. Trong quy trình tồn tại của file, tên có thể thay đổi nếu cần thiết.
Trong Linux hỗ trợ tên file lên tới 256 kí tự có phân biệt chữ thường với chữ
hoa.
Một số hệ thống tệp mới hơn cũng hỗ trợ các thuộc tính tệp mở rộng, bao gồm
mã hóa ký tự của tệp và các tính năng bảo mật như tổng kiểm tra tệp.
Thông tin về tất cả các tệp được lưu giữ trong cấu trúc thư mục, mà cũng nằm
trên bộ nhớ thứ cấp. Thông thường, một mục nhập thư mục bao gồm tên tệp
định danh duy nhất của nó. Định danh lần lượt xác định vị trí khác
thuộc tính tập tin. thmất hơn một kilobyte đghi lại thông tin này cho
mỗi tập tin. Trong một hệ thống có nhiều tệp, kích thước của thư mục thể
megabyte. Bởi các thư mục, giống như các tập tin, không thể thay đổi,
chúng phải được lưu trữ trên thiết bđưa vào bộ nhớ từng phần, khi cần
thiết.
2. Các thao tác với File
Tạo file: Sử dụng lệnh ‘touch’ để tạo ra một file trống hoặc sử dụng
lệnh ‘echo’ để tạo file và viết nội dung vào file cùng lúc.
Xem nội dung file: Sử dụng lệnh ‘cat’ hoạc ‘less’ để xem nội dung củ
file.
Chỉnh sửa file: sử dụng các trình soạn thảo như ‘vi’, ‘nano’, ‘emacs’,
Xóa file: Sử dụng lệnh ‘rm’ để xóa file.
Di chuyển hoặc đổi tên file: Sử dụng lệnh ‘mv’ để di chuyển hoặc đổi
tên file.
Sao chép file: Sử dụng lệnh ‘cp’ để sao chép file.
Phân quyền file: Sử dụng lệnh ‘chmod’ để phân quyền cho file.
Tìm kiếm file: Sử dụng lệnh ‘find’ hoặc ‘locate’ để tìm kiếm file trong
hệ thống.
lOMoARcPSD| 61552860
Nén và giải nén file: Sử dụng các công cụ như ‘tar’, ‘gzip’, ‘zip’ để nén
và giải nén file.
3. Các loại File.
Regular File: Đây loại file thông thường, chứa dliệu hoặc chương
trình thực thi. Có 2 loại regular file chính là:
- Text file: chứa dữ liệu văn bản.
- Binary file: chứa mã máy thực thi chương trình.
Directoies: Là các file chứa danh sách các file và thư mục khác.
Special file: đây các file đặc biệt được sử dụng để truyền thông giữa
các thiết bị phần cứng với phần mềm. Có hai loại special file chính :
- Character special files: được sử dụng để truyền thông tin định dạng ký tự
như bàn phím, chuột, ….
- Block special files: được sủ dụng để truyền thông tin dạng khối như đĩa
cứng, ổ đĩa ưUSB,…
Ngoài ra, còn có một số loại file đặc biệt khác như symlink( symbolic link)
một liên kết tới một file hoặc thư mục khác, named pipe một loại file đặc
biệt được sử dụng để truyền dữ liệu giữa các tiến trình.
4. Cấu trúc File
Cấu trúc File trong Linux bao gồm hai thành phần chính: Định dạng File
cấu trúc File. Định dạng File chỉ ra kiểu File được sdụng (ví dụ: văn bản,
thực thi, hình ảnh, âm thanh) cấu trúc tập tin chỉ ra cách các dữ liệu được
lưu trữ trong File.
Cấu trúc File trong Linux bao gồm một số thành phần, bao gồm:
Thư mục gốc: thư mục cha của tất cả các thư mục tập tin hệ
thống trong Linux. Thư mục gốc thường đặt tại “/”.
Thư mục con: Là các thư mục nằm bên trong thư mục khác. Chúng
được sử dụng để tổ chức quản lý các tập tin trogn hệ thống.
Tập tin: Là các đối tượng chứa dữ liệu, thông tin hoặc mã lệnh. Tập
tin có thể được chia thành các loại khác nhau như văn bản, thực thi,
hình ảnh, âm thanh.
lOMoARcPSD| 61552860
Liên kết tập tin (Symbolic links): Cho phép một tập tin hoặc thư mục
trỏ đến một tập tin hoặc thư mục khác.
Thư mục ảo (virtual directories): các thư mục không thực hiện
trên hệ thống tập tin, nhưng được tạo ra để cung cấp quyền truy cập
vào các tài nguyên khác trên hệ thống.
Cấu trúc File Linux được tổ chúc theo hệ thống cây thư mục, trong đó các
thư mục và tập tin được sắp xếp theo thứ bậc và cấp độ khác nhau. Hệ thống
File Linux sử dụng một số quy tắc chuẩn để đặt tên tập tin thư mục,
nhằm đảm bảo tính nhất quán dễ hiểu khi quản truy cập các tài
nguyên trên hệ thống.
5. Cấu trúc File nội bộ
Trong Linux, cấu trúc tập tin nội bộ (Internal File Structure) thường được
gọi hệ thống tệp (File System). Hệ thống tệp trong Linux được tổ chức
theo một cấu trúc thư mục phân cấp, trong đó mỗi thư mục có thể chứa các
tệp thư mục con.
Cấu trúc File nội bộ phổ biến nhất trong Linux hthống tệp phân cấp
(hierarchy file system), được gọi File Hierarchy Standard (FHS). FHS xác
định quy tắc tiêu chuẩn cho cáu trúc thư mục trong hệ thống tệp Linux.
Dưới đây là một số thư mục quan trọng trong FHS:
- /: Thư mục gốc (root directory) của hệ thống. Tất cả các tmục tệp
tin khác đều được nằm trong thư mục này.
- /bin: Chứa các tệp tin thực thi (executables) cần thiết để khởi động hệ
thống và thực hiện các tác vụ cơ bản.
- /etc: Chứa các tệp tin cấu hình (configuration files) cho hệ thống và ứng
dụng.
- /home: Thư mục chứa các thư mục nhân của người dùng. Mỗi người
dùng có một thư mục con tương ứng trong đây để lưu trữ tệp tin cá nhân.
- /lib /lib64: Chứa các thư viện (libraries) hệ thống cần thiết cho các
chương trình thực thi.
- /media /mnt: Được sử dụng làm thư mục gắn kết (mount points) cho
các thiết bị lưu trữ như ổ đĩa cứng, ổ đĩa USB, và các đĩa CD/DVD.
- /opt: Chứa các ứng dụng tùy chọn (optional applications) được cài đặt bởi
người dùng hoặc bên thứ ba.
lOMoARcPSD| 61552860
- /tmp: Thư mục tạm thời (temporary directory) được sử dụng để lưu trữ
các tệp tin tạm thời.
- /usr: Chứa các tệp tin, thư mục các tài nguyên chung (shared resources)
cho các ứng dụng hệ thống.
- /var: Chứa các tệp tin biến đổi (variable files) như nhật hệ thống
(system logs), tệp tin tạm thời, và cơ sở dữ liệu.
Tất cả các thư mục tệp tin trong Linux được tổ chức theo cấu trúc thư mục
phân cấp. Dưới đây là một số thư mục quan trọng khác trong cấu trúc tệp tin
nội bộ của Linux:
- /boot: Chứa các tệp tin khởi động (boot files) như kernel và các tệp tin
cấu hình khởi động.
- /dev: một thư mục đặc biệt chứa các tệp tin đại diện cho các thiết bị
phần cứng trong hệ thống, chẳng hạn như đĩa, bàn phím, và thiết bị
mạng.
- /proc: Là một hệ thống tệp tin ảo (virtual file system) cung cấp thông tin
về quá trình và tài nguyên hệ thống trong thời gian thực.
- /root: Thư mục nhân của người dùng root (superuser). Đây nơi
người dùng root quyền truy cập và quản các tệp tin thư mục hệ
thống.
- /sbin: Chứa các tệp tin thực thi cần thiết cho quản hệ thống, thường chỉ
có người dùng root mới có quyền truy cập vào thư mục này.
- /srv: Chứa dữ liệu cho các dịch vụ (services) được cung cấp bởi hệ thống,
ví dụ như dữ liệu website hoặc dữ liệu FTP.
- /sys: Tương tự như /proc, /sys là một hệ thống tệp tin ảo cung cấp thông
tin về cấu hình phần cứng và các thành phần của hệ thống.
- /run: Chứa các tệp tin thư mục tạm thời (temporary files) được tạo ra
trong quá trình khởi động hệ thống.
- /usr/local: Chứa các ứng dụng, thư viện và tệp tin liên quan đến các
chương trình cài đặt cục bộ (local installations), không phụ thuộc vào
phân phối Linux cụ thể.
- /var/log: Chứa các tệp tin nhật ký hệ thống, ghi lại các sự kiện, thông báo
và hoạt động của hệ thống.
lOMoARcPSD| 61552860
III. Access Methods
1. Sequential Access.
Phương pháp truy cập đơn giản nhất truy cập tuần tự. Thông tin trong tệp
tin được xử lý theo thứ tự, một bản ghi sau một bản ghi khác. Phương pháp
truy cập này là phổ biến nhất, ví dụ như các trình soạn thảo và trình biên dịch
thường truy cập vào các tệp tin theo cách này.
Trong Linux, truy cập tuần tự (Sequential Access) đcập đến việc truy cập
dữ liệu từ đầu đến cuối theo thứ tự tuần tự trong một tệp tin. Khi truy cập
tuần tự, bạn chỉ thể đọc hoặc ghi dliệu theo thứ tự tđầu đến cuối,
không thể trực tiếp truy cập hoặc chỉnh sửa một phần cụ thể trong tệp.
Trong Linux, có một số cách để thực hiện truy cập tuần tự vào tệp tin:
- Sử dụng lệnh cat: Lệnh "cat" (concatenate) được sử dụng để hiển thị nội
dung của một hoặc nhiều tệp tin trên màn hình. dụ, đhiển thị nội dung
của một tệp tin tên là "file.txt", bạn có thể sử dụng lệnh sau: cat file.txt.
- Sử dụng lệnh less hoặc more: Cả hai lệnh "less" và "more" được sdụng
để xem nội dung của một tệp tin một cách tuần tự. Cú pháp cơ bản là less
file.txt hoặc more file.txt. Khi sử dụng lệnh này, bạn thể cuộn lên
xuống để xem các phần khác nhau của tệp tin.
- Sử dụng lệnh tail: Lệnh "tail" được sử dụng để hiển thị nội dung của một
phần cuối của tệp tin. Ví dụ, để xem 10 dòng cuối cùng của một tệp tin
tên là "file.txt", bạn có thể sử dụng lệnh sau: tail file.txt. Bạn cũng có thể
sử dụng tùy chọn "-n" để chỉ định số lượng dòng bạn muốn hiển thị, dụ
tail -n 20 file.txt để hiển thị 20 dòng cuối cùng.
2. Direct Access.
Một phương pháp khác truy cập trực tiếp (hay truy cập tương đối). đây,
một tệp được tạo thành từ các bản ghi logic độ dài cố định, cho phép các
chương trình đọc và ghi các bghi một cách nhanh chóng mà không cần thực
hiện theo thứ tự cụ thể. Phương pháp truy cập trực tiếp dựa trên mô hình đĩa
củ một tệp, đĩa này cho phép truy cập ngẫu nhiên vào bất khối tệp nào.
Đối với truy cập trực tiếp, tệp được xem như một chuỗi các khối hoặc bản ghi
lOMoARcPSD| 61552860
sthứ tự. dụ, chúng ta thể đọc khối 14, sau đó đọc khối 53, sau
đó ghi khối 7. KHông có hạn chế về thứ tự đọc hoặc ghi cho tệp truy cập trực
tiếp.
Truy cập trực tiếp trong linux thể được thực hiện bằng cách sử dụng các
hàm gọi hệ thống được cung cấp bởi giao diện hthống tệp ( file system
interface). Một số hàm quan trọng trong truy cập trực tiếp file bao gồm:
- open(): Mở một file truy cập trực tiếp với các tùy chọn phù hợp.
- lseeek(): Di chuyển con trỏ đọc/ghi đến một vị trí cụ thể trong file.
- read(): Đọc dữ liệu vào file tại vị trí con trỏ đọc hiện tại.
- write(): Ghi dữ liệu vào file tại vị trí con trỏ đọc hiện tại.
- close(): Đóng file sau khi hoàn tất các hoạt động truy cập.
Lưu ý rằng việc truy cập trực tiếp yêu cầu bạn biết vị trí chính xác của dữ liệu
trong file, do đó, phù hợp cho các trường hợp nơi bạn cần truy cập ngẫu
nhiên vào dữ liệu đã biết trước.
3. Other method Access.
Ngoài hai phương thức truy cập tuần t(Sequential access) truy cập trực
tiếp (Direc access), giao diện quản file trong linux cũng hỗ trợ một số
phương thức truy cập khác. Dưới đây là một số phương thức đó:
- Mapped access (Truy cập được ánh xạ): Phương pháp này cho phép một
file được ánh xạ trực tiếp vào bộ nhớ của một quá trình. Khi file được ánh
xạ, các thao tác trên bộ nhớ sẽ tự động phản ánh trực tiếp vào file tương
ứng. Điều này cho phép truy cập file thông qua các thao tác trên bộ nhớ,
không cần gọi các hàm đọc/ghi tường minh. Việc sử dụng mapped
access có thể tăng hiệu suất truy cập file.
- Memory-mapped I/O : Phương pháp này cho phép một file được ánh xạ
vào bộ nhớ của một quá trình để thực hiện I/O trực tiếp. Điều này cho
phép truy cập file thông qua việc đọc/ghi dữ liệu trự tiếp từ bộ nhớ
không cần sử dụng các hàm đọc/ghi tường minh. Memory-mapped I/O
thường được sử dụng để làm việc với các file có kích thước lớn.
- Record-oriented access (truy cập theo bản ghi): Phương pháp này cho
phép truy cập vào các file theo đơn vị bản ghi. Thay truy cập dữ liệu
theo từng byte hoặc khối, bạn thể đọc ghi từng bản ghi riêng biệt.
lOMoARcPSD| 61552860
Điều này hữu ích khi làm việc với các file có dữ liệu được tổ chức thành
các bản ghi độc lập.
- Buffered access( truy cập được đệm): Truy cập được đệm là một phương
pháp dữ liệu đọc từ file hoặc dữ liệu ghi vào file được lưu trữ trong
bộ đệm trước khi thực hiện I/O thực sự. Điều này giúp cải thiện hiệu suất
truy cập file bằng cách giảm số lần gọi hàm đọc/ghi vào hệ thống tệp.
Các phương pháp truy cập file này ứng dụng đặc điểm sử dụng khác
nhau, và sự lựa chọn phụ thuộc vào yêu cầu cụ thể của ứng dụng và loại file
mà bạn đang làm việc.
IV. Directory and Disk Structure
Tiếp theo, chúng ta xét đến cách lưu trữ các tệp tin. Chắc chắn rằng, một máy
tính thông thường không chỉ lưu trữ một tệp tin duy nhất. Thường hàng
ngàn, hàng triệu thậm chí hàng tỷ tệp tin trong một máy tính. Tệp tin được lưu
trữ trên các thiết bị lưu trữ truy cập ngẫu nhiên, bao gồm cứng, đĩa quang
và ổ đĩa rắn ( dựa trên bộ nhớ).
Một thiết bị lưu trữ có thể được sử dụng toàn bộ cho một hệ thống tập tin.
cũng thể được chia nhỏ để kiểm soát chi tiết hơn. Ví dụ, một đĩa thể
được phân vùng thành 4 phần, mỗi phần thể chứa một hệ thống tập tin
riêng biệt. Các thiết bị lưu trữ cũng có thể được tổng hợp thành các bộ RAID
cung cấp bảo vệ khỏi sự cố của một đĩa hơn. Đôi khi các đĩa được chia
nhỏ và cũng được tổng hợp thành các bộ RAID.
lOMoARcPSD| 61552860
Phân vùng (Partitioning) rất hữu ích để giới hạn kích thước của các hệ thống
tệp tin riêng lẻ, đặt nhiều loại hệ thống tệp tin trên cùng một thiết bị hoặc để
lại một phần của thiết bị để sử dụng cho mục đích khác, như không gian trao
đổi (swap space) hoặc không gian đĩa chưa được định dạng (raw disk space).
Một hệ thống tệp tin thể được tạo trên mỗi phần của đĩa này. Bất thực
thể nào chứa một hthống tệp tin thường được gọi đĩa (volume). đĩa
thể một phần của một thiết bị, một thiết bị hoàn chỉnh hoặc nhiều thiết
bị được kết nối với nhau thành một bộ RAID. Mỗi ổ đĩa có thể được coi như
một đĩa ảo. Các đĩa cũng thể lưu trữ nhiều hệ điều hành, cho phép hệ
thống khởi động và chạy nhiều hơn một hệ điều hành.
Mỗi ổ đĩa chứa hệ thống tập tin cũng phải chứa thông tin về các tập tin trong
hệ thống. Thông tin này được lưu trữ trong một thư mục thiết bị hoặc bảng
nội dung đĩa. Thư mục thiết bị (thông thường được gọi đơn giản thư mục)
ghi lại thông tin – như tên vị trí, kích thước loại – cho tất cả các tập tin trên
ổ đĩa đó. Hình 11.7 hiễn thị một số tổ chức hệ thống tập tin điển hình.
1. Storage structure.
Ở hệ điều hành Linux, cấu trúc lưu trữ (storage structure) được tổ chức thông
qua hệ thống tệp (file system) của Linux. Các cáu trúc lưu trữ quan trọng trong
Linux bao gồm:
- Block Devices (thiết bị khối): Trong Linux, thiết bị lưu trữ như cứng,
ổ đĩa SSD, ổ đĩa quang được xem nhưu là các thiết bị khối. Chúng được
chia thành các khối có kích thước cố định, thường là 4KB hoặc 8KB.
lOMoARcPSD| 61552860
- File Systems (hệ thống tệp): Linux hỗ trợ nhiều hthống tệp như ext4,
XFS, Btrfs,và NTFS. Mỗi hệ thống tệp định nghĩa cách cấu trúc tổ
chức dữ liệu trên đĩa, bao gồm việc lưu trữ siêu dữ liệu (superblock), bảng
inode (inode table), và các block dữ liệu.
- Inodes: Mỗi tệp tin và thư mục trong Linux được đại diện bởi một inode.
Inode chứa các thông tin về tệp tin như tên, quyền truy cập, kích thước,
thời gian tạo và sửa đổi, cũng như các con trỏ đến các block dữ liệu.
- Data Blocks (các blocks dữ liệu): Các blocks dữ liệu chứa nội dung thực
tế của các tệp tin thư mục. Kích thước dliệu được định nghĩa bởi một
hệ thống tệp và thường là một múi của kích thước block thiết bị.
- Directory Structure (cấu trúc thư mục): Tmục trong Linux được tổ
chức dưới dạng cấu trúc cây. Mỗi thư mục chứa các mục (entries) đại diện
cho các tệp tin thư mục con. Mỗi mục trong thư mục liên kết đến
một inode tương ứng.
Tổ chức lưu trữ trong Linux cho phép quản lý và truy cập dữ liệu hiệu quả, đồng
thời cung cấp các tính năng như bảo mật, quyền truy cập, khả năng mở rộng
cho hệ thống tệp.
Hệ thống tập tin của máy tính rất phức tạp. Ngay cả trong một hệ thống tập tin,
việc phân tách các tập tin thành các nhóm quản thao tác trên những nhóm
đó rất hữu ích. Tổ chức này liên quan đến việc sdụng thư mục. Trong phần
còn lại của phần nafym chũng ta sẽ khám phá về cấu trúc thư mục.
2. Directory overview
Giao diện hệ thống tập tin cung cấp các chứ năng và hoạt động để quản lý thư
mục trong một hệ thống tập tin. Dưới đây tổng quan vmột skhía cạnh
quan trọng của cấu trúc thư mục và quản lý nó:
- Tạo thư mục: Giao diện hệ thống tập tin cho phép tạo các thư mc. Bằng
cách sdụng chức năng này, người dùng thể tạo ra các thư mục mới
để tổ chức và phân loại tập tin.
- Xóa thư mục: Giao diện cho phép xóa thư mục không còn cần thiết. Khi
một thư mục được xóa, tất cả các tệp tin thư mục con bên trong
cũng sẽ bị xóa.
lOMoARcPSD| 61552860
- Di chuyển và đổi tên: Giao diện cung cấp khả nằng di chuyển thư mục từ
vị trí này sang vị trí khác trong cùng hthống tập tin. Người dùng cũng
có thể đổi tên thư mục mà hông làm thay đổi nội dung bên trong.
- Sao chép và dán: Giao diện cho phép sao chép thư mục từ một vị trí khác
trong cùng hoặc khác hệ thống tập tin. Điều này cho phép sao chép toàn
bộ cấu trúc thư mục và nội dung của nó.
- Truy cập và xem thông tin: Giao diện cho phép truy cập vào thư mục
xem thông tin liên quan như kích thước, ngày tạo quyền truy cập của
thư mục.
- Đặt quyền truy cập: Giao diện cung cấp khả năng đặc quyền truy cập cho
thư mục, bao gồm quyền đọc, ghi và thực thi. Điều này giúp kiểm soát
quyền truy cập vào các thư mục và tập tin trong hệ thống.
Qua giao diện Hệ thống tập tin, người dùng thể quản tmục một cách hiệu
quả và tổ chức tập tin và thư mục trong hệ thống tập tin của họ.
3. Single-Level Directory
Single-Level Directory một hình thức đơn giản cấu trúc thư mcuj trong giao
diện Hệ thống Tập tin. Trong Single-Level directory, tất cả các tập tin và thư
mục được lưu trữ trong một thư mục duy nhất. Mỗi tập tin hoặc thư mục sẽ
có một tên duy nhất để xác định nó.
Ưu điểm của Single-Level Directory đơn giản dễ hiểu. Người dùng
chương trình thể truy cập trực tiếp đến tất cả các tập tin thư mục trong
hệ thống.
Tuy nhiên, Single-Level Directory cũng có nhược điểm nghiêm trọng. Khi
nhiều tập tin thư mục, việc quản m kiếm trở nên khó khăn. Không
khả năng tạo các thư mục con hoặc tổ chức hệ thống tập tin theo cấu trúc
phân cấp. Điều này dẫn đến việc mát đi tính tổ chức hiệu quả trong việc
quản lý tập tin.
nhược điểm của nó, Single-Level Directory ít được sdụng trong các hệ
thống tập tin phức tạp hơn. Thay vào đó, các cấu trúc thư mục phân cấp nhưu
Two-Level Directory(thư mục hai cấp), Hierachical Directory (thư mục phân
cấp) hay Tree-Structure Directory (thư mục có cấu trúc cây) được sử dụng để
cung cấp sự tổ chức linh hoạt và hiệu quả hơn trong việc quản lý tập tin.
lOMoARcPSD| 61552860
4. Two-Level Directory
Two-Level Directory là một cấu trúc thư mục trong giao diện hệ thống tập tin
cho phép tạo ra một cấu trúc thư mục phân cấp đơn giản hơn so với Single-
Level Directory. Cấu trúc này bao gồm 2 mức thư mục chính: tmục gốc
(root directory) và các thư mục con (subdirectories).
Trong Two-Level Directory, mỗi người dùng sẽ có một thư mục riêng để lưu
trữ tập tin và thư mục của họ. Thư mục gốc chứa các thư mục người dùng,
mỗi thư mục người dùng chứa các tập tin thư mục của người dùng tương
ứng.
Ưu điểm của Two-Level Directory cho phép phân chia và tchức tập tin
theo người dùng hoặc nhóm người dùng, giúp quản lý và tìm kiếm trở nên dễ
dàng hơn. Mỗi người dùng có quyền quản lý các tập tin và thư mục trong thư
mục riêng của mình, đồng thời không ảnh hưởng đến các tập tin thư mục
của người dùng khác.
Tuy nhiên, Two-Level Directory cũng hạn chế. Khi số lượng người dùng
hoặc nhóm người dùng lớn, cấu trúc thư mục thể trở nên phức tạp và khó
khăn trong việc quản lý. Nếu cần phân chia sẻ tập tin giữa các người dùng,
việc quản lý quyền truy cập có thể trở nên phức tạp hơn.
Two-Level Directory là một cấu trúc phổ biến trong các hệ thống tập tin, đặc
biệt trong môi trường đơn người dùng hoặc nhóm người dùng quyền truy
cập giới hạn vào các tập tin và thư mục.
5. Tree-Structure Directory
Tree-Structure Directory là một cấu trúc thư mục trong giao diện hthống tập
tin sử sụng hình cây để tổ chức tập tin thư mục. Cấu trúc này cho
phép tạo ra một hệ thống thư mục phân cấp linh hoạt có khản năng tổ chức
cao hơn.
Trong Tree-Structured Directory, một thư mục gốc (root directory) thư
mục cấp cao nhất trong hệ thống. Từ thư mục gốc, các thư mục con
(subdirectories) thể được tạo ra tổ chức thành các cấp thư mục khác
nhau. Mỗi thư mục có thể chứa các tập tin và thư mục con khác.
Ưu điểm của Tree-Structured Directory chop phép tổ chức tập tin thư
mục một cách hợp cấu trúc. cung cấp khả năng tạo ra một slượng
không giới hạn các thư mục tập tin con, giúp quản lý tập tin và thư mục tr
lOMoARcPSD| 61552860
nên thuận tiện hiệu quả hơn. Mô hình cây còn cho phép tạo ra mối quan hệ
phụ thuộc và kết thừa giữa các thư mục và tập tin.
dụ, một thư mục con thể chứa các thư mục tập tin con riêng, tạo thành
các cấp độ thư mục con. Quản lý và tìm kiếm trong cấu trúc cây dựa trên tên
thư mục và đường dẫn cũng trở nên dễ dàng hơn.
Tree-Structured Directory một cấu trúc thư mục phổ biến trong hthống tập
tin hiện đại. Nó cho phép tổ chức linh hoạt, quản lý dễ dàng và khả năng mở
rộng trong việc lưu trữ và quản lý tập tin.
Với hệ thống thư mục có cấu trúc cây, người dùng có thể được phép truy cập
vào các tập tin của người dùng khác, ngoài tập tin của chính họ. Ví dụ, người
dùng B có thể truy cập vào một tập tin của người dùng A bằng cách chỉ định
tên đường dẫn của nó. Người dùng B có thể chỉ định một tên đường dẫn tuyệt
đối hoặc tương đối. Ngoài ra, người dùng B thể thay đổi thư mục hiện tại
của mình để trở thành thư mục của người dùng Atruy cập vào tập tin bằng
tên tập tin của nó.
6. Acyclic-Graph Directories
Acyclic-Graph Directories (Thư mục đồ thị không chu trình) một cấu
trúc thư mục trong hệ thống tập tin cho phép tạo ra một mạng lưới phức
tạp của các thư mục và tập tin mà không có chu trình đường dẫn.
lOMoARcPSD| 61552860
Trong Acyclic-Graph Directories, các thư mục tập tin được tổ chức thành
một đồ thị hướng hướng (directed acyclic graph). Mỗi thư mục thể chứa
các tập tin và thư mục con thể được liên kết đến các thư mục khác trong
hệ thống. Tuy nhiên, không có chu trình đường dẫn tồn tại trong cấu trúc thư
mục này, tức là không có sự phụ thuộc lặp lại giữa các thư mục.
Ưu điểm của Acyclic-Graph Directories cho phép tổ chức tập tin và thư mục
một cách linh hoạt và phức tạp hơn so với các cấu trúc thư mục khác. Nó cho
phép tạo ra các mối quan hệ không hạn chế giữa các thư mục và tập tin, đồng
thời tránh được vấn đề xảy ra khi chu trình đường dẫn gây ra mất mát dữ
liệu và lặp lại vô tận.
Tuy nhiên, việc quản tìm kiếm trong Acyclic-Graph Directories thể
phức tạp hơn so với cấu trúc thư mục đơn giản hơn. Điều này đòi hỏi các thuật
toán phức tạp để xử duyệt các mạng lưới đồ thị không chu trình để tìm
kiếm tập tin và thư mục.
Acyclic-Graph Directories thường được sử dụng trong các hệ thống tập tin
phức tạp hơn, nơi việc tổ chức tập tin thư mục theo một hình mạng lưới
phức tạp là cần thiết đđáp ứng các yêu cầu đa dạng phức tạp trong việc
quản lý tập tin.
7. General Graph Directory
General Graph Directory (Thư mục đồ thị tổng quát) là một cấu trúc thư mục
trong hệ thống tập tincho phép tạo ra một mạng lưới phức tạp của các thư
mục và tập tin mà không có ràng buộc về chu trình đường dẫn.
lOMoARcPSD| 61552860
Trong General Graph Directory, các tmục tập tin được tổ chức thành
một đồ thị hướng đa dạng (general graph). Mỗi thư mục thể chứa các tập
tin và thư mục con và có thể được liên kết đến bất kỳ thư mục khác nào trong
hệ thống, bao gồm cả chính nó. Không có ràng buộc về chu trình đường dẫn,
cho phép các mối quan hệ phụ thuộc phức tạp giữa các thư mục và tập tin.
Ưu điểm của General Graph Directory là cho phép tổ chức tập tin và thư mục
một cách linh hoạt đa dạng. cho phép tạo ra các hình mạng lưới
phức tạp tùy chỉnh theo nhu cầu của hệ thống tập tin. Điều này cung cấp
khả năng linh hoạt và đa dạng trong việc quản lý tập tin và thư mục, đáp ứng
các yêu cầu đặc biệt và phức tạp của người dùng.
Tuy nhiên, việc quản tìm kiếm trong General Graph Directory phức
tạp hơn so với các cấu trúc thư mục khác. Do không ràng buộc chu trình
đường dẫn, việc duyệt xử đồ thị đa dạng thể đòi hỏi các thuật toán
phức tạp và tốn nhiều tài nguyên.
General Graph Directory thường được sử dụng trong các hệ thống tập tin đặc
biệt, nơi yêu cầu một cấu trúc thư mục linh hoạt phức tạp để đáp ứng các
yêu cầu đa dạng của người dùng và ứng dụng.
V. File System Mounting
File system mounting (gắn kết hệ thống tập tin) trong giao diện Hệ thống Tập tin
quá trình liên kết một hệ thống tập tin vào cấu trúc cây thư mục hiện tại của
hệ thống. Khi một hệ thống tập tin được gắn kết, các tập tin và thư mục trong hệ
thống tập tin đó sẽ trở nên truy cập được từ cây thư mục chính của hệ thống.
lOMoARcPSD| 61552860
Quá trình gắn kết hthống tập tin thường được thực hiện bằng cách chỉ định
đường dẫn đến điểm gắn kết tên gắn kết cho hthống tập tin. Khi quá trình
gắn kết thành công, hệ thống tập tin được coi như đã trở thành một phần của cây
thư mục chính các tập tin thư mục trong đó thể được truy cập và sử
dụng như bất kỳ tập tin và thư mc nào khác trong hệ thống.
Việc sử dụng quá trình gắn kết hệ thống tập tin cho phép người dùng ứng
dụng truy cập vào các hệ thống tập tin khác nhau từ một điểm truy cập duy nhất.
Nó cung cấp tính linh hoạt trong việc quản lý và sử dụng các tập tin và thư mục
từ nhiều nguồn và định dạng khác nhau trên hệ thống.
Quá trình gắn kết hệ thống tập tin là một phần quan trọng của giao diện Hệ thống
Tập tin và cho phép hệ điều hành và người dùng tận dụng và quản lý tài nguyên
lưu trữ một cách hiệu quả.
Trong Linux, để gắn kết một hệ thống tập tin, ta sử dụng lệnh mount. Lệnh này
có cú pháp như sau: mount -t <filesystem_type> <source> <destination>
Trong đó:
<filesystem_type>: Loại hệ thống tập tin của nguồn dữ liệu (ví dụ: ext4, ntfs,
vfat).
<source>: Nguồn dữ liệu của hệ thống tập tin (ví dụ: một thiết bị lưu trữ n
ổ đĩa, phân vùng, hoặc một tệp hệ thống tập tin).
<destination>: Đường dẫn đến điểm gắn kết trong cấu trúc cây thư mục của
hệ thống.
VI. File Sharing
Trong các phần trước, chúng ta đã khám phá động lực cho việc chia sẻ tập tin
một số khó khăn liên quan đến việc cho phép người dùng chia sẻ tập tin.
Việc chia sẻ tập tin như vậy là rất mong muốn đối với người dùng muốn cộng
tác và giảm công sức cần thiết để đạt được mục tiêu tính toán. Do đó, các hệ
điều hành dựa trên người dùng phải đáp ứng nhu cầu chia sẻ tập tin mặc
khó khăn tồn tại.
lOMoARcPSD| 61552860
Trong phần này, chúng ta xem xét thêm các khía cạnh khác vviệc chia sẻ tập
tin. Chúng ta bắt đầu bằng việc thảo luận về các vấn đề chung phát sinh khi
nhiều người dùng chia sẻ tập tin. Một khi cho phép nhiều người dùng chia sẻ
tập tin, thách thức mở rộng việc chia sẻ sang nhiều hệ thống tập tin, bao
gồm cả hệ thống tập tin từ xa; chúng ta cũng thảo luận về thách thức đó. Cuối
cùng, chúng ta xem xét điều nên làm với các hành động xung đột xảy ra
trên các tập tin chia sẻ. Ví dụ, nếu nhiều người dùng đang ghi vào một tập tin,
liệu tất cả các ghi nhận đều được phép xảy ra, hay hệ điều hành nên bảo vệ
hành động của người dùng khỏi nhau?
1. Multiple Users
Trong việc chia sẻ tập tin trên Linux, hệ điều hành hỗ trợ việc cho nhiều người
dùng chia sẻ tập tin cùng một lúc. Điều này cho phép nhiều người dùng truy
cập, đọc, ghi và thực hiện các thao tác trên cùng một tập tin hoặc thư mục.
Khi nhiều người dùng chia sẻ tập tin, một số vấn đề chung thể phát sinh:
- Quản quyền truy cập: Hệ điều hành Linux cung cấp hệ thống quyền
truy cập phân quyền (permissions) để kiểm soát quyền truy cập vào tập
tin thư mục. Người dùng thể được phân quyền đọc, ghi hoặc thực
thi tập tin dựa trên quyền truy cập của họ. Quản lý quyền truy cập là một
phần quan trọng để đảm bảo rằng các người dùng chỉ thể thực hiện các
thao tác phù hợp với quyền của họ trên tập tin chia sẻ.
- Đồng bộ hóa và xung đột: Khi nhiều người dùng cùng thực hiện các thao
tác trên cùng một tập tin, thể xảy ra xung đột dữ liệu. Hệ điều hành
Linux cung cấp các chế đồng bộ hóa khóa (synchronization and
locking) đđảm bảo rằng các thay đổi trên tập tin được xử lý một cách
an toàn và không gây ra mất mát dữ liệu hoặc xung đột.
- Theo dõi ghi nhật ký: Để quản việc chia sẻ tập tin, hệ điều hành
Linux cung cấp các công cụ và ghi nhật (logging) để theo dõi các hoạt
động của người dùng trên tập tin chia sẻ. Việc ghi nhật giúp trong việc
giám sát, phân tích và khắc phục sự cố liên quan đến việc chia sẻ tập tin.
- Giao thức chia sẻ tập tin: Trên Linux, nhiều giao thức chia sẻ tập tin
như NFS (Network File System), Samba (SMB/CIFS), FTP (File

Preview text:

lOMoAR cPSD| 61552860
ĐẠI HỌC BÁCH KHOA HÀ NỘI
TRƯỜNG CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
------ TIỂU LUẬN
ĐỀ TÀI: GIAO DIỆN QUẢN LÝ BỘ NHỚ TRONG LINUX
Giáo viên hướng dẫn: Đỗ Tuấn Anh
Sinh viên thực hiện: Lê Tuấn Phi
Lớp:Nguyên lý hệ điều hành - 141296
Năm học 2022 - 2023 lOMoAR cPSD| 61552860 I. Tổng
quan.
.........................................................................................................................................2 II. Khái niệm
File................................................................................................................................2
1. Thuộc tính file trong hệ điều hành Linux....................................................................................3
2. Các thao tác với File......................................................................................................................4
3. Các loại File....................................................................................................................................5
4. Cấu trúc File..................................................................................................................................5
5. Cấu trúc File nội bộ.......................................................................................................................6 III. Access
Methods
..............................................................................................................................8
1. Sequential Access...........................................................................................................................8
2. Direct Access..................................................................................................................................8
3. Other method Access.....................................................................................................................9 IV. Directory and Disk
Structure.....................................................................................................10
1. Storage structure.........................................................................................................................12
2. Directory overview.......................................................................................................................13
3. Single-Level Directory.................................................................................................................14
4. Two-Level Directory....................................................................................................................14
5. Tree-Structure Directory............................................................................................................15
6. Acyclic-Graph Directories...........................................................................................................16
7. General Graph Directory............................................................................................................17 V. File System
Mounting......................................................................................................................18 VI. File
Sharing
..................................................................................................................................19
1. Multiple Users..............................................................................................................................20
2. Remote File System......................................................................................................................21
3. Consistency Semantics.................................................................................................................21 VII.
Protection.....................................................................................................................................2 2
1. Type of access...............................................................................................................................23 lOMoAR cPSD| 61552860
2. Access control...............................................................................................................................23
3. Other Protection Approaches.....................................................................................................24 VIII.
SUMMARY..............................................................................................................................25 I. Tổng quan.
Đối với hầu hết người dùng, hệ thống file là khía cạnh dễ thấy nhất của hệ
điều hành hệ thống. Nó cung cấp cơ chế lưu trữ trực tuyến và truy cập vào
cả hai dữ liệu của hệ điều hành và tất cả người dùng máy tính hệ thống. Hệ
thống File bao gồm hai phần riêng biệt: một tập hợp các File, mỗi File lưu
trữ dữ liệu liên quan và cấu trúc thư mục tổ chức và cung cấp thông tin về
tất cả các tập tin trong hệ thống. Hệ thống file trực tiếp trên thiết bị, mà chúng đã mô II. Khái niệm File
Máy tính có thể lưu trữ thông tin trên các phương tiện lưu trữ khác nhau,
chẳng hạn như từ đĩa, băng từ và đĩa quang. Vì vậy mà hệ thống máy tính
sẽ thuận tiện khi sử dụng, hệ điều hành cung cấp một cái nhìn logic thống
nhất của thông tin được lưu trữ. Hệ điều hành trừu tượng hóa từ vật lýcác
thuộc tính của thiết bị lưu trữ để xác định đơn vị lưu trữ logic, File. tập tin
là ánh xạ bởi hệ điều hành lên các thiết bị vật lý. Các thiết bị lưu trữ này
thường không biến đổi, do đó, nội dung được lưu giữ giữa các lần khởi động lại hệ thống.
File là một tập hợp có tên của thông tin liên quan được ghi lại trên lưu
trữ thứ cấp. Từ quan điểm của người dùng, một file là phần nhỏ nhất lưu
trữ thứ cấp hợp lý; nghĩa là, dữ liệu không thể được ghi vào thứ cấp lưu
trữ trừ khi chúng nằm trong một file. Thông thường, các file đại diện cho
các chương trình (cả các dạng nguồn và đối tượng) và dữ liệu. File dữ liệu
có thể là số, chữ cái, chữ và số, hoặc nhị phân. Các File có thể ở dạng tự
do, chẳng hạn như File văn bản hoặc có thể là được định dạng một cách
cứng nhắc. Nói chung, File là một chuỗi các bit, byte, dòng hoặc bản ghi,
ý nghĩa của nó được xác định bởi người tạo và người dùng của File. Khái
niệm của do đó, một tập tin là vô cùng chung chung. lOMoAR cPSD| 61552860
Thông tin trong một File được xác định bởi người tạo ra nó. Nhiều loại
khác nhau của thông tin có thể được lưu trữ trong một tập tin—các chương
trình nguồn hoặc thực thi, số hoặc dữ liệu văn bản, ảnh, nhạc, video, v.v.
Một tập tin có một cấu trúc được xác định nhất định, mà phụ thuộc vào
loại của nó. File văn bản là một dãy các ký tự được sắp xếp thành các dòng
(và có thể là các trang). File nguồn là một chuỗi các chức năng, mỗi chức
năng được tổ chức thêm dưới dạng các khai báo theo sau là các câu lệnh
thực thi. File thực thi là một loạt các đoạn mã mà trình tải có thể đưa vào bộ nhớ và thực thi.
1. Thuộc tính file trong hệ điều hành Linux.
Một File được đặt tên, để thuận tiện cho người dùng và được tham chiếu
bởi tên của nó. Tên thường là một chuỗi ký tự, chẳng hạn như example.c.
Một số hệ thống phân biệt giữa chữ hoa và chữ thường trong tên, trong khi
các hệ thống khác thì không. Khi một File được đặt tên, nó sẽ trở nên độc lập
của quy trình, người dùng và thậm chí cả hệ thống đã tạo ra nó. Ví dụ, một
người dùng có thể tạo File example.c và người dùng khác có thể chỉnh sửa
File đó bằng cách chỉ định tên của nó. Chủ sở hữu File có thể ghi File vào
đĩa USB, gửi File dưới dạng File đính kèm e-mail hoặc sao chép nó qua mạng
và nó vẫn có thể được gọi là example.c trên hệ thống đích. Các thuộc tính
của File trong Linux bao gồm những thuộc tính này: •
Tên: Tên File tượng trưng là thông tin duy nhất được lưu giữ ở dạng
con người có thể đọc được. •
Định danh: Thẻ duy nhất này, thường là một số, xác định File trong hệ
thống tập tin; đó là tên không thể đọc được của con người đối với File. •
Kiểu: Thông tin này là cần thiết cho các hệ thống hỗ trợ các loại khác nhau của các tập tin. •
Vị trí: Thông tin này là một con trỏ tới một thiết bị và tới vị trí của tập tin trên thiết bị đó. •
Kích cỡ: Kích thước hiện tại của File (tính bằng byte, từ hoặc khối) và
có thể kích thước tối đa cho phép được bao gồm trong thuộc tính này. •
Sự bảo vệ: Thông tin kiểm soát truy cập xác định ai có thể đọc, viết, thực thi, v.v. lOMoAR cPSD| 61552860 •
Thời gian, ngày tháng và nhận dạng người dùng: Thông tin này có thể
được lưu giữ cho tạo, sửa đổi lần cuối và lần sử dụng cuối cùng. Những dữ
liệu này có thể hữu ích cho bảo vệ, bảo mật và giám sát sử dụng. •
Đặt tên cho File: Trong số các thuộc tính, tên file là thuộc tính rất quan
trọng cho phép xác định file, và là thông tin mà người dùng thường sử dụng
nhất khi làm việc với file. Tên tên tồn tại cùng với file cho phép truy cập tới
file khi cần. Trong quy trình tồn tại của file, tên có thể thay đổi nếu cần thiết.
Trong Linux hỗ trợ tên file lên tới 256 kí tự có phân biệt chữ thường với chữ hoa.
Một số hệ thống tệp mới hơn cũng hỗ trợ các thuộc tính tệp mở rộng, bao gồm
mã hóa ký tự của tệp và các tính năng bảo mật như tổng kiểm tra tệp.
Thông tin về tất cả các tệp được lưu giữ trong cấu trúc thư mục, mà cũng nằm
trên bộ nhớ thứ cấp. Thông thường, một mục nhập thư mục bao gồm tên tệp
và mã định danh duy nhất của nó. Định danh lần lượt xác định vị trí khác
thuộc tính tập tin. Có thể mất hơn một kilobyte để ghi lại thông tin này cho
mỗi tập tin. Trong một hệ thống có nhiều tệp, kích thước của thư mục có thể
megabyte. Bởi vì các thư mục, giống như các tập tin, không thể thay đổi,
chúng phải được lưu trữ trên thiết bị và đưa vào bộ nhớ từng phần, khi cần thiết.
2. Các thao tác với File
• Tạo file: Sử dụng lệnh ‘touch’ để tạo ra một file trống hoặc sử dụng
lệnh ‘echo’ để tạo file và viết nội dung vào file cùng lúc.
• Xem nội dung file: Sử dụng lệnh ‘cat’ hoạc ‘less’ để xem nội dung củ file.
• Chỉnh sửa file: sử dụng các trình soạn thảo như ‘vi’, ‘nano’, ‘emacs’, …
• Xóa file: Sử dụng lệnh ‘rm’ để xóa file.
• Di chuyển hoặc đổi tên file: Sử dụng lệnh ‘mv’ để di chuyển hoặc đổi tên file.
• Sao chép file: Sử dụng lệnh ‘cp’ để sao chép file.
• Phân quyền file: Sử dụng lệnh ‘chmod’ để phân quyền cho file.
• Tìm kiếm file: Sử dụng lệnh ‘find’ hoặc ‘locate’ để tìm kiếm file trong hệ thống. lOMoAR cPSD| 61552860
• Nén và giải nén file: Sử dụng các công cụ như ‘tar’, ‘gzip’, ‘zip’ để nén và giải nén file. 3. Các loại File.
 Regular File: Đây là loại file thông thường, chứa dữ liệu hoặc chương
trình thực thi. Có 2 loại regular file chính là:
- Text file: chứa dữ liệu văn bản.
- Binary file: chứa mã máy thực thi chương trình.
• Directoies: Là các file chứa danh sách các file và thư mục khác.
• Special file: đây là các file đặc biệt được sử dụng để truyền thông giữa
các thiết bị phần cứng với phần mềm. Có hai loại special file chính :
- Character special files: được sử dụng để truyền thông tin định dạng ký tự
như bàn phím, chuột, ….
- Block special files: được sủ dụng để truyền thông tin dạng khối như ổ đĩa cứng, ổ đĩa ưUSB,…
Ngoài ra, còn có một số loại file đặc biệt khác như symlink( symbolic link) là
một liên kết tới một file hoặc thư mục khác, và named pipe là một loại file đặc
biệt được sử dụng để truyền dữ liệu giữa các tiến trình. 4. Cấu trúc File
Cấu trúc File trong Linux bao gồm hai thành phần chính: Định dạng File và
cấu trúc File. Định dạng File chỉ ra kiểu File được sử dụng (ví dụ: văn bản,
thực thi, hình ảnh, âm thanh) và cấu trúc tập tin chỉ ra cách các dữ liệu được lưu trữ trong File.
Cấu trúc File trong Linux bao gồm một số thành phần, bao gồm:
• Thư mục gốc: Là thư mục cha của tất cả các thư mục cà tập tin hệ
thống trong Linux. Thư mục gốc thường đặt tại “/”.
• Thư mục con: Là các thư mục nằm bên trong thư mục khác. Chúng
được sử dụng để tổ chức quản lý các tập tin trogn hệ thống.
• Tập tin: Là các đối tượng chứa dữ liệu, thông tin hoặc mã lệnh. Tập
tin có thể được chia thành các loại khác nhau như văn bản, thực thi, hình ảnh, âm thanh. lOMoAR cPSD| 61552860
• Liên kết tập tin (Symbolic links): Cho phép một tập tin hoặc thư mục
trỏ đến một tập tin hoặc thư mục khác.
• Thư mục ảo (virtual directories): Là các thư mục không có thực hiện
trên hệ thống tập tin, nhưng được tạo ra để cung cấp quyền truy cập
vào các tài nguyên khác trên hệ thống.
Cấu trúc File Linux được tổ chúc theo hệ thống cây thư mục, trong đó các
thư mục và tập tin được sắp xếp theo thứ bậc và cấp độ khác nhau. Hệ thống
File Linux sử dụng một số quy tắc và chuẩn để đặt tên tập tin và thư mục,
nhằm đảm bảo tính nhất quán và dễ hiểu khi quản lý và truy cập các tài nguyên trên hệ thống.
5. Cấu trúc File nội bộ
Trong Linux, cấu trúc tập tin nội bộ (Internal File Structure) thường được
gọi là hệ thống tệp (File System). Hệ thống tệp trong Linux được tổ chức
theo một cấu trúc thư mục phân cấp, trong đó mỗi thư mục có thể chứa các tệp thư mục con.
Cấu trúc File nội bộ phổ biến nhất trong Linux là hệ thống tệp phân cấp
(hierarchy file system), được gọi là File Hierarchy Standard (FHS). FHS xác
định quy tắc và tiêu chuẩn cho cáu trúc thư mục trong hệ thống tệp Linux.
Dưới đây là một số thư mục quan trọng trong FHS:
- /: Thư mục gốc (root directory) của hệ thống. Tất cả các thư mục và tệp
tin khác đều được nằm trong thư mục này.
- /bin: Chứa các tệp tin thực thi (executables) cần thiết để khởi động hệ
thống và thực hiện các tác vụ cơ bản.
- /etc: Chứa các tệp tin cấu hình (configuration files) cho hệ thống và ứng dụng.
- /home: Thư mục chứa các thư mục cá nhân của người dùng. Mỗi người
dùng có một thư mục con tương ứng trong đây để lưu trữ tệp tin cá nhân.
- /lib và /lib64: Chứa các thư viện (libraries) hệ thống cần thiết cho các chương trình thực thi.
- /media và /mnt: Được sử dụng làm thư mục gắn kết (mount points) cho
các thiết bị lưu trữ như ổ đĩa cứng, ổ đĩa USB, và các đĩa CD/DVD.
- /opt: Chứa các ứng dụng tùy chọn (optional applications) được cài đặt bởi
người dùng hoặc bên thứ ba. lOMoAR cPSD| 61552860
- /tmp: Thư mục tạm thời (temporary directory) được sử dụng để lưu trữ các tệp tin tạm thời.
- /usr: Chứa các tệp tin, thư mục và các tài nguyên chung (shared resources)
cho các ứng dụng hệ thống.
- /var: Chứa các tệp tin biến đổi (variable files) như nhật ký hệ thống
(system logs), tệp tin tạm thời, và cơ sở dữ liệu.
Tất cả các thư mục và tệp tin trong Linux được tổ chức theo cấu trúc thư mục
phân cấp. Dưới đây là một số thư mục quan trọng khác trong cấu trúc tệp tin nội bộ của Linux:
- /boot: Chứa các tệp tin khởi động (boot files) như kernel và các tệp tin cấu hình khởi động.
- /dev: Là một thư mục đặc biệt chứa các tệp tin đại diện cho các thiết bị
phần cứng trong hệ thống, chẳng hạn như ổ đĩa, bàn phím, và thiết bị mạng.
- /proc: Là một hệ thống tệp tin ảo (virtual file system) cung cấp thông tin
về quá trình và tài nguyên hệ thống trong thời gian thực.
- /root: Thư mục cá nhân của người dùng root (superuser). Đây là nơi mà
người dùng root có quyền truy cập và quản lý các tệp tin và thư mục hệ thống.
- /sbin: Chứa các tệp tin thực thi cần thiết cho quản lý hệ thống, thường chỉ
có người dùng root mới có quyền truy cập vào thư mục này.
- /srv: Chứa dữ liệu cho các dịch vụ (services) được cung cấp bởi hệ thống,
ví dụ như dữ liệu website hoặc dữ liệu FTP.
- /sys: Tương tự như /proc, /sys là một hệ thống tệp tin ảo cung cấp thông
tin về cấu hình phần cứng và các thành phần của hệ thống.
- /run: Chứa các tệp tin và thư mục tạm thời (temporary files) được tạo ra
trong quá trình khởi động hệ thống.
- /usr/local: Chứa các ứng dụng, thư viện và tệp tin liên quan đến các
chương trình cài đặt cục bộ (local installations), không phụ thuộc vào
phân phối Linux cụ thể.
- /var/log: Chứa các tệp tin nhật ký hệ thống, ghi lại các sự kiện, thông báo
và hoạt động của hệ thống. lOMoAR cPSD| 61552860 III. Access Methods 1. Sequential Access.
Phương pháp truy cập đơn giản nhất là truy cập tuần tự. Thông tin trong tệp
tin được xử lý theo thứ tự, một bản ghi sau một bản ghi khác. Phương pháp
truy cập này là phổ biến nhất, ví dụ như các trình soạn thảo và trình biên dịch
thường truy cập vào các tệp tin theo cách này.
Trong Linux, truy cập tuần tự (Sequential Access) đề cập đến việc truy cập
dữ liệu từ đầu đến cuối theo thứ tự tuần tự trong một tệp tin. Khi truy cập
tuần tự, bạn chỉ có thể đọc hoặc ghi dữ liệu theo thứ tự từ đầu đến cuối,
không thể trực tiếp truy cập hoặc chỉnh sửa một phần cụ thể trong tệp.
Trong Linux, có một số cách để thực hiện truy cập tuần tự vào tệp tin:
- Sử dụng lệnh cat: Lệnh "cat" (concatenate) được sử dụng để hiển thị nội
dung của một hoặc nhiều tệp tin trên màn hình. Ví dụ, để hiển thị nội dung
của một tệp tin tên là "file.txt", bạn có thể sử dụng lệnh sau: cat file.txt.
- Sử dụng lệnh less hoặc more: Cả hai lệnh "less" và "more" được sử dụng
để xem nội dung của một tệp tin một cách tuần tự. Cú pháp cơ bản là less
file.txt hoặc more file.txt. Khi sử dụng lệnh này, bạn có thể cuộn lên và
xuống để xem các phần khác nhau của tệp tin.
- Sử dụng lệnh tail: Lệnh "tail" được sử dụng để hiển thị nội dung của một
phần cuối của tệp tin. Ví dụ, để xem 10 dòng cuối cùng của một tệp tin
tên là "file.txt", bạn có thể sử dụng lệnh sau: tail file.txt. Bạn cũng có thể
sử dụng tùy chọn "-n" để chỉ định số lượng dòng bạn muốn hiển thị, ví dụ
tail -n 20 file.txt để hiển thị 20 dòng cuối cùng. 2. Direct Access.
Một phương pháp khác là truy cập trực tiếp (hay truy cập tương đối). Ở đây,
một tệp được tạo thành từ các bản ghi logic có độ dài cố định, cho phép các
chương trình đọc và ghi các bả ghi một cách nhanh chóng mà không cần thực
hiện theo thứ tự cụ thể. Phương pháp truy cập trực tiếp dựa trên mô hình đĩa
củ một tệp, vì đĩa này cho phép truy cập ngẫu nhiên vào bất kì khối tệp nào.
Đối với truy cập trực tiếp, tệp được xem như một chuỗi các khối hoặc bản ghi lOMoAR cPSD| 61552860
có số thứ tự. Ví dụ, chúng ta có thể đọc khối 14, sau đó đọc khối 53, và sau
đó ghi khối 7. KHông có hạn chế về thứ tự đọc hoặc ghi cho tệp truy cập trực tiếp.
Truy cập trực tiếp trong linux có thể được thực hiện bằng cách sử dụng các
hàm và gọi hệ thống được cung cấp bởi giao diện hệ thống tệp ( file system
interface). Một số hàm quan trọng trong truy cập trực tiếp file bao gồm:
- open(): Mở một file truy cập trực tiếp với các tùy chọn phù hợp.
- lseeek(): Di chuyển con trỏ đọc/ghi đến một vị trí cụ thể trong file.
- read(): Đọc dữ liệu vào file tại vị trí con trỏ đọc hiện tại.
- write(): Ghi dữ liệu vào file tại vị trí con trỏ đọc hiện tại.
- close(): Đóng file sau khi hoàn tất các hoạt động truy cập.
Lưu ý rằng việc truy cập trực tiếp yêu cầu bạn biết vị trí chính xác của dữ liệu
trong file, do đó, nó phù hợp cho các trường hợp nơi bạn cần truy cập ngẫu
nhiên vào dữ liệu đã biết trước.
3. Other method Access.
Ngoài hai phương thức truy cập tuần tự (Sequential access) và truy cập trực
tiếp (Direc access), giao diện quản lý file trong linux cũng hỗ trợ một số
phương thức truy cập khác. Dưới đây là một số phương thức đó:
- Mapped access (Truy cập được ánh xạ): Phương pháp này cho phép một
file được ánh xạ trực tiếp vào bộ nhớ của một quá trình. Khi file được ánh
xạ, các thao tác trên bộ nhớ sẽ tự động phản ánh trực tiếp vào file tương
ứng. Điều này cho phép truy cập file thông qua các thao tác trên bộ nhớ,
mà không cần gọi các hàm đọc/ghi tường minh. Việc sử dụng mapped
access có thể tăng hiệu suất truy cập file.
- Memory-mapped I/O : Phương pháp này cho phép một file được ánh xạ
vào bộ nhớ của một quá trình để thực hiện I/O trực tiếp. Điều này cho
phép truy cập file thông qua việc đọc/ghi dữ liệu trự tiếp từ bộ nhớ mà
không cần sử dụng các hàm đọc/ghi tường minh. Memory-mapped I/O
thường được sử dụng để làm việc với các file có kích thước lớn.
- Record-oriented access (truy cập theo bản ghi): Phương pháp này cho
phép truy cập vào các file theo đơn vị bản ghi. Thay vì truy cập dữ liệu
theo từng byte hoặc khối, bạn có thể đọc và ghi từng bản ghi riêng biệt. lOMoAR cPSD| 61552860
Điều này hữu ích khi làm việc với các file có dữ liệu được tổ chức thành các bản ghi độc lập.
- Buffered access( truy cập được đệm): Truy cập được đệm là một phương
pháp mà dữ liệu đọc từ file hoặc dữ liệu ghi vào file được lưu trữ trong
bộ đệm trước khi thực hiện I/O thực sự. Điều này giúp cải thiện hiệu suất
truy cập file bằng cách giảm số lần gọi hàm đọc/ghi vào hệ thống tệp.
Các phương pháp truy cập file này có ứng dụng và đặc điểm sử dụng khác
nhau, và sự lựa chọn phụ thuộc vào yêu cầu cụ thể của ứng dụng và loại file mà bạn đang làm việc.
IV. Directory and Disk Structure
Tiếp theo, chúng ta xét đến cách lưu trữ các tệp tin. Chắc chắn rằng, một máy
tính thông thường không chỉ lưu trữ một tệp tin duy nhất. Thường có hàng
ngàn, hàng triệu thậm chí hàng tỷ tệp tin trong một máy tính. Tệp tin được lưu
trữ trên các thiết bị lưu trữ truy cập ngẫu nhiên, bao gồm ổ cứng, đĩa quang
và ổ đĩa rắn ( dựa trên bộ nhớ).
Một thiết bị lưu trữ có thể được sử dụng toàn bộ cho một hệ thống tập tin. Nó
cũng có thể được chia nhỏ để kiểm soát chi tiết hơn. Ví dụ, một ổ đĩa có thể
được phân vùng thành 4 phần, và mỗi phần có thể chứa một hệ thống tập tin
riêng biệt. Các thiết bị lưu trữ cũng có thể được tổng hợp thành các bộ RAID
cung cấp bảo vệ khỏi sự cố của một ổ đĩa hơn. Đôi khi các ổ đĩa được chia
nhỏ và cũng được tổng hợp thành các bộ RAID. lOMoAR cPSD| 61552860
Phân vùng (Partitioning) rất hữu ích để giới hạn kích thước của các hệ thống
tệp tin riêng lẻ, đặt nhiều loại hệ thống tệp tin trên cùng một thiết bị hoặc để
lại một phần của thiết bị để sử dụng cho mục đích khác, như không gian trao
đổi (swap space) hoặc không gian đĩa chưa được định dạng (raw disk space).
Một hệ thống tệp tin có thể được tạo trên mỗi phần của đĩa này. Bất kì thực
thể nào chứa một hệ thống tệp tin thường được gọi là ổ đĩa (volume). Ổ đĩa
có thể là một phần của một thiết bị, một thiết bị hoàn chỉnh hoặc nhiều thiết
bị được kết nối với nhau thành một bộ RAID. Mỗi ổ đĩa có thể được coi như
một ổ đĩa ảo. Các ổ đĩa cũng có thể lưu trữ nhiều hệ điều hành, cho phép hệ
thống khởi động và chạy nhiều hơn một hệ điều hành.
Mỗi ổ đĩa chứa hệ thống tập tin cũng phải chứa thông tin về các tập tin trong
hệ thống. Thông tin này được lưu trữ trong một thư mục thiết bị hoặc bảng
nội dung đĩa. Thư mục thiết bị (thông thường được gọi đơn giản là thư mục)
ghi lại thông tin – như tên vị trí, kích thước và loại – cho tất cả các tập tin trên
ổ đĩa đó. Hình 11.7 hiễn thị một số tổ chức hệ thống tập tin điển hình. 1. Storage structure.
Ở hệ điều hành Linux, cấu trúc lưu trữ (storage structure) được tổ chức thông
qua hệ thống tệp (file system) của Linux. Các cáu trúc lưu trữ quan trọng trong Linux bao gồm:
- Block Devices (thiết bị khối): Trong Linux, cá thiết bị lưu trữ như ổ cứng,
ổ đĩa SSD, ổ đĩa quang được xem nhưu là các thiết bị khối. Chúng được
chia thành các khối có kích thước cố định, thường là 4KB hoặc 8KB. lOMoAR cPSD| 61552860
- File Systems (hệ thống tệp): Linux hỗ trợ nhiều hệ thống tệp như ext4,
XFS, Btrfs,và NTFS. Mỗi hệ thống tệp định nghĩa cách cấu trúc và tổ
chức dữ liệu trên đĩa, bao gồm việc lưu trữ siêu dữ liệu (superblock), bảng
inode (inode table), và các block dữ liệu.
- Inodes: Mỗi tệp tin và thư mục trong Linux được đại diện bởi một inode.
Inode chứa các thông tin về tệp tin như tên, quyền truy cập, kích thước,
thời gian tạo và sửa đổi, cũng như các con trỏ đến các block dữ liệu.
- Data Blocks (các blocks dữ liệu): Các blocks dữ liệu chứa nội dung thực
tế của các tệp tin và thư mục. Kích thước dữ liệu được định nghĩa bởi một
hệ thống tệp và thường là một múi của kích thước block thiết bị.
- Directory Structure (cấu trúc thư mục): Thư mục trong Linux được tổ
chức dưới dạng cấu trúc cây. Mỗi thư mục chứa các mục (entries) đại diện
cho các tệp tin và thư mục con. Mỗi mục trong thư mục có liên kết đến một inode tương ứng.
Tổ chức lưu trữ trong Linux cho phép quản lý và truy cập dữ liệu hiệu quả, đồng
thời cung cấp các tính năng như bảo mật, quyền truy cập, và khả năng mở rộng cho hệ thống tệp.
Hệ thống tập tin của máy tính rất phức tạp. Ngay cả trong một hệ thống tập tin,
việc phân tách các tập tin thành các nhóm quản lý và thao tác trên những nhóm
đó là rất hữu ích. Tổ chức này liên quan đến việc sử dụng thư mục. Trong phần
còn lại của phần nafym chũng ta sẽ khám phá về cấu trúc thư mục. 2. Directory overview
Giao diện hệ thống tập tin cung cấp các chứ năng và hoạt động để quản lý thư
mục trong một hệ thống tập tin. Dưới đây là tổng quan về một số khía cạnh
quan trọng của cấu trúc thư mục và quản lý nó:
- Tạo thư mục: Giao diện hệ thống tập tin cho phép tạo các thư mục. Bằng
cách sử dụng chức năng này, người dùng có thể tạo ra các thư mục mới
để tổ chức và phân loại tập tin.
- Xóa thư mục: Giao diện cho phép xóa thư mục không còn cần thiết. Khi
một thư mục được xóa, tất cả các tệp tin và thư mục con bên trong nó cũng sẽ bị xóa. lOMoAR cPSD| 61552860
- Di chuyển và đổi tên: Giao diện cung cấp khả nằng di chuyển thư mục từ
vị trí này sang vị trí khác trong cùng hệ thống tập tin. Người dùng cũng
có thể đổi tên thư mục mà hông làm thay đổi nội dung bên trong.
- Sao chép và dán: Giao diện cho phép sao chép thư mục từ một vị trí khác
trong cùng hoặc khác hệ thống tập tin. Điều này cho phép sao chép toàn
bộ cấu trúc thư mục và nội dung của nó.
- Truy cập và xem thông tin: Giao diện cho phép truy cập vào thư mục và
xem thông tin liên quan như kích thước, ngày tạo và quyền truy cập của thư mục.
- Đặt quyền truy cập: Giao diện cung cấp khả năng đặc quyền truy cập cho
thư mục, bao gồm quyền đọc, ghi và thực thi. Điều này giúp kiểm soát
quyền truy cập vào các thư mục và tập tin trong hệ thống.
Qua giao diện Hệ thống tập tin, người dùng có thể quản lý thư mục một cách hiệu
quả và tổ chức tập tin và thư mục trong hệ thống tập tin của họ.
3. Single-Level Directory
Single-Level Directory là một hình thức đơn giản cấu trúc thư mcuj trong giao
diện Hệ thống Tập tin. Trong Single-Level directory, tất cả các tập tin và thư
mục được lưu trữ trong một thư mục duy nhất. Mỗi tập tin hoặc thư mục sẽ
có một tên duy nhất để xác định nó.
Ưu điểm của Single-Level Directory là đơn giản và dễ hiểu. Người dùng và
chương trình có thể truy cập trực tiếp đến tất cả các tập tin và thư mục trong hệ thống.
Tuy nhiên, Single-Level Directory cũng có nhược điểm nghiêm trọng. Khi có
nhiều tập tin và thư mục, việc quản lý và tìm kiếm trở nên khó khăn. Không
có khả năng tạo các thư mục con hoặc tổ chức hệ thống tập tin theo cấu trúc
phân cấp. Điều này dẫn đến việc mát đi tính tổ chức và hiệu quả trong việc quản lý tập tin.
Vì nhược điểm của nó, Single-Level Directory ít được sử dụng trong các hệ
thống tập tin phức tạp hơn. Thay vào đó, các cấu trúc thư mục phân cấp nhưu
Two-Level Directory(thư mục hai cấp), Hierachical Directory (thư mục phân
cấp) hay Tree-Structure Directory (thư mục có cấu trúc cây) được sử dụng để
cung cấp sự tổ chức linh hoạt và hiệu quả hơn trong việc quản lý tập tin. lOMoAR cPSD| 61552860 4. Two-Level Directory
Two-Level Directory là một cấu trúc thư mục trong giao diện hệ thống tập tin
mà cho phép tạo ra một cấu trúc thư mục phân cấp đơn giản hơn so với Single-
Level Directory. Cấu trúc này bao gồm 2 mức thư mục chính: thư mục gốc
(root directory) và các thư mục con (subdirectories).
Trong Two-Level Directory, mỗi người dùng sẽ có một thư mục riêng để lưu
trữ tập tin và thư mục của họ. Thư mục gốc chứa các thư mục người dùng,
mỗi thư mục người dùng chứa các tập tin và thư mục của người dùng tương ứng.
Ưu điểm của Two-Level Directory là cho phép phân chia và tổ chức tập tin
theo người dùng hoặc nhóm người dùng, giúp quản lý và tìm kiếm trở nên dễ
dàng hơn. Mỗi người dùng có quyền quản lý các tập tin và thư mục trong thư
mục riêng của mình, đồng thời không ảnh hưởng đến các tập tin và thư mục của người dùng khác.
Tuy nhiên, Two-Level Directory cũng có hạn chế. Khi số lượng người dùng
hoặc nhóm người dùng lớn, cấu trúc thư mục có thể trở nên phức tạp và khó
khăn trong việc quản lý. Nếu cần phân chia sẻ tập tin giữa các người dùng,
việc quản lý quyền truy cập có thể trở nên phức tạp hơn.
Two-Level Directory là một cấu trúc phổ biến trong các hệ thống tập tin, đặc
biệt là trong môi trường đơn người dùng hoặc nhóm người dùng có quyền truy
cập giới hạn vào các tập tin và thư mục.
5. Tree-Structure Directory
Tree-Structure Directory là một cấu trúc thư mục trong giao diện hệ thống tập
tin mà sử sụng mô hình cây để tổ chức tập tin và thư mục. Cấu trúc này cho
phép tạo ra một hệ thống thư mục phân cấp linh hoạt và có khản năng tổ chức cao hơn.
Trong Tree-Structured Directory, có một thư mục gốc (root directory) là thư
mục cấp cao nhất trong hệ thống. Từ thư mục gốc, các thư mục con
(subdirectories) có thể được tạo ra và tổ chức thành các cấp thư mục khác
nhau. Mỗi thư mục có thể chứa các tập tin và thư mục con khác.
Ưu điểm của Tree-Structured Directory là chop phép tổ chức tập tin và thư
mục một cách hợp lý và có cấu trúc. Nó cung cấp khả năng tạo ra một số lượng
không giới hạn các thư mục và tập tin con, giúp quản lý tập tin và thư mục trở lOMoAR cPSD| 61552860
nên thuận tiện và hiệu quả hơn. Mô hình cây còn cho phép tạo ra mối quan hệ
phụ thuộc và kết thừa giữa các thư mục và tập tin.
Ví dụ, một thư mục con có thể chứa các thư mục và tập tin con riêng, tạo thành
các cấp độ thư mục con. Quản lý và tìm kiếm trong cấu trúc cây dựa trên tên
thư mục và đường dẫn cũng trở nên dễ dàng hơn.
Tree-Structured Directory là một cấu trúc thư mục phổ biến trong hệ thống tập
tin hiện đại. Nó cho phép tổ chức linh hoạt, quản lý dễ dàng và khả năng mở
rộng trong việc lưu trữ và quản lý tập tin.
Với hệ thống thư mục có cấu trúc cây, người dùng có thể được phép truy cập
vào các tập tin của người dùng khác, ngoài tập tin của chính họ. Ví dụ, người
dùng B có thể truy cập vào một tập tin của người dùng A bằng cách chỉ định
tên đường dẫn của nó. Người dùng B có thể chỉ định một tên đường dẫn tuyệt
đối hoặc tương đối. Ngoài ra, người dùng B có thể thay đổi thư mục hiện tại
của mình để trở thành thư mục của người dùng A và truy cập vào tập tin bằng tên tập tin của nó.
6. Acyclic-Graph Directories
Acyclic-Graph Directories (Thư mục có đồ thị không chu trình) là một cấu
trúc thư mục trong hệ thống tập tin mà cho phép tạo ra một mạng lưới phức
tạp của các thư mục và tập tin mà không có chu trình đường dẫn. lOMoAR cPSD| 61552860
Trong Acyclic-Graph Directories, các thư mục và tập tin được tổ chức thành
một đồ thị hướng vô hướng (directed acyclic graph). Mỗi thư mục có thể chứa
các tập tin và thư mục con và có thể được liên kết đến các thư mục khác trong
hệ thống. Tuy nhiên, không có chu trình đường dẫn tồn tại trong cấu trúc thư
mục này, tức là không có sự phụ thuộc lặp lại giữa các thư mục.
Ưu điểm của Acyclic-Graph Directories là cho phép tổ chức tập tin và thư mục
một cách linh hoạt và phức tạp hơn so với các cấu trúc thư mục khác. Nó cho
phép tạo ra các mối quan hệ không hạn chế giữa các thư mục và tập tin, đồng
thời tránh được vấn đề xảy ra khi có chu trình đường dẫn gây ra mất mát dữ
liệu và lặp lại vô tận.
Tuy nhiên, việc quản lý và tìm kiếm trong Acyclic-Graph Directories có thể
phức tạp hơn so với cấu trúc thư mục đơn giản hơn. Điều này đòi hỏi các thuật
toán phức tạp để xử lý và duyệt các mạng lưới đồ thị không chu trình để tìm
kiếm tập tin và thư mục.
Acyclic-Graph Directories thường được sử dụng trong các hệ thống tập tin
phức tạp hơn, nơi việc tổ chức tập tin và thư mục theo một mô hình mạng lưới
phức tạp là cần thiết để đáp ứng các yêu cầu đa dạng và phức tạp trong việc quản lý tập tin.
7. General Graph Directory
General Graph Directory (Thư mục đồ thị tổng quát) là một cấu trúc thư mục
trong hệ thống tập tin mà cho phép tạo ra một mạng lưới phức tạp của các thư
mục và tập tin mà không có ràng buộc về chu trình đường dẫn. lOMoAR cPSD| 61552860
Trong General Graph Directory, các thư mục và tập tin được tổ chức thành
một đồ thị hướng đa dạng (general graph). Mỗi thư mục có thể chứa các tập
tin và thư mục con và có thể được liên kết đến bất kỳ thư mục khác nào trong
hệ thống, bao gồm cả chính nó. Không có ràng buộc về chu trình đường dẫn,
cho phép các mối quan hệ phụ thuộc phức tạp giữa các thư mục và tập tin.
Ưu điểm của General Graph Directory là cho phép tổ chức tập tin và thư mục
một cách linh hoạt và đa dạng. Nó cho phép tạo ra các mô hình mạng lưới
phức tạp và tùy chỉnh theo nhu cầu của hệ thống tập tin. Điều này cung cấp
khả năng linh hoạt và đa dạng trong việc quản lý tập tin và thư mục, đáp ứng
các yêu cầu đặc biệt và phức tạp của người dùng.
Tuy nhiên, việc quản lý và tìm kiếm trong General Graph Directory là phức
tạp hơn so với các cấu trúc thư mục khác. Do không có ràng buộc chu trình
đường dẫn, việc duyệt và xử lý đồ thị đa dạng có thể đòi hỏi các thuật toán
phức tạp và tốn nhiều tài nguyên.
General Graph Directory thường được sử dụng trong các hệ thống tập tin đặc
biệt, nơi yêu cầu một cấu trúc thư mục linh hoạt và phức tạp để đáp ứng các
yêu cầu đa dạng của người dùng và ứng dụng. V. File System Mounting
File system mounting (gắn kết hệ thống tập tin) trong giao diện Hệ thống Tập tin
là quá trình liên kết một hệ thống tập tin vào cấu trúc cây thư mục hiện tại của
hệ thống. Khi một hệ thống tập tin được gắn kết, các tập tin và thư mục trong hệ
thống tập tin đó sẽ trở nên truy cập được từ cây thư mục chính của hệ thống. lOMoAR cPSD| 61552860
Quá trình gắn kết hệ thống tập tin thường được thực hiện bằng cách chỉ định
đường dẫn đến điểm gắn kết và tên gắn kết cho hệ thống tập tin. Khi quá trình
gắn kết thành công, hệ thống tập tin được coi như đã trở thành một phần của cây
thư mục chính và các tập tin và thư mục trong đó có thể được truy cập và sử
dụng như bất kỳ tập tin và thư mục nào khác trong hệ thống.
Việc sử dụng quá trình gắn kết hệ thống tập tin cho phép người dùng và ứng
dụng truy cập vào các hệ thống tập tin khác nhau từ một điểm truy cập duy nhất.
Nó cung cấp tính linh hoạt trong việc quản lý và sử dụng các tập tin và thư mục
từ nhiều nguồn và định dạng khác nhau trên hệ thống.
Quá trình gắn kết hệ thống tập tin là một phần quan trọng của giao diện Hệ thống
Tập tin và cho phép hệ điều hành và người dùng tận dụng và quản lý tài nguyên
lưu trữ một cách hiệu quả.
Trong Linux, để gắn kết một hệ thống tập tin, ta sử dụng lệnh mount. Lệnh này
có cú pháp như sau: mount -t Trong đó:
: Loại hệ thống tập tin của nguồn dữ liệu (ví dụ: ext4, ntfs, vfat).
: Nguồn dữ liệu của hệ thống tập tin (ví dụ: một thiết bị lưu trữ như
ổ đĩa, phân vùng, hoặc một tệp hệ thống tập tin).
: Đường dẫn đến điểm gắn kết trong cấu trúc cây thư mục của hệ thống. VI. File Sharing
Trong các phần trước, chúng ta đã khám phá động lực cho việc chia sẻ tập tin
và một số khó khăn liên quan đến việc cho phép người dùng chia sẻ tập tin.
Việc chia sẻ tập tin như vậy là rất mong muốn đối với người dùng muốn cộng
tác và giảm công sức cần thiết để đạt được mục tiêu tính toán. Do đó, các hệ
điều hành dựa trên người dùng phải đáp ứng nhu cầu chia sẻ tập tin mặc dù khó khăn tồn tại. lOMoAR cPSD| 61552860
Trong phần này, chúng ta xem xét thêm các khía cạnh khác về việc chia sẻ tập
tin. Chúng ta bắt đầu bằng việc thảo luận về các vấn đề chung phát sinh khi
nhiều người dùng chia sẻ tập tin. Một khi cho phép nhiều người dùng chia sẻ
tập tin, thách thức là mở rộng việc chia sẻ sang nhiều hệ thống tập tin, bao
gồm cả hệ thống tập tin từ xa; chúng ta cũng thảo luận về thách thức đó. Cuối
cùng, chúng ta xem xét điều gì nên làm với các hành động xung đột xảy ra
trên các tập tin chia sẻ. Ví dụ, nếu nhiều người dùng đang ghi vào một tập tin,
liệu tất cả các ghi nhận đều được phép xảy ra, hay hệ điều hành nên bảo vệ
hành động của người dùng khỏi nhau? 1. Multiple Users
Trong việc chia sẻ tập tin trên Linux, hệ điều hành hỗ trợ việc cho nhiều người
dùng chia sẻ tập tin cùng một lúc. Điều này cho phép nhiều người dùng truy
cập, đọc, ghi và thực hiện các thao tác trên cùng một tập tin hoặc thư mục.
Khi nhiều người dùng chia sẻ tập tin, có một số vấn đề chung có thể phát sinh:
- Quản lý quyền truy cập: Hệ điều hành Linux cung cấp hệ thống quyền
truy cập phân quyền (permissions) để kiểm soát quyền truy cập vào tập
tin và thư mục. Người dùng có thể được phân quyền đọc, ghi hoặc thực
thi tập tin dựa trên quyền truy cập của họ. Quản lý quyền truy cập là một
phần quan trọng để đảm bảo rằng các người dùng chỉ có thể thực hiện các
thao tác phù hợp với quyền của họ trên tập tin chia sẻ.
- Đồng bộ hóa và xung đột: Khi nhiều người dùng cùng thực hiện các thao
tác trên cùng một tập tin, có thể xảy ra xung đột dữ liệu. Hệ điều hành
Linux cung cấp các cơ chế đồng bộ hóa và khóa (synchronization and
locking) để đảm bảo rằng các thay đổi trên tập tin được xử lý một cách
an toàn và không gây ra mất mát dữ liệu hoặc xung đột.
- Theo dõi và ghi nhật ký: Để quản lý việc chia sẻ tập tin, hệ điều hành
Linux cung cấp các công cụ và ghi nhật ký (logging) để theo dõi các hoạt
động của người dùng trên tập tin chia sẻ. Việc ghi nhật ký giúp trong việc
giám sát, phân tích và khắc phục sự cố liên quan đến việc chia sẻ tập tin.
- Giao thức chia sẻ tập tin: Trên Linux, có nhiều giao thức chia sẻ tập tin
như NFS (Network File System), Samba (SMB/CIFS), FTP (File