هاردوير

22/08/2013 15:40:54

لم لايوجد حذف حقيقي في الحاسب ولم يمكن استعادة الملفات في وقت لاحق؟

عندما يتم حذف أي ملف من على القرص الصلب فعملياً لايتم حذف هذا الملف بل يتم وضع إشارة معينة تدل على إمكانية الكتابة فوق المساحة التي يشغلها هذا الملف لاحقاً بحيث يمكن إستعادة كامل الملف بدون أي مشاكل في حال لم يتم كتابة أي ملف جديد على القرص الصلب الحاوي على الملف المحذوف.

من المهم جداً القيام بعملية الحذف النهائي للملفات wipe خاصة عندما تقرر بيع حاسبك فقد يتمكن المالك الجديد من إستعادة جميع الملفات الحساسة التي كنت قد امتلكتها في يوم من الأيام.

آلية التخزين على القرص الصلب Hard Disk :

الملف :

كما هو معروف فإن كل تعاملات الحاسب هي مع الأصفار والواحدات لنفرض أننا نملك ملف نصي ذو لاحقة txt يدعى الملف باسم hello والملف تم تخزينه على قرص صلب خال تماماً من أي ملف آخر (بكلمة أخرى القرص يحوي أصفاراً من أوله لآخره)

يحوي الملف hello.txt نصاً بسيطاً كما هو موضح في الشكل التالي:

سيتم تخزين النص hello, world بشكل ثنائي بعد تحويله من الأبجدية المحرفية إلى الأبجدية الثنائية ليصبح ربما بهذا الشكل (بحسب الترميز المعتمد):

01010101001010101010111110000001111100101010101

ولكن لزيادة التوضيح سنعتبر بأن التخزين سيتم بشكل نصي وليس ثنائي.

القرص الصلب :

يمكننا تمثيل القرص الصلب كمصفوفة ثنائية تملك a..z عمود أي 26 عموداً و a..f سطر أي 6 أسطر لاغير.

يشير كلمة TOC table of content المشار إليها باللون الأصفر إلى جدول المحتويات وهو عبارة عن مؤشرات للملفات المخزنة على القرص بحيث يقوم بتحديد بداية ونهاية المساحة التي يشغلها كل ملف كما يمكن تشبيهه بدليل الصفحات الصفراء الذي يحوي عناوين وأرقام الشركات.

(علاج الحالات الخاصة في عدم توفر مساحة حرة متتالية لحجز يكمن في تجزئة الملفات).

يحجز جدول المحتويات السطر الأول والثاني أي السطري a و السطر b بحيث يحجز 3 خانات في البداية لشير لبداية جدول المحتويات ويحجز 3 خانات من xb إلى xz بحيث تشير لنهاية جدول المحتويات.

عملياً يتم تخزين الملفات إذن ضمن الأسطر c,d,e,f اي نملك مساحة حرة على القرص الصلب تقدر بـ 26*4 خانة وعلى اعتبار أن كل خانة يمكن لها ان تمثل جميع الأحرف النصية أي هي 1Byte وبالتالي مساحة القرص الحرة هي 4*26*1 بايت = 104 بايت.

يشير اللون الأخضر إلى المساحة الحرة المتوفرة على القرص الصلب والتي تساوي 104 بايت.

   a b c d e f g h i j k l m n o p q r s t u v w x y z

T O C 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 T O C

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

ويصبح القرص الصلب بعد تخزينه للملف hello.txt السابق بالشكل التالي :

مساحة القرص الحرة أصبحت = 104-12 = 92 بايت.

جدول المحتويات أضيف إليه قيمتين:

- اسم الملف والذي يبدأ بالخانة ad وينتهي بـ al.

- عنوان بداية ونهاية الملف والذي يبدأ بالخانة am وينتهي بـ ap.

   a b c d e f g h i j k l m n o p q r s t u v w x y z

T O C h e l l o . t x t a e l e 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 T O C

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

H e l l o , _ w o r l d 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 

ماذا يحدث عندما تقوم بحذف ملف ؟

كل نظم التشغيل الحديثة تعمل على مبدأ ملاحقة الملفات عن طريق وضع مؤشرات لها في جدول المحتويات TOC الذي يشغل حيزاً بسيطاً من مساحة القرص الإجمالية وكما ذكرنا فإن جدول المحتويات يهدف بشكل رئيسي لتحديد بداية ونهاية كل ملف.

