موضوع مقاله: فایل تهی | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # فایل تهی | مقدمه: فایل تُهی (به انگلیسی: ) نوعی از پروندهٔ رایانه‌ای است که تلاش می‌کند فضای سامانهٔ پرونده‌ها را به‌صورت کارآمدتر استفاده کند، زمانی که خود فایل تا حدی خالی است. | ## بخش 1: فایل تهی | این کار از طریق نوشتن اطلاعات مختصر (یا فراداده) برای نمایش بلوک‌های خالی به رسانهٔ ذخیره‌سازی انجام می‌پذیرد، به‌جای آن‌که فضای واقعی خالی که بلوک را تشکیل می‌دهد، ذخیره شود. تنها زمانی که یک بلوک شامل داده‌های واقعی (غیر خالی) باشد، به‌طور کامل در رسانه ذخیره می‌شود. فایل‌های تُهی معمولاً زمانی ساخته می‌شوند که بخش‌هایی از فایل هیچ‌گاه نوشته نمی‌شوند. برخی از سامانه‌های عامل یا ابزارها فراتر رفته و هنگام نوشتن یا کپی‌کردن فایل‌ها، آن‌ها را تهی‌سازی می‌کنند: اگر بلوکی تنها شامل بایت‌های صفر باشد، در رسانهٔ ذخیره‌سازی نوشته نمی‌شود، بلکه به‌عنوان بلوک خالی علامت‌گذاری می‌شود. هنگام خواندن فایل‌های تُهی، سامانهٔ پرونده به‌صورت شفاف، فرادادهٔ نشان‌دهندهٔ بلوک‌های خالی را در زمان اجرا به بلوک‌های واقعی پر از صفر تبدیل می‌کند. بیشتر سامانه‌های پروندهٔ مدرن از فایل‌های تُهی پشتیبانی می‌کنند؛ از جمله بیشتر توزیع‌های یونیکسی و NTFS. HFS+ اپل پشتیبانی بومی از فایل‌های تُهی ارائه نمی‌دهد، اما در مک‌اواس، لایهٔ سامانهٔ پروندهٔ مجازی (VFS) امکان ذخیرهٔ آن‌ها را در هر سامانهٔ پروندهٔ پشتیبانی‌شده، از جمله HFS+، فراهم می‌سازد.[نیازمند منبع] APFS نیز از فایل‌های تُهی پشتیبانی می‌کند. | ## بخش 2: فایل تهی | این نوع فایل‌ها معمولاً در تصاویر دیسک، گرفت‌های پایگاه داده، فایل‌های وقایع و در برنامه‌های علمی کاربرد دارند. مزایا برتری فایل‌های تُهی آن است که فضای ذخیره‌سازی تنها زمانی اختصاص می‌یابد که واقعاً موردنیاز باشد: ظرفیت ذخیره‌سازی حفظ می‌شود و گاهی می‌توان فایل‌های بزرگی را ایجاد کرد حتی اگر فضای آزاد کافی برای اندازهٔ واقعی آن فایل در رسانهٔ ذخیره‌سازی موجود نباشد. این ویژگی همچنین زمان نخستین نوشتن را کاهش می‌دهد؛ زیرا سامانه مجبور نیست برای فضای «پرشده» بلوک‌ها، فضای اختصاص دهد. اگر تخصیص اولیه نیازمند نوشتن همهٔ صفرها به آن فضا باشد، فایل تُهی باعث می‌شود سامانه دوباره‌کاری نکرده و صفرها را دوباره ننویسد. برای نمونه، یک تصویر ماشین مجازی با اندازهٔ بیشینهٔ ۱۰۰ گیگابایت که تنها ۲ گیگابایت دادهٔ واقعی در آن نوشته شده، در صورت استفاده از ذخیره‌سازی پیش‌اختصاصی به‌طور کامل به ۱۰۰ گیگابایت فضا نیاز خواهد داشت؛ در حالی که اگر از یک فایل تُهی استفاده شود، تنها ۲ گیگابایت فضا اشغال می‌شود. اگر سامانهٔ پرونده از حذف سوراخ پشتیبانی کند و فرمان‌های TRIM توسط سامانهٔ عامل میهمان صادر شود، حذف فایل‌ها در مهمان می‌تواند فضای استفاده‌شده را کاهش دهد. معایب از جمله کاستی‌های فایل‌های تُهی می‌توان به احتمال پراکندگی آن‌ها، نمایش نادرست فضای آزاد در سامانهٔ پرونده، و اثرات غیرمنتظره در هنگام پرشدن سامانه‌های دارای فایل تُهی اشاره کرد (مانند دریافت خطای پرشدن دیسک یا فراتررفتن از سهمیه در زمانی که تنها بخشی از یک فایل موجود بازنویسی می‌شود که پیش‌تر تُهی بوده است). | ## بخش 3: فایل تهی | همچنین کپی‌کردن فایل تُهی با برنامه‌ای که به‌طور صریح از این قابلیت پشتیبانی نمی‌کند، ممکن است موجب کپی کل اندازهٔ نامتراکم فایل شود، از جمله بخش‌های صفر که در رسانه ذخیره نشده‌اند؛ و این مزیت تهی‌بودن فایل را از بین ببرد. همچنین برخی نرم‌افزارهای پشتیبان‌گیری یا برنامه‌های کاربردی از فایل‌های تُهی به‌طور کامل پشتیبانی نمی‌کنند. بارگذاری فایل‌های اجرایی در ویندوز ۳۲ بیتی (مانند exe یا dll) که تُهی هستند، زمان بسیار بیشتری می‌برد؛ زیرا فایل نمی‌تواند در فضای آدرس‌دهی ۴ گیگابایتی محدود، نگاشت حافظه شود و به حافظه کش نیز وارد نمی‌شود؛ چرا که مسیر کدی برای کش‌کردن فایل‌های اجرایی ۳۲ بیتی تُهی وجود ندارد. (ویندوز در معماری‌های ۶۴ بیتی می‌تواند فایل‌های اجرایی تُهی را نگاشت کند).نیازمند منبع در NTFS، فایل‌های تُهی (یا بخش‌های غیرصفری آن‌ها) قابل فشرده‌سازی نیستند. NTFS تهی‌بودن را به‌صورت نوعی فشرده‌سازی پیاده‌سازی می‌کند؛ بنابراین یک فایل یا می‌تواند تُهی باشد یا فشرده. شفافیت و ایجاد فایل‌های تُهی معمولاً به‌صورت شفاف برای کاربر مدیریت می‌شوند؛ اما تفاوت میان فایل معمولی و تُهی در برخی شرایط آشکار می‌شود. همچنین، دستور du فضای اشغال‌شده را چاپ می‌کند، در حالی که ls اندازهٔ ظاهری فایل را نمایش می‌دهد. | ## جمع‌بندی | GNU همچنین گزینه‌ای به‌نام --sparse دارد، که مخصوصاً زمانی مفید است که فایلی شامل بلوک‌های طولانی از صفرها به‌صورت غیر تُهی ذخیره شده باشد (یعنی بلوک‌های صفر به‌طور کامل روی رسانه نوشته شده‌اند).