
سالهاست کاربران ویندوز با حروف درایو (Drive Letters) برای دسترسی به فایلها و پوشهها کار میکنند؛ سیستمی که ریشه آن به دهه ۱۹۷۰ و رایانههای اولیه بازمیگردد. در مقابل، سیستمعاملهای شبهیونیکس مانند لینوکس و مکاواس از درخت فایل یکپارچه (Unified File Tree) استفاده میکنند و هر درایو را بهصورت یک پوشه در ساختار واحد سوار میکنند.
ریشه تاریخی حروف درایو
نخستین سیستمعامل پرکاربردی که سلسلهمراتب حروف درایو را رایج کرد، CP/M (Control Program for Microcomputers) بود؛ نرمافزاری که در سال ۱۹۷۴ برای ماشینهای ۸ بیتی ساخته شد. با آغاز عصر IBM PC در سال ۱۹۸۱، MS-DOS جای CP/M را گرفت و مایکروسافت با خرید 86-DOS آن را به PC DOS و MS-DOS تغییر نام داد.
در معماری اولیه رایانههای شخصی، درایوهای فلاپی نقش محوری داشتند و سختافزار و BIOS وجود حداکثر دو درایو فلاپی را انتظار داشتند. به همین دلیل حروف A: و B: به این درایوها اختصاص یافت. IBM PC XT در سال ۱۹۸۳ نخستین رایانه IBM بود که یک هارد دیسک داخلی را بهصورت استاندارد ارائه میکرد؛ چون A: و B: قبلاً اشغال شده بودند، هارد دیسک حرف C: را دریافت کرد.
این نامگذاری ماندگار شد. با MS-DOS 5.0 در سال ۱۹۹۱ حرف C: برای هارد دیسک اصلی رزرو شد، حتی اگر بیش از دو درایو فلاپی روی سیستم وجود داشت. درایوهای CD-ROM و DVD-ROM نیز بهطور پیشفرض حروف بعدی مانند D: و E: را گرفتند.
سازگاری عقبرو؛ دلیل اصلی ماندگاری در ویندوز
پرسش طبیعی این است که چرا مایکروسافت پس از حذف فلاپیدرایوها، حروف A: و B: را به درایوهای اصلی و ثانویه اختصاص نداد. پاسخ اصلی، سازگاری عقبرو (Backward Compatibility) است. برنامهها فرض میکنند درایو اصلی ذخیرهسازی C: است و نصب، پیکربندی و فایلهای سیستمی بر همین اساس ساخته شدهاند. تغییر این پیشفرضها میتواند سازگاری با نرمافزارهای قدیمی و جدید را مختل کند.
به همین دلیل ویندوز حتی اجازه نمیدهد حروف A: یا B: به درایو بوت اختصاص یابد؛ زیرا سیستمعامل این دو حرف را به شکلی متفاوت مدیریت میکند. در عمل، حفظ وضعیت موجود هزینه چندانی برای ویندوز ندارد و تغییر آن ریسک ناسازگاری ایجاد میکند.
رویکرد یکپارچه لینوکس
لینوکس مسیر متفاوتی را انتخاب کرده است. در این سیستمعامل، هر درایو بهجای آنکه درخت فایل مستقل خود را داشته باشد، بهصورت یک پوشه در ساختار واحد سوار میشود (Mount). برای نمونه میتوان به مسیرهایی مانند /dev/sda و /dev/sdb اشاره کرد. همه این مسیرها زیر پوشه ریشه (Root) با نماد / قرار میگیرند.
- /home: برای هر کاربر یک پوشه جداگانه دارد؛ مشابه C:\\Users در ویندوز.
- /bin و /usr/bin: بهترتیب فایلهای سیستمی و باینریهای کاربر (User Binaries) را نگه میدارند؛ معادلهای ویندوزی آنها C:\\Windows\\System32 و C:\\Program Files هستند.
- /lib و /usr/lib: کتابخانههای اشتراکی (Shared Libraries) و ماژولهای هسته (Kernel Modules) را در خود جای میدهند.
- /boot: بوتلودر (Bootloader) و فایلهای هسته (Kernel) را نگه میدارد؛ فایلهای پیکربندی بوتلودر در /etc قرار میگیرند.
- /media و /run/media: محل سوار کردن درایوهای قابلحمل هستند.
در لینوکس همهچیز بهعنوان فایل در نظر گرفته میشود و پوشههایی با کاربرد مشخص برای فایلهای سیستمی، کاربری، پیکربندی و بوت وجود دارد. این جداسازی مزایایی دارد؛ هنگام تعویض یا گسترش فضای ذخیرهسازی، مسیر فایلها بهسادگی خراب نمیشود، زیرا درایوها از دیسک فیزیکی جدا شدهاند. همچنین چند دیسک، سرور و فضای ذخیرهسازی ابری میتوانند بهصورت یک درایو یکنواخت دیده شوند و مدیریت فایل و نوشتن اسکریپت در ترمینال تمیزتر است.
جمعبندی
ویندوز به دلیل حفظ سازگاری با سختافزار و نرمافزارهای چهار دهه گذشته همچنان به حروف درایو پایبند مانده است. لینوکس اما با درخت فایل یکپارچه، مزیتهای مشخصی در جداسازی مسیرها و مدیریت انعطافپذیر فضای ذخیرهسازی ارائه میکند. هیچکدام از این دو رویکرد بهطور مطلق برتر نیستند، اما انتخاب لینوکس در بسیاری از سناریوها منطقیتر به نظر میرسد.