د لینوکس 5.12 کرنل د KFence فرعي سیسټم غوره کړی ترڅو د حافظې سره کار کولو پرمهال غلطۍ کشف کړي

د لینکس کرنل 5.12، چې د پراختیا په حال کې دی، د KFence (Kernel Electric Fence) میکانیزم پلي کول شامل دي، کوم چې د حافظې اداره کول، د بفر اوورونونو نیول، د وړیا کولو وروسته د حافظې لاسرسی، او د ورته ټولګي نورې غلطۍ چک کوي.

ورته فعالیت لا دمخه د KASAN جوړونې اختیار په شکل کې په دانا کې شتون درلود (د کرنل پته سینیټیزر ، په عصري gcc او کلینګ کې د ادرس سینیټیزر کاروي) - په هرصورت ، دا په عمده ډول د ډیبګ کارولو لپاره موقعیت درلود. د KFence فرعي سیسټم په خپل لوړ عملیاتي سرعت کې د KASAN څخه توپیر لري ، کوم چې دا امکان رامینځته کوي چې دا ب featureه حتی په کاري سیسټمونو کې په کور کې وکاروي.

د تولید سیسټمونو کې غوښتنلیک به دا ممکنه کړي چې د حافظې غلطۍ نیول چې د ازموینې په جریان کې نه څرګندیږي او یوازې د کاري بارونو یا اوږدمهاله عملیاتو په جریان کې څرګندیږي (د لوی وخت سره). سربیره پردې ، د تولید سیسټمونو کې د KFence کارول به دا امکان رامینځته کړي چې د حافظې سره د کرنل عملیاتو چیک کولو کې دخیل ماشینونو شمیر د پام وړ زیات کړي.

KFence په ټاکلي وقفو کې د ساتونکو پاڼو په داخلولو سره لږترلږه د بار څخه خپلواک سر ترلاسه کوي. وروسته له دې چې د محافظت راتلونکی وقفه پای ته ورسیده، KFence، د معیاري حافظې تخصیص سیسټم (SLAB یا SLUB تخصیص) له لارې، د KFence اعتراض پول څخه راتلونکی محافظت پاڼه اضافه کوي، او د نوي وخت ضد راپور پیل کوي. د KFence هر څیز په جلا حافظه پاڼه کې موقعیت لري، او د کیڼ او ښي سرحدونو په اوږدو کې د حافظې پاڼې ساتونکي پاڼې جوړوي، چې اندازه یې په تصادفي ډول غوره کیږي.

په دې توګه، د شیانو سره پاڼې د محافظت پاڼو په واسطه له یو بل څخه جلا شوي، کوم چې په هر ډول لاسرسي کې د "پاڼې غلطی" رامینځته کولو لپاره ترتیب شوي. د څیز پاڼو دننه د حد څخه بهر لیکلو موندلو لپاره، د نمونې پراساس "ریډ زونونه" اضافي کارول کیږي، کوم چې حافظه نیسي چې د شیانو لخوا نه کارول کیږي، پاتې کیږي کله چې د حافظې پاڼې اندازه سره سمون ولري. —+————+————+————+————+———+— | xxxxxxxxx | او: | xxxxxxxxx | :O | xxxxxxxxx | | xxxxxxxxx | ب: | xxxxxxxxx | :ب | xxxxxxxxx | | x ساتونکي x | J : سور - | x ساتونکي x | سور- : J | x ساتونکي x | | xxxxxxxxx | ای: زون | xxxxxxxxx | زون: ای | xxxxxxxxx | | xxxxxxxxx | ج: | xxxxxxxxx | :ج | xxxxxxxxx | | xxxxxxxxx | ټ: | xxxxxxxxx | : ټ | xxxxxxxxx | —+————+————+————+————+———+—

که چیرې د بفر حدونو څخه بهر یوې ساحې ته د لاسرسي هڅه وشي ، عملیات د محافظت پا pageه اغیزه کوي ، کوم چې د "پای غلطی" رامینځته کیدو لامل کیږي ، کوم چې د KFence مخه نیسي او د پیژندل شوي ستونزې په اړه معلومات ثبتوي. په ډیفالټ کې ، KFence یوه تېروتنه نه بندوي او یوازې په لاګ کې خبرداری ښیې ، مګر دلته د "panic_on_warn" ترتیب شتون لري چې تاسو ته اجازه درکوي دانه په ویره حالت کې واچوئ که چیرې کومه تېروتنه وموندل شي.

سرچینه: opennet.ru

Add a comment