Tìm hiểu Linux Filesystem#
1. Filesystem là gì#
- Filesystem xác định cách tổ chức và quản lý dữ liệu, cho phép truy cập nhanh chóng và an toàn đến các thư mục cần thiết.
- Các loại filesystem được Linux hỗ trợ:
- Filesystem cơ bản: ext2, ext3, ext4, XFS, NTFS, JFS, Btrfs,..
- Filesystem dành cho dạng lưu trữ flash: ubifs, JFFS2,...
- Filesystem cho cơ sở dữ liệu và các mục đích đặc biệt như procfs, sysfs, debugfs, squashfs,..
- Một phân vùng chứa một filesystem và trên Linux, filesystem còn được hiểu là hệ thống phân cấp.
2. Hệ thống phân cấp trên Linux#
Linux filesystem được tổ chức theo quy chuẩn Filesystem Hierarchy Standard (FHS), tiêu chuẩn định nghĩa mục đích của mỗi thư mục.
Chức năng của các thư mục:
- /: Thư mục gốc, mọi thư mục khác đều nằm dưới thư mục này.
- /bin: Chứa các chương trình cơ bản.
- /boot: Chứa file cần thiết khi khởi động hệ điều hành.
- /dev: Chứa các tập tin thiết bị (CDRom, HDD, SSD, ...).
- /etc: Chứa các tập tin cấu hình hệ thống.
- /home: Thư mục cá nhân dành cho các user.
- /lib: Chứa các thư viện cho chương trình.
- /mnt: Chứa các mount point.
- /opt: Chứa phần mềm mở rộng, thường từ bên thứ 3.
- /sbin: Chứa các chương trình của hệ thống.
- /srv: Chứa dữ liệu từ các dịch vụ trên hệ thống.
- /tmp: Chứa các file tạm thời.
- /usr: Chứa tiện ích và ứng dụng của user.
- /var: Chứa các file biến.
- /root: Chứa file cá nhân của user root.
- /proc: Hệ thống ảo ghi chép về kernel và tiến trình, CPU.
3. Thư mục / (root) trong Linux#
- Mỗi file hay thư mục đều bắt đầu bằng thư mục
/(root). - Chỉ tài khoản root có quyền ghi trong thư mục này.
/là thư mục gốc, trong khi/rootlà thư mục cá nhân của user root.
4. Thư mục binary#
File binary chứa mã nguồn hoặc mã máy có thể thực thi.
-
/bin: Chứa các binary có thể thực thi bởi tất cả user.
-
/sbin: Chứa binary để cấu hình hệ điều hành, thường yêu cầu quyền root.
-
/lib: Chứa thư viện được chia sẻ cho các binary trong
/binvà/sbin. -
/opt: Chứa phần mềm tùy chọn, không có trong các repository của bản phân phối.
5. Các thư mục chứa cấu hình#
-
/boot: Chứa các file cần thiết cho quá trình khởi động hệ thống.
-
/etc: Chứa các file cấu hình của hệ thống và ứng dụng.
-
/etc/init.d: Chứa script để chạy và dừng các daemon.
-
/etc/skel/: Mẫu thư mục home của user mới tạo.
-
/etc/sysconfig/: Chứa cấu hình của RHEL.
6. Các thư mục chứa dữ liệu#
-
/home: Thư mục cá nhân của user, chứa dữ liệu và cấu hình riêng của user.
-
/root: Thư mục lưu trữ dữ liệu và hồ sơ của user root.
-
/media: Chứa các mount point cho thiết bị lưu trữ di động như USB, đĩa CD.
-
/mnt: Chứa các mount point tạm thời.
-
/tmp: Dùng để lưu trữ dữ liệu tạm thời, không nên lưu dữ liệu quan trọng.
7. Các thư mục trong RAM#
-
/dev: Chứa file thiết bị không nằm trên ổ đĩa cứng, các phần cứng như ổ đĩa được đại diện bởi file thiết bị.
-
/dev/tty và /dev/pts: Đại diện cho các terminal kết nối đến hệ thống.
-
/dev/null: Thư mục đặc biệt, mọi thứ ghi vào đây sẽ bị mất.
-
/proc: Không lưu trên ổ cứng, cung cấp thông tin kernel và các tiến trình, cập nhật liên tục.
-
/proc/kcore: Đại diện bộ nhớ RAM vật lý.
-
/sys: Lưu trữ thông tin kernel về phần cứng, sử dụng từ kernel 2.6.
8. /usr - Unix System Resource#
Chứa dữ liệu có thể chia sẻ và chỉ đọc.
-
/usr/bin: Chứa file thực thi được coi là các lệnh.
-
/usr/include: Chứa thư viện cho C.
-
/usr/lib: Chứa thư viện không sử dụng trực tiếp từ user.
-
/usr/local: Dùng để cài đặt các phần mềm local.
-
/usr/share: Chứa dữ liệu độc lập, như trang hướng dẫn trong
/usr/share/man. -
/usr/src: Chứa file nguồn của kernel.
9. /var - Dữ liệu biến#
Chứa file log, cache và spool với kích thước thay đổi.
-
/var/log: Trung tâm chứa các file log.
-
/var/log/messages: File log kiểm tra hệ thống (Ubuntu/Debian là
/var/log/syslog). -
/var/cache: Chứa cache của các ứng dụng.
-
/var/lib: Lưu trạng thái của ứng dụng.
-
/var/...: Chứa Process ID tại
/var/run, file tạm khi reboot ở/var/tmp.
