ืœื™ื‘ืช Linux 5.12 ืื™ืžืฆื” ืืช ืชืช-ื”ืžืขืจื›ืช KFence ื›ื“ื™ ืœื–ื”ื•ืช ืฉื’ื™ืื•ืช ื‘ืขืช ืขื‘ื•ื“ื” ืขื ื–ื™ื›ืจื•ืŸ

ืœื™ื‘ืช ืœื™ื ื•ืงืก 5.12 ืฉื ืžืฆืืช ื‘ืคื™ืชื•ื— ื›ื•ืœืœืช ื”ื˜ืžืขื” ืฉืœ ืžื ื’ื ื•ืŸ KFence (Kernel Electric Fence), ืฉื‘ื•ื“ืง ื˜ื™ืคื•ืœ ื‘ื–ื™ื›ืจื•ืŸ, ืชืคื™ืกืช ื—ืจื™ื’ื•ืช ืžืื’ืจ, ื’ื™ืฉื” ืœื–ื™ื›ืจื•ืŸ ืœืื—ืจ ืฉื—ืจื•ืจ ื•ืฉื’ื™ืื•ืช ื ื•ืกืคื•ืช ืžืžื—ืœืงื” ื“ื•ืžื”.

ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื“ื•ืžื” ื›ื‘ืจ ื”ื™ื™ืชื” ืงื™ื™ืžืช ื‘ืงืจื ืœ ื‘ืฆื•ืจื” ืฉืœ ืืคืฉืจื•ืช ื”-KASAN build (ื—ื™ื˜ื•ื™ ื›ืชื•ื‘ืช ืœื™ื‘ื”, ืžืฉืชืžืฉ ื‘-Address Sanitizer ื‘-gcc ื•-clang ืžื•ื“ืจื ื™ื™ื) - ืขื ื–ืืช, ื”ื•ื ื”ื•ืฆื‘ ื‘ืขื™ืงืจ ืœืฉื™ืžื•ืฉ ื‘ืื’ื™ื. ืชืช-ื”ืžืขืจื›ืช KFence ืฉื•ื ื” ืž-KASAN ื‘ืžื”ื™ืจื•ืช ื”ื”ืคืขืœื” ื”ื’ื‘ื•ื”ื” ืฉืœื”, ืžื” ืฉืžืืคืฉืจ ืœื”ืฉืชืžืฉ ื‘ืชื›ื•ื ื” ื–ื• ื’ื ืขืœ ืœื™ื‘ื•ืช ื‘ืžืขืจื›ื•ืช ืขื•ื‘ื“ื•ืช.

ื™ื™ืฉื•ื ืขืœ ืžืขืจื›ื•ืช ื™ื™ืฆื•ืจ ื™ืืคืฉืจ ืœืชืคื•ืก ืฉื’ื™ืื•ืช ื–ื™ื›ืจื•ืŸ ืฉืื™ื ืŸ ืžื•ืคื™ืขื•ืช ื‘ืจื™ืฆื•ืช ืžื‘ื—ืŸ ื•ืžื•ืคื™ืขื•ืช ืจืง ื‘ืžื”ืœืš ืขื•ืžืกื™ ืขื‘ื•ื“ื” ืื• ื‘ืžื”ืœืš ืคืขื•ืœื” ืืจื•ื›ืช ื˜ื•ื•ื— (ืขื ื–ืžืŸ ืคืขื•ืœื” ืจื‘). ื‘ื ื•ืกืฃ, ื”ืฉื™ืžื•ืฉ ื‘-KFence ืขืœ ืžืขืจื›ื•ืช ื™ื™ืฆื•ืจ ื™ืืคืฉืจ ืœื”ื’ื“ื™ืœ ืžืฉืžืขื•ืชื™ืช ืืช ืžืกืคืจ ื”ืžื›ื•ื ื•ืช ื”ืžืขื•ืจื‘ื•ืช ื‘ื‘ื“ื™ืงืช ืคืขื•ืœืช ื”ืงืจื ืœ ืขื ื–ื™ื›ืจื•ืŸ.

KFence ืžืฉื™ื’ื” ืชืงื•ืจื” ืžื™ื ื™ืžืœื™ืช ื‘ืœืชื™ ืชืœื•ื™ื” ื‘ืขื•ืžืก ืขืœ ื™ื“ื™ ื”ื›ื ืกืช ื“ืคื™ ืฉืžื™ืจื” ืœืขืจื™ืžื” ื‘ืžืจื•ื•ื—ื™ ื–ืžืŸ ืงื‘ื•ืขื™ื. ืœืื—ืจ ืชื•ื ืžืจื•ื•ื— ื”ื”ื’ื ื” ื”ื‘ื, KFence, ื‘ืืžืฆืขื•ืช ืžืขืจื›ืช ื”ืงืฆืืช ื”ื–ื™ื›ืจื•ืŸ ื”ืจื’ื™ืœื” (SLAB ืื• SLUB allocator), ืžื•ืกื™ืคื” ืืช ื“ืฃ ื”ื”ื’ื ื” ื”ื‘ื ืžืžืื’ืจ ื”ืื•ื‘ื™ื™ืงื˜ื™ื ืฉืœ KFence, ื•ืžืชื—ื™ืœื” ื“ื•ื— ืžื•ื ื” ื–ืžืŸ ื—ื“ืฉ. ื›ืœ ืื•ื‘ื™ื™ืงื˜ KFence ืžืžื•ืงื ื‘ื“ืฃ ื–ื™ื›ืจื•ืŸ ื ืคืจื“, ื•ื“ืคื™ ื”ื–ื™ื›ืจื•ืŸ ืœืื•ืจืš ื”ื’ื‘ื•ืœ ื”ืฉืžืืœื™ ื•ื”ื™ืžื ื™ ื™ื•ืฆืจื™ื ื“ืคื™ ืฉืžื™ืจื”, ืฉื’ื•ื“ืœื ื ื‘ื—ืจ ื‘ืื•ืคืŸ ืืงืจืื™.