كنا قد وضحنا في موضوع سابق الحالات التي سيصبح عليها القرص الصلب عندما يرغب بحجز مساحة غير متوفرة بشكل متتال وعن عملية تجزئة الملفات وتعامل نظامي لينكس وويندوز مع هذه الظاهرة. (ننصحك بشدة بقراءة الموضوع السابق قبل الإكمال بهذا الموضوع).

في مثالنا السابق في حال قرر المستخدم حذف الملف hello.txt سيقوم نظام التشغيل بحذف المؤشرات الموجودة في جدول محتويات القرص الصلب وسيتم وضع إشارات خاصة (في مثالنا إشارة تعجب ؟) مكان الملف المحذوف وبالتالي تشير إشارات التعجب لإمكانية كتابة أي ملف جديد فوق الملف القديم على القرص الصلب.

لهذا السبب ينصح بعدم نسخ أو وضع اي ملف جديد على القرص الصلب بعد محاولة استعادة الملف المحذوف.

   a b c d e f g h i j k l m n o p q r s t u v w x y z

T O C 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 T O C

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

? ? ? ? ? ? ? ? ? ? ? ? 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

سيبقى نظام التشغيل قادراً على إستعادة الملف المحذوف طالما يشار إليه بإشارة ؟ فهو عملياً مازال يحتفظ بقيمته القديمة إلى أن يتم الكتابة فوقه لهذا السبب نجد أن بعض البرامج مثل CCleaner  يعمل على حذف الملفات والكتابة فوقه بعملية تدعى الحذف النهائي Wipe كي تصعب إستعادة الملف مرة أخرى (للأسف حتى هذه العملية يمكن كسرها وإستعادة الملفات بصعوبة أكثر وخوارزميات أعقد).

كل ماسبق لايطبق على أقراص الحالة الصلبة SSD التي هي اختصار لـ Solid State Drive.

لذا يمكن القول بأن عملية حذف الملفات ماهي إلا حذف للمؤشرات لا الملفات.

لم لايتم حذف الملفات بشكل فوري ونهائي ؟

لعلك تتسائل الآن لم لايتم حذف الملفات فوراً عوضاً عن حذف المؤشرات الخاصة بها فقط؟

كما ظهر منذ قليل فإن حجم المؤشرات صغير للغاية مقارنة مع حجم الملف نفسه لذا فإن حذف المؤشر ووضع قيم إشارات ؟ على المساحة المتوفرة هي عملية أسرع بكثير من حذف الملفات بشكل فعلي حيث يشمل الحذف الحقيقي إعادة مغنطة المساحة الحرة من جديد والتي قد تأخذ وقتاً لا يستهان به تخيل لو أردت حذف ملف 10GB فقد تتطلب خوارزمية حذف المؤشرات بضع ثوان بينما الحذف الحقيقي لهذا الملف قد يتطلب بضع دقائق ولاتنسى بأن القرص الصلب هو عنق الزجاجة في الحاسب(العنصر الأكثر بطئاً).

لذا فقد اتفق العديد من مصنعي نظم التشغيل على حذف المؤشرات فحسب لتوفير الوقت وزيادة الأداء.

كل الكلام السابق لايطبق على أقراص الحالة الصلبة SSD فهي تدعم خاصية تدعى TRIM والتي تعمل على الحذف الفوري وذلك بسبب سرعة حذف الملفات بشكل فعلي على ذواكر الفلاش التي تعتمد في عملها عليه.

بشكل رئيسي فإن ذواكر تخزين الفلاش لايمكن أن يكتب فوقها فيتوجب عملياً حذف محتويات الخلية الخاصة بالتخزين من ثم الكتابة عليها ولايمكن الكتابة فوقها بشكل مباشر كما هو حال الأقراص الصلبة HHD والتي تعتمد على إعادة مغنطة القطاع.

لجميع الأسباب المذكورة فإن أقراص الحالة الصلبة تعمل على الحذف المباشر للملفات بحيث لايمكن إستعادة الملفات بعد حذفها وكل ذلك في نهاية المطاف يهدف لتسريع عملية الكتابة على القرص.