الكثير منا قد يتملكه الفضول من النتائج التي تظهر لك بعد عمل properties لأي ملف كان أو مجلد , فهذه النتائج تخبرك بوجود حجمين لنفس الملف الأول هو Size و الثاني هو Size On Disk , و دائما ما نجد أن قيمة الحجم أي Size تكون أقل من الحجم على القرص الصلب أي " Size On Dsik ", و كغريزة إنسانية لابد و أنه قد أصابك الفضول من اختلاف حجمين لملف واحد , لكن اليوم سأشفي فضولك بالسبب العلمي لهذا الاختلاف , فأساس كل هذا مرتبط بنظام الملفات المستخدم على النظام و ألية تخزينه للبينات و حتى يسهل عليك فهم هذا , أقترح عليك أن تطلع في أول الأمر على الفرق بين الفورمات بـ FAT , FAT32 , NTFS , REFS , exFAT , حتى يسهل عليك فهم ألية التخزين و السبب الذي قد يدفع النظام لزيادة حجم الملف أصلي بعد تخزينه , و لكن و حتى تفهم هذا أكثر و تعرف الفرق بين هذان الحجمين فبقي معي .
و مثال أخر لتعزيز الفهم , مثلاً لدينا قرص صلب بي 4 غيغا تم تهيئته (فرمتته) على أساس Fat 16 سيكون حجم Cluster الواحدة 32 كيلو بايت، تخيلو معي كيف سيخزن ملف بحجم 1 كيلو في هذا القرص سيحجز لوحده Cluster ويبقى 31 كيلو دون استخدام , لأن Cluster لا يتشارك في التخزين أكثر من ملف , وكذلك ملف حجمه 68 كيلو سيحجز 3 Cluster أول اثنتين منهم ستكونان ممتلئتين والثالثة ستحجز 4 كيلو ويبقى 28 كيلو دون استخدام هذا الكلام سيؤدي بالنتيجة إلى تراكم مساحات غير موظفة وغير قابلة للاستخدام , و هذا هو السبب الذي يجعل حجم الملف و حجمه على القرص الصلب مختلف .
و لكي أشرح لماذا قلت أن كل هذا مرتبط بنظام الملفات , فل نتخذ مثال بنظام ملفات لنظام أخر وهو EXT4 مثلا وهو نظام متطور نسبيا يستخدم بكثر ألان على لينكس , من مميزاته أنه يقوم بالكتاب على القرص الصلب أو القسم المعد به بشكل منظم فمثلا قمنا بنقل ملف عليه و أخد 3 Cluster و بقي من كلوستر 3 جزء فارغ عند الكتاب مرة أخرى سيكمل من حيث توقف و يملأ القطاع الثالث الذي مازال فيه مساحة فارغ و ينتقل إلى الذي بعده مما يمنع ضياع المساحة و بتالي حجم موحد بين الذي هو على القرص الصلب و كذالك الأصلي .
الفرق بين حجم الملف و حجمه على القرص الصلب :
أولا وجب أن تعرف أن أي نظام تشغيل يقوم بتهيئة القرص الصلب الخاص بك لاستخدامه سواء لتخزين البيانات أو غيره و ذلك بتقسيمه إلى قطاع وعند تخزين البيانات يتم تخزينها في هذه القطاعات وهذه القطاعات تسمي Cluster , و كل نظام ملفات يتعامل بحجم مختلف لهذه القطاعات فمثلا حجم الكلستر في نظام ملفات FAT 16 يساوي 64 Kbs و في NTFS يساوي 4 Kbs , و لنفهم هذا أكثر , تخيل معي أن القرص الصلب لدبك هو مكتبة و هذه المكتبة مكونة من رفوف كل رف يستطيع أن يحمل عدد محدد من الكتب نقول أنه 7 كتب , و لدينا موسوعة من الكتب مكون من 16 كتاب على سبيل المثال , إذن عندما أقوم بوضع هذه الكتب في الرفوف فسنستعمل 3 منهما إثنين تملأن أي 7 + 7 = 14 و 16 - 14 = 2 و الكتابان الباقيان سيأخذان رف كامل , لماذا إذا ؟ و سيبقا لنا 5 كتب يمكن إضافتها إلى الرف الثالث ؟ نعم هذا صحيح لكن هكذا يعمل نظام الملفات إن ملء جزء بسيط من قطاع ما فلن يعيد الكتاب عليه بل ستحتسب المساح الفارغ منه مع مساحة الملف , و لو طبقنا هذا على مثالنا فحجم الموسوعة في المكتبة هو 21 كتاب بينما حجمها الحقيقي 16 كتاب , و هكذا فإن حجم الملف الحقيقي هو Size و و الحجم الذي يأخذ الملف من القطاعات هو Size On Disk .و مثال أخر لتعزيز الفهم , مثلاً لدينا قرص صلب بي 4 غيغا تم تهيئته (فرمتته) على أساس Fat 16 سيكون حجم Cluster الواحدة 32 كيلو بايت، تخيلو معي كيف سيخزن ملف بحجم 1 كيلو في هذا القرص سيحجز لوحده Cluster ويبقى 31 كيلو دون استخدام , لأن Cluster لا يتشارك في التخزين أكثر من ملف , وكذلك ملف حجمه 68 كيلو سيحجز 3 Cluster أول اثنتين منهم ستكونان ممتلئتين والثالثة ستحجز 4 كيلو ويبقى 28 كيلو دون استخدام هذا الكلام سيؤدي بالنتيجة إلى تراكم مساحات غير موظفة وغير قابلة للاستخدام , و هذا هو السبب الذي يجعل حجم الملف و حجمه على القرص الصلب مختلف .
و لكي أشرح لماذا قلت أن كل هذا مرتبط بنظام الملفات , فل نتخذ مثال بنظام ملفات لنظام أخر وهو EXT4 مثلا وهو نظام متطور نسبيا يستخدم بكثر ألان على لينكس , من مميزاته أنه يقوم بالكتاب على القرص الصلب أو القسم المعد به بشكل منظم فمثلا قمنا بنقل ملف عليه و أخد 3 Cluster و بقي من كلوستر 3 جزء فارغ عند الكتاب مرة أخرى سيكمل من حيث توقف و يملأ القطاع الثالث الذي مازال فيه مساحة فارغ و ينتقل إلى الذي بعده مما يمنع ضياع المساحة و بتالي حجم موحد بين الذي هو على القرص الصلب و كذالك الأصلي .
أتمنا أن هذا كان كافي لكي تفهم السبب الذي يجعل حجم الملف الأصلي و الحجم على القرص الصلب مختلف , و أن أكون قد أشبعت فضولك , شكرا على المتابعة و إلى موضوع جديد بإذن الله .