ืœืคื™ื›ืš, ื“ืคื™ื ืขื ืื•ื‘ื™ื™ืงื˜ื™ื ืžื•ืคืจื“ื™ื ื–ื” ืžื–ื” ืขืœ ื™ื“ื™ ื“ืคื™ ื”ื’ื ื”, ื”ืžื•ื’ื“ืจื™ื ืœื™ืฆื•ืจ "ืชืงืœืช ืขืžื•ื“" ื‘ื›ืœ ื’ื™ืฉื”. ื›ื“ื™ ืœื–ื”ื•ืช ื›ืชื™ื‘ื” ืžื—ื•ืฅ ืœื’ื‘ื•ืœ ื‘ืชื•ืš ื“ืคื™ ืื•ื‘ื™ื™ืงื˜, ื ืขืฉื” ืฉื™ืžื•ืฉ ื ื•ืกืฃ ื‘"ืื–ื•ืจื™ื ืื“ื•ืžื™ื" ื”ืžื‘ื•ืกืกื™ื ืขืœ ื“ืคื•ืกื™ื, ืืฉืจ ืชื•ืคืกื™ื ื–ื™ื›ืจื•ืŸ ืฉืื™ื ื• ื‘ืฉื™ืžื•ืฉ ืขืœ ื™ื“ื™ ืื•ื‘ื™ื™ืงื˜ื™ื, ืฉื ื•ืชืจื• ื›ืืฉืจ ื’ื•ื“ืœ ื“ืคื™ ื”ื–ื™ื›ืจื•ืŸ ืžื™ื•ืฉืจ. โ€”+โ€”โ€”โ€”โ€”+โ€”โ€”โ€”โ€”+โ€”โ€”โ€”โ€”+โ€”โ€”โ€”โ€”+โ€”โ€”โ€”โ€”+โ€” | xxxxxxxxx | O: | xxxxxxxxx | :O | xxxxxxxxx | | xxxxxxxxx | ื‘: | xxxxxxxxx | :ื‘ | xxxxxxxxx | | x GUARD x | J : ืื“ื•ื- | x GUARD x | RED- : J | x GUARD x | | xxxxxxxxx | E: ZONE | xxxxxxxxx | ืื–ื•ืจ: E | xxxxxxxxx | | xxxxxxxxx | ื’: | xxxxxxxxx | :C | xxxxxxxxx | | xxxxxxxxx | ืช: | xxxxxxxxx | :T | xxxxxxxxx | โ€”+โ€”โ€”โ€”โ€”+โ€”โ€”โ€”โ€”+โ€”โ€”โ€”โ€”+โ€”โ€”โ€”โ€”+โ€”โ€”โ€”โ€”+โ€”

ืื ื ืขืฉื” ื ื™ืกื™ื•ืŸ ืœื’ืฉืช ืœืื–ื•ืจ ืžื—ื•ืฅ ืœื’ื‘ื•ืœื•ืช ื”ื—ื™ืฅ, ื”ืคืขื•ืœื” ืžืฉืคื™ืขื” ืขืœ ื“ืฃ ื”ื”ื’ื ื”, ืžื” ืฉืžื•ื‘ื™ืœ ืœื™ืฆื™ืจืช "ืชืงืœืช ืขืžื•ื“", ื”ืžื™ื™ืจื˜ืช ืืช KFence ื•ืžืชืขื“ืช ืžื™ื“ืข ืขืœ ื”ื‘ืขื™ื” ืฉื–ื•ื”ืชื”. ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, KFence ืœื ื—ื•ืกืžืช ืฉื’ื™ืื” ื•ืžืฆื™ื’ื” ืจืง ืื–ื”ืจื” ื‘ื™ื•ืžืŸ, ืื‘ืœ ื™ืฉ ื”ื’ื“ืจื” ืฉืœ "panic_on_warn" ื”ืžืืคืฉืจืช ืœืš ืœื”ื›ื ื™ืก ืืช ื”ืœื™ื‘ื” ืœืžืฆื‘ ืคืื ื™ืงื” ืื ืžืชื’ืœื” ืฉื’ื™ืื”.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”