sysfs(5) File Formats Manual sysfs(5)

sysfs - یک سیستم‌فایل برای صادر کردن اشیاء هسته

سیستم‌فایل sysfs یک سیستم‌فایل کاذب (pseudo-filesystem) است که یک رابط برای ساختارهای داده هسته فراهم می‌کند. (به‌طور دقیق‌تر، فایل‌ها و دایرکتوری‌ها در sysfs نمایی از ساختارهای kobject تعریف‌شده در درون هسته را ارائه می‌دهند.) فایل‌های زیرمجموعه sysfs اطلاعاتی درباره دستگاه‌ها، ماژول‌های هسته، سیستم‌های فایل و دیگر مؤلفه‌های هسته ارائه می‌دهند.

سیستم‌فایل sysfs معمولاً در مسیر /sys سوار (mount) می‌شود. به‌طور معمول، سیستم آن را به‌صورت خودکار سوار می‌کند، اما همچنین می‌تواند به‌صورت دستی با استفاده از دستوری مانند زیر سوار شود:


mount -t sysfs sysfs /sys

بسیاری از فایل‌های موجود در سیستم‌فایل sysfs فقط‌خواندنی هستند، اما برخی از فایل‌ها قابل نوشتن می‌باشند و امکان تغییر متغیرهای هسته را فراهم می‌کنند. برای جلوگیری از افزونگی، پیوندهای نمادین به‌طور گسترده برای پیوند دادن مدخل‌ها در سراسر درخت سیستم‌فایل استفاده می‌شوند.

فهرست زیر برخی از فایل‌ها و دایرکتوری‌های موجود در سلسله‌مراتب /sys را شرح می‌دهد.

/sys/block
این زیردایرکتوری شامل یک پیوند نمادین به ازای هر دستگاه بلوکی است که روی سیستم شناسایی شده است. این پیوندهای نمادین به دایرکتوری‌های متناظر در /sys/devices اشاره می‌کنند.
/sys/bus
این دایرکتوری شامل یک زیردایرکتوری برای هر یک از انواع گذرگاه‌ها در هسته است. درون هر یک از این دایرکتوری‌ها دو زیردایرکتوری وجود دارد:
این زیردایرکتوری حاوی پیوندهای نمادین به مدخل‌هایی در /sys/devices است که متناظر با دستگاه‌های شناسایی‌شده روی این گذرگاه هستند.
این زیردایرکتوری شامل یک زیردایرکتوری برای هر درایور دستگاهی است که روی این گذرگاه بارگذاری شده است.
/sys/class
این زیردایرکتوری شامل یک لایه از زیردایرکتوری‌های بعدی برای هر یک از کلاس‌های دستگاه ثبت‌شده در سیستم است (مانند پایانه‌ها، دستگاه‌های شبکه، دستگاه‌های بلوکی، دستگاه‌های گرافیکی، دستگاه‌های صوتی و غیره). درون هر یک از این زیردایرکتوری‌ها، پیوندهای نمادین برای هر یک از دستگاه‌های این کلاس قرار دارد. این پیوندهای نمادین به مدخل‌هایی در دایرکتوری /sys/devices اشاره دارند.
/sys/class/net
هر یک از مدخل‌های این دایرکتوری یک پیوند نمادین است که نمایانگر یکی از دستگاه‌های شبکه‌ای واقعی یا مجازی است که در فضای‌نام شبکه (network namespace) فرآیندی که به دایرکتوری دسترسی دارد، قابل مشاهده می‌باشد. هر یک از این پیوندهای نمادین به مدخل‌هایی در دایرکتوری /sys/devices اشاره می‌کند.
/sys/dev
این دایرکتوری شامل دو زیردایرکتوری block/ و char/ است که به ترتیب متناظر با دستگاه‌های بلوکی و نویسه‌ای در سیستم هستند. درون هر یک از این زیردایرکتوری‌ها، پیوندهای نمادینی با نام‌هایی به فرم major-ID:minor-ID وجود دارند که در آن‌ها مقادیر شناسه متناظر با شناسه اصلی و فرعی یک دستگاه خاص است. هر پیوند نمادین به دایرکتوری sysfs مربوط به یک دستگاه اشاره می‌کند. بنابراین، پیوندهای نمادین درون /sys/dev راهکاری آسان برای جستجوی رابط sysfs با استفاده از شناسه‌های دستگاه بازگردانده‌شده از فراخوانی stat(2) (یا مشابه آن) فراهم می‌کنند.
نشست پوسته زیر یک نمونه از /sys/dev را نشان می‌دهد:

$ stat -c "%t %T" /dev/null;
1 3
$ readlink /sys/dev/char/1\:3;
../../devices/virtual/mem/null
$ ls -Fd /sys/devices/virtual/mem/null;
/sys/devices/virtual/mem/null/
$ ls -d1 /sys/devices/virtual/mem/null/*;
/sys/devices/virtual/mem/null/dev
/sys/devices/virtual/mem/null/power/
/sys/devices/virtual/mem/null/subsystem@
/sys/devices/virtual/mem/null/uevent

/sys/devices
این دایرکتوری شامل بازنمایی سیستم‌فایلی از درخت دستگاه‌های هسته است، که سلسله‌مراتبی از ساختارهای device درون هسته می‌باشد.
/sys/firmware
این زیردایرکتوری شامل رابط‌هایی برای مشاهده و دستکاری اشیاء و ویژگی‌های مخصوص سفت‌افزار است.
/sys/fs
این دایرکتوری شامل زیردایرکتوری‌هایی برای برخی از سیستم‌های فایل است. یک سیستم‌فایل تنها در صورتی یک زیردایرکتوری در اینجا خواهد داشت که ایجاد صریح آن زیردایرکتوری را برگزیده باشد.
/sys/fs/cgroup
این دایرکتوری به‌طور سنتی به عنوان نقطه سوار کردن برای یک سیستم‌فایل tmpfs(5) استفاده می‌شود که حاوی نقاط سوار کردن برای سیستم‌های فایل cgroups(7) است.
/sys/fs/smackfs
این دایرکتوری شامل فایل‌های پیکربندی برای LSM مربوط به SMACK است. پرونده منبع هسته Documentation/admin-guide/LSM/Smack.rst را ببینید.
/sys/hypervisor
[در آینده مستند خواهد شد]
/sys/kernel
این زیردایرکتوری شامل فایل‌ها و زیردایرکتوری‌های گوناگونی است که اطلاعاتی درباره هسته در حال اجرا ارائه می‌دهند.
/sys/kernel/cgroup/
برای کسب اطلاعات درباره فایل‌های موجود در این دایرکتوری، cgroups(7) را ببینید.
/sys/kernel/debug/tracing
نقطه سوار کردن برای سیستم‌فایل tracefs که توسط سازوکار ftrace هسته استفاده می‌شود. (برای کسب اطلاعات درباره ftrace، پرونده منبع هسته Documentation/trace/ftrace.rst را ببینید.)
/sys/kernel/mm
این زیردایرکتوری شامل فایل‌ها و زیردایرکتوری‌های گوناگونی است که اطلاعاتی درباره زیرسیستم مدیریت حافظه هسته ارائه می‌دهند.
/sys/kernel/mm/hugepages
این زیردایرکتوری شامل یک زیردایرکتوری برای هر یک از اندازه‌های صفحات بزرگ (huge page) پشتیبانی‌شده توسط سیستم است. نام زیردایرکتوری نشان‌دهنده اندازه صفحه بزرگ است (مانند hugepages-2048kB). درون هر یک از این زیردایرکتوری‌ها مجموعه‌ای از فایل‌ها وجود دارند که می‌توان از آن‌ها برای مشاهده و (در برخی موارد) تغییر تنظیمات مرتبط با آن اندازه صفحه بزرگ استفاده کرد. برای کسب اطلاعات بیشتر، پرونده منبع هسته Documentation/admin-guide/mm/hugetlbpage.rst را ببینید.
/sys/module
این زیردایرکتوری شامل یک زیردایرکتوری به ازای هر ماژول بارگذاری‌شده در هسته است. نام هر دایرکتوری، همان نام ماژول است. در هر یک از این زیردایرکتوری‌ها، فایل‌های زیر ممکن است وجود داشته باشند:
[در آینده مستند خواهد شد]
[در آینده مستند خواهد شد]
[در آینده مستند خواهد شد]
[در آینده مستند خواهد شد]
[در آینده مستند خواهد شد]
[در آینده مستند خواهد شد]
[در آینده مستند خواهد شد]
[در آینده مستند خواهد شد]
در هر یک از این زیردایرکتوری‌ها، زیردایرکتوری‌های زیر ممکن است وجود داشته باشند:
[در آینده مستند خواهد شد]
[در آینده مستند خواهد شد]
[در آینده مستند خواهد شد]
این دایرکتوری شامل یک فایل برای هر پارامتر ماژول است، که هر فایل حاوی مقدار پارامتر متناظر می‌باشد. برخی از این فایل‌ها قابل نوشتن هستند و امکان تغییر پارامترها را فراهم می‌کنند.
این زیردایرکتوری شامل فایل‌هایی با اطلاعات مربوط به بخش‌های (sections) ماژول است. این اطلاعات عمدتاً برای اشکال‌زدایی استفاده می‌شوند.

[در آینده مستند خواهد شد]

/sys/power
[در آینده مستند خواهد شد]

لینوکس.

لینوکس 2.6.0.

این صفحه راهنما ناقص و احتمالاً نادرست است، و از آن دسته مواردی است که باید مکرراً به‌روزرسانی شود.

proc(5), udev(7)

P. Mochel (2005). The sysfs filesystem. Proceedings of the 2005 Ottawa Linux Symposium.

پرونده منبع هسته Documentation/filesystems/sysfs.rst و پرونده‌های مختلف دیگر در Documentation/ABI و Documentation/*/sysfs.rst.

2026-02-08 Linux man-pages 6.19