Tại sao không có README trong hệ thống phân cấp hệ thống tập tin Linux?


8

Hệ thống phân cấp hệ thống tập tin Linux ( FHS ) chứa rất nhiều thư mục quan trọng. Ví dụ, tôi vừa phát hiện ra /sys/class/inputkhi chơi với cài đặt bàn phím PS / 2.

Nhưng tất cả các thư mục quan trọng được ghi lại ở nơi khác, vì vậy man /sys/class/inputkhông có tác dụng giải thích những gì xảy ra tại một thời điểm nhất định.

Tại sao không đặt READMEcác tệp vào hệ thống phân cấp để giúp mọi người dễ dàng tìm hiểu những gì đang diễn ra ở các cấp nhất định và chơi với nội dung? Sẽ thật sự tuyệt vời nếu các thiết bị thậm chí có thể tự lắp README.


2
Có lẽ bởi vì hầu hết mọi người không muốn tìm hiểu những gì đang diễn ra ở các cấp độ khác nhau? Họ chỉ muốn họ làm việc, vì vậy họ có thể hoàn thành bất kỳ nhiệm vụ nào họ cần / muốn làm. Ai đó sẽ phải viết tất cả các tệp README đó và họ sẽ thêm nhiều sự phình to vào một hệ thống tệp đã quá tải với những thứ (như nhiều / usr / share) mà hầu hết mọi người sẽ không bao giờ sử dụng.
jamesqf

14
@jamesqf vì hầu hết mọi người không muốn tìm hiểu những gì đang diễn ra ở các cấp độ khác nhau? Họ chỉ muốn họ làm việc, vì vậy họ có thể hoàn thành bất kỳ nhiệm vụ nào họ cần / muốn làm Và nếu nhiệm vụ của tôi liên quan đến hệ thống tệp, thì dường như OP là gì? Ngoài ra, bạn đã gặp một người dùng Linux chưa? Chúng ta muốn học. Đây là một cuộc tranh luận khủng khiếp.
kaqqao

1
Sự khác biệt cơ bản giữa Linux và Windows / Mac, trong trường hợp bạn không nhận thấy, là Linux biết rằng bạn rời khỏi bụng mẹ đã biết tất cả mọi thứ. Do đó, một README sẽ là dư thừa.
dùng541686

1
@kaqqao: Chà, tôi là người dùng Linux và đã là một người khá nhiều kể từ khi có Linux. Và trước đó, một người dùng Unix kể từ khi nó chạy trên PDP-11 của trường tôi. Tôi không đặc biệt quan tâm làm thế nào những thứ như hệ thống tập tin hoạt động, tôi chỉ (hiện tại) muốn làm cho mã chụp cắt lớp địa chấn của tôi hoạt động. Tôi cũng không quan tâm đến / sys / class / input, miễn là bàn phím và trackball của tôi hoạt động. Đối với thiểu số nhỏ quan tâm đến những điều này, có một công cụ tiện dụng có tên là Google, có thể truy cập từ hầu hết các trình duyệt web :-)
jamesqf

2
man hier.
el.pescado

Câu trả lời:


30

Để sử dụng ví dụ của bạn: /sys/không chứa các tệp "thực", nhưng hoàn toàn được cung cấp bởi kernel. Bạn có muốn tất cả các README trở thành một phần của kernel không? Bạn có thể không.

Tài liệu là trong /usr/share/doc. Mà chứa các tập tin bình thường trên đĩa cứng của bạn. Một số tài liệu về /sys/procnằm trong nguồn kernel, đó là /usr/src/linux/Documentation(nếu bạn đã cài đặt nguồn kernel và tạo liên kết tượng trưng cho kernel hiện tại của bạn).


10
sysfs và Procfs là các hệ thống tập tin ảo hoàn toàn không có cửa hàng sao lưu. Tất cả mọi thứ trong đó được tổng hợp trên bay bằng hạt nhân. Nếu các README không được lưu trong bộ nhớ, chúng sẽ đến từ đâu?
Jörg W Mittag

13
@ JörgWMittag: Rõ ràng hạt nhân có thể tổng hợp các liên kết tượng trưng đến /use/share/doc.
MSalters

11
Hạt nhân đã là một phần mềm lớn và phức tạp và "giúp mọi người dễ học hơn" không nằm trong số các mục tiêu chính của các nhà phát triển của họ. Thay vào đó không khó để đi /usr/share/doc.
Federico Poloni

