์ตœ์†Œํ•œ์˜ ์‹œ์Šคํ…œ ์œ ํ‹ธ๋ฆฌํ‹ฐ ์„ธํŠธ BusyBox 1.34 ์ถœ์‹œ

BusyBox 1.34 ํŒจํ‚ค์ง€ ๋ฆด๋ฆฌ์Šค์—๋Š” ๋‹จ์ผ ์‹คํ–‰ ํŒŒ์ผ๋กœ ์„ค๊ณ„๋˜๊ณ  1MB ๋ฏธ๋งŒ์˜ ํฌ๊ธฐ๋กœ ์‹œ์Šคํ…œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ตœ์†Œํ•œ์œผ๋กœ ์†Œ๋น„ํ•˜๋„๋ก ์ตœ์ ํ™”๋œ ํ‘œ์ค€ UNIX ์œ ํ‹ธ๋ฆฌํ‹ฐ ์„ธํŠธ์˜ ๊ตฌํ˜„์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๋ธŒ๋žœ์น˜ 1.34์˜ ์ฒซ ๋ฒˆ์งธ ๋ฆด๋ฆฌ์Šค๋Š” ๋ถˆ์•ˆ์ •ํ•œ ๊ฒƒ์œผ๋กœ ์ž๋ฆฌ๋งค๊น€ํ–ˆ์œผ๋ฉฐ, ์™„์ „ํ•œ ์•ˆ์ •ํ™”๋Š” ๋ฒ„์ „ 1.34.1์—์„œ ์ œ๊ณต๋  ์˜ˆ์ •์ด๋ฉฐ ์•ฝ ํ•œ ๋‹ฌ ํ›„์— ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ๋Š” GPLv2 ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

BusyBox์˜ ๋ชจ๋“ˆ์‹ ํŠน์„ฑ์œผ๋กœ ์ธํ•ด ํŒจํ‚ค์ง€์— ๊ตฌํ˜„๋œ ์ž„์˜์˜ ์œ ํ‹ธ๋ฆฌํ‹ฐ ์„ธํŠธ๊ฐ€ ํฌํ•จ๋œ ํ•˜๋‚˜์˜ ํ†ตํ•ฉ ์‹คํ–‰ ํŒŒ์ผ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๊ฐ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” ์ด ํŒŒ์ผ์— ๋Œ€ํ•œ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ ํ˜•ํƒœ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ). ์œ ํ‹ธ๋ฆฌํ‹ฐ ์ปฌ๋ ‰์…˜์˜ ํฌ๊ธฐ, ๊ตฌ์„ฑ ๋ฐ ๊ธฐ๋Šฅ์€ ์กฐ๋ฆฝ์ด ์ˆ˜ํ–‰๋˜๋Š” ์ž„๋ฒ ๋””๋“œ ํ”Œ๋žซํผ์˜ ์š”๊ตฌ ์‚ฌํ•ญ๊ณผ ๊ธฐ๋Šฅ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€๋Š” ์ž์ฒด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. uclibc๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •์ ์œผ๋กœ ๋นŒ๋“œํ•  ๋•Œ Linux ์ปค๋„ ์œ„์— ์ž‘์—… ์‹œ์Šคํ…œ์„ ๋งŒ๋“ค๋ ค๋ฉด /dev ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์—ฌ๋Ÿฌ ์žฅ์น˜ ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์ค€๋น„ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด์ „ ๋ฆด๋ฆฌ์Šค 1.33๊ณผ ๋น„๊ตํ•˜์—ฌ ์ผ๋ฐ˜์ ์ธ BusyBox 1.34 ์–ด์…ˆ๋ธ”๋ฆฌ์˜ RAM ์†Œ๋น„๋Š” 9620๋ฐ”์ดํŠธ(1032724์—์„œ 1042344๋ฐ”์ดํŠธ๋กœ) ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

