out-of-tree v1.0.0 - nā mea hana no ka hoʻomohala ʻana a me ka hoʻāʻo ʻana i nā hana a me nā modula kernel Linux


out-of-tree v1.0.0 - nā mea hana no ka hoʻomohala ʻana a me ka hoʻāʻo ʻana i nā hana a me nā modula kernel Linux

Ua hoʻokuʻu ʻia ka mana mua (v1.0.0) o waho o ka lāʻau, kahi mea hana no ka hoʻomohala ʻana a me ka hoʻāʻo ʻana i nā hana a me nā modula kernel Linux.

ʻO waho o ka lāʻau hiki iā ʻoe ke hoʻokaʻawale i kekahi mau hana maʻamau e hana i nā kaiapuni no ka debugging kernel modules a me ka hoʻohana ʻana, e hoʻopuka ana i nā helu helu hilinaʻi, a hāʻawi pū i ka hiki ke hoʻohui maʻalahi i ka CI (Continuous Integration).

Hōʻike ʻia kēlā me kēia kernel module a i ʻole exploit e kahi faila .out-of-tree.toml, e wehewehe ana i ka ʻike e pili ana i ke kaiapuni i koi ʻia a (inā he mea hoʻohana) i nā palena o ka hana ma ke alo o kekahi mau palekana palekana.

Hiki iā ʻoe ke ʻike i nā ʻano kernel kikoʻī i hoʻopili ʻia e kahi nāwaliwali (me ka hoʻohana ʻana i ke kauoha --guess), a hiki ke hoʻohana ʻia e hoʻomaʻamaʻa i nā hulina binary no kahi hana kikoʻī.

Aia ma lalo ka papa inoa o nā hoʻololi mai ka mana v0.2.

Hoʻohui ʻia

  • Hoʻokō i ka hiki ke kaupalena i ka helu o nā kernel i hana ʻia (out-of-tree kernel autogen) (e pili ana i ka wehewehe ʻana ma .out-of-tree.toml) a nānā i nā holo (out-of-tree pew) me ka hoʻohana ʻana i ka —max= X ka palena.

  • ʻO ke kauoha genall hou, kahi e hiki ai iā ʻoe ke hoʻopuka i nā kernels a pau no kahi hoʻolaha kikoʻī a me ka mana.

  • Ua mālama ʻia nā lāʻau āpau i ka waihona sqlite3. Hoʻokō ʻia nā kauoha no nā nīnau maʻalahi i makemake pinepine ʻia, a me ka lawe ʻana i ka ʻikepili i json a me ka markdown.

  • Hoʻokō ʻia ka helu ʻana o ka hiki ke hana kūleʻa (e pili ana i nā neʻe mua).

  • Hiki ke mālama i nā hopena kūkulu (new --dist parameter for out-of-tree pew command)

  • Kākoʻo no ka hana ʻana i nā metadata no nā kernels i hoʻokomo ʻia ma ka ʻōnaehana hoʻokipa, a me ke kūkulu pololei ʻana ma luna o ka host.

  • Kākoʻo no nā kernels ʻaoʻao ʻekolu.

  • ʻImi ʻakomi ka ʻōpuni debug out-of-tree i nā hōʻailona debugging ma ka ʻōnaehana hoʻokipa.

  • Hoʻohui ʻia ka hiki ke hoʻokele i nā mitigations palekana me ka hiki a hoʻopau i nā hae KASLR, SMEP, SMAP a me KPTI i ka wā debugging.

  • Hoʻohui ʻia ka --threads=N parameter i ke kauoha hoʻāʻo pew out-of-tree, hiki ke hoʻohana ʻia e kuhikuhi i ka helu o nā kaula e kūkulu ai/holo a hoʻāʻo i nā hana a me nā modula kernel.

  • ʻO ka hiki ke hoʻonohonoho i kahi hōʻailona e hoʻopaʻa ʻia i ka log a laila hiki ke hoʻohana ʻia e helu i nā helu.

  • Hoʻohui i ka hiki ke kuhikuhi i ka mana kernel me ka hoʻohana ʻole i nā ʻōlelo maʻamau.

  • ʻO ke kauoha pack hou, hoʻohana ʻia no ka hoʻāʻo nui ʻana i nā hana a me nā modula kernel i nā subdirectories.

  • I ka hoʻonohonoho ʻana (.out-of-tree.toml) no ka hoʻohana ʻana a me ka module kernel, ua hoʻohui ʻia ka hiki ke hoʻopau i ka KASLR, SMEP, SMAP a me KPTI, a me ka wehewehe ʻana i ka nui o nā cores a me ka hoʻomanaʻo.

  • I kēia manawa, hoʻouka ʻia nā kiʻi (rootfs) i ka wā e holo ana ka kernel autogen. ʻAʻole pono hou ka bootstrap.

  • Kākoʻo no nā kernels CentOS.

Hoʻololi

  • I kēia manawa, inā ʻaʻohe kiʻi (rootfs) no ka mana i koi ʻia o ka puʻunaue, e hoʻāʻo ʻo out-of-tree e hoʻohana i ke kiʻi o ka mana kokoke loa. No ka laʻana, Ubuntu 18.04 kiʻi no Ubuntu 18.10.

  • I kēia manawa, ʻaʻole e manaʻo ʻia nā hoʻāʻo no nā modula kernel he hemahema inā nalo lākou (ʻaʻohe hōʻike - ʻaʻohe hewa!).

  • I kēia manawa e hoʻihoʻi mai ka lāʻau i kahi code hewa maikaʻi ʻole inā ʻaʻole i liʻiliʻi i hoʻokahi pae (kūkulu, hoʻomaka a hoʻāʻo paha) ma kekahi o nā cores i hāʻule.

  • Ua hoʻololi ka papahana i ka hoʻohana ʻana i nā modula Go, ʻoi aku ka makemake o ke kūkulu ʻana me GO111MODULE=on.

  • Hoʻohui ʻia nā hoʻokolohua paʻamau.

  • E hoʻohana ʻia ʻo Test.sh ma ka paʻamau inā ʻaʻole i hoʻokō ʻia ka hui ma ${TARGET}_test ma ka Makefile.

  • ʻAʻole hoʻomaʻemaʻe ʻia ka log kernel ma mua o ka holo ʻana i kahi module kernel a hoʻohana paha. Hoʻohana kekahi o nā mea hoʻohana i ka leak base kernel i dmesg e kāpae i ka KASLR, no laila hiki i ka hoʻomaʻemaʻe ke uhaʻi i ka loiloi hoʻokō o ka hoʻohana.

  • Ke hoʻohana nei ʻo qemu/kvm i nā mana āpau o ke kaʻina hana hoʻokipa.

Holoi ʻia

  • Hale Hana Kernel hoʻopau loa ʻia ma muli o ka hoʻokō ʻana o ka hanauna kernel e pili ana i nā Dockerfiles hou hou.

  • ʻAʻole hana ʻo bootstrap i kekahi mea ʻē aʻe. E wehe ʻia ke kauoha i ka hoʻokuʻu hou ʻana.

Hoʻoponopono ʻia

  • Ma ka macOS, ʻaʻole pono nā GNU coreutils e holo.

  • Ua hoʻoneʻe ʻia nā faila manawa i ~/.out-of-tree/tmp/ ma muli o ke kau ʻana i nā hewa i loko o ka docker ma kekahi mau ʻōnaehana.

Source: linux.org.ru

Pākuʻi i ka manaʻo hoʻopuka