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

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو
استاندارد سلسله مراتب سیستم فایل
توسعه‌دهنده بنیاد لینوکس
اولین نسخه ۱۴ فوریه ۱۹۹۴؛ ۲۳ سال پیش (۱۹۹۴-۰۲-14)
آخرین نسخه ۳٫۰ / ۳ ژوئن ۲۰۱۵؛ ۲ سال پیش (۲۰۱۵-۰۶-03)
وب‌گاه وب‌گاه رسمی
Official website (Historical)

استانداردِ سلسله‌مراتبِ سیستمِ فایل (FHS)، ساختار و محتوای دیرکتوری در سیستم‌عامل‌های شبه‌یونیکسی را معین می‌کند. این استاندارد توسط بنیاد لینوکس پشتیبانی می‌شود. آخرین نسخه این استاندارد نسخه ۳٫۰ است که در تاریخ سه ژوئن ۲۰۱۵ عرضه شد. در حال حاضر این استاندارد فقط در سیستم‌عامل لینوکس استفاده می‌شود.[۱]

ساختار دیرکتوری[ویرایش]

در استانداردِ سلسله‌مراتبِ سیستمِ فایل(FHS)، تمامی فایل‌ها و دیرکتوری‌ها در زیر دیرکتوریِ ریشه (root directory) / حضور دارند (حتی اگر آن دیرکتوری و فایل‌ها روی دستگاه‌های فیزیکی و مجازی دیگری (نسبت به دیرکتوری ریشه) ذخیره شده باشند). بعضی از این دیرکتوری‌ها فقط روی یک سیستم مشخص وجود دارند، درصورتی که زیرسیستم‌های مشخصی، مانند سامانهٔ پنجرهٔ اکس نصب شده باشد.[۲]

بیشتر این دیرکتوری‌ها در تمامی سیستم‌های عامل یونیکسی وجود دارند و به طور کلی کاربرد و کارکرد آن‌ها در سیستم‌های مختلف شبیه به هم است. با این حال توضیحاتی که در مورد کارکرد دیرکتوری‌ها در ذیل خواهد آمد مشخصاً برای FHS استفاده می‌شود و برای سکوهای رایانش دیگر به غیر از لینوکس معتبر نیستند.

توضیحات دیرکتوری
دیرکتوری ریشهٔ کل سلسله‌مراتب سیستم فایل /
فایل‌های باینری مربوط به دستورها و برنامه‌های لینوکس (که از خط فرمان صدا زده می‌شوند) که باید برای حالت تک‌کاربره برای تمام کاربران دردسترس باشند مانند cat یا ls یا cp /bin
فایل‌های مربوط به Boot loader (بارگذار راه‌انداز) مانند هسته یا همان kernel و initrd /boot
فایل‌های دستگاهی ضروری مانند /dev/null/ /dev
فایل‌های تنظیمات سراسری سیستم (مربوط به تمام سیستم)

در مورد نام این دیرکتوری مناقشاتی وجود داشته است. در نسخه‌های اولیهٔ سند پیاده‌سازی یونیکس، در آزمایشگاه بِل، بیان می‌شود که نام این دیرکتوری از کلمهٔ etcetera گرفته شده است. چرا که در ابتدا این دیرکتوری فایل‌هایی را در خود نگه می‌داشت که به دیرکتوری‌های دیگر تعلق نداشت (گرچه امروزه FHS این دیرکتوری را ملزم به نگه داری فایل‌های متنیِ تنظیمات می‌کند و این دیرکتوری نباید شامل فایل‌های باینری باشد). از زمان انتشار سند اولیهٔ مذکور وجه تسمیهٔ (دلیل نامگذاری) این دیرکتوری به طُرُق مختلف بارها توضیح داده شده است. بعضی نام این دیرکتوری را مخفف Editable Text Configuration به معنای تنظیمات متنیِ قابل ویرایش می‌دانند و بعضی Extended Tool Chest به معنای صندوقچهٔ توسعه‌یافتهٔ ابزار

