ืื•ื™ืก-ืคื•ืŸ-ื‘ื•ื™ื v1.0.0 - ืžื›ืฉื™ืจื™ื ืคึฟืึทืจ ื“ืขื•ื•ืขืœืึธืคึผื™ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืขืงืกืคึผืœื•ื™ืฅ ืื•ืŸ ืœื™ื ื•ืงืก ืงืขืจืŸ ืžืึทื“ื–ืฉื•ืœื–


ืื•ื™ืก-ืคื•ืŸ-ื‘ื•ื™ื v1.0.0 - ืžื›ืฉื™ืจื™ื ืคึฟืึทืจ ื“ืขื•ื•ืขืœืึธืคึผื™ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืขืงืกืคึผืœื•ื™ืฅ ืื•ืŸ ืœื™ื ื•ืงืก ืงืขืจืŸ ืžืึทื“ื–ืฉื•ืœื–

ื“ืขืจ ืขืจืฉื˜ืขืจ (v1.0.0) ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹ืื•ื™ืก-ืคื•ืŸ-ื‘ื•ื™ื, ืึท ื˜ืึธืึธืœืงื™ื˜ ืคึฟืึทืจ ื“ืขื•ื•ืขืœืึธืคึผื™ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืขืงืกืคึผืœื•ื™ืฅ ืื•ืŸ ืœื™ื ื•ืงืก ืงืขืจืŸ ืžืึทื“ื–ืฉื•ืœื–, ืื™ื– ื‘ืืคืจื™ื™ื˜.

ืื•ื™ืก-ืคื•ืŸ-ื‘ื•ื™ื ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืึธื˜ืึทืžื™ื™ื˜ ืขื˜ืœืขื›ืข ืจื•ื˜ื™ืŸ ืึทืงืฉืึทื ื– ืฆื• ืฉืึทืคึฟืŸ ื™ื ื•ื•ื™ื™ืจืึทื ืžืึทื ืฅ ืคึฟืึทืจ ื“ื™ื‘ืึทื’ื™ื ื’ ืงืขืจืŸ ืžืึทื“ื–ืฉื•ืœื– ืื•ืŸ ืขืงืกืคึผืœื•ื™ืฅ, ื“ื–ืฉืขื ืขืจื™ื™ื˜ื™ื ื’ ืขืงืกืคึผืœื•ื™ื˜ ืจื™ืœื™ื™ืึทื‘ื™ืœืึทื˜ื™ ืกื˜ืึทื˜ื™ืกื˜ื™ืง, ืื•ืŸ ืื•ื™ืš ื’ื™ื˜ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืœื™ื™ื›ื˜ ื•ื™ืกืฉื˜ื™ืžืขืŸ ืื™ืŸ ืกื™ (ืงืึทื ื˜ื™ื ื•ืึธื•ืก ื™ื ื˜ืขื’ืจืึทื˜ื™ืึธืŸ).

ื™ืขื“ืขืจ ืงืขืจืŸ ืžืึธื“ื•ืœืข ืึธื“ืขืจ ื’ื•ื•ื•ืจืข ืื™ื– ื“ื™ืกืงืจื™ื™ื‘ื“ ื“ื•ืจืš ืึท ื˜ืขืงืข .out-of-tree.toml, ื•ื•ืึธืก ืกืคึผืขืฆื™ืคื™ืฆื™ืจื˜ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื“ื™ ืคืืจืœืื ื’ื˜ ืกื•ื•ื™ื•ื•ืข ืื•ืŸ (ืื•ื™ื‘ ืขืก ืื™ื– ืึท ื’ื•ื•ื•ืจืข) ืจื™ืกื˜ืจื™ืงืฉืึทื ื– ืื•ื™ืฃ ืึธืคึผืขืจืึทืฆื™ืข ืื™ืŸ ื“ืขื ื‘ื™ื™ึทื–ื™ื™ึทืŸ ืคื•ืŸ ื–ื™ื›ืขืจ ื–ื™ื›ืขืจื”ื™ื™ื˜ ืžื™ื˜ื™ื’ื™ื™ืฉืึทื ื–.

ื“ื™ ื˜ืึธืึธืœืงื™ื˜ ืื•ื™ืš ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื™ื“ืขื ื˜ื™ืคื™ืฆื™ืจืŸ ืกืคึผืขืฆื™ืคื™ืฉ ืงืขืจืŸ ื•ื•ืขืจืกื™ืขืก ืึทืคืขืงื˜ืึทื“ ื“ื•ืจืš ืึท ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ (ื ื™ืฆืŸ ื“ื™ --guess ื‘ืึทืคึฟืขืœ), ืื•ืŸ ืงืขื ืขืŸ ืื•ื™ืš ื–ื™ื™ืŸ ื’ืขื ื•ืฆื˜ ืฆื• ืคืึทืจืคึผืึธืฉืขื˜ืขืจืŸ ื‘ื™ื™ื ืขืจื™ ืึธื ืคึฟืจืขื’ืŸ ืคึฟืึทืจ ืึท ืกืคึผืขืฆื™ืคื™ืฉ ื™ื‘ืขืจื’ืขื‘ืŸ.

ื•ื ื˜ืขืจ ืื™ื– ืึท ืจืฉื™ืžื” ืคื•ืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ ื–ื™ื ื˜ ื•ื•ืขืจืกื™ืข ื•ื•0.2.

ืฆื•ื’ืขื’ืขื‘ืŸ

  • ื™ืžืคึผืœืึทืžืขื ื˜ืึทื“ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื‘ืึทื’ืจืขื ืขืฆืŸ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ (ืื•ื™ืก-ืคื•ืŸ-ื‘ื•ื™ื ืงืขืจืŸ ืึทื•ื˜ืึธื’ืขืŸ) ืงืขืจื ืึทืœื– (ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืื™ืŸ. X ืคึผืึทืจืึทืžืขื˜ืขืจ.

  • ื ื™ื• ื’ืขื ืขืœืœ ื‘ืึทืคึฟืขืœ, ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื“ื–ืฉืขื ืขืจื™ื™ื˜ ืึทืœืข ืงืขืจื ืึทืœื– ืคึฟืึทืจ ืึท ืกืคึผืขืฆื™ืคื™ืฉ ืคืึทืจืฉืคึผืจื™ื™ื˜ื•ื ื’ ืื•ืŸ ื•ื•ืขืจืกื™ืข.

  • ืึทืœืข ืœืึธื’ืก ื–ืขื ืขืŸ ืื™ืฆื˜ ืกื˜ืึธืจื“ ืื™ืŸ ื“ื™ sqlite3 ื“ืึทื˜ืึทื‘ื™ื™ืก. ื™ืžืคึผืœืึทืžืขื ืึทื“ ืงืึทืžืึทื ื“ื– ืคึฟืึทืจ ืคึผืฉื•ื˜ ืคึฟืจืื’ืŸ ื•ื•ืึธืก ืึธืคื˜ ื“ืึทืจืคึฟืŸ, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ืขืงืกืคึผืึธืจื˜ื™ื ื’ ื“ืึทื˜ืŸ ืฆื• ื“ื–ืฉืกืึธืŸ ืื•ืŸ ืžืึทืจืงื“ืึทื•ืŸ.

  • ื™ืžืคึผืœืึทืžืขื ืึทื“ ื›ืขื–ืฉื‘ืŸ ืคื•ืŸ ื“ื™ ืžืึทืฉืžืึธืขืก ืคื•ืŸ ืžืฆืœื™ื— ืึธืคึผืขืจืึทืฆื™ืข (ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืคืจื™ื™ึทืขืจื“ื™ืง ืœืึธื ื˜ืฉื™ื–).

  • ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืจืึทื˜ืขื•ื•ืขืŸ ื‘ื•ื™ืขืŸ ืจืขื–ื•ืœื˜ืึทื˜ืŸ (ื ื™ื™ึท - ื“ื™ืกื˜ ืคึผืึทืจืึทืžืขื˜ืขืจ ืคึฟืึทืจ ืื•ื™ืก-ืคื•ืŸ-ื‘ื•ื™ื ืคึผื™ื• ื‘ืึทืคึฟืขืœ)

  • ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื–ืฉืขื ืขืจื™ื™ื˜ื™ื ื’ ืžืขื˜ืึทื“ืึทื˜ืึท ืคึฟืึทืจ ืงืขืจื ืึทืœื– ืื™ื ืกื˜ืึทืœื™ืจืŸ ืื•ื™ืฃ ื“ืขืจ ื‘ืึทืœืขื‘ืึธืก ืกื™ืกื˜ืขื, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ื‘ื ื™ืŸ ื’ืœื™ื™ึทืš ืื•ื™ืฃ ื“ืขืจ ื‘ืึทืœืขื‘ืึธืก.

  • ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ืจื™ื˜ ื˜ื™ื™ืœื•ื•ื™ื™ึทื– ืงืขืจื ืึทืœื–.

  • ื“ื™ ืื•ื™ืก-ืคื•ืŸ-ื‘ื•ื™ื ื“ื™ื‘ืึทื’ ืกื•ื•ื™ื•ื•ืข ืื™ืฆื˜ ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ื–ื•ื›ืŸ ืคึฟืึทืจ ื“ื™ื‘ืึทื’ื™ื ื’ ืกื™ืžื‘ืึธืœืก ืื•ื™ืฃ ื“ืขืจ ื‘ืึทืœืขื‘ืึธืก ืกื™ืกื˜ืขื.

  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืคื™ืจืŸ ื–ื™ื›ืขืจื”ื™ื™ื˜ ืžื™ื˜ื™ื’ื™ื™ืฉืึทื ื– ืžื™ื˜ ื’ืขื‘ืŸ / ื“ื™ืกื™ื™ื‘ืึทืœ ืคืœืึทื’ืก KASLR, SMEP, SMAP ืื•ืŸ KPTI ื‘ืขืฉืึทืก ื“ื™ื‘ืึทื’ื™ื ื’.

  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ื“ื™ -- ืคึฟืขื“ืขื = N ืคึผืึทืจืึทืžืขื˜ืขืจ ืฆื• ื“ื™ ืื•ื™ืก-ืคื•ืŸ-ื‘ื•ื™ื ืคึผื™ื• ื˜ืขืกื˜ื™ื ื’ ื‘ืึทืคึฟืขืœ, ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืฆื• ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืคึฟืขื“ืขื ืื™ืŸ ื•ื•ืึธืก ืฆื• ื‘ื•ื™ืขืŸ / ืœื•ื™ืคืŸ ืื•ืŸ ืคึผืจื•ื‘ื™ืจืŸ ืขืงืกืคึผืœื•ื™ืฅ ืื•ืŸ ืงืขืจืŸ ืžืึทื“ื–ืฉื•ืœื–.

  • ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืฉื˜ืขืœืŸ ืึท ืงื•ื•ื™ื˜ืœ ื•ื•ืึธืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ืจืขืงืึธืจื“ืขื“ ืื™ืŸ ื“ื™ ืงืœืึธืฅ ืื•ืŸ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื ื•ืฆื˜ ืฆื• ืจืขื›ืขื ืขืŸ ืกื˜ืึทื˜ื™ืกื˜ื™ืง.

  • ืฆื•ื’ืขื’ืขื‘ืŸ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ื“ื™ ืงืขืจืŸ ื•ื•ืขืจืกื™ืข ืึธืŸ ื ื™ืฆืŸ ืจืขื’ื•ืœืขืจ ืื•ื™ืกื“ืจื•ืงืŸ.

  • ื ื™ื• ืคึผืึทืง ื‘ืึทืคึฟืขืœ, ื’ืขื ื™ืฆื˜ ืคึฟืึทืจ ืžืึทืกืข ื˜ืขืกื˜ื™ื ื’ ืคื•ืŸ ืขืงืกืคึผืœื•ื™ืฅ ืื•ืŸ ืงืขืจืŸ ืžืึทื“ื–ืฉื•ืœื– ืื™ืŸ ืกื•ื‘ื“ื™ืจืขืงื˜ืึธืจื™ืขืก.

  • ืื™ืŸ ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ (.out-of-tree.toml) ืคึฟืึทืจ ื“ื™ ื’ื•ื•ื•ืจืข ืื•ืŸ ืงืขืจืŸ ืžืึธื“ื•ืœืข, ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื“ื™ืกื™ื™ื‘ืึทืœ KASLR, SMEP, SMAP ืื•ืŸ KPTI ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ, ืื•ืŸ ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ื“ื™ ืคืืจืœืื ื’ื˜ ื ื•ืžืขืจ ืคื•ืŸ ืงืึธืจืขืก ืื•ืŸ ื–ื›ึผืจื•ืŸ.

  • ืื™ืฆื˜ ื‘ื™ืœื“ืขืจ (ืจืึธืึธื˜ืคืก) ื–ืขื ืขืŸ ืœืึธื•ื“ื™ื“ ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ื‘ืฉืขืช ืงืขืจืŸ ืึทื•ื˜ืึธื’ืขืŸ ืื™ื– ืคืœื™ืกื ื“ื™ืง. ื‘ืึธืึธื˜ืกื˜ืจืึทืคึผ ืื™ื– ื ื™ื˜ ืžืขืจ ื“ืืจืฃ.

  • ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ CentOS ืงืขืจื ืึทืœื–.

ืขื ื“ืขืจื•ื ื’ืขืŸ

  • ืื™ืฆื˜, ืื•ื™ื‘ ืขืก ืื™ื– ืงื™ื™ืŸ ื‘ื™ืœื“ (ืจืึธืึธื˜ืคืก) ืคึฟืึทืจ ื“ื™ ืคืืจืœืื ื’ื˜ ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ื™ ืคืึทืจืฉืคึผืจื™ื™ื˜ื•ื ื’, ืื•ื™ืก-ืคื•ืŸ-ื‘ื•ื™ื ื•ื•ืขื˜ ืคึผืจื•ื‘ื™ืจืŸ ืฆื• ื ื•ืฆืŸ ื“ื™ ื‘ื™ืœื“ ืคื•ืŸ ื“ื™ ืงืœืึธื•ืกืึทืกื˜ ื•ื•ืขืจืกื™ืข. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, Ubuntu 18.04 ื‘ื™ืœื“ ืคึฟืึทืจ Ubuntu 18.10.

  • ืื™ืฆื˜ ื˜ืขืกืฅ ืคึฟืึทืจ ืงืขืจืŸ ืžืึทื“ื–ืฉื•ืœื– ื•ื•ืขื˜ ื ื™ืฉื˜ ื–ื™ื™ืŸ ื’ืขื”ืืœื˜ืŸ ืคื™ื™ืœื™ืขืจื– ืื•ื™ื‘ ื–ื™ื™ ื–ืขื ืขืŸ ืคืขืœื ื“ื™ืง (ืงื™ื™ืŸ ื˜ืขืกืฅ - ืงื™ื™ืŸ ืขืจืจืึธืจืก!).

  • ืื™ืฆื˜ ืึทืจื•ื™ืก-ืคื•ืŸ-ื‘ื•ื™ื ื•ื•ืขื˜ ืฆื•ืจื™ืงืงื•ืžืขืŸ ืึท ื ืขื’ืึทื˜ื™ื•ื• ื˜ืขื•ืช ืงืึธื“ ืื•ื™ื‘ ื‘ื™ื™ึท ืžื™ื ื“ืกื˜ืขืจ ืื™ื™ืŸ ื‘ื™ื ืข (ื‘ื•ื™ืขืŸ, ืงืึทื˜ืขืจ ืึธื“ืขืจ ืคึผืจื•ื‘ื™ืจืŸ) ืื•ื™ืฃ ืงื™ื™ืŸ ืคื•ืŸ ื“ื™ ืงืึธืจืขืก ืึทื ื“ืขืจืฉ.

  • ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืื™ื– ืกื•ื•ื™ื˜ืฉื˜ ืฆื• ื ื•ืฆืŸ ื’ืึธ ืžืึทื“ื–ืฉื•ืœื–, ื‘ื ื™ืŸ ืžื™ื˜ GO111MODULE = ืื•ื™ืฃ ืื™ื– ืื™ืฆื˜ ื‘ื™ืœื›ืขืจ.

  • ืฆื•ื’ืขื’ืขื‘ืŸ ืคืขืœื™ืงื™ื™ึทื˜ ื˜ืขืกืฅ.

  • Test.sh ื•ื•ืขื˜ ืื™ืฆื˜ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜ ืื•ื™ื‘ ื“ื™ ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ืื™ืŸ ${TARGET}_test ืื™ื– ื ื™ืฉื˜ ื™ืžืคึผืœืึทืžืขื ืึทื“ ืื™ืŸ ื“ื™ Makefile.

  • ื“ืขืจ ืงืขืจืŸ ืงืœืึธืฅ ืื™ื– ื ื™ื˜ ืžืขืจ ืงืœื™ืจื“ ืื™ื™ื“ืขืจ ืคืœื™ืกื ื“ื™ืง ืึท ืงืขืจืŸ ืžืึธื“ื•ืœืข ืึธื“ืขืจ ื’ื•ื•ื•ืจืข. ืขื˜ืœืขื›ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืขืงืกืคึผืœื•ื™ืฅ ื ื•ืฆืŸ ืึท ืงืขืจืŸ ื‘ืึทื–ืข ืจื™ื ืขืŸ ืื™ืŸ dmesg ืฆื• ื‘ื™ื™ืคึผืึทืก KASLR, ืึทื–ื•ื™ ืงืœื™ื ืึทืคึผ ืงืขืŸ ื‘ืจืขื›ืŸ ื“ื™ ื™ืžืคึผืœืึทืžืขื ืึทื“ ืœืึธื’ื™ืง ืคื•ืŸ ื“ื™ ืขืงืกืคึผืœื•ื™ื˜.

  • qemu/kvm ืื™ืฆื˜ ื ื™ืฆื˜ ืึทืœืข ื“ื™ ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื– ืคื•ืŸ ื“ืขืจ ื‘ืึทืœืขื‘ืึธืก ืคึผืจืึทืกืขืกืขืจ.

ืึทื•ื•ืขืงื’ืขื ื•ืžืขืŸ

  • ืงืขืจื ืขืœ ืคึฟืึทื‘ืจื™ืง ื’ืึธืจ ืึทื•ื•ืขืงื’ืขื ื•ืžืขืŸ ืจืขื›ื˜ ืฆื• ื“ืขืจ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ืงืขืจืŸ ื“ื•ืจ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื™ื ืงืจืึทืžืขื ื˜ืึทืœื™ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜ ื“ืึธืงืขืจืคื™ืœืขืก.

  • ื‘ืึธืึธื˜ืกื˜ืจืึทืคึผ ื˜ื•ื˜ ื ื™ืฉื˜ ื˜ืึธืŸ ืขืคึผืขืก ืึทื ื“ืขืจืฉ. ื“ืขืจ ื‘ืึทืคึฟืขืœ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืึทื•ื•ืขืงื’ืขื ื•ืžืขืŸ ืื™ืŸ ื“ืขืจ ื•ื•ื™ื™ึทื˜ืขืจ ืžืขืœื“ื•ื ื’.

ืงืขืจืขืงื˜ืึทื“

  • ืื•ื™ืฃ macOS, GNU coreutils ืื™ื– ื ื™ื˜ ืžืขืจ ืคืืจืœืื ื’ื˜ ืฆื• ืœื•ื™ืคืŸ.

  • ืฆื™ื™ื˜ื•ื•ื™ื™ืœื™ื’ืข ื˜ืขืงืขืก ื–ืขื ืขืŸ ืืจื™ื‘ืขืจื’ืขืคืืจืŸ ืฆื• ~/.ืื•ื™ืก-ืคื•ืŸ-ื‘ื•ื™ื/ื˜ืžืคึผ/ ืจืขื›ื˜ ืฆื• ืžืึทื•ื ื˜ื™ื ื’ ืขืจืจืึธืจืก ืื™ืŸ ื“ืึธืงืงืขืจ ืื•ื™ืฃ ืขื˜ืœืขื›ืข ืกื™ืกื˜ืขืžืขืŸ.

ืžืงื•ืจ: linux.org.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’