Linux 5.12 nucleum KFence subsystem assumpsit ad errores deprehendendos cum memoria laborantes

Linux kernel 5.12, quae in evolutione est, mechanismum KFence (Kernel Electric Fence) exsequendum includit, quae memoriam tractantem coercet, excipiens quiddam eliminatum, accessuum memoriae liberatum, aliosque eiusdem generis errores.

Similis functionalitas iam aderat in nucleo in forma optionis KASAN aedificandae (inscriptio nuclei sanitizer, utitur Oratio Sanitizer in moderno gcc et clang) - tamen maxime ad usum debugging positum erat. KFence subsystem ab KASAN in alta celeritate operante differt, quod sinit uti hoc pluma etiam in nucleis in systematis operandis.

Applicatio ad systemata productionis efficiet ut errores memoriae capiantur qui in probatione non apparent et solum apparent in laboribus vel in operatione diuturna (cum magna uptime). Praeterea, usus KFence in systematis productionis efficere potest ut signanter augeat numerum machinarum quae ad reprimendam operationem nuclei cum memoria.

KFence minimum onus-independens supra caput attingit, inserendo paginas custodiae in acervum statis intervallis. Post proximum tutelae intervallum elapsum, KFence, per normas destinatio systematis memoriae (SLAB vel SLUB allocator), proximam paginam tutelae ab objecto piscinae KFence addit et novum tempus dictioni incipit. Quodlibet obiectum KFence situm est in pagina separata memoriae, et memoria paginarum in limitibus sinistris et dextris paginas custodiunt, quarum magnitudo passim eligitur.

Sic paginae obiectis ab invicem per paginas tutelae separatae sunt, quae ad omnem accessum "paginam" generandam configurantur. Ad paginas objectas inveniendas extra limites scribit, exemplar-fundatum "zonae rubrae" additae sunt, quae memoriam non ab objectis adhibitam occupant, manentes cum magnitudo paginarum memoriae perpenditur. ————— +————————————————————————+— | xxxxxxxxx | O: | xxxxxxxxx | :O | xxxxxxxxx | | xxxxxxxxx | B: | xxxxxxxxx | :B | xxxxxxxxx | | x | J : RED- | x | RED- : J | x | | xxxxxxxxx | E: ZONE | xxxxxxxxx | ZONE: E | xxxxxxxxx | | xxxxxxxxx | C: | xxxxxxxxx | :C | xxxxxxxxx | | xxxxxxxxx | T: | xxxxxxxxx | : T | xxxxxxxxx | --------------

Si temptatur accedere ad aream extra quiddam limites, operatio paginam tutelae afficit, quae generationi "paginae culpae" ducit, quae KFence et tigna informationes de quaestionis identitate intercipit. Defalta, KFence errorem non impedit et solum praemonitionem in ligno ostendit, sed "panic_on_mon" est occasus quod sinit te nucleum in terrore civitatis ponere, si error detegatur.

Source: opennet.ru

Add a comment