/etc
فایل‌های تنظیمات مربوط به بسته‌های (پکیج‌ها) افزونه‌ها /etc/opt
فایل‌های تنظیمات، مانند کاتالوگ‌ها، مربوط به نرم‌افزاری که SGML پردازش می‌کند. /etc/sgml
فایل‌های تنظیمات برای سامانهٔ پنجرهٔ اکس، نسخه ۱۱ /etc/X11
فایل‌های تنظیمات، مانند کاتالوگ‌ها، برای نرم‌افزاری که فایل XML را پردازش می‌کند. /etc/xml
دیرکتوری‌های خانهٔ کاربران، که حاوی فایل‌های ذخیره شده و تنظیمات شخصی و غیره می‌باشد. /home
فایل‌های کتابخانه‌ای (لایبرری) که وجودشان برای فایل‌های باینری در /bin و /sbin ضروری است. /lib
در این دیرکتوری رسانه‌های جداشدنی مانند درایو فش یا سی‌دی رام به صورت دیرکتوری نمایش داده می‌شوند. /media
سیستم فایل‌هایی که به صورت موقت mount می‌شوند. /mnt
بسته‌های (پکیج‌های) نرم‌افزاری اختیاری[۳] /opt
سیستم فایل مجازی که اطلاعات مربوط به فرایندها و هسته (کرنل) را به صورت فایل فراهم می‌کند. /proc
دیرکتوری خانه برای کاربر روت /root
فایل‌های باینری سیستمی مانند fsck و init و route /sbin
داده‌های مربوط به سایت که سیستم در اختیار کاربران قرار می‌دهد، مانند داده‌ها و اسکریپت‌هایی که توسط وب‌سرور ارائه می‌شود یا داده‌هایی که به وسیلهٔ سرور FTP ارائه می‌شود و مخازنی(repository) که مربوط به سامانه‌های کنترل نسخه می‌باشند /srv
فایل‌های موقتی؛ که طول عمرشان از یک بازراه‌اندازی سیستم تا بازراه‌اندازی بعدی سیستم است به عبارت دیگر میان دو بازراه‌اندازی یعنی با بازراه‌اندازی سیستم این فایل‌ها پاک می‌شوند و ممکن است این فایل‌ها محدودیت حجمی در ذخیره داشته باشند. /tmp
سلسله‌مراتب ثانوی برای داده‌های کاربر، که شامل اکثر اپلیکیشن‌های کاربران می‌شود. /usr
باینری‌های دستورات غیر ضروری (که در حالت تک‌کاربره نیازی به آن‌ها نیست) برای تمامی کاربران /usr/bin
فایل‌های سرآیند استاندارد /usr/include
فایل‌های کتابخانه‌ای برای فایل‌های باینری که در دیرکتوری‌های /usr/bin و /usr/sbin وجود دارند. /usr/lib
سلسله‌مراتب سومی برای داده‌های محلیِ مختص این هاست. /usr/local
فایل‌های باینری غیر ضروری سیستمی مانند دیمِن‌هایی برای سرویس‌های شبکه /usr/sbin
کد منبع، مانند کد منبع هسته (کرنل) به همراه فایل‌های سرآیند آن /usr/src
فایل‌های متغیر (تغییرپذیر) -فایل‌هایی که انتظار می‌رود تا محتویات آن‌ها به طور پیوسته در طول عملیات سیستم‌عامل در حال تغییر باشد- مانند فایل‌های لاگ و فایل‌های موقتی ایمیل[۴] /var
دادهٔ مربوط به کَشِ برنامه‌ها. این داده‌ها به صورت محلی، در نتیجهٔ عملیات ورودی/ خروجی یا عملیات‌های محاسباتی زمان‌بر تولید می‌شوند. برنامه باید بتواند در صورت لزوم این نوع داده‌ها را دوباره تولید یا ذخیره کند. فایل‌های کَش را می‌توان پاک کرد، بدون آنکه داده‌ای از دست برود (چرا که دوباره برنامه می‌تواند آن‌ها را تولید کند) /var/cache
لاک فایل‌ها. فایل‌هایی که اطلاعات مربوط به منابع در حال استفاده را پیگیری و نگهداری می‌کنند. /var/lock
فایل‌های لاگ. لاگ‌های مختلف /var/log
صندوق رایانامهٔ (صندق پستی) کاربر /var/mail
فایل‌های موقتی که طول عمرشان از یک بازراه‌اندازی تا بازراه‌اندازی دیگر سیستم (میان دو بازراه‌اندازی) است. /var/tmp

تاریخچه[ویرایش]