BusyBox๋Š” ํŽŒ์›จ์–ด์˜ GPL ์œ„๋ฐ˜์— ๋งž์„œ ์‹ธ์šฐ๋Š” ์ฃผ์š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. BusyBox ๊ฐœ๋ฐœ์ž๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ SFC(Software Freedom Conservancy) ๋ฐ SFLC(Software Freedom Law Center)๋Š” ๋ฒ•์›์„ ํ†ตํ•ด ๋˜๋Š” ์™ธ๋ถ€๋ฅผ ํ†ตํ•ด GPL ํ”„๋กœ๊ทธ๋žจ์˜ ์†Œ์Šค ์ฝ”๋“œ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š” ํšŒ์‚ฌ์— ๋ฐ˜๋ณต์ ์œผ๋กœ ์„ฑ๊ณต์ ์œผ๋กœ ์˜ํ–ฅ์„ ๋ฏธ์ณค์Šต๋‹ˆ๋‹ค. -๋ฒ•์› ๊ณ„์•ฝ. ๋™์‹œ์— BusyBox์˜ ์ž‘์„ฑ์ž๋Š” ๊ทธ๋Ÿฌํ•œ ๋ณดํ˜ธ๊ฐ€ ์ž์‹ ์˜ ์‚ฌ์—…์„ ๋ง์น  ๊ฒƒ์ด๋ผ๊ณ  ๋ฏฟ๊ณ  ๊ฐ•๋ ฅํ•˜๊ฒŒ ๋ฐ˜๋Œ€ํ•ฉ๋‹ˆ๋‹ค.

BusyBox 1.34์—์„œ๋Š” ๋‹ค์Œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๊ฐ•์กฐ๋ฉ๋‹ˆ๋‹ค.

  • ASCII ๋ฌธ์ž ์ด๋ฆ„์˜ ๋Œ€ํ™”ํ˜• ํ…Œ์ด๋ธ”์ด ํฌํ•จ๋œ ์ƒˆ๋กœ์šด ASCII ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ฒดํฌ์„ฌ ๊ณ„์‚ฐ์„ ์œ„ํ•œ ์ƒˆ๋กœ์šด ์œ ํ‹ธ๋ฆฌํ‹ฐ crc32๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋‚ด์žฅ๋œ http ์„œ๋ฒ„๋Š” DELETE, PUT ๋ฐ OPTIONS ๋ฉ”์†Œ๋“œ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • Udhcpc๋Š” ๊ธฐ๋ณธ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • TLS ํ”„๋กœํ† ์ฝœ ๊ตฌํ˜„์€ ์ด์ œ ํƒ€์› ๊ณก์„  secp256r1(P256)์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ash ๋ฐ hush ๋ช…๋ น ์…ธ์˜ ๊ฐœ๋ฐœ์€ ๊ณ„์†๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์กฐ์šฉํžˆ, ^D ๋ช…๋ น์˜ ์ฒ˜๋ฆฌ๊ฐ€ ash ๋ฐ bash์˜ ๋™์ž‘๊ณผ ์ผ์น˜ํ•˜๊ฒŒ ๋˜์—ˆ๊ณ , bash ๊ด€๋ จ $'str' ๊ตฌ์„ฑ์ด ๊ตฌํ˜„๋˜์—ˆ์œผ๋ฉฐ, ${var/pattern/repl} ๋Œ€์ฒด ์ž‘์—…์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ตœ์ ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • awk ์œ ํ‹ธ๋ฆฌํ‹ฐ ๊ตฌํ˜„์— ๋Œ€ํ•œ ๋งŽ์€ ๋ถ€๋ถ„์˜ ์ˆ˜์ • ๋ฐ ๊ฐœ์„ ์ด ์ด๋ฃจ์–ด์กŒ์Šต๋‹ˆ๋‹ค.
  • ์ž˜๋ชป๋œ ๋ฌธ์ž๋ฅผ ๋ฌด์‹œํ•˜๊ธฐ ์œ„ํ•ด base32 ๋ฐ base64 ์œ ํ‹ธ๋ฆฌํ‹ฐ์— "-i" ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • bc ๋ฐ dc ์œ ํ‹ธ๋ฆฌํ‹ฐ์—์„œ BC_LINE_LENGTH ๋ฐ DC_LINE_LENGTH ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ฒ˜๋ฆฌ๋Š” GNU ์œ ํ‹ธ๋ฆฌํ‹ฐ์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
  • blockdev ์œ ํ‹ธ๋ฆฌํ‹ฐ์— --getra ๋ฐ --setra ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • chattr ๋ฐ lsattr ์œ ํ‹ธ๋ฆฌํ‹ฐ์— "-p" ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. lsattr์€ ์ง€์›๋˜๋Š” ext2 FS ํ”Œ๋ž˜๊ทธ ์ˆ˜๋ฅผ ํ™•์žฅํ–ˆ์Šต๋‹ˆ๋‹ค.
  • "-n"(๋ฎ์–ด์“ฐ๊ธฐ ๋น„ํ™œ์„ฑํ™”) ๋ฐ "-t DIR"(๋Œ€์ƒ ๋””๋ ‰ํ„ฐ๋ฆฌ ์ง€์ •) ์˜ต์…˜์ด cp ์œ ํ‹ธ๋ฆฌํ‹ฐ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • cpio์—์„œ๋Š” "cpio -d -p A/B/C" ๊ตฌ์„ฑ์ด ์กฐ์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • "-t TYPE" ์˜ต์…˜์ด df ์œ ํ‹ธ๋ฆฌํ‹ฐ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์ถœ๋ ฅ์„ ํŠน์ • ํŒŒ์ผ ํ˜•์‹์œผ๋กœ ์ œํ•œ).
  • -b ์˜ต์…˜์ด du ์œ ํ‹ธ๋ฆฌํ‹ฐ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค('โ€”apparent-size โ€”block-size=1'๊ณผ ๋™์ผ).
  • env ์œ ํ‹ธ๋ฆฌํ‹ฐ์— ์˜ต์…˜ "-0"์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค(๊ฐ ์ค„์€ ์ฝ”๋“œ XNUMX์˜ ๋ฌธ์ž๋กœ ์ข…๋ฃŒ).
  • "-h" ์˜ต์…˜(์ฝ์„ ์ˆ˜ ์žˆ๋Š” ์ถœ๋ ฅ)์ด ๋ฌด๋ฃŒ ์œ ํ‹ธ๋ฆฌํ‹ฐ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ionice ์œ ํ‹ธ๋ฆฌํ‹ฐ์— "-t"(์‹คํŒจ ๋ฌด์‹œ) ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ด์ œ ๋กœ๊ทธ์ธ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” LOGIN_TIMEOUT ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • mv ์œ ํ‹ธ๋ฆฌํ‹ฐ์— "-t"(์ด๋™ํ•  ๋Œ€์ƒ ๋””๋ ‰ํ„ฐ๋ฆฌ ์ง€์ •) ๋ฐ "-T"(๋‘ ๋ฒˆ์งธ ์ธ์ˆ˜๋ฅผ ํŒŒ์ผ๋กœ ์ฒ˜๋ฆฌ) ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํŒŒ์‡„ ์œ ํ‹ธ๋ฆฌํ‹ฐ์— "-s SIZE" ์˜ต์…˜(์‚ญ์ œํ•  ๋ฐ”์ดํŠธ ์ˆ˜)์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • "-a" ์˜ต์…˜์ด ์ž‘์—… ์„ธํŠธ ์œ ํ‹ธ๋ฆฌํ‹ฐ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(๋ชจ๋“  ํ”„๋กœ์„ธ์Šค ์Šค๋ ˆ๋“œ์— CPU ์„ ํ˜ธ๋„ ์ ์šฉ).
  • timeout, top, watch ๋ฐ ping ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” ์ด์ œ ์ •์ˆ˜๊ฐ€ ์•„๋‹Œ ๊ฐ’(NN.N)์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • "-z" ์˜ต์…˜์ด uniq ์œ ํ‹ธ๋ฆฌํ‹ฐ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์ œ๋กœ ์ฝ”๋“œ ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ ๊ธฐํ˜ธ๋กœ ์‚ฌ์šฉ).
  • unzip ์œ ํ‹ธ๋ฆฌํ‹ฐ์— โ€œ-tโ€ ์˜ต์…˜(์•„์นด์ด๋ธŒ ํ™•์ธ)์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • vi ํŽธ์ง‘๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ':s' ๋ช…๋ น์—์„œ ์ •๊ทœ์‹์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ™•์žฅ ํƒญ ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹จ๋ฝ ๊ฐ„ ์ด๋™, ๋ฒ”์œ„ ์„ ํƒ ๋ฐ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์‹คํ–‰ ์ทจ์†Œ์— ๋Œ€ํ•œ ๊ตฌํ˜„์ด ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • xxd ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” -i(C ์Šคํƒ€์ผ ์ถœ๋ ฅ) ๋ฐ -o DISPLAYOFFSET ์˜ต์…˜์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
  • wget ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฆฌ๋””๋ ‰์…˜์„ ์œ„ํ•ด HTTP 307/308 ์ฝ”๋“œ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. FTP ์ง€์›์„ ํ™œ์„ฑํ™”/๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” FEATURE_WGET_FTP ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • dd ์œ ํ‹ธ๋ฆฌํ‹ฐ์— "iflag=count_bytes" ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ปท ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” ์žฅ๋‚œ๊ฐ ์ƒ์ž ํ˜ธํ™˜ ์˜ต์…˜ "-O OUTSEP", "-D" ๋ฐ "-F LIST"๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€