درووستکردنی Permadelete: پێرمادیڵیت چۆن کاردەکات

0
بابەت بڵاوبکەوە......
Share on FacebookEmail this to someoneShare on Google+Pin on PinterestTweet about this on TwitterShare on LinkedInShare on RedditShare on TumblrDigg this

پێشەکی

هەر لە سەرەتای دەستپێکردنم، باشترین ڕێگا بۆ من بۆ فێربوونی پڕۆگرامینگ درووستکردنی بەرنامەی بچووک بچووک بووە، لە هەر یەکەیان بوارێکی بەرنامەسازی فێربووم. پێرمادیڵیتیش زۆر شتی فێرکردم، گرینگترینیان: Asyncronous Programming و File IO بوون، جگە لە زانیاری زۆر لەسەر چۆنییەتی کارکردنی دیسک و فایل سیستەم و چەندان شتی دیکە.

پێرمادیڵیت بەرهەمێکی سەرچاوەکراوەی درەختی گەشەپێدەرانە کە تایبەتە بە سڕینەوەی فایل بە شێوەیەکی هەمیشەیی. دەتوانی لێرە دایبەزێنیت. وە کۆدەکانیش لە Github بەردەستن و دەتوانی سەیریان بکەیت و هاوکاریشمان بکەیت. نزیکەی ٣ مانگی پێچوو تا گەیشتە وەشانی 0.5، کە بەپێی پێویست هەراش ببوو کە بڵاوی بکەمەوە و بیدەمە دەست بەکارهێنەران. لە ماوەی ئەو چەند هەفتەیەی کە بڵاومکردوە، چەندین ڕەخنە و پێشنیاری زۆر بایەخدارم بۆ هات. کە یارمەتیدەر دەبن بۆ پتر بەرەو پێشبردنی بەرنامەکە.

هەوڵدەدەم لە زنجیرە وتارێک باسی چۆنییەتی درووستکردن و ئەو شتانە بکەم کە لە درووستکردنی پێرمادیڵیت فێری بووم. لە یەکەم بەشدا، باسی چۆنییەتی کارکردنی بەرنامەکە دەکەم.

بۆچی پێرمادیڵیتت پێویستە؟

پێرمادیڵیت یەکێکە لەو بەرنامانەی کە پێیان دەگوترێ File Shredders کە تایبەتن بە سڕینەوەی فایل بە شێوەیەکی هەمیشەیی. بەڵام ئەو جۆرە بەرنامانە بۆچی پێویستن؟ بۆ دوای سڕینەوەی فایل، دەتواندرێ بگەڕێندرێنەوە؟ بۆ وەڵامدانەوەی ئەو پرسیارانە پێویستە شارەزاییمان هەبێت لەسەر چۆنییەتی هەڵگرتنی فایلەکان.

سیستەم بۆ هەر فایلێک کە لەسەر دیسکی هەڵدەگرێت، چەندین زانیاری دیکەشی لێ تۆمار دەکات. بۆ نموونە: ناوی فایلەکە، قەبارەی، کەی درووستکراوە و هتد.. ئەو جۆرە زانیاریانە پێیان دەگوترێ مێتاداتا (Metadata). بەڵام یەک لە گرینگترین ئەو مێتاداتایانەی کە سیستەم تۆماری دەکات ئەوەیە کە ئەو فایلە لەکوێی دیسک هەڵگیراوە. واتە داتا ڕاستەقینەکە، 0و 1ـەکەکان، لە کوێی دیسک هەڵگیراون. سیستەمی کارپێکردن مێتاداتای هەموو فایلەکان لە خشتەیەک هەڵدەگرێت کە پێی دەگوترێ فایل سیستەم (File System). هەر کاتێک سیستەم پێویستی بە فایلێک بوو سەیری مێتاداتای ئەو فایلە لە فایل سیستەم دەکات و شوێنی فایلەکە لەسەر دیسک دەدۆزێتەوە.

