Kwayar Linux 5.12 ta karɓi tsarin KFence don gano kurakurai lokacin aiki tare da ƙwaƙwalwar ajiya

Kernel 5.12 na Linux, wanda ke cikin haɓakawa, ya haɗa da aiwatar da tsarin KFence (Kernel Electric Fence), wanda ke bincika sarrafa ƙwaƙwalwar ajiya, kama buffer overruns, samun damar ƙwaƙwalwar ajiya bayan yantar, da sauran kurakurai na aji iri ɗaya.

Irin wannan aikin ya riga ya kasance a cikin kernel ta hanyar zaɓin ginin KASAN (kwayar adreshin kernel, yana amfani da Sanitizer a cikin gcc na zamani da clang) - duk da haka, an sanya shi ne musamman don amfani da gyara. Tsarin tsarin KFence ya bambanta da KASAN a cikin babban saurin aiki, wanda ke ba da damar yin amfani da wannan fasalin ko da a kan maɓalli a cikin tsarin aiki.

Aikace-aikace akan tsarin samarwa zai ba da damar kama kurakuran ƙwaƙwalwar ajiya waɗanda ba su bayyana a cikin gwajin gwajin ba kuma suna bayyana kawai yayin ayyukan aiki ko lokacin aiki na dogon lokaci (tare da babban lokaci). Bugu da ƙari, yin amfani da KFence akan tsarin samarwa zai ba da damar haɓaka yawan injunan da ke da hannu wajen duba aikin kwaya tare da ƙwaƙwalwar ajiya.

KFence yana samun ƙarancin ɗaukar nauyi mai zaman kansa ta hanyar shigar da shafukan gadi a cikin tudun a tsayayyen tazara. Bayan tazarar kariya ta gaba ta ƙare, KFence, ta hanyar daidaitaccen tsarin rarraba ƙwaƙwalwar ajiya (SLAB ko SLUB allocator), yana ƙara shafi na kariya na gaba daga tafkin KFence, kuma yana fara sabon rahoton lissafin lokaci. Kowane abu na KFence yana cikin keɓantaccen shafi na ƙwaƙwalwar ajiya, kuma shafukan ƙwaƙwalwar ajiya tare da iyakokin hagu da dama suna samar da shafukan gadi, girman wanda aka zaɓa ba da gangan ba.

Don haka, shafukan da ke da abubuwa suna rabu da juna ta hanyar shafukan kariya, waɗanda aka tsara don haifar da "laifi na shafi" akan kowane damar shiga. Don gano bayanan da ke cikin shafukan abu, ana kuma amfani da tushen “jajayen yanki” na tushen, waɗanda ke ɗauke da ƙwaƙwalwar ajiya waɗanda abubuwa ba sa amfani da su, saura lokacin da girman shafukan ƙwaƙwalwar ajiya ke daidaita. —+———————————————————————————— | xxxxxxxxx | O: | xxxxxxxxx | :O | xxxxxxxxx | | xxxxxxxxx | B: | xxxxxxxxx | :B | xxxxxxxxx | | x GASKIYA x | J : JAN- | x GASKIYA x | RED- : J | x GASKIYA x | | xxxxxxxxx | E: ZUWA | xxxxxxxxx | SHINE: E | xxxxxxxxx | | xxxxxxxxx | C: | xxxxxxxxx | :C | xxxxxxxxx | | xxxxxxxxx | T: | xxxxxxxxx | : T | xxxxxxxxx | —+——————————————————————————

Idan an yi ƙoƙari don samun damar shiga wani yanki a waje da iyakokin buffer, aikin yana rinjayar shafin kariya, wanda ke haifar da samar da "laifi na shafi", wanda ke hana KFence kuma ya rubuta bayanai game da matsalar da aka gano. Ta hanyar tsoho, KFence baya toshe kuskure kuma yana nuna gargadi kawai a cikin log ɗin, amma akwai saitin “firgita_on_warn” wanda ke ba ku damar sanya kwaya cikin yanayin tsoro idan an gano kuskure.

source: budenet.ru

Add a comment