ویندوز فایل‌ها را سریع‌تر کپی می‌کند یا لینوکس؟ این سوال یکی از سوالاتی است که کاربران ویندوز که در فکر استفاده از لینوکس هستند، از خود می‌پرسند. در حقیقت سیستم عامل لینوکس مزایا و معایبی نسبت به ویندوز دارد و یکی از مزایای آن، سیستم فایل EXT4 است که برای جابجایی فایل‌ها و مدیریت سکتورهای هارددیسک، انتخاب بهتری است.

اما آیا واقعاً لینوکس در جابجا کردن فایل‌ها سریع‌تر از ویندوز عمل می‌کند؟

در ادامه به مفهوم سیستم فایل می‌پردازیم و مقایسه‌ای بین EXT4 لینوکس با FAT32 و NTFS ویندوز خواهیم داشت و در نهایت به پاسخ این سوال جالب می‌رسیم. سیاره‌ی آی‌تی را همراهی کنید.

وقتی در ویندوز فایل‌ها یا فولدرهایی را از محلی به محل دیگر کپی می‌کنید، ویندوز زمان تخمینی انتقال فایل را نمایش می‌دهد. در ویندوز ۸ و ویندوز ۱۰ حتی نمودار سرعت جابجایی نیز ترسیم می‌شود. مدت زمان باقیمانده همواره در تغییر است و ممکن است ناگهان از ۵ دقیقه، به ۲ ساعت تغییر کند! در واقع سرعت جابجا کردن فایل‌ها بسته به اینکه کوچک باشند یا یکپارچه و بزرگ، کاملاً متفاوت است. ممکن است یک فیلم ۱ گیگابایتی را در زمان یک دقیقه روی فلش‌درایو USB خود کپی کنید اما برای کپی کردن ۱۰۰۰ فایل موسیقی ۱ مگابایتی، زمان تخمینی چند برابر بیشتر می‌شود چرا که سرعت کپی کردن فایل‌های کوچک، چند برابر کمتر است.

در سیستم عامل لینوکس هم زمان تخمینی برای جابجایی فایل‌ها محاسبه می‌شود و البته قابل‌اطمینان‌تر است و نوسانات کمتری دارد. برخی کاربران معتقد هستند که لینوکس فایل‌ها را سریع‌تر از ویندوز جابجا می‌کند. شاید این برداشت، صرفاً حسی و اشتباه باشد اما از نگاه علمی، آیا لینوکس در انتقال فایل‌ها سریع‌تر از ویندوز عمل می‌کند؟

برای پاسخ به این سوال جالب، ابتدا باید مقوله‌ی سیستم فایل را بررسی کنیم و به مقایسه‌ی سیستم فایل پیش‌فرض در لینوکس با سیستم فایل NTFS که در ویندوز مرسوم است، بپردازیم.

اثر حجم و تعداد فایل‌ها روی سرعت کپی کردن فایل‌ها

به عنوان مثال به بنچ‌مارک CrystalDiskMark توجه کنید که سرعت خواندن و نوشتن داده‌های ۴ کیلوبایتی با طول صف ۳۲ واحد و همین‌طور سرعت خواندن و نوشتن ترتیبی (فایل‌های بزرگ با داده‌های پشت‌سرهم و پیوسته) را اندازه‌گیری می‌کند. نتیجه‌ی اجرا کردن این بنچ‌مارک روی یک کامپیوتر معمولی به صورت زیر است:

با توجه به تصویر فوق، سرعت خواندن فایل‌های بسیار کوچک ۴ کیلوبایتی که به صورت تصادفی چیده شده‌اند، فقط ۰.۶ مگابایت بر ثانیه است در حالی که سرعت خواندن فایل‌های بزرگ و پیوسته، حدود ۸۵ مگابایت بر ثانیه است.

 

سیستم فایل یا File System چیست؟

درایوهای هارددیسک به sector تقسیم می‌شوند و چند سکتور یا بخش در یک گروه به اسم Cluster‌ قرار می‌گیرند. کلاسترها به دنبال هم روی دیسک قرار گرفته و حافظه‌ای پیوسته را تشکیل می‌دهند. زمانی که یک درایو هارددیسک را به پارتیشن‌هایی تقسیم می‌کنیم و سپس هر پارتیشن مثل درایو C‌ را فرمت می‌کنیم، در حقیقت File System روی پارتیشن اعمال می‌شود تا سیستم عامل بتواند آن را مدیریت و استفاده کند.

به عبارت دیگر سیستم فایل وظیفه‌ی نگه داشتن بانک داده‌ای از وضعیت Clusterها را بر عهده دارد. وقتی فایلی در یک یا چند کلاستر ذخیره می‌شود، این دیتابیس است که به سیستم عامل می‌گوید فایل در چه بخشی از هارددرایو یا دیگر اقسام حافظه‌ی ذخیره‌سازی ذخیره شده و چگونه باید به آن دسترسی پیدا کند.

بدیهی است که اگر سیستم فایل برای وسایلی مثل هارد، SSD و یا فلش‌درایوهای USB مشخص نشده باشد، سیستم عامل نمی‌تواند فایل رویشان ذخیره کند و یا اطلاعات فایلی را بخواند.

سیستم فایل ویندوز، لینوکس و مک‌های اپل چیست؟