کێشەکان کاتێک دەستپێدەکەن کە سیستەم دەیەوێ فایلێک بسڕێتەوە. لە بڕی ئەوەی کە هەموو 0 و 1 ـەکەکان لەسەر دیسک بسڕێتەوە، تەنها مێتاداتای فایلەکە لە فایل سیستەم دەسڕێتەوە. واتە داتا ڕاستەقینەکە هێشتاش هەر لەسەر دیسک ماوە و تەنها گەیشتن پێی زەحمەتتر بووە. بێگومان ئەوەش هۆکاری خۆی هەیە، یەک لە هۆکارەکانیشی ئەوەیە کە بۆ سڕینەوەی 0 و 1ەکان سیستەم کاتێکی زۆر پێدەچێت.

دوای ماوەیەک کە سیستەم پێویستی بە شوێن هەبوو بۆ هەڵگرتنی فایلی نوێ، لەوانەیە داتای فایلە نوێکە لەسەر داتای فایلە کۆنەکە بنووسێت. بەوەش داتا کۆنەکە بۆ هەمیشە دەسڕڕێتەوە. بەڵام ئەو کرادارە دەکرێ دوای ماوەیەکی زۆر ڕووبدا، هەندێک جار چەندین مانگی پێدەچێت. ئەوەش زۆرتر لەسەر چاڵاکی بەکارهێنەر و ڕێژەی بەکارهێنان و قەبارەی دیسکەکە دەوەستێت.

بەڵام تا سیستەم فایلە نوێەیەکە لە شوێنی فایلە کۆنەکە دادەنێت، نەرمەکاڵای تایبەت کە پێیان دەگوترێ Recovery Software دەتواندرێ بەکاربهێندرێن بۆ هێنانەوەی فایلە سڕڕاوەکە. بۆ زانیاری زۆرتر دەربارەی چۆنییەتی کارکردنی ئەو جۆرە بەرنامانە دەتوانی سەیری ئێرە بکەی، بەڵام بە کورتی ئەو بەرنامانە هەموو بایتەکانی دیسک دەگەڕێن بۆ دۆزینەوەی فایلی سڕدراوە. هەر جۆرە فایلێکیش ئیمزا (Signature)ی تایبەت بە خۆی هەیە. بۆ نموونە هەموو وێنەیەکی جۆری Jpeg بەو سێ بایتە دەستپێدەکەن:   FF D8 FF. وە هەموو فایلێکیش بە کارەکتەری End of file (EOF) کۆتاییان دێت. کە 26 ـەمین کارەکتەرە لە ستانداردی ASCII. کەواتە هەر کە بارنامەکە گەیشتە سێ بایت کە نرخیان FF D8 FF بوو ئەوا ئەگەری هەیە گەیشتبێتە وێنەیەکی Jpeg و دەتوانێت بایتەکانی دواتر بخوێنێتەوە تا دەگاتە EOF، بەمەش دەگاتە کۆتایی فایلەکە. بێگومان کارەکە لەوە ئاڵۆزترە، بەڵام ئەوە تەنها بۆ تێگەیشتنە. دەتوانی لێرە لیستی ئیمزای زۆربەی جۆرەکانی فایل بخوێنیتەوە.

ئەی پێرمادییڵیت چۆن فایلەکان دەسڕێتەوە؟

بۆ سڕینەوەی فایلەکان بە شێوەیەکی هەمیشەیی دوو ڕێگا هەیە: نووسینی سفر لە شوێنی هەموو بایتەکانی فایلەکە و دواتر سڕینەوەی وە نووسینی داتای هەڕەمەکی لە شوێنی داتای فایلەکە و دواتر سڕینەوەی فایلەکە. هەردوو ڕێگاکە لەو وێنەیەی خوارەوە ڕوونکراونەتەوە:

ڕێگاکانی سڕینەوەی فایل بە شێوەیەکی هەمیشەیی

