آنچه در این فصل قصد داریم مورد بررسی قرار دهیم، نحوه ی نصب یکی از توزیع های سیستم عامل گنو/لینوکس است اما پیش از نصب، بد نیست کمی در مورد نحوه ی عملکرد این سیستم عامل نکاتی را یادآور شویم.
Filesystem چیست؟
برای درک بهتر Filesystem (فایل سیستم) در لینوکس، بهتر است ابتدا مثالی از دنیای واقعی بزنیم. یک یخچال فریز را در نظر بگیرید؛ در یخچال فریزرها معمولاً بخشهای مختلفی برای موارد خوراکی مختلف در نظر گرفته میشود. به طور مثال، جایی برای مایعات، جایی برای تخم مرغ، جایی برای میوهجات و …
به این شکل، شما نسبت به زمانی که هر چیزی در هر جایی قرار گیرد، به مراتب راحتتر میتوانید به سازماندهی مواد غذایی خود پرداخته و مهمتر از آن، زمانی که به دنبال چیزی می گردید به مراتب راحتتر خواهید توانست چیزی که به دنبالش هستید را بیابید.
چنین حالتی را هم میتوان برای فایلهای سیستمی متصور شد؛ به عبارت دیگر، فایل سیستم متدی برای ذخیره سازی و سازماندهی اطلاعات مختلف است. از جمله فایل سیستمهایی که در سیستم عامل لینوکس پشتیبانی میشوند، میتوان به موارد زیر اشاره کرد:
- فایل سیستمهای قراردادی مرتبط با هارد دیسک: ext2, ext3, ext4, XFS, Btrfs, JFS, NTFS
- فایل سیستمهای ذخیره سازی فلش: ubifs, JFFS2, YAFFS
- فایل سیستمهای مرتبط با دیتابیس
- فایل سیستمهای مقاصد خاص: procfs, sysfs, tmpfs, debugfs
پارتیشن ها و فایل سیستمها
Partition (پارتیشن یا بخش) به قسمتی از یک هارد دیسک اطلاق میگردد در صورتی که فایل سیستم روشی برای ذخیره سازی/بازیابی فایلهای مختلف روی هارد دیسک است که معمولاً در یک پارتیشن خاص اتفاق می افتد. برای درک بهتر این موضوع، میتوان ارتباط مابین پارتیشن و فایل سیستم را به شجره نامه تشبیه کرد.
فایل سیستمها همچون یک شجره نامه هستند که در آن ارتباط مابین اجداد ما و روابط بین آنها، پدرانمان و ما مشخص میشود در صورتی که پارتیشن ها همچون خانوادههایی هستند که هر کدام از آنها شجره نامه ی اختصاصی خود را دارند. همانطور که در ادامه ملاحظه می گردد، مقایسه یی مابین فایل سیستم های به کار گرفته شده در سیستم عامل های ویندوز و لینوکس صورت گرفته است:
Windows Linux Disk1 /dev/sda1 Partition NTFS/FAT32 EXT3/EXT4/XFS Filesystem type DriveLetter MountPoint Mounting Parameters C drive / Base Folder where OS is stored
استاندارد سلسه مراتبی فایل سیستم
سیستمهای لینوکسی فایلهای مهم خود را بر اساس ساختاری که Filesystem Hierarchy Standard یا به خلاصه FHS نامیده میشود ذخیره می سازند. چنین استاندارد به کار گرفته شده در سیستم عامل لینوکس این اطمینال را حاصل میکند که کاربران بدون دغدغه ی درک فایل سیستمهای مختلف، بتوانند از توزیعهای مختلف لینوکسی استفاده کنند.
لینوکس بر خلاف ویندوز که از کاراکتر \ برای جدای سازی مسیرها استفاده می کند، از کاراکتر / برای جدا سازی مسیرهای مختلف در این سیستم عامل استفاده میکند و همچون سیستم عامل ویندوز دارای نام درایو -مثلا C, D, E و غیره- نیست.
درایوهای جدید به عنوان دایرکتوری های مختلف در فایل سیستم اصلی اصطلاحاً Mount (ماونت یا قرار داده) میشوند که معمولاً در دایرکتوری media/ است. به طور مثال، اگر یک مموری فلش با نامی همچون Sokanacademy به سیستم خود وصل کنیم، این مموری را در مسیری همچون مسیر زیر خواهید یافت:
/media/Sokanacademy
تمامی اسامی فایل سیستم لینوکس اصطلاحاً Case Sensitive هستند. به عبارت دیگر، به بزرگی و کوچکی حروف حساس هستند لذا boot/ و Boot/ و یا BOOT/ نمایانگر ۳ دایرکتوری (یا فولدر) مجزا از یکدیگر می باشند.
بسیاری از توزیعهای لینوکسی این قابلیت را دارا هستند تا مابین ابزارهای اصلی برای اجرا شدن سیستم عامل و سایر برنامههای جانبی تمایز قايل شوند و این برنامههای جانبی را در دایرکتوری های مختلفی زیر usr/ قرار دهند (توجه داشته باشید که منظور از usr همان User به معنی «کاربر» است.)
برای درک بهتر این موضوع که دایرکتوری های دیگر چگونه سازماندهی می شوند، در تصویر فوق دایرکتوری usr/ را یافته یا دایرکتوری های زیرشاخه ی آن را با دایرکتوری هایی که مستقیماً تحت دایرکتوری / یا root (روت یا ریشه) قرار گرفتهاند مقایسه کنید.