out-of-tree v1.0.0 - taputapu mo te whakawhanake me te whakamatautau i nga mahi me nga waahanga kernel Linux


out-of-tree v1.0.0 - taputapu mo te whakawhanake me te whakamatautau i nga mahi me nga waahanga kernel Linux

Ko te putanga tuatahi (v1.0.0) o waho-o-rakau, he kete taputapu mo te whakawhanake me te whakamatautau i nga mahi me nga waahanga kernel Linux, i tukuna.

waho-o-rakau ka taea e koe te whakaaunoa i etahi mahi mahinga ki te hanga taiao mo te patuiro i nga kōwae kernel me te whakamahi, te whakaputa i nga tatauranga pono, me te whakarato hoki i te kaha ki te whakauru ngawari ki te CI (Te Whakakotahitanga Tonu).

Kei te whakaahuahia ia kōwae kernel, whakamahi ranei e te konae .out-of-tree.toml, e whakaatu ana i nga korero mo te taiao e hiahiatia ana, me te (mehemea he painga) nga here mo te mahi i te aroaro o etahi whakamarumaru.

Ma te kete taputapu ka taea e koe te tautuhi i nga momo momo kernel e pa ana ki tetahi whakaraeraetanga (ma te whakamahi i te whakahau --guess), ka taea hoki te whakamahi hei whakangawari i nga rapunga-rua mo tetahi mahi motuhake.

Kei raro ko te rarangi o nga huringa mai i te putanga v0.2.

Kua tapirihia e

  • I whakatinanahia te kaha ki te whakawhäiti i te maha o nga kakano i hanga (waho-o-te rakau kernel autogen) kakano (i runga i te whakaahuatanga i roto i te .out-of-tree.toml) me te taki oma (waho-o-rakau pew) ma te whakamahi i te —max= Tawhā X.

  • Ko te whakahau genall hou, ka taea e koe te whakaputa i nga kakano katoa mo te tohatoha me te putanga motuhake.

  • Ko nga raarangi katoa kei te rongoa inaianei i roto i te putunga sqlite3. Kua whakatinanahia nga whakahau mo nga patai ngawari e hiahiatia ana, me te kaweake raraunga ki te json me te tohu.

  • Kua whakatinanahia te tatauranga mo te tupono o te mahi angitu (i runga i nga whakarewatanga o mua).

  • Te kaha ki te penapena i nga hua hanga (tawhā hou --dist mo te whakahau pew-waho-rakau)

  • Tautoko mo te whakaputa metadata mo nga kakano kua whakauruhia ki runga i te punaha manaaki, me te hanga tika ki te kaihautu.

  • Tautoko mo nga kakano tuatoru.

  • Ko te taiao patuiro kei waho o te rakau ka rapu aunoa mo nga tohu patuiro i runga i te punaha manaaki.

  • Kua taapirihia te kaha ki te whakahaere i nga whakahekenga haumarutanga me te whakaahei/whakakore i nga haki KASLR, SMEP, SMAP me KPTI i te wa e patuiro ana.

  • Kua taapirihia te --threads=N tawhā ki te whakahau whakamatautau pew-waho-rakau, ka taea te whakamahi ki te tohu i te maha o nga miro hei hanga/whakahaere me te whakamatautau i nga mahi me nga kōwae kernel.

  • Ko te kaha ki te tautuhi tohu ka tuhia ki te raarangi ka taea te whakamahi ki te tatau tatauranga.

  • Kua taapirihia te kaha ki te tautuhi i te putanga kernel me te kore e whakamahi i nga korero noa.

  • Ko te whakahau mokihi hou, e whakamahia ana mo te whakamatautau papatipu o nga mahi me nga waahanga kernel i roto i nga raarangi.

  • I roto i te whirihoranga (.out-of-tree.toml) mo te whakamahi me te kernel module, kua taapirihia te kaha ki te whakakore i te KASLR, SMEP, SMAP me KPTI, me te tautuhi i te maha o nga matua me te mahara.

  • Inaianei ka utaina nga whakaahua (rootfs) i te wa e rere ana te kernel autogen. kua kore e hiahiatia te bootstrap.

  • Tautoko mo nga kakano CentOS.

Ngā huringa

  • Inaianei, mena karekau he ahua (rootfs) mo te putanga e hiahiatia ana o te tohatoha, ka ngana a waho-o-rakau ki te whakamahi i te ahua o te putanga tata. Hei tauira, te ahua Ubuntu 18.04 mo Ubuntu 18.10.

  • Inaianei e kore e kiia he rahua nga whakamatautau mo nga waahanga kernel mena ka ngaro (kaore he whakamatautau - kaore he hapa!).

  • Inaianei ka whakahoki mai i waho o te rakau he waehere hapa kino mena i rahua tetahi waahanga (hanga, whakarewa, whakamatautau ranei) i runga i tetahi o nga matua.

  • Kua huri te kaupapa ki te whakamahi i nga waahanga Go, ko te hanga me te GO111MODULE=on kua pai ake inaianei.

  • Kua taapirihia nga whakamatautau taunoa.

  • Ka whakamahia taunoa a Test.sh ki te kore te huihuinga i te ${TARGET}_test i whakatinana i te Makefile.

  • Kua kore e whakawāteatia te rangitaki kernel i mua i te whakahaere i te kōwae kernel, te whakamahi ranei. Ko etahi o nga mahi e whakamahi ana i te riihi turanga kernel i roto i te dmesg ki te karo i te KASLR, na te horoi ka pakaru te arorau kua whakatinanahia.

  • Kei te whakamahi a qemu/kvm i nga kaha katoa o te kaitukatuka manaaki.

Kua tangohia

  • wheketere Kernel kua tangohia katoatia na te whakatinanatanga o te whakatipuranga kernel i runga i nga Dockerfiles kua whakahoutia.

  • karekau a bootstrap e mahi i tetahi atu mea. Ka tangohia te whakahau i te tukunga e whai ake nei.

Whakatikatika

  • I runga i te macOS, kaore e hiahiatia nga GNU coreutils kia rere.

  • Kua nukuhia nga konae rangitahi ki ~/.out-of-tree/tmp/ na te hapa o te whakaurunga ki roto docker ki etahi punaha.

Source: linux.org.ru

Tāpiri i te kōrero