Ekuro Linux 5.12 ti gba eto abẹlẹ KFence lati ṣawari awọn aṣiṣe nigba ṣiṣẹ pẹlu iranti

Ekuro Linux 5.12, eyiti o wa ni idagbasoke, pẹlu imuse ti ẹrọ KFence (Kernel Electric Fence), eyiti o ṣe ayẹwo mimu iranti mu, mimu awọn apọju ifipamọ, awọn iraye si iranti lẹhin ominira, ati awọn aṣiṣe miiran ti kilasi ti o jọra.

Iṣẹ ṣiṣe ti o jọra ti wa tẹlẹ ninu ekuro ni irisi aṣayan kikọ KASAN (iwẹnu adiresi ekuro, nlo Sanitizer Adirẹsi ni gcc ode oni ati clang) - sibẹsibẹ, o wa ni ipo ni akọkọ fun lilo n ṣatunṣe aṣiṣe. KFence subsystem yato si lati KASAN ni awọn oniwe-giga ọna iyara, eyi ti o mu ki o ṣee ṣe lati lo ẹya ara ẹrọ yi ani lori ohun kohun ni ṣiṣẹ awọn ọna šiše.

Ohun elo lori awọn eto iṣelọpọ yoo jẹ ki o ṣee ṣe lati yẹ awọn aṣiṣe iranti ti ko han ni awọn ṣiṣe idanwo ati pe o han nikan lakoko awọn iṣẹ ṣiṣe tabi lakoko iṣẹ igba pipẹ (pẹlu akoko nla). Ni afikun, lilo KFence lori awọn eto iṣelọpọ yoo jẹ ki o ṣee ṣe lati pọsi nọmba awọn ẹrọ ti o wa ninu ṣiṣe ayẹwo iṣẹ ti ekuro pẹlu iranti.

KFence ṣaṣeyọri ẹru-ominira ti o kere ju lori fifi sii awọn oju-iwe oluso sinu okiti ni awọn aaye arin ti o wa titi. Lẹhin ti aarin aabo ti o tẹle ti pari, KFence, nipasẹ eto ipin iranti boṣewa (SLAB tabi SLUB allocator), ṣafikun oju-iwe aabo atẹle lati adagun ohun KFence, ati bẹrẹ ijabọ counter akoko tuntun. Ohun kọọkan ti KFence wa ni oju-iwe iranti lọtọ, ati awọn oju-iwe iranti pẹlu apa osi ati ọtun ṣe awọn oju-iwe aabo, iwọn eyiti o yan laileto.

Nitorinaa, awọn oju-iwe pẹlu awọn nkan ti yapa si ara wọn nipasẹ awọn oju-iwe aabo, eyiti a tunto lati ṣe ipilẹṣẹ “aṣiṣe oju-iwe” lori eyikeyi wiwọle. Lati ṣe awari awọn kikọ inu awọn oju-iwe ohun, “awọn agbegbe ita pupa” ti o da lori ilana jẹ afikun ohun ti a lo, eyiti o gba iranti ti ko lo nipasẹ awọn nkan, ti o ku nigbati iwọn awọn oju-iwe iranti ba wa ni ibamu. —+——————————+—————————————————— | xxxxxxxxx | O: | xxxxxxxxx | :O | xxxxxxxxx | | xxxxxxxxx | B: | xxxxxxxxx | :B | xxxxxxxxx | | x Oluso x | J : PUPA- | x Oluso x | RED- : J | x Oluso x | | xxxxxxxxx | E: IBI | xxxxxxxxx | EGBE: E | xxxxxxxxx | | xxxxxxxxx | C: | xxxxxxxxx | :C | xxxxxxxxx | | xxxxxxxxx | T: | xxxxxxxxx | : T | xxxxxxxxx | —+———————————————————————————

Ti o ba ṣe igbiyanju lati wọle si agbegbe ni ita awọn aala ifipamọ, iṣiṣẹ naa ni ipa lori oju-iwe aabo, eyiti o yori si iran ti “aṣiṣe oju-iwe”, eyiti o ṣe idiwọ KFence ati awọn alaye iforukọsilẹ nipa iṣoro ti a mọ. Nipa aiyipada, KFence ko ṣe idiwọ aṣiṣe ati ṣafihan ikilọ nikan ninu akọọlẹ, ṣugbọn eto “panic_on_warn” wa ti o fun ọ laaye lati fi ekuro sinu ipo ijaaya ti o ba rii aṣiṣe kan.

orisun: opennet.ru

Fi ọrọìwòye kun