images
27/09/2022 04:51 am

Tìm hiểu nhanh về Filesystem trong OS

Trong máy tính, Filesystem điều khiển cách thức dữ liệu được lưu trữ và lấy ra. Nếu không có filesystem, dữ liệu được lưu trong ổ cứng có thể là Một khối dữ liệu to khổng lồ mà không có cách nào để biết các khối dữ liệu đang bắt đầu ở đâu và kết thúc ở đâu.

Trong máy tính, Filesystem điều khiển cách thức dữ liệu được lưu trữ và lấy ra. Nếu không có filesystem, dữ liệu được lưu trong ổ cứng có thể là Một khối dữ liệu to khổng lồ mà không có cách nào để biết các khối dữ liệu đang bắt đầu ở đâu và kết thúc ở đâu. Bằng việc chia nhỏ dữ liệu thành các khối hay mảnh và đặt tên, dữ liệu dễ dàng được truy xuất và các khối dữ liệu được cô lập nhau. Mỗi một khối dữ liệu đó ta gọi là tệp tin hay file. Cấu trúc và luật logic trong việc sử dụng để quản lý các nhóm dữ liệu và tên gọi của nhóm được gọi là filesystem.

Hiện nay có vô vàn các kiểu filesystem khác nhau, mỗi loại lại có cấu trúc và logic riêng rẽ. Chúng có các đặc điểm khác nhau về tốc độ, độ linh hoạt, khả năng bảo mật, kích cỡ và nhiều yếu tố khác. Một vài hệ thống filesystem được thiết kế cho việc sử dụng với một số các ứng dụng đặc biệt. Ví dụ: ISO 9660 được thiết kế đặc biệt cho các ổ quang.

Filesystem có thể sử dụng trên nhiều loại ổ lưu trữ khác nhau. Với RAM, nó sử dụng filesystem tmpfs để tạo ra các file tạm cho việc sử dụng trong thời gian ngắn.

Trong khi một số filesystem được sử dụng trên các bộ lưu trữ ở local, một số khác chuyên được sử dụng qua Network như NFS, SMB. Một số filesystem được coi là virtual, nó chỉ cung cấp file khi có yêu cầu như procs hay sysfs hoặc nó đơn giản mapping lại filesystem đang thực tế được sử dụng trong hệ thống.

Filesystem quản lý truy cập tới cả nội dung file và các thông tin về metadata của file. Nó chịu trách nhiệm sắp xếp lại không gian lưu trữ của ổ cứng, đảm bảo sự tin cậy, hiệu quả và tối ưu với đặc tính vật lý của thiết bị lưu trữ.

Về mặt kiến trúc, filesystem chia thành 3 layer:

Logical file system được chịu trách nhiệm cho việc tương tác với ứng dụng của người dùng. NÓ cung cấp các API cho việc thao tác: Mở, Đóng, Đọc.. và gửi yêu cầu thao tác này tới layer phía dưới cho việc xử lý. Logical layer này quản lý việc mở file, cung cấp khả năng quản lý truy cập file, bảo vệ file, các thao tác về thư mục.

Layer thứ hai là virtual file system. Cho phép hệ thống có thể hỗ trợ nhiều kiểu filesystem trên hệ thống layer vật lý của bộ lưu trữ.

Layer thứ ba là physical file system. Layer này sẽ đảm nhiệm việc thao tác vật lý với bộ lưu trữ. Nó xử lý việc đọc ghi ở các khối. Nó quản lý bộ đệm và bộ nhớ, chịu trách nhiệm cho việc quản lý các khối dữ liệu trong ổ cứng. Filesystem này sẽ tương tác với các thiết bị driver hoặc channel để điều khiển thiết bị lưu trữ.

Về cách quản lý:

Filesystem quản lý file và thư mục, do đó nó cần biết vị trí các file ở đâu, các vùng còn trống ở vị trí nào (track & map sector). Do đó nó sẽ dùng phân vùng được gọi là slack space - phân vùng không được sử dụng để lưu trữ dữ liệu.

Allocation unit: là đơn vị về không gian lưu trữ để filesytem lưu trữ file/thư mục. Trong trường hợp sử dụng 512 byte cho mỗi allocation unit, thì phân vùng slack space tương ứng chiếm khoảng 256 byte. Allocation size được quyết định bởi filesytem. Nếu allocation size quá bé thì dẫn đến không gian lưu trữ thực tế bị thấp do không gian slack space quá nhiều.

Phân mảnh filesystem là hiện tượng có vùng trống hoặc file không được lưu dữ liệu thành các khối liên tục. Nguyên nhân do file được ghi, sửa, xóa liên tục.

Các filesystem thường gặp:

FAT32, NTFS, exFAT:

FAT được sử dụng trong Windows và có tên là File Allocation Table. Tuỳ vào kiểu FAT mà dung lượng lưu trữ file có độ lớn khác nhau. FAT32 trên Windows có giới hạn dung lượng file lớn nhất là 4GB và dung lượng Volume là 32GB.

NTFS: Được sử dụng trong hầu hế hệ thống Windows ngày nay, có dung lượng lưu trữ file vượt qua giới hạn của FAT32: 16 triệu Terabytes (exabyte) ! NTFS hỗ trợ quản lý truy cập, mã hoá và nhiều tính năng khác nên được sử dụng rộng rãi. Nhược điểm của NTFS là không tương thích ngược với version cũ hơn của Windows hoặc các phiên bản của MacOS hay LINUX. Tiêu biểu là trên MACOS thì các phân vùng NTFS là read-only và trên một số version của LINUX có thể không đọc được.

exFAT: Được sử dụng chủ yếu trên các thiết bị như ổ cứng USB để tối ưu hoá dung lượng lưu trữ. Nó có tổ chức tốt hơn FAT32, ít cồng kềnh phức tạp như NTFS.

ext2, ext3, ext4

Extended File System Được giới thiệu trên hệ điều hành Linux từ năm 1992. Ext4 là phiên bản mới nhất hỗ trợ file dung lượng tới 16 Terabyte và volume tới 1 exabyte. Các hệ điều hành như Windows hay MacOS đều không mặc định hỗ trợ filesytem kiểu này.

HFS, HFS+, APFS

HFS là Hierarchical File System được giới thiệu bởi Apple từ 1985, được sử dụng trên MacOS. HFS+ là phiên bản nâng cao của HFS còn được gọi là MacOS Extended. Nó cho phép dung lượng lưu trữ của file và volume là 8 exabyte (từ MacOS 10.4 trở đi). Từ năm 2017, Apple giới thiệu filesystem mới là Apple Filesystem: APFS được tối ưu cho ổ cứng SSD. APFS thì không được hỗ trợ trên Windows hay Linux OS.

Mời các bạn đọc thêm bài Journaling trong filesystem là gì?.

- Tech Zone -

Thư giãn chút nào!!!

Bài viết liên quan