Thư mục của Cameron / sys là gì?


16

Cách đây một thời gian, tôi nhận thấy thư mục này mà tôi chưa từng thấy trước đây /sys. Tôi đã nghiên cứu một chút và đọc rằng "các hệ thống Linux hiện đại" thường có thư mục này và nó quản lý các thiết bị. Tôi nghĩ rằng đó là những gì / dev là dành cho. Tôi dường như không thể tìm thấy rất nhiều toàn bộ thông tin về thư mục này, khác với những gì tôi đã đề cập, và điều này, trích dẫn từ này trang:

/ sys là một hệ thống tệp ảo có thể được truy cập để thiết lập hoặc lấy thông tin về chế độ xem kernel của hệ thống.

Tôi đã chạy Trusty được một thời gian và không bao giờ nhận thấy nó trước đây, đó là lý do tại sao tôi thấy nó hơi lạ. Ai đó vui lòng điền tôi vào? Sự khác biệt giữa cái này và / dev là gì? Ubuntu bắt đầu sử dụng thư mục này khi nào và tại sao? Cảm ơn.


/sysđã được khoảng hơn một thập kỷ nay .
muru

1
Sidenote, có lẽ sẽ hữu ích cho những người dùng khác: / Proc và / sys thư mục, là các hệ thống tệp ảo, sẽ biến mất sau khi máy tính bị tắt. Nếu bạn đã từng gắn ổ cứng với Linux trên một HĐH khác, bạn sẽ thấy các thư mục đó trống.
Sergiy Kolodyazhnyy

Câu trả lời:


28

/sys . Nó được giới thiệu trước khi nhân Linux đạt 2.6 (trở lại khi có sự phân tách 2.4 / 2.5). Kể từ khi phiên bản Ubuntu đầu tiên sử dụng kernel 2.6 , mọi phiên bản Ubuntu đều có /sys.

/devchứa các tập tin thiết bị thực tế. Nó không cung cấp quyền truy cập vào tất cả các thiết bị hạt nhân biết về (chẳng hạn như các thiết bị Ethernet, cho một - ? Tại sao các giao diện mạng không trong / dev như các thiết bị khác , Tại sao các thiết bị Ethernet không hiển thị trong "/ dev"? ). Nó là một giao diện cho chính thiết bị - bạn viết cho thiết bị, đọc từ thiết bị, v.v.

/syslà một giao diện cho kernel. Cụ thể, nó cung cấp một khung nhìn giống như hệ thống tập tin về các cài đặt thông tin và cấu hình mà kernel cung cấp, rất giống /proc. Ghi vào các tệp này có thể hoặc không thể ghi vào thiết bị thực tế, tùy thuộc vào cài đặt bạn đang thay đổi. Nó không chỉ để quản lý thiết bị, mặc dù đó là trường hợp sử dụng phổ biến.

Thông tin thêm có thể được tìm thấy trong tài liệu kernel :

Top Level Directory Layout
~~~~~~~~~~~~~~~~~~~~~~~~~~

The sysfs directory arrangement exposes the relationship of kernel
data structures. 

The top level sysfs directory looks like:

block/
bus/
class/
dev/
devices/
firmware/
net/
fs/

devices/ contains a filesystem representation of the device tree. It maps
directly to the internal kernel device tree, which is a hierarchy of
struct device. 

bus/ contains flat directory layout of the various bus types in the
kernel. Each bus's directory contains two subdirectories:

    devices/
    drivers/

devices/ contains symlinks for each device discovered in the system
that point to the device's directory under root/.

drivers/ contains a directory for each device driver that is loaded
for devices on that particular bus (this assumes that drivers do not
span multiple bus types).

fs/ contains a directory for some filesystems.  Currently each
filesystem wanting to export attributes must create its own hierarchy
below fs/ (see ./fuse.txt for an example).

dev/ contains two directories char/ and block/. Inside these two
directories there are symlinks named <major>:<minor>.  These symlinks
point to the sysfs directory for the given device.  /sys/dev provides a
quick way to lookup the sysfs interface for a device from the result of
a stat(2) operation.

Ví dụ:

  • Một cách để thiết lập độ sáng của màn hình máy tính xách tay là:

    echo N > /sys/class/backlight/acpi_video0/brightness
    
  • Để lấy địa chỉ MAC của card mạng:

    cat /sys/class/net/enp1s0/address
    
  • Để có được các bộ điều chỉnh tỷ lệ CPU hiện tại:

    cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
    

Và như thế...


@muru: Điều gì xảy ra nếu tôi muốn xóa một trong những tệp này đang tiêu tốn nhiều bộ nhớ? Tôi đã viết một trình điều khiển thiết bị bị lỗi (có thể) đã đi vào một vòng lặp và liên tục ghi vào một số tệp trong thư mục / sys / thiết bị. Ngoài ra, nếu tôi vô tình xóa một tập tin sai thì tác động sẽ ra sao?
Bhasta Shah

2
@BhastaShah bạn không xóa bất cứ thứ gì ở đây - những tệp này không thực sự tồn tại. Bạn sẽ phải loại bỏ các mô-đun liên quan.
muru
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.