9
@MSalters: điều đó có nghĩa là hạt nhân phải a) quét toàn bộ hệ thống tệp để tìm các tệp đó và tạo liên kết tượng trưng cho chúng, b) phải có một tải các tùy chọn cấu hình để báo cho kernel biết các tệp đó ở đâu để nó có thể tạo liên kết tượng trưng cho chúng hoặc c) phải quy định vị trí của các tệp đó cho các nhà duy trì phân phối (sẽ vi phạm câu châm ngôn số 1 của Linus rằng chính sách thuộc về không gian người dùng, chỉ có cơ chế thuộc về hạt nhân). Ngoài ra, làm thế nào để bạn chắc chắn rằng các tệp khớp với phiên bản kernel hiện đang chạy? Điều gì về các bản phân phối có bản của họ
Jörg W Mittag

7
@FedericoPoloni: FHS chỉ bắt buộc đối với các bản phân phối Linux tuân thủ LSB. Hầu hết không. Đặc biệt, có một số bản phân phối được thành lập đặc biệt để dọn sạch (cái mà họ cho là) ​​hành trình lịch sử, trong nhiều trường hợp rõ ràng bao gồm FHS.
Jörg W Mittag

14

Bởi vì Unix và Linux có truyền thống tài liệu hàng thập kỷ với mancác trang (và, trên các hệ thống GNU, infocác tệp ...). Xem người đàn ông (1) , người đàn ông (7) , người đàn ông (7) . BTW, manlệnh và trang là tùy chọn (và bạn sẽ không cài đặt chúng trên mọi hệ thống Unix).

Hệ thống phân cấp tệp được mô tả trong hier (7) .

Nó được định nghĩa theo Tiêu chuẩn Hierachy của Hệ thống tập tin có sẵn trên https://wiki.linuxfoundation.org/lsb/fhs

Một số hệ thống tập tin, đáng chú ý /proc/(xem Proc (5) ) và /sys/(xem sysfs (5) ) là các hệ thống giả ngẫu nhiên được cung cấp bởi mã hạt nhân. Bạn không muốn làm hỏng kernel với mã bổ sung tạo ra các README-s như vậy (điều này vô dụng với đại đa số người dùng). Ngay cả tệp cấu hình của kernel cũng chỉ có sẵn tùy chọn/proc/config.gzthường bị vô hiệu hóa trong hầu hết các cấu hình kernel. Và nhiều hệ thống Linux là các hệ thống nhúng (ví dụ: điện thoại thông minh, thiết bị thông minh hoặc thiết bị IoT, RaspberryPI của bạn), nơi tài nguyên đủ sợ hãi để tránh bị lãng phí.

Đáng chú ý /sys/là hầu hết hữu ích cho các sysadins và cho các nhà phát triển viết các tiện ích cấp thấp và cả hai được cho là có thể tìm thấy tài liệu phù hợp.

Tại sao không đặt READMEcác tệp vào hệ thống phân cấp để giúp mọi người dễ dàng tìm hiểu những gì đang diễn ra

Nếu bạn thực sự muốn như vậy README, hãy viết mô-đun hạt nhân có thể tải của riêng bạn cung cấp cho họ hoặc thiết lập một số unionfs để cung cấp cho họ. Tôi không nghĩ rằng nó là giá trị nỗ lực (và một đoàn thể trên /syscó thể sẽ làm chậm toàn bộ hệ thống của bạn).

Hãy nhớ rằng mã kernel tiêu thụ RAM (nó không bao giờ được phân trang và nằm trong bộ nhớ vật lý , không phải bộ nhớ ảo), ngay cả khi không được sử dụng. Vì vậy, nó có ý nghĩa để tránh đầy hơi nó.


Vì vậy, tôi có thể viết một gói tài liệu tất cả các đường dẫn mà không cần chạm vào kernel hoặc làm cho nó phình to?
anatoly techtonik

1
Bạn có thể, nhưng sử dụng unionfs trên /syssẽ làm chậm hệ thống của bạn. Tôi không nghĩ rằng nó đáng để mất thời gian của bạn theo cách như vậy. Cuộc sống rất ngắn ngủi ... Và bạn sẽ dành nhiều thời gian hơn để làm điều đó hơn là đọc tài liệu
Basile Starynkevitch
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.