توضیح فایل سیستم /proc در لینوکس

امروز ما قصد داریم نگاهی به داخل فایل سیستم /proc داشته باشیم. دایرکتوری /proc در تمام سیستم های لینوکس، بدون در نظر گرفتن نوع توزیع و یا معماری است.

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

اول، اجازه دهید تا به /proc نگاه دقیق تری بندازیم:

اولین چیزی که متوجه می شوید این است که برخی از فایل های فشرده آشنا وجود دارد و پس از آن تعداد زیادی از دایرکتوری های شماره شده وجود دارد. دایرکتوری های شماره دار فرایندهایی را نشان می دهند که به عنوان PID ها شناخته شده اند و درون آن ها یک فرمان است که آنها را اشغال می کند. فایل ها حاوی اطلاعات سیستم مانند حافظه (meminfo)، اطلاعات پردازنده (cpuinfo) و سیستم های موجود است.

بیایید ابتدا نگاهی به یکی از فایل ها بندازیم:

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

اجرای دستور cat در هر یک از فایل ها در /proc محتویات آن ها را نمایش می دهد. اطلاعات مربوط به هر فایل در صفحه مرد با در حال اجرا است:

توضیحی مختصر از فایل های /proc :

  • /proc/cmdline – اطلاعات خط فرمان کرنل.
  • /proc/console – اطلاعات در مورد کنسول های کنونی از جمله tty.
  • /proc/devices – درایور دستگاه در حال حاضر برای هسته در حال اجرا پیکربندی شده است.
  • /proc/dma – اطلاعات مربوط به کانال های DMA فعلی.
  • /proc/fb – دستگاه های Framebuffer.
  • /proc/filesystems – سیستم های کنونی که توسط هسته پشتیبانی می شوند.
  • /proc/iomem – نقشه حافظه سیستم فعلی برای دستگاه.
  • /proc/ioports – مناطق پورت ثبت شده برای ارتباط خروجی ورودی با دستگاه.
  • /proc/loadavg – متوسط بار سیستم.
  • /proc/locks – فایل ها در حال حاضر توسط هسته قفل شده اند.
  • /proc/meminfo – اطلاعات در مورد حافظه سیستم (به عنوان مثال بالا را ببینید).
  • /proc/misc – درایور های متفرقه برای دستگاه های مختلف
  • /proc/modules – ماژول های بارگذاری شده در حال حاضر
  • /proc/mounts – فهرست همه موارد استفاده در سیستم.
  • /proc/partitions – اطلاعات دقیق در مورد پارتیشن های موجود در سیستم.
  • /proc/pci – اطلاعات مربوط به هر دستگاه PCI.
  • /proc/stat – ضبط یا آمارهای مختلف نگهداری شده از آخرین راه اندازی مجدد.
  • /proc/swap – اطلاعات در مورد فضای swap.
  • /proc/uptime – اطلاعات زمان روشن بودن سیستم (در ثانیه).
  • /proc/version – نسخه کرنل، نسخه GCC و توزیع لینوکس نصب شده است.

در داخل دایرکتوری شماره /proc شما چند فایل و پیوند پیدا خواهید کرد. به خاطر داشته باشید که تعداد این فهرست ها به PID فرمان در آنها اجرا می شود. بیایید از مثال استفاده کنیم. در سیستم من یک پوشه /proc/12 وجود دارد:

اگر داخل فال status را ببینیم :

خوب این به چه معنا است؟ خوب، بخش های مهمی که در بالا قرار داردند می توانیم از پرونده وضعیت ببینیم که این فرایند متعلق به xenwatch است. حالت فعلی آن خواب است و شناسه فرآیند آن 12 است. ما همچنین می توانید ببینید که چه کسی این را اجرا می کند، زیرا UID و GID 0 هستند، که نشان می دهد که این فرایند متعلق به کاربر ریشه است.

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

  • cmdline – خط فرمان فرآیند
  • environ – متغیرهای محیطی
  • fd – توصیفگرهای فایل
  • limits – حاوی اطلاعاتی درباره محدودیت های فرآیند است
  • mounts – اطلاعات مربوط به دستگاه های متصل

شما همچنین تعدادی لینک در دایرکتوری شماره را مشاهده خواهید کرد:

  • cwd – یک لینک به دایرکتوری کار فعلی روند
  • exe – پیوند به اجرام فرآیند
  • root – لینک به دایرکتوری کار



شاید این مطالب را هم دوست داشته باشید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *