منبع اصلی نوشتار زیر در این لینک قرار دارد

استاندارد سلسله مراتبی فایل سیستم (FHS) در اوبونتو

در سیستم عامل گنو/لینوکس برخلاف سیستم عامل ویندوز، فاقد مقوله ای تحت عنوان درایو (همچون :C) هستیم؛ همانطور که میدانید در ویندوز سرآغاز پوشه های تو در تو درایو است بر فرض مثال C:Program FilesMozilla Firefox نتیجتاً در ویندوز، این ساختارِ اصطلاحاً سلسله مراتبی از چندین منبع مشتق می شوند. (به تعداد درایوهای موجود هارد) اما در سیستم عامل گنو/لینوکس همه شاخه ها (دایرکتوری ها) از یک سرشاخه واحد و منحصر به فرد شاخ و برگ می گیرند! به مانند درختی که بصورت وارونه قرار گرفته و ریشه آن در بالاترین نقطه باشد.

 

در اوبونتو با انتخاب Home Folder و سپس کلیک بر روی گزینه Computer (در ستون سمت چپ پنجره نمایان شده) با پنجره ای مشابه پنجره زیر روبرو خواهیم شد:

در بخش فوقانی پنجره گشوده شده (Title Bar) نمادی به شکل / رویت میگردد که حضور شما در دایرکتوری ریشه (Root) که بالاترین سطح ممکن در سیستم عامل گنو/لینوکس (در اینجا اوبونتو) محسوب میگردد را محرز مینماید.

** هر یک از زیردایرکتوری های موجود وظیفه خاصی را دارند که در ادامه بدان خواهیم پرداخت:

دایرکتوری های FHS در اوبونتو (FHS = Filesystem Hierarchy Standard)

/: (بخوانید Root) بالاترین سطح ممکن در ساختار درختی لینوکس (دایرکتوری خانگی کاربر ریشه)

* در اکثر مواقع دایرکتوری ریشه فقط زیردایرکتوری ها را دربرمیگیرد. (دایرکتوری های فرعی)

bin: (دایرکتوری الزامی برای هر کاربر) محل قرارگیری فرمان های سیستم عامل و فرمان های مخصوص کاربران عادی که هنگام اجرای سیستم در حالت تک‌کاربر باید فعال و حاضر باشند و برخی از فرمان های مدیریتی.

boot: (دایرکتوری فایل‌های بوت) محل نگهداری فایل های راه اندازِ بوتِ سیستم عامل (Boot Loader) مانند (Grub یا Lilo)، و Kernel (هسته) کامپایل شده.

* فایل‌های پیکربندی و تنظیمات بوت‌لودر در این دایرکتوری نیست و در etc/ قرار دارد.

cdrom: (نقاط دسترسی CD‌ها) این دایرکتوری دیگر بخشی از استاندارد FHS نیست. اما هنوز در اوبونتو و دیگر سیستم عاملها استفاده میگردد که محلی است برای دسترسی به CD-ROM (محل استاندارد آن media/ است)

* محل استاندارد دسترسی به CD-ROM دایرکتوری دیگری با نام media/ است.

dev: (فایل‌های دستگاه‌ها) محل قرارگیری نقاط دسترسی (Mount Points) دستگاه هایی (Deviceهایی) مانند پورت ها، پارتیشن ها و …

* هر دستگاه یا Device، دارای یک فایل در این پوشه است. مثال: فلاپی درایو dev/fd

etc: (فایل‌های تنظیمات) شامل فایل های پیکربندی بخش های متمایز سیستم

* تمام فایل های داخل این پوشه می بایست متن باشند. فایل هایی که به تنظیمات کاربری خاص مربوط میگردد، در دایرکتوری home/ کاربر مربوطه وجود دارد.

* این دایرکتوری می‌تواند توسط ویرایشگرهای متن و واژه‌پردازهای سیستم ویرایش شود. باید توجه داشت که دایرکتوری etc/ شامل فایل‌های تنظیمات تمام سیستم است.

* فایل‌های تنظیماتی که به هر کاربر مربوط می‌شود و مخصوص خود کاربر است در دایرکتوری home/ هر کاربر وجود دارد.

home: (دایرکتوری خانگی کاربران) حاوی دایرکتوری های خانگی کاربران و اطلاعات آنهاست. چیزی شبیه My Documents در ویندوز.

* اینجا تنها مکانی است که کاربرانِ غیر از کاربر ریشه، قادرند که بنویسند! برای ویرایش دیگر بخشهای سیستم، کاربران عادی میبایست از کاربر ریشه (root) سیستم اجازه بگیرند.

برای مثال اگر نام کاربری شما ali باشد، مسیری به‌نام home/ali/ تولید میشود. این دایرکتوری شامل داده‌های هر کاربر و تنظیمات مرتبط با شناسه او خواهد بود.

lib: (دایرکتوری کتابخانه‌های مشترک) شامل فایل های کتابخانه  ای برنامه ها است (چیزی شبیه DLLها در سایر سیستم عامل ها) باینری های اساسی سیستم که در bin/، sbin/ اجرا می شود به آن نیاز دارد. این کتابخانه ها همچنین توسط باینری های موجود در bin/usr/ نیز استفاده می شود.

media: (دستگاه‌های جانبی) شامل زیرشاخه هایی است که در آن دستگاه های (Device) وصل شده به سیستم (دستگاههای حافظه) نشان داده میشود. مثل هاردهای اکسترنال، فلش درایوها، گوشی موبایل و … .

* در سیستم فایل استاندارد FHS ،cdrom در این دایرکتوری قرار میگیرد. بعضی از توزیعهای لینوکس از این دایرکتوری جهت سوار نمودن (mount) استفاده میکنند. مثلاً پارتیشن ویندوزی را مانت نموده و آن را به mnt/windows/ وصل مینمایند. هر چند می‌توان هر فایل‌سیستمی را در هر نقطه از سیستم قرار داد.

mnt: (نقاط دسترسی موقت) جهت mount کردن (سوار کردن) درایوهای با سیستم فایل غیر از لینوکس استفاده میشود.

opt: (تنظیمات دستی) محل قرارگیری تنظیمات دستی است، بر فرض مثال نسخه های بِتای (Beta) نرم افزارها بهتر است در opt/ نصب شوند.

* معمولاً توسط نرم‌افزارهای تجاری که از ساختار استاندارد لینوکسی پیروی نمیکنند، در این دایرکتوری قرار میگیرند.

proc: (فایل‌های هسته و Process‌ها) شامل اطلاعات مربوط به سیستم بوده که هسته از آن قابل دستیابی است. (محل قرارگیری اندیشه های CPU) دایرکتوری proc/ عملکردی مشابه دایرکتوری dev/ دارد با این تفاوت که شامل فایلهای استاندارد نیست بلکه این فایلها مخصوص اطلاعات سیستم و پردازش ها (Process) میباشند.

root: (دایرکتوری مخصوص کاربر root) درواقع همان دایرکتوری home/ است، اما برای نام کاربری root. این دایرکتوری مستقیماً از / (ریشه) گرفته شده و در پارتیشن اصلی سیستم قرار میگیرد. با این تفاوت که میتوان دایرکتوری home/ را به پارتیشنها و دیسکهای دیگر نسبت داد.

run: (دایرکتوری وضعیت نرم‌افزارها) دایرکتوری نسبتاً جدیدی است و جای استانداردی به نرم افزارها میدهد که فایلهای موقت هنگام اجرا از جمله سوکتها و شناسه Process ها در آنجا قرار دهد. این فایلها در tmp/ قرار نمیگیرند، چرا که tmp/ میتواند پاک شود.

sbin: (باینری‌های مدیریتی سیستم Super User bin) شامل فرمانها و برنامه های مدیریتی سیستم بوده و مشابه دایرکتوری bin/ رفتار میکند، با این تفاوت که شامل باینری های سیستمی است که تنها توسط کاربر root  میتوانند جهت تحقق مقاصد مدیریتی اجرا شوند.

Selinux: (دایرکتوری سیستم فایل مجازی SELinux) اگر توزیع شما از SElinux برای امنیتِ سیستم استفاده میکند. (مانند Fedora و Redhat) این دایرکتوری در آن وجود دارد و شامل فایلهایی است که توسط SElinux استفاده میشود. این دایرکتوری مشابه proc/ است. اوبونتو از SElinux استفاده نمیکند؛ درواقع حضور این دایرکتوری در اوبونتو یک باگ (Bug) محسوب میشود.