نسخه تاریخ انتشار ملاحظات
نگارش قدیمی، دیگر پشتیبانی نمی‌شود: ۱٫۰ ۱۹۹۴-۰۲-۱۴ FSSTND[۵]
نگارش قدیمی، دیگر پشتیبانی نمی‌شود: ۱٫۱ ۱۹۹۴-۱۰-۰۹ FSSTND[۶]
نگارش قدیمی، دیگر پشتیبانی نمی‌شود: ۱٫۲ ۱۹۹۵-۰۳-۲۸ FSSTND[۷]
نگارش قدیمی، دیگر پشتیبانی نمی‌شود: ۲٫۰ ۱۹۹۷-۱۰-۲۶ FHS جانشین FSSTND 1.2 می‌باشد در این نسخه نام استاندارد به سلسله مراتب سیستم فایل تغییر کرد[۸][۹][۱۰]
نگارش قدیمی، دیگر پشتیبانی نمی‌شود: ۲٫۱ ۲۰۰۰-۰۴-۱۲ [۱۱][۱۲][۱۳] FHS
نگارش قدیمی، دیگر پشتیبانی نمی‌شود: ۲٫۲ ۲۰۰۱-۰۵-۲۳ FHS[۱۴]
نگارش قدیمی‌تر، هنوز پشتیبانی می‌شود: ۲٫۳ ۲۰۰۴-۰۱-۲۹ FHS[۱۵]
نگارش پایدار جاری: ۳٫۰ ۲۰۱۵-۰۵-۱۸ FHS[۱۶]
ایجاز:
نگارش قدیمی
نگارش قدیمی‌تر، هنوز پشتیبانی می‌شود
نگارش پایدار جاری
آخرین نگارش پیش‌نمایش
انتشار آتی

جستارهای وابسته[ویرایش]

منابع[ویرایش]

  1. "FilesystemHierarchyStandard - Debian Wiki". wiki.debian.org. Retrieved 2016-07-06. 
  2. "FHS 3.0 Released". June 3, 2015. 
  3. "/opt: Add-on application software packages". Filesystem Hierarchy Standard. Retrieved 18 February 2016. 
  4. Should be shareable and read-only, cf. http://www.pathname.com/fhs/pub/fhs-2.3.html.
  5. "Index of /pub/Linux/docs/fsstnd/old/fsstnd-1.0/". Ibiblio.org. Retrieved 2012-10-16. 
  6. "Index of /pub/Linux/docs/fsstnd/old/fsstnd-1.1/". Ibiblio.org. Retrieved 2012-10-16. 
  7. "Index of /pub/Linux/docs/fsstnd/old/". Ibiblio.org. Retrieved 2012-10-16. 
  8. "FHS 2.0 Announcement". Pathname.com. Retrieved 2012-10-16. 
  9. Quinlan, Daniel (14 March 2012) [1997], "FHS 2.0 Announcement", BSD, Linux, Unix and The Internet - Research by Kenneth R. Saborio (San Jose, Costa Rica: Kenneth R. Saborio), retrieved 18 February 2016 
  10. "Index of /pub/Linux/docs/fsstnd/". Ibiblio.org. Retrieved 2012-10-16. 
  11. "FHS 2.1 Announcement". Pathname.com. Retrieved 2012-10-16. 
  12. "FHS 2.1 is released". Lists.debian.org. 2000-04-13. Retrieved 2012-10-16. 
  13. Quinlan, Daniel (12 April 2000). "Filesystem Hierarchy Standard — Version 2.1, Filesystem Hierarchy Standard Group". Acadia Linux Tutorials. Wolfville, Nova Scotia, Canada: Jodrey School of Computer Science, Acadia University. Retrieved 18 October 2012. 
  14. Russell, Rusty; Quinlan, Daniel, eds. (23 May 2001). "Filesystem Hierarchy Standard — Version 2.2 final Filesystem Hierarchy Standard Group". Filesystem Hierarchy Standard. Retrieved 18 February 2016. 
  15. Russell, Rusty; Quinlan, Daniel; Yeoh, Christopher, eds. (28 January 2004). "Filesystem Hierarchy Standard - Filesystem Hierarchy Standard Group". Retrieved 2014-11-29. 
  16. Yeoh, Christopher; Russell, Rusty; Quinlan, Daniel, eds. (19 March 2015). "Filesystem Hierarchy Standard". The Linux Foundation. Retrieved 2015-05-20.