Tại sao Proc được gọi là một hệ thống tập tin?


20

Các prochệ thống tập tin cho phép các hạt nhân để truyền đạt thông tin về mỗi quá trình đang chạy trên một hệ thống Linux.

Tại sao được procgọi là một hệ thống tập tin? Nó không phải là một hệ thống tập tin thực sự như thế ext4. Nó chỉ là một tập hợp các tệp chứa thông tin về các tiến trình đang chạy.

Câu trả lời:


25

/proclà một hệ thống tập tin bởi vì quá trình sử dụng có thể điều hướng thông qua nó với các cuộc gọi hệ thống quen thuộc và các cuộc gọi thư viện, như opendir(), readdir(), chdir()getcwd(). Thậm chí open(), read()close()làm việc trên rất nhiều "tập tin" xuất hiện /proc. Đối với hầu hết các ý định và hầu hết tất cả các mục đích, /proclà một hệ thống tệp, mặc dù thực tế là các tệp của nó không chiếm các khối trên một số đĩa.

Tôi cho rằng tất cả chúng ta nên làm rõ định nghĩa của thuật ngữ tập tin hệ thống mà chúng tôi hiện đang sử dụng. Trong ngữ cảnh của ext4, khi chúng tôi viết hệ thống tập tin của hệ thống, có lẽ chúng ta đang nói về sự kết hợp bố cục của các khối đĩa, đặc điểm kỹ thuật của thông tin siêu dữ liệu về các khối đĩa cũng nằm ở đâu đó trên đĩa và mã liên quan đến bố trí trên đĩa. Trong bối cảnh /usr, /tmp, /var/runvà như vậy, chúng tôi đang viết về một sự hiểu biết hoặc một khái niệm chung về cách đặt tên một số điều. Hai cách sử dụng thuật ngữ tập tin hệ thống này thực sự khác nhau. /procthực sự là loại thứ hai của hệ thống tập tin trên mạng, như bạn đã lưu ý.


9
Không có lý do gì để sử dụng các quots đáng sợ cho các tệp /proctrừ khi người ta nghĩ rằng các tệp luôn được hỗ trợ bằng đĩa (hoặc được hỗ trợ bằng băng từ, hoặc được hỗ trợ bởi CD hoặc bất cứ thứ gì được hỗ trợ 9. Chúng không phải lúc nào cũng - nghĩ về các đĩa RAM. một chuỗi mở / ghi / đóng với tệp "thực" /homecó thể không phải lúc nào cũng có nghĩa là những thay đổi tương ứng nhằm phản ánh vĩnh viễn trạng thái của tệp lưu trữ này đã được thực hiện và hoàn thành.
Hagen von Eitzen

10
tl; dr: bởi vì nó là một hệ thống tập tin?
Jörg W Mittag

1
Lưu ý rằng điều này cũng giải thích câu nói "Trong Linux, mọi thứ đều là một tệp".
dr01

Đây là một hệ thống tập tin theo cách tương tự như màn hình là "máy tính để bàn". Thuật ngữ máy tính đầy rẫy những ẩn dụ.
Barmar

18

nó chỉ là một vùng chứa các thông tin

Nhưng đó là chính xác những gì một hệ thống tập tin . Các hệ thống tập tin không phải ghi và chúng không phải lưu trữ vĩnh viễn.

Lưu ý: Có sự khác biệt giữa procfs(triển khai hệ thống tập tin giả trong kernel) và điểm gắn kết thông thường của nó /proc. Về lý thuyết bạn có thể gắn kết procfsbất cứ nơi nào, nhưng điều đó hiếm. Do đó, mọi người thường nói về /prockhi họ thực sự có ý nghĩa procfs.

procfsđược gọi là hệ thống tệp giả vì các tệp trong tệp procfskhông được tạo bởi các hoạt động của hệ thống tệp thông thường, nhưng được thêm và xóa bởi chính triển khai hệ thống tệp dựa trên những gì xảy ra ở nơi khác trong kernel.


vậy tại sao / etc / boot chẳng hạn không được gọi là hệ thống tập tin ???
Makhlouf GHARBI

7
Bởi vì chúng là các thư mục trong một hệ thống tập tin. (Chà, /bootthường là một hệ thống tệp riêng biệt, nhưng nó không phải là một loại hệ thống tệp riêng biệt .)
cjm

9

Nếu dữ liệu được tổ chức theo cách để chúng có thể được truy cập thông qua các cơ chế được sử dụng cho các hệ thống tệp, bạn cũng có thể gọi toàn bộ hệ thống tệp.

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.