در سال ۱۹۷۷ سیستم فایل FAT یا File Allocation Table که به معنی جدول تخصیص مکان فایل است، معرفی شده و هنوز هم به دلایل مختلف در فرمت کردن فلش‌درایوهای USB استفاده می‌شود. اپل برای محصولات جدید خود از سیستم فایل APFS استفاده می‌کند که مخفف Apple Filesystem است و اکنون در مک‌ها استاندارد شده است.

لینوکس و ویندوز از سیستم فایل متفاوتی استفاده می‌کنند. NTFS یا New Technology File System در سال ۱۹۹۳ و در ویندوز NT 3.1 برای اولین بار استفاده شد و پس از معرفی ویندوز XP در سال ۲۰۰۱ به عنوان سیستم فایل پیش‌فرض ویندوز به کار می‌رود. در سیستم عامل لینوکس تنوع سیستم فایل‌ها بیشتر است. سیستم فایل پیش‌فرض در اغلب توزیع‌های لینوکس، EXT4 است که مخفف Fourth Extended File System است و در حقیقت چهارمین نسخه‌ی سیستم فایل EXT است که در سال ۱۹۹۲ معرفی شد.

توجه کنید که سیستم فایل‌ها صرفاً راهکاری برای مدیریت کردن کلاسترها نیستند بلکه با توجه به ساختاری که دارند، ممکن است امکانات پیشرفته و عملکرد متفاوتی در مقایسه با انواع ساده‌تر و قدیمی‌تر داشته باشند. به عنوان مثال اگر فلش‌درایوی را با سیستم فایل FAT32 فرمت کنیم، احتمال اینکه ویندوز یا دیگر دیسک‌های بوت‌ابل به درستی بوت شود، بیشتر می‌شود اما در مقابل نمی‌توان فایلی با ظرفیت بالاتر از ۴ گیگابایت روی آن ذخیره کرد. اگر این فلش‌درایو را با سیستم فایل NTFS فرمت کنیم، وضعیت برعکس می‌شود!

چه عواملی روی سرعت جابجایی فایل‌ها اثر منفی می‌گذارند؟

تصور کنید که لینوکس و ویندوز را روی یک سیستم و یک هارد درایو نصب کرده‌ایم و در واقع سخت‌افزار یکسان است. در این شرایط چند عامل مهم روی سرعت کپی کردن یا Move کردن فایل‌ها، اثر می‌گذارند و باید این موارد را بررسی کرد:

  • آیا نرم‌افزارهایی در پس‌زمینه اجرا شده و در حال استفاده از هارددیسک است؟
  • آیا پردازنده و رم سیستم به شدت درگیر پردازش است؟
  • آیا نقل و انتقال فایل در شبکه محلی و یا از طریق اینترنت در حال انجام است؟
  • آیا درایور یا نرم‌افزار مشکل‌ساز و همین‌طور ویروس و بدافزار روی سیستم نصب و اجرا شده است؟

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

آیا سیستم فایل اصلی لینوکس موجب افزایش سرعت جابجایی فایل‌ها می‌شود؟

صرف‌نظر از مواردی که که ممکن است سرعت انتقال فایل‌ها را چند برابر کم کنند، لینوکس معمولاً در جابجایی فایل‌های کوچک، سریع‌تر است! در حقیقت سیستم فایل EXT4 ساختار بهینه‌تری برای کار با فایل‌های کوچک دارد و این موضوع در بنچ‌مارک‌های معتبر و دقیق، اثبات شده است. نمونه‌ای از بنچ‌مارک‌های مربوط به داده‌های کوچک را مقایسه کنید:

بنچ‌مارک دیگر مربوط به سرعت خواندن فایل‌های بزرگ است و در حقیقت ۲ گیگابایت داده از دیسک خوانده می‌شود:

همان‌طور که مشاهده می‌کنید اگر فایل‌ها بزرگ و کم‌تعداد باشند، عملکرد سیستم فایل FAT32‌ تقریباً مثل EXT3 و EXT4‌ لینوکس است.

سیستم فایل EXT4 قبل از تخصیص بلوک‌هایی برای ذخیره کردن فایل، منتظر می‌شود که داده آماده‌ی نوشتن روی دیسک شود و به همین جهت سرعت کمی بالاتر است. در مقابل سیستم فایل NTFS زمانی که فضای خالی به صورت پیوسته و کافی برای فایل جدید وجود ندارد، آن را تکه‌تکه کرده و در سکتورهای مختلف ذخیره می‌کند. به عبارت دیگر Fragmentation اتفاق می‌افتد که روی عملکرد اثر منفی دارد. به همین علت است که هر از گاهی می‌بایست پارتیشن‌های هارد را در ویندوز، دیفرگ کرد. EXT4 از نظر ساختاری به گونه‌ای نیست که دیفرگ کردن ضرورتی داشته باشد.

در مورد SSDها با توجه به اینکه تأخیر در دسترسی بسیار کمتر است، دیفرگ کردن ضرورتی ندارد و حتی عمر مفید را کاهش می‌دهد و نباید انجام شود.

در نهایت ذکر این نکته لازم است: ویندوز در کار با فایل‌ها حین فرآیند Copy یا Cut و همین‌طور Save کردن فایل، محتاطانه عمل می‌کند تا اشتباهاً فایلی از بین نرود و یا به صورت ناقص ذخیره نشود. این احتیاط مضاعف هم یکی از دلایل پایین‌تر بودن سرعت جابجایی فایل در ویندوز است.