پێرمادیڵیت بۆ ئەوەی گەرەنتی نەهاتنەوەی فایلەکان بکات، ڕێگای دووەم بەکاردەهێنێت و هەموو بایتەکانی فایلەکە دەگۆڕێ بۆ ژمارەی هەڕەمەکی. بەوەش داتای فایلەکە بایەکجارەکی تێکدەچێت و ناتواندرێ بگەڕێندرێتەوە. دوای ئەوەش پێنج جار ناوی فایلەکە دەگۆڕێت بۆ ناوێکی هەڕەمەکی و دواتریش بەرواری درووستکردن و بەرواری دوایین دەستکاری و بەرواری دوایین خوێندنەوە دەکاتە (١/١/٢٠٠٠). بەوەش فایلەکە بە شێوەیەکی هەمیشەیی دەسڕێتەوە.

زۆر بەرنامە هەیە کە زۆرتر لە یەکجار داتا کۆنەکە overwrite دەکەن، واتا داتای لەسەر دەنووسنەوە (هەندێکیان ڕێگەت پێدەدەن ٣٠ جار لەسەر بنووسی). بەڵام بەپێی دوایین لێکۆڵینەوە و زانیارییەکان، تەنها یەکجار لەسەر نووسین بە داتای هەڕەمەکی بەسە و پێویست بە زۆرتر ناکا. بە کەڵک وەرگرتن لەو ڕاستییە، پێرمادیڵیت لە سڕینەوەی فایلەکان زۆر زۆر خێرایە، تەنانەت لە زۆربەی حاڵەتەکان بەقەد سڕینەوەی ئاسایی خێرایە.

لەبارەی دیسکی SSD

دیسکی جۆری SSD هەندێک تایبەتمەندی تایبەت بەخۆی هەیە و جیاوازە لەگەڵ دیسکە کۆنەکان (HDD). یەک لەو تایبەتمەندییانەش ئەوەیە کە دیسکەکە لە جۆری Nand-based Memoryـە. هەرچەندە ئەو جۆرە مێمۆرییانە زۆر خێران و زۆر تایبتەمەندی نایابییان هەیە، بەڵام هەندێک لایەنی خراپی دیکەشیان هەیە: تەنها بەرگەی ژمارەیەکی دیاریکراوی نووسین دەگرێت (پێویست ناکا نیگەران بیت، SSDیە نوێیەکان دەتوانن بەرگەی چەندین ساڵی بەکارهێنانی ئاسایی بگرن) و ناشتوانی داتایەک لەسەر داتایەکی دیکە بنووسیتەوە، دەبێت لە شوێنێکی بەتاڵ بینووسیت. ئەوەش واتای ئەوەی کە کاتێک فایلێک خەزن دەکەیت لە هەمان شوێنی پێشووتری، ئەوا لە ڕاستیدا لە شوێنێکی دیکەی دیسک هەڵدەگیرێ و داتا کۆنەکە نیشان دەکرێ بۆ سڕینەوە.

کەواتە ئەو ڕێگایەی پێرمادیڵیت بەکاریدێنێت کاریگەری نییە لەسەر فایلەکانی سەر SSD. بەڵام SSD دوو تایبەتمەندی دیکەشی هەیە کە وا دەکات پێویستی بە هیچ بەرنامەیەک نەبێت بۆ سڕینەوەی فایلەکان. یەکەمیان پێی دەگوترێ TRIM کەوا ڕێگە بە سیستەم دەدات کە بە دیسکەکە بڵێت کە کام فایلانەی ئیش پێ نەماوە و دەتواندرێ بسڕدرێنەوە. ئەوەی دیکەش پێی دەگوترێ Garbage Collection کە تێیدا ئەو شوێنانەی داتای کۆنیان تێدایە بەتاڵیان دەکات و بەمەش ئامادەدەبن بۆ هەڵگرتنی داتای نوێ. ئەو دوو تایبتەمەندییە پێکەوە کار دەکەن بۆ درووستکردنی کرداری “Data Evaporation” کە تێیدا ئەو فایلانەی کە بە شێوەی ئاسایی لەلایەن سیستەمەوە دەسردرێنەوە، دوای ماوەیەکی کەم لەسەر دیسکیش دەسردرێنەوە.

