it-swarm-vi.com

Sự khác biệt giữa Procfs và sysfs là gì?

Sự khác biệt giữa Procfs và sysfs là gì? Tại sao chúng được làm như hệ thống tập tin? Theo tôi hiểu, Proc chỉ là thứ để lưu trữ thông tin tức thời liên quan đến các quy trình đang chạy trong hệ thống.

74
Sen

Sự khác biệt giữa Procfs và sysfs là gì?

proc là cái cũ, nó ít nhiều không có quy tắc và cấu trúc. Và tại một số điểm, người ta đã quyết định rằng proc hơi quá hỗn loạn và cần một cách mới.

Sau đó, sysfs đã được tạo và nội dung mới được thêm vào được đưa vào sysfs như thông tin thiết bị.

Vì vậy, trong một số ý nghĩa, chúng làm tương tự, nhưng sysfs có cấu trúc hơn một chút.

Tại sao chúng được làm như hệ thống tập tin?

Triết lý UNIX cho chúng ta biết rằng mọi thứ đều là một "tệp", do đó nó được tạo ra để nó hoạt động như các tệp.

Theo tôi hiểu, Proc chỉ là thứ để lưu trữ thông tin tức thời liên quan đến các quy trình đang chạy trong hệ thống.

Những phần đó đã luôn ở đó và có lẽ chúng sẽ không bao giờ di chuyển vào sysfs.

Nhưng có nhiều thứ cũ hơn mà bạn có thể tìm thấy trong proc, chưa được di chuyển.

63
Johan

Ban đầu (cách trở lại trong Unix), cách mà các chương trình phát hiện ra về các quy trình đang chạy trên hệ thống là thông qua việc đọc trực tiếp các cấu trúc quy trình từ bộ nhớ kernel (mở/dev/mem và diễn giải trực tiếp dữ liệu thô). Đây là cách các lệnh 'ps' đầu tiên hoạt động. Theo thời gian, một số thông tin đã được cung cấp thông qua các cuộc gọi hệ thống.

Tuy nhiên, việc để dữ liệu hệ thống trực tiếp vào không gian người dùng thông qua/dev/mem là một hình thức xấu và đáng ghét khi liên tục tạo các cuộc gọi hệ thống mới mỗi khi bạn muốn xuất một số dữ liệu quy trình mới và do đó, một phương thức mới hơn đã được tạo ra để truy cập dữ liệu có cấu trúc cho các ứng dụng không gian người dùng để tìm hiểu về các thuộc tính quy trình. Đây là hệ thống tập tin/Proc. Với/Proc, các giao diện và cấu trúc (thư mục và tệp) có thể được giữ nguyên, ngay cả khi cấu trúc dữ liệu cơ bản trong kernel thay đổi. Điều này ít dễ vỡ hơn nhiều so với hệ thống trước đó và nó có tỷ lệ tốt hơn.

Hệ thống tập tin/Proc ban đầu được thiết kế để xuất bản thông tin quy trình và một vài thuộc tính hệ thống chính, được yêu cầu bởi 'ps', 'top', 'miễn phí' và một vài tiện ích hệ thống khác. Tuy nhiên, vì nó dễ sử dụng (cả từ phía kernel và phía không gian người dùng), nó đã trở thành một bãi thải cho toàn bộ thông tin hệ thống. Ngoài ra, nó bắt đầu nhận được các tệp đọc/ghi, được sử dụng để điều chỉnh cài đặt và kiểm soát hoạt động của kernel hoặc các hệ thống con khác nhau của nó. Tuy nhiên, phương pháp triển khai các giao diện điều khiển là đặc biệt và/Proc sớm phát triển thành một mớ hỗn độn.

Sysfs (hoặc/sys filesystem) được thiết kế để thêm cấu trúc vào mớ hỗn độn này và cung cấp một cách thống nhất để hiển thị thông tin hệ thống và các điểm kiểm soát (thuộc tính hệ thống có thể cài đặt và trình điều khiển) vào không gian người dùng từ kernel. Bây giờ, khung trình điều khiển trong kernel sẽ tự động tạo các thư mục trong/sys khi trình điều khiển được đăng ký, dựa trên loại trình điều khiển và các giá trị trong cấu trúc dữ liệu của chúng. Điều này có nghĩa là tất cả các trình điều khiển của một loại cụ thể sẽ có cùng các yếu tố được hiển thị thông qua sysfs.

Nhiều điểm thông tin và điểm kiểm soát hệ thống cũ vẫn có thể truy cập được trong/Proc, nhưng tất cả các bus và trình điều khiển mới sẽ hiển thị thông tin và điểm kiểm soát của họ thông qua sysfs.

77
Tim Bird

Procfs cho phép tùy ý file_operations, sysfs bị hạn chế hơn

sysfs là Hệ thống tệp ảo được tạo trong chu kỳ phát hành kernel 2.6 để hiển thị thông tin thiết bị vì các Procfs không làm tốt loại thông tin này.

Bộ nhớ vv chưa được chuyển sang sysfs vì nó không bao giờ có ý định hiển thị loại thông tin đó nên không chắc là nó sẽ được chuyển hoàn toàn.

3
kemra102

Như tôi cũng muốn thêm vào đây ... Vì/Proc là phiên bản cũ hơn, nó chứa thông tin của thiết bị kernel trong khoảng thời gian đó..có sysfs đi kèm với phiên bản kernel 2.6 nên thông tin trình điều khiển thiết bị tạo thư mục riêng của nó. một chút cấu trúc và dễ dàng truy cập ..

1
gagan bajaj