Tôi đang cố gắng học tiêu chuẩn POSIX. Khi sử dụng Unix, tôi đã /bin
, /etc
, /dev
, /media
, và thường /opt
, nhưng mà chuẩn hoặc lên đến thực hiện spec của bạn? Có thể có nhiều thư mục trong thư mục gốc, hoặc nó bị giới hạn bởi tiêu chuẩn?
Tôi đang cố gắng học tiêu chuẩn POSIX. Khi sử dụng Unix, tôi đã /bin
, /etc
, /dev
, /media
, và thường /opt
, nhưng mà chuẩn hoặc lên đến thực hiện spec của bạn? Có thể có nhiều thư mục trong thư mục gốc, hoặc nó bị giới hạn bởi tiêu chuẩn?
Câu trả lời:
Theo tiêu chuẩn được công bố của The Open Group , các thư mục bắt buộc duy nhất là:
/
/dev
, Trong đó có console
, null
vàtty
/tmp
, đảm bảo có thể ghi nhưng không nhất thiết phải bảo quản.Linux Foundation duy trì Tiêu chuẩn phân cấp hệ thống tập tin (FHS) mở rộng điều này để bao gồm các thư mục bạn thường thấy trên hệ thống Linux:
/bin
: Các nhị phân lệnh người dùng thiết yếu/boot
: Tệp tĩnh của bộ tải khởi động/dev
: Tập tin thiết bị/etc
: Cấu hình hệ thống dành riêng cho máy chủ/home
: Thư mục nhà người dùng (tùy chọn)/lib
: Thư viện chia sẻ cần thiết và mô-đun hạt nhân/lib<qual>
: Thư viện chia sẻ định dạng thay thế cần thiết (tùy chọn)/media
: Điểm gắn cho phương tiện di động/mnt
: Điểm gắn kết cho hệ thống tệp được gắn tạm thời/opt
: Gói phần mềm ứng dụng bổ trợ/root
: Thư mục chính cho người dùng root (tùy chọn)/run
: Dữ liệu biến thời gian chạy/sbin
: Hệ thống nhị phân/srv
: Dữ liệu cho các dịch vụ được cung cấp bởi hệ thống này/tmp
: Hồ sơ tạm thời- Cũng như
/usr
thứ bậc và/var
thứ bậc
FHS được thiết kế càng chung chung càng tốt, cho phép kết hợp trong bất kỳ hệ thống UNIX nào. Các thư mục bổ sung có khả năng tồn tại trong bất kỳ hệ thống hợp lý nào, nhưng điều này không bắt buộc bởi POSIX.
Tuy nhiên, lưu ý rằng Nhóm Mở cũng nói rằng
Các ứng dụng tuân thủ nghiêm ngặt sẽ không đảm nhận khả năng tạo tệp trong bất kỳ thư mục nào, trừ khi được chỉ định dưới đây.
Vì các thư mục thực sự chỉ là các tệp, điều này ngụ ý rằng một ứng dụng tuân thủ nghiêm ngặt sẽ không tạo ra bất kỳ tệp hoặc thư mục nào ở cấp gốc. Do đó, POSIX không nhất thiết giới hạn những gì một bản phân phối có thể đặt ở cấp gốc, nhưng dường như nói rằng một ứng dụng phù hợp với đặc điểm kỹ thuật của nó không thể cho rằng nó sẽ có thể.
Trong 10.1 Cấu trúc thư mục và tệp , POSIX liệt kê các thư mục phải tồn tại. Nhưng nó chỉ định không giới hạn số lượng thư mục khác có thể tồn tại ở cấp độ gốc của hệ thống tập tin.
Đối với vấn đề đó, nó dường như không đặt giới hạn về kích thước của các thư mục khác.
Sự chú ý của POSIX trong lĩnh vực này tập trung vào tính phổ biến hơn là sự khác biệt.
/
) có thể là thư mục gốc, sẽ khá ngớ ngẩn khi áp đặt giới hạn trên cho số lượng mục trong thư mục gốc. /
không đặc biệt về vấn đề này, do đó, theo sau nó sẽ khá ngớ ngẩn khi áp đặt giới hạn trên cho số lượng mục /
cụ thể.
Không có giới hạn về số lượng mục trong một thư mục, trong POSIX hoặc trong các triển khai Unix điển hình. Có thể có một giới hạn gián tiếp cho số lượng thư mục con, đó là số lượng liên kết cứng tối đa (mỗi mục ..
nhập của thư mục con là một liên kết cứng đến thư mục); đó là 2 16 đối với nhiều hệ thống tệp phổ biến, giới hạn thư mục ở 65533 thư mục con (ít nhất là đối với các hệ thống tệp lưu trữ ..
mục nhập rõ ràng). Bạn sẽ bắt đầu đạt hiệu suất kém trước đó. Theo POSIX, việc triển khai chỉ được phép hỗ trợ 8 liên kết cứng trên một tệp ( _POSIX_LINK_MAX
), nhưng không có triển khai thực tế nào bị giới hạn ở 6 thư mục con. Và dù sao, trên nhiều hệ thống tập tin, bao gồm ext4, số lượng liên kết cứng không được duy trì cho..
các mục nhập, vì vậy giới hạn duy nhất là có bao nhiêu dung lượng hoặc bao nhiêu nút có sẵn trên hệ thống tệp.
POSIX không nói nhiều về việc tổ chức các tệp trên hệ thống. Nó chỉ bắt buộc sự tồn tại của một vài tập tin . Các mục bắt buộc duy nhất trong thư mục gốc là /dev
và /tmp
. Mục Unix thói quen khác như /usr
, /var
, /bin
, /etc
, /lib
, /home
, vv là Unix ước mà không được hệ thống hóa bởi POSIX.
Trên Linux, FHS mã hóa các tác phẩm kinh điển và một vài thứ nữa. Hầu hết các bản phân phối Linux dính vào các mục FHS. Các hệ thống Unix khác thường có hầu hết các mục giống nhau, có thể có một vài khác biệt, nhưng số lượng là như nhau.
Quản trị viên hệ thống có thể tạo thêm, mặc dù điều này không được khuyến khích: có những nơi được xác định rõ ràng cho hầu hết mọi thứ (phần mềm nằm dưới /usr
hoặc /opt
, dữ liệu hệ thống nằm dưới /var
, dữ liệu người dùng nằm dưới /net
, điểm gắn kết /media
hoặc /mnt
, v.v.), vì vậy hiếm khi bất kỳ lý do tốt để tạo thư mục mới ở cấp cao nhất.