کەواتە دیسکە SSDیەکان نە پێویستیان بە Permadelete ـە و نە هیچ File Shredder ێکی دیکە. بە پێچەوانەوە، ئەو جۆرە بەرنامانە دەکرێ زەرەر لە دیسکەکە بدەن. بۆ پاراستنی دیسکەکە لە تێکچوون، پێرمادیڵێت فایلەکانی سەر SSD تەنها بە شێوەیەکی ئاسایی دەسڕێتەو و overwrite یان ناکا. کەواتە هیچ کێشەیەک بۆ دیسکەکە درووست ناکات.

دەتوانی زانیاری زۆرتر دەربارەی دیسکی SSD و نووسینی کۆد بە شێوەیەکی باش بۆ ئەو جۆرە دیسکە لەو وتارە بخوێنیتەوە.

پێرمادیڵیت تا چەند جێگای متمانەیە؟

بۆ ئەوەی دڵنیا بینەوە لەوەی ئەو فایلانەی پێرمادیڵیت دەیانسڕێتەوە ناتواندرێ بهێندرێنەوە، نزیکەی ١٠ بەرنامەی ڕیکەڤەریمان تاقیکردەوە، هیچیان نەیانتوانی فایلەکان بهێننەوە. ئەوەش مانای ئەوەیە کە پێرمادیڵیت سەرکەوتوو بووە لە سڕینەوەی فایلەکان بە شێوەیەکی هەمیشەیی.

تاقیکردنەوەکەش بەو شێوەیە بووە:
  1. دوو کۆمەڵە وێنەی جیاواز (بۆ نموونە یەکێکیان وێنەی پشیلە ئەوەی دیکەیان وێنەی سەگ) ئامادە بکە و هەر یەکەیان لە فۆڵدەرێک دابنێ
  2. فلاش میمۆرییەک بهێنە و هەردوو فۆڵدەرەکەی بخە ناوی
  3. یەکێک لە فۆڵدەرەکان بەهۆی پێرمادیڵیت بسڕەەوە (بۆ نموونە وێنەی پشیلەکان) و ئەوەی دیکەیان بە شێوەیەکی ئاسایی (بە بەکارهێنانی Delete ی ویندۆز)
  4. بە بەرنامەیەکی ڕیکەڤەری فلاشەکە سکان بکە، بزانە هیچ یەک لەو وێنانەی کە بە پێرمادیڵیت سڕدرابوونەوە، هاتوونەتەوە؟
ئەو تاقیکردنەوەیەمان بۆ ١٠ بەرنامەی ڕیکەڤەری کرد و لە هەر ١٠ یان، ئەو فۆڵدەرەی کە بە شێوەی ئاسایی سڕدرابوونەوە، هەموو وێنەکانی هاتنەوە. ئەو فۆڵدەرەشی کە پێرمادیڵیت سڕیبوونییەوە، هیچ یەک لە وێنەکانی نەهاتنەوە.

لە کۆتاییدا دەمەوێ زۆر سوپاسی هەموو ئەو کەسانە بکەم کە لە درووستکردن و تاقیکردنەوەی پێرمادیڵیت بەشدار بوون و ئەوانەشی کە بە ڕەخنە و پێشنیارەکانی بەرنامەکەیان باشترکرد. وە پێرمادیڵیت پڕۆژەیەکی بەردەوامە و پشتیوان بەخوا لە داهاتوودا باشتریش دەبێت. ئەگەر تۆش هەر ڕەخنە یان پێشنیارێکت هەیە، خۆشحاڵ دەبین گوێمان لێبێت 🙂

حەز دەکەی لە وتاری داهاتوو باسی چ لایەنێکی درووستکردنی بەرنامەکە بکەم؟ لە کۆمێنت بۆمانی بنووسە.

قوتابی بەشی ئەندازیاریی سیستەمی زانیاری لە زانکۆی پۆلیتەکنیکی هەولێر

لێدوانێک بنووسە