{"id":99293,"date":"2021-02-28T10:22:45","date_gmt":"2021-02-28T08:22:45","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/v-yadro-linux-5-12-prinyata-podsistema-kfence-dlya-vyyavleniya-oshibok-pri-rabote-s-pamyatyu"},"modified":"2021-02-28T10:22:45","modified_gmt":"2021-02-28T08:22:45","slug":"v-yadro-linux-5-12-prinyata-podsistema-kfence-dlya-vyyavleniya-oshibok-pri-rabote-s-pamyatyu","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/news\/v-yadro-linux-5-12-prinyata-podsistema-kfence-dlya-vyyavleniya-oshibok-pri-rabote-s-pamyatyu","title":{"rendered":"Im Linux-Kernel 5.12 wurde das KFence-Subsystem zur Erkennung von Speicherfehlern akzeptiert","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Im bevorstehenden Linux-Kernel 5.12 ist die Implementierung des KFence-Mechanismus (Kernel Electric Fence) enthalten, der die Arbeit mit dem Speicher \u00fcberpr\u00fcft, indem er \u00dcberl\u00e4ufe von Puffern, Zugriffe auf den Speicher nach der Freigabe und andere \u00e4hnliche Fehler erkennt.     <\/p>\n<p>Diese Funktionalit\u00e4t war bereits im Kernel als KASAN-Option (Kernel Address Sanitizer, verwendet Address Sanitizer in modernen gcc und clang) vorhanden \u2014 war jedoch haupts\u00e4chlich f\u00fcr Debugging-Zwecke gedacht. Das KFence-Subsystem zeichnet sich durch eine hohe Geschwindigkeit aus, die es erm\u00f6glicht, diese Funktionalit\u00e4t sogar in Kerneln von Produktionssystemen zu nutzen.     <\/p>\n<p>Der Einsatz in produktiven Systemen erm\u00f6glicht es, Speicherfehler zu erkennen, die sich bei Testl\u00e4ufen nicht manifestieren und erst unter Arbeitslast oder bei l\u00e4ngeren Betriebszeiten (bei hohem Uptime) auftreten. Dar\u00fcber hinaus wird der Einsatz von KFence in produktiven Systemen es erm\u00f6glichen, die Anzahl der Maschinen zu erh\u00f6hen, die an der \u00dcberpr\u00fcfung der Speichernutzung des Kernels beteiligt sind.    <\/p>\n<p>Die minimalen overhead, die unabh\u00e4ngig von der Last sind, werden im KFence erreicht, indem Schutzseiten (Guard Pages) in den Heap \u00fcber feste Intervalle eingef\u00fcgt werden. Nach Ablauf des aktuellen Schutzzeitraums f\u00fcgt KFence \u00fcber den Standard-Speicherallokator (SLAB oder SLUB) eine weitere Schutzseite aus dem KFence-Objektpool hinzu und beginnt einen neuen Zeitmesser. Jedes KFence-Objekt wird auf einer separaten Speicherseite abgelegt, und die Seiten an der linken und rechten Grenze bilden die Schutzseiten (Guard Pages), deren Gr\u00f6\u00dfe zuf\u00e4llig festgelegt wird.     <\/p>\n<p>Somit sind die Seiten mit Objekten durch Schutseiten getrennt, die so konfiguriert sind, dass sie bei jedem Zugriff einen \"Page Fault\" erzeugen. Zur Erkennung von Schreiboperationen au\u00dferhalb des Puffers innerhalb der Seiten mit Objekten werden zus\u00e4tzlich \"rote Zonen\" anhand von Mustern verwendet, die Speicher belegen, der von den Objekten nicht genutzt wird und bei der Ausrichtung der Seitengr\u00f6\u00dfe verbleibt.      \u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+     | xxxxxxxxx | O :       | xxxxxxxxx |       : O | xxxxxxxxx |     | xxxxxxxxx | B :       | xxxxxxxxx |       : B | xxxxxxxxx |     | x GUARD x | J : RED-  | x GUARD x | RED-  : J | x GUARD x |     | xxxxxxxxx | E :  ZONE | xxxxxxxxx |  ZONE : E | xxxxxxxxx |     | xxxxxxxxx | C :       | xxxxxxxxx |       : C | xxxxxxxxx |     | xxxxxxxxx | T :       | xxxxxxxxx |       : T | xxxxxxxxx |  \u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014    <\/p>\n<p>Im Falle eines Zugriffs auf einen Bereich au\u00dferhalb der Puffergrenzen ber\u00fchrt die Operation die Schutzseite, was zur Erzeugung eines \"Page Fault\" f\u00fchrt, der von KFence abgefangen wird und die Daten \u00fcber das erkannte Problem im Log ausgibt. Standardm\u00e4\u00dfig blockiert KFence den Fehler nicht und gibt nur eine Warnung im Log aus, aber es gibt eine Einstellung \u201epanic_on_warn\u201c, die es erm\u00f6glicht, im Falle eines Fehlers den Kernel in einen Absturzstatus (Panic) zu versetzen.<br \/>\n<br \/>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=54671\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u0441\u043e\u0441\u0442\u0430\u0432 \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e\u0441\u044f \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u044f\u0434\u0440\u0430 Linux 5.12 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 KFence (Kernel Electric Fence), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u043f\u0430\u043c\u044f\u0442\u044c\u044e, \u043e\u0442\u043b\u0430\u0432\u043b\u0438\u0432\u0430\u044f \u0432\u044b\u0445\u043e\u0434 \u0437\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0431\u0443\u0444\u0435\u0440\u043e\u0432, \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u043e\u0441\u043b\u0435 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430. \u041f\u043e\u0434\u043e\u0431\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0443\u0436\u0435 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0430 \u0432 \u044f\u0434\u0440\u0435 \u0432 \u0432\u0438\u0434\u0435 \u043e\u043f\u0446\u0438\u0438 \u0441\u0431\u043e\u0440\u043a\u0438 KASAN (kernel address sanitizer, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 Address Sanitizer \u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 gcc [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-99293","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u0441\u043e\u0441\u0442\u0430\u0432 \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e\u0441\u044f \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u044f\u0434\u0440\u0430 Linux 5.12 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 KFence (Kernel Electric Fence), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u043f\u0430\u043c\u044f\u0442\u044c\u044e, \u043e\u0442\u043b\u0430\u0432\u043b\u0438\u0432\u0430\u044f \u0432\u044b\u0445\u043e\u0434 \u0437\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0431\u0443\u0444\u0435\u0440\u043e\u0432, \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u043e\u0441\u043b\u0435.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/news\/v-yadro-linux-5-12-prinyata-podsistema-kfence-dlya-vyyavleniya-oshibok-pri-rabote-s-pamyatyu\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412 \u044f\u0434\u0440\u043e Linux 5.12 \u043f\u0440\u0438\u043d\u044f\u0442\u0430 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u0430 KFence \u0434\u043b\u044f \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u043f\u0430\u043c\u044f\u0442\u044c\u044e | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u0441\u043e\u0441\u0442\u0430\u0432 \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e\u0441\u044f \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u044f\u0434\u0440\u0430 Linux 5.12 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 KFence (Kernel Electric Fence), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u043f\u0430\u043c\u044f\u0442\u044c\u044e, \u043e\u0442\u043b\u0430\u0432\u043b\u0438\u0432\u0430\u044f \u0432\u044b\u0445\u043e\u0434 \u0437\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0431\u0443\u0444\u0435\u0440\u043e\u0432, \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u043e\u0441\u043b\u0435.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/news\/v-yadro-linux-5-12-prinyata-podsistema-kfence-dlya-vyyavleniya-oshibok-pri-rabote-s-pamyatyu\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2021-02-28T08:22:45+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2021-02-28T08:22:45+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Im Linux-Kernel 5.12 wurde das KFence-Subsystem zur Erkennung von Fehlern bei der Arbeit mit Speicher \u00fcbernommen | ProHoster","description":"Im aktuellen Entwicklungsstand des Linux-Kernels 5.12 ist die Implementierung des KFence-Mechanismus (Kernel Electric Fence) enthalten, der die Nutzung von Speicher \u00fcberwacht und Ausg\u00e4nge \u00fcber die Puffergrenzen sowie Zugriffe auf bereits freigegebene Speicherbereiche erfasst.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/news\/v-yadro-linux-5-12-prinyata-podsistema-kfence-dlya-vyyavleniya-oshibok-pri-rabote-s-pamyatyu","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412 \u044f\u0434\u0440\u043e Linux 5.12 \u043f\u0440\u0438\u043d\u044f\u0442\u0430 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u0430 KFence \u0434\u043b\u044f \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u043f\u0430\u043c\u044f\u0442\u044c\u044e | ProHoster","og:description":"\u0412 \u0441\u043e\u0441\u0442\u0430\u0432 \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e\u0441\u044f \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u044f\u0434\u0440\u0430 Linux 5.12 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 KFence (Kernel Electric Fence), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u043f\u0430\u043c\u044f\u0442\u044c\u044e, \u043e\u0442\u043b\u0430\u0432\u043b\u0438\u0432\u0430\u044f \u0432\u044b\u0445\u043e\u0434 \u0437\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0431\u0443\u0444\u0435\u0440\u043e\u0432, \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u043e\u0441\u043b\u0435.","og:url":"https:\/\/prohoster.info\/de\/blog\/news\/v-yadro-linux-5-12-prinyata-podsistema-kfence-dlya-vyyavleniya-oshibok-pri-rabote-s-pamyatyu","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2021-02-28T08:22:45+00:00","article:modified_time":"2021-02-28T08:22:45+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"99293","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[],"defaultGraph":"","defaultPostTypeGraph":""},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 09:53:11","updated":"2022-09-27 14:10:01","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/99293","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=99293"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/99293\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=99293"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=99293"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=99293"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}