Lub Linux 5.12 kernel tau txais KFence subsystem txhawm rau txheeb xyuas qhov yuam kev thaum ua haujlwm nrog lub cim xeeb

Lub Linux ntsiav 5.12, uas yog nyob rau hauv kev txhim kho, suav nrog kev siv KFence (Kernel Electric Fence) mechanism, uas kuaj xyuas lub cim xeeb tuav, ntes tsis tau overruns, nco nkag tom qab tso tawm, thiab lwm yam yuam kev ntawm chav kawm zoo sib xws.

Cov kev ua haujlwm zoo sib xws twb muaj nyob rau hauv cov ntsiav hauv daim ntawv ntawm KASAN tsim kev xaiv (kernel chaw nyob sanitizer, siv Chaw Nyob Sanitizer hauv niaj hnub gcc thiab clang) - txawm li cas los xij, nws tau muab tso rau hauv kev siv debugging. KFence subsystem txawv ntawm KASAN nyob rau hauv nws cov kev khiav hauj lwm ceev, uas ua rau nws muaj peev xwm mus siv no feature txawm nyob rau hauv lub cores nyob rau hauv ua hauj lwm systems.

Daim ntawv thov ntawm cov tshuab tsim khoom yuav ua rau nws tuaj yeem ntes cov cim xeeb yuam kev uas tsis tshwm sim hauv kev sim ua haujlwm thiab tsuas yog tshwm sim thaum lub sijhawm ua haujlwm lossis lub sijhawm ua haujlwm ntev (nrog lub sijhawm ua haujlwm loj). Tsis tas li ntawd, kev siv KFence ntawm cov tshuab tsim khoom yuav ua rau nws muaj peev xwm ua kom cov tshuab muaj txiaj ntsig zoo hauv kev txheeb xyuas cov haujlwm ntawm cov ntsiav nrog lub cim xeeb.

KFence ua tiav qhov tsawg kawg nkaus-kev ywj pheej nyiaj siv ua haujlwm los ntawm kev tso cov nplooj ntawv saib xyuas rau hauv cov heap ntawm lub sijhawm tas li. Tom qab lub sijhawm tiv thaiv tom ntej tau tas sijhawm, KFence, los ntawm cov txheej txheem kev faib khoom cim xeeb (SLAB lossis SLUB tus faib), ntxiv cov nplooj ntawv tiv thaiv tom ntej los ntawm KFence cov khoom pas dej, thiab pib daim ntawv tshaj tawm sijhawm tshiab. Txhua KFence cov khoom nyob rau hauv ib nplooj ntawv nco, thiab cov nplooj ntawv nco nyob rau sab laug thiab sab xis ciam teb tsim cov nplooj ntawv saib xyuas, qhov loj ntawm qhov uas tau xaiv los ntawm random.

Yog li, cov nplooj ntawv nrog cov khoom raug cais tawm ntawm ib leeg los ntawm nplooj ntawv tiv thaiv, uas tau teeb tsa los tsim kom muaj "nplooj txhaum" thaum nkag mus. Txhawm rau txheeb xyuas cov ntawv sau tawm sab hauv cov nplooj ntawv, cov qauv-raws li "liab cheeb tsam" yog siv ntxiv, uas nyob hauv lub cim xeeb tsis siv los ntawm cov khoom, tshuav thaum qhov loj ntawm nplooj ntawv nco tau zoo. —————————————————————— +—————————— +— | xxxxxxxxx | O: | xxxxxxxxx | :O | xxxxxxxxx | | xxxxxxxxx | B: | xxxxxxxxx | :B | xxxxxxxxx | | x KUB x | J : RED- | x KUB x | RED- : J | x KUB x | | xxxxxxxxx | E: ZONE | xxxxxxxxx | ZONE: E | xxxxxxxxx | | xxxxxxxxx | C: | xxxxxxxxx | :C | xxxxxxxxx | | xxxxxxxxx | T: | xxxxxxxxx | :T | xxxxxxxxx | ———————————————————————— +

Yog tias muaj kev sim nkag mus rau thaj chaw sab nraud ntawm qhov tsis muaj ciam teb, kev ua haujlwm cuam tshuam rau nplooj ntawv tiv thaiv, uas ua rau muaj "nplooj ntawv txhaum", uas cuam tshuam KFence thiab sau cov ntaub ntawv hais txog qhov teeb meem pom. Los ntawm lub neej ntawd, KFence tsis thaiv qhov kev ua yuam kev thiab tsuas yog qhia cov lus ceeb toom hauv lub cav, tab sis muaj qhov "panic_on_warn" qhov chaw uas tso cai rau koj tso cov kernel rau hauv lub xeev ntshai yog tias kuaj pom qhov yuam kev.

Tau qhov twg los: opennet.ru

Ntxiv ib saib