یکی از فیچرهای شاخص Linux و دیگر سیستمعاملهای مبتنی بر UNIX این است که گفته میشود در این سیستمعاملها «هر چیزی یک فایل است.» اما بایستی ببینیم که چنین گزارهای اساساً درست است یا خیر. برای درک بهتر این موضوع، بایستی ببینیم که سازوکار کِرنِل لینوکس به چه شکل است و این دقیقاً همان چیزی است که در این مقاله قصد داریم مورد بررسی قرار دهیم.
پیش از هر چیز، میبایست با مفهوم File System آشنا شوید که برای این منظور توصیه میکنیم به آموزش آشنایی با فایل سیستم لینوکس مراجعه نمایید. در واقع، در لینوکس تمامی اجزای سیستمعامل در فایل سیستم قابل مشاهده هستند اما اساساً هر چیزی که به شکل یک فایل قابل مشاهده باشد، فایل نیست!
در حقیقت، آنچه میبینید فایلهای به خصوصی هستند که نمایانگر دیوایسهای سختافزاری، اطلاعات سیستم و ... هستند که ممکن است در محلهای مختلفی همچون dev/ و یا proc/ قرار داشته باشند که به ترتیب محل قرارگیری فایلهای مرتبط با سختافزار و فایلهای مرتبط با اطلاعات سیستم هستند.
نگاهی به پوشهٔ proc/ در لینوکس
اگر علاقمند باشید اطلاعات بیشتری در مورد CPU سیستم خود داشته باشید، دایرکتوری proc/ محلی است که بایستی به آن مراجعه نمایید. داخل این دایرکتوری، فایل به خصوصی وجود دارد تحت عنوان cpuinfo که اطلاعات مختلفی در مورد CPU در اختیار شما قرار میدهد.
برای مشاهدهٔ اینگونه فایلها اصلاً نیاز به نرمافزار خاصی نیست بلکه با هر ابزاری که برای نمایش محتویات فایلهای تِکست مورد استفاده قرار میگیرد، به سادگی قادر خواهید بود محتویات این فایلها را مشاهده نمایید:
$ cat /proc/cpuinfo
همانطور که مشاهده میشود، با استفاده از ابزار cat که برای نمایش محتویات فایلهای متنی استفاده میشود، به سادگی میتوانیم فایل مذکور را باز نماییم (در واقع، دستور فوق اطلاعات CPU شما را داخل ترمینال در معرض نمایش میگذارد).
به خاطر داشته باشید که cpuinfo اساساً یک فایل متنی حاوی یکسری اطلاعات نیست! بلکه کِرنِل لینوکس و همچنین فایل سیستم proc این قبیل اطلاعات را به شکل یک فایل در معرض دید کاربر قرار میدهند.
از جملهٔ دیگر فایلهای به خصوصی که در پوشهٔ proc/ قرار دارند میتوان به فایل uptime و version اشاره کرد که به ترتیب مدت زمانی که سیستم روشن بوده و نسخهٔ کِرنِل لینوکس شما را در خود ذخیره کردهاند.
گرچه هر ابزاری در لینوکس جایگاه خاص خود در فایل سیستم دارا است که به شکل یک فایل نمود عینی پیدا میکند اما در عمل، به جای آن که بگوییم در لینوکس «هر چیزی یک فایل است»، درستتر آن است که بگوییم در لینوکس «هر چیزی از یکسری بایت تشکیل است».