proc/ (خلاصه process) یک سیستم فایل مجازی است که با هر بار راه‌اندازی سیستم ایجاد می‌شود. این سیستم فایل، شامل اطلاعات مربوط به فرآیندهای در حال اجرا، مدیریت حافظه و همچنین برخی از تنظیمات سخت افزاری است.

هر لینوکس بدون توجه به نوع یا نسخه آن دارای سیستم فایل proc/ است و به عنوان یک سیستم فایل مجازی، از هر دایرکتوری در لینوکس قابل دسترسی است. در این آموزش، به شرح سیستم فایل proc/ در لینوکس پرداخته شده است.

 

برای ورود به سیستم فایل proc/ کافیست دستور زیر را اجرا نمایید:

cd /proc

همانطور که می‌دانید 'cd' (یا همان change directory) برای جابجایی به دایرکتوری‌های دیگر در لینوکس استفاده می‌شود.

 

این مطلب نیز ممکن است برای شما مفید باشد: برچسب زمان در فایل‌های لینوکس

 

محتویات سیستم فایل proc

به جای تغییر مکان به دایرکتوری می‌توانید همه فایل‌های سیستم فایل proc/ را با استفاده از دستور زیر در ترمینال لیست کنید:

ls /proc

از دستور "ls" به منظور لیست کردن همه فایل‌ها و دایرکتوری‌های موجود در یک مسیر مشخص استفاده می‌شود. این دستور از رنگ‌های مختلف برای نمایش فایل‌ها و دایرکتوری‌ها در خروجی استفاده می‌کند. هریک از این رنگ‌ها به شرح زیر است:

رنگ آبی: بخش‌های آبی خروجی نشان دهنده زیردایرکتوری‌ها است.

رنگ سفید: فایل‌های بدون رنگ، فایل‌های عادی حاوی داده هستند.

رنگ فیروزه‌ای: فایل‌های فیروزه‌ای، لینک‌های نمادین (symbolic) را نشان می‌دهند.

همانطور که می‌بینید proc/ حاوی تعداد زیادی فایل و دایرکتوری است. در ادامه، برخی از موارد مهم شرح داده شده است.

 

دایرکتوری‌های شماره گذاری شده

هر دایرکتوری شماره گذاری شده یک شناسه فرآیند را نشان می‌دهد. شناسه فرآیندها (PID)، شناسه‌های منحصر به فردی (چه برای فرآیندهای در حال اجرا و چه برای فرآیندهای متوقف شده) هستند. هر دایرکتوری فرآیند شامل فایل‌هایی است که اطلاعات مربوط به فرآیند مربوطه را ذخیره می‌کنند.

باید توجه داشت که درستی اجرای هر فرآیند برای عملکرد صحیح سیستم بسیار مهم است. بنابراین، به منظور دسترسی کامل هر فایل در دایرکتوری‌های فرآیند، به دسترسی root نیاز داریم. این کار را می‌توان با 'sudo -s' یا 'sudo su' در لینوکس انجام داد.

در ادامه، فرآیندی با PID = 15 بررسی شده است.

 

این مطلب نیز ممکن است برای شما مفید باشد: نحوه اجرای فایل ISO در لینوکس

 

لیست مطالب

محتویات دایرکتوری شماره 15 را می‌توان به صورت زیر بدست آورد:

ls /proc/15

 

اطلاعات فرآیند

به منظور استخراج اطلاعات مربوط به فرآیند 15 کافیست دستور زیر را اجرا نمایید:

cat /proc/15/status

 

'cat'، ابزار لینوکس برای ادغام فایل‌ها است. در اینجا، از آن تنها برای استخراج داده‌های ذخیره شده در فایل "status" در داخل دایرکتوری "15" استفاده شده است.

به منظور تأیید صحت خروجی، همیشه می‌توانید با استفاده از دستور PS وضعیت فرآیند را به صورت زیر بررسی کنید:

ps -p 15

 

دستور فوق، وضعیت فرآیند را با توجه به PID داده شده فیلتر می‌کند.

 

جزئیات دیگر

هر فایل داخل '/proc/15' حاوی برخی از اطلاعات مربوط به فرآیند '15' است. اطلاعات مربوط به برخی از این فایل‌ها به شرح زیر هستند:

/proc/15/mem: حافظه‌ای را که فرایند از آن استفاده می‌کند، مشخص می‌نماید.

/proc/15/environ: متغیرهای محیطی که در هنگام شروع فرآیند تنظیم شده‌اند را نشان می‌دهد.

/proc/15/cwd: لینک دایرکتوری فعال فعلی (CWD) فرآیند را مشخص می‌کند.

/proc/15/limit: مقادیر محدودیت منابع (مانند زمان CPU یا فضای حافظه) را ذخیره می‌کند.

/proc/15/fd: دایرکتوری حاوی توضیحات فایل را داراست.

/proc/15/cmdline: شامل کل خط فرمان برای فرآیند است.

به منظور کسب اطلاعات بیشتر در مورد چنین فایل‌هایی در داخل دایرکتوری‌های مربوط به فرآیند، می‌توانید از دستور  "man proc"استفاده کنید.

 

این مطلب نیز ممکن است برای شما مفید باشد: Soft Link و Hard Link در لینوکس

 

اطلاعات مربوط به حافظه

"/proc/meminfo" حاوی اطلاعاتی در مورد میزان استفاده از حافظه سیستم است. این فایل با دستور زیر قابل دسترسی است:

cat /proc/meminfo

 

اطلاعات مربوط به CPU

به منظور دسترسی به جزئیات مربوط به موارد وابسته به CPU مانند سرعت ساعت CPU، مدل و غیره، می‌توان از "/proc/cpuinfo" استفاده کرد:

cat /proc/cpuinfo

 

فایل‌های قفل شده توسط هسته

در یک محیط چند نخی (threadای)، قفل کردن فرآیند، کلید حل ویرایش همزمان یک فایل است. '/proc/locks' شامل لیست قفل‌هایی است که در حال حاضر توسط هسته در حال استفاده هستند.

cat /proc/locks

 

هر خط از خروجی دستور بالا شامل یک قفل است و شرح آن به صورت زیر می‌باشد:

1: شماره سریال در فایل locks را نشان می‌دهد.

POSIX: نوع اجرای قفل را نشان می‌دهد.

ADVISORY: از تلاش برای قفل مجدد فایل جلوگیری می‌کند.

WRITE: نوع قفل را بر اساس دسترسی (چه READ یا WRITE) نشان می‌دهد.

2056: شناسه (PID) فرآیندی را نشان می‌دهد که قفل را دارد.

08:07:5899560: شناسه فایل را نشان می‌دهد.

0EOF: نقطه شروع و پایان منطقه قفل شده (locked-region) فایل را نشان می‌دهد.

 

این مطلب نیز ممکن است برای شما مفید باشد: رمزگذاری دایرکتوری ها با استفاده از eCryptfs در لینوکس

 

ماژول‌های رمزنگاری

'/proc/crypto' شامل لیست رمزهایی است که توسط API رمزنگاری هسته پشتیبانی می‌شوند. مطالب آن به این شکل است:

cat /proc/crypto

 

سیستم فایل‌های پشتیبانی شده

'/proc/filesystems' شامل لیستی از سایر سیستم فایل‌هایی است که در حال حاضر توسط هسته لینوکس پشتیبانی یا mount شده‌اند.

cat /proc/filesystems

 

ستون دوم خروجی شامل نام سیستم فایل‌های پشتیبانی شده است و ستون اول مشخص می‌کند که هر سیستم فایل آیا در حال حاضر mount شده است یا خیر.

نکته: استفاده از "nodev" به این معنی است که آن سیستم فایل mount نشده است.

 

فایل‌های دیگر در "/proc"

برخی از دیگر فایل‌های دارای اطلاعات مهم عبارتند از:

/proc/interrupts: شامل وقفه‌های (interrupt) هر پردازنده است.

/proc/ioports: لیست تمام پورت‌های ورودی/خروجی مورد استفاده را ذخیره می‌کند.

/proc/diskstats: آمار هر دیسک را نمایش می‌دهد.

/proc/version: نسخه هسته را ذخیره می‌کند.

/proc/tty: زیردایرکتوری حاوی فایل‌های مربوط به درایورهای ترمینال را نمایش می‌دهد.

 

 

 

منبع:

journaldev