srv: (دایرکتوری داده‌های سرویس) این دایرکتوری داده‌هایی را در بر می‌گیرد که سرویس‌ها در اختیار سیستم قرار می‌دهد. اگر از Apache Sever برای میزبانی یک وب سایت استفاده می کنید، داده هایی از قبیلHTTP  و یا FTP  در این دایرکتوری قرار خواهند گرفت.

sys: (شامل اطلاعات Real-time «بلادرنگ») در دستگاههای استفاده شده توسط هسته (Kernel، sysfs)، و برخی از نقاط دسترسی (Mount Points).

* به سیستمی بلادرنگ گفته میشود که صحت درستی یک فرآیند تنها وابسته به صحت منطقی آن نبوده و به زمانی که اجرای آن بطول می انجامد نیز وابسته باشد.

* در سیستم بلادرنگ سخت (Hard real-time Systems) پردازش در سیستم عامل ها می‌بایست در یک زمان تخمین شده اجرا شده و عملیات به اتمام برسد. مانند سیستم کنترل موشک. چنین تضمینی در یک سیستم با حافظه ثانویه یا حافظه مجازی غیرممکن است.

* در سیستم بلادرنگ نرم (Soft real-time Systems) مانند پخش موسیقی، زمان پاسخگویی به پردازش در سیستم عامل مهم است ولی مانند بلادرنگ سخت، لزوماً حیاتی نیست.

* sysfs یک فایل سیستم مبتنی بر RAM میباشد که برای بارگذاری اشیاء Kernel کاربرد دارد تا کاربر نهایی بتواند از آن به سهولت استفاده کند.

tmp: (دایرکتوری ذخیره فایل های موقت) نرم‌افزارها فایل‌های موقت را در این دایرکتوری ذخیره می‌کنند. در واقع این دایرکتوری مانند برگه چک نویس عمل میکند.

* برخی از توزیعات لینوکس، بطور اتوماتیک محتویات tmp/ را پاک میکنند. (معمولاً پس از Reset) بنابراین این محل برای ذخیره‌سازی فایل‌ها مناسب نیست، پس هیچگاه فایلهای ضروری را در دایرکتوری tmp/ قرار ندهید.

usr: (باینری‌های کاربر) بسیاری از Application ها در اینجا نصب میشوند. مثلاً Xwindow در اینجا شاخه قرار دارد. بسیاری از Application های نصب شده توسط کاربران در این قسمت ذخیره میشوند.

* اگر لینوکس را از روی Source Code نصب نموده باشید، کلِ کُدِ سورسِ هسته لینوکس را در /usr/src خواهید یافت.

* نرم‌افزارهایی چون firefox در usr/bin/ نصب میشود، در حالی که برنامه‌های مهم سیستمی همچون Bash و امثال آن در دایرکتوری bin/ قرار میگیرد.

* کتابخانه‌های مورد نیاز این نرم‌افزارها نیز در دایرکتوری usr/lib/ قرار میگیرد. دایرکتوری usr/ همچنین دایرکتوری‌های دیگری درون خود دارد که به همین منظور به‌کار می‌رود؛ همانند usr/share/.

* دایرکتوری usr/local/ شامل نرم‌افزارهای کامپایل‌شده local است که بطور پیشفرض در این دایرکتوری قرار میگیرند. این دایرکتوری باعث میشود نرم‌افزارهای کامپایل شده درون سیستم پخش نشود.

var: (دایرکتوری فایل‌های داده‌ای متغیر) شامل فایلهایی است که در حین اجرای سیستم تغییر میکنند. مانند برنامه های سرویس دهنده ای همچون وب، FTP و بانکهای اطلاعاتی.

* این دایرکتوری معمولاً در کامپیوترهای سرویس دهنده (Server) در یک پارتیشن مجزا قرار میگیرد.

* دایرکتوری var/ دایرکتوری قابل نوشتنی است درست نقطه مقابل دایرکتوری usr/ قرار میگیرد که در شرایط عادی فقط خواندنی است.

* فایلهای گزارش (log) که وظیفه ذخیره log سیستم را دارند در دایرکتوری var/log/ قرار میگیرند.

ضمن عرض پوزش و طلب عفو از همراهان همیشگی و سروران گرامی جهت وقفه بسیار در بروزرسانی وبلاگ «ترفندهای لینوکس»، امید است که مفید واقع شود.



برچسب ها :