BusyBox 1.35 ํจํค์ง ๋ฆด๋ฆฌ์ค์๋ ๋จ์ผ ์คํ ํ์ผ๋ก ์ค๊ณ๋๊ณ 1MB ๋ฏธ๋ง์ ํฌ๊ธฐ๋ก ์์คํ ๋ฆฌ์์ค๋ฅผ ์ต์ํ์ผ๋ก ์๋นํ๋๋ก ์ต์ ํ๋ ํ์ค UNIX ์ ํธ๋ฆฌํฐ ์ธํธ์ ๊ตฌํ์ด ํฌํจ๋์ด ์์ต๋๋ค. ์๋ก์ด ๋ธ๋์น 1.35์ ์ฒซ ๋ฒ์งธ ๋ฆด๋ฆฌ์ค๋ ๋ถ์์ ํ ๊ฒ์ผ๋ก ์๋ฆฌ๋งค๊นํ์ผ๋ฉฐ, ์์ ํ ์์ ํ๋ ๋ฒ์ 1.35.1์์ ์ ๊ณต๋ ์์ ์ด๋ฉฐ ์ฝ ํ ๋ฌ ํ์ ์์๋ฉ๋๋ค. ํ๋ก์ ํธ ์ฝ๋๋ GPLv2 ๋ผ์ด์ผ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค.
BusyBox๋ ๋ชจ๋์ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์์ด ํจํค์ง ๋ด์ ๊ตฌํ๋ ๋ชจ๋ ์ ํธ๋ฆฌํฐ๋ฅผ ํฌํจํ๋ ๋จ์ผ ํตํฉ ์คํ ํ์ผ์ ์์ฑํ ์ ์์ต๋๋ค(๊ฐ ์ ํธ๋ฆฌํฐ๋ ํ์ผ์ ๋ํ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ก ์ ๊ณต๋ฉ๋๋ค). ์ ํธ๋ฆฌํฐ ๋ชจ์์ ํฌ๊ธฐ, ๊ตฌ์ฑ ๋ฐ ๊ธฐ๋ฅ์ ๊ตฌ์ถ ๋์ ์๋ฒ ๋๋ ํ๋ซํผ์ ์๊ตฌ ์ฌํญ๊ณผ ๊ธฐ๋ฅ์ ๋ฐ๋ผ ๋ค์ํ๊ฒ ์กฐ์ ํ ์ ์์ต๋๋ค. ์ด ํจํค์ง๋ ์์ฒด์ ์ผ๋ก ๋ชจ๋ ๊ธฐ๋ฅ์ ํฌํจํ๊ณ ์์ผ๋ฉฐ, uclibc์ ์ ์ ์ผ๋ก ๋งํฌํ์ฌ ์ปค๋ ์์ ์๋ํ๋ ์์คํ ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค. Linux /dev ๋๋ ํฐ๋ฆฌ์ ๋ช ๊ฐ์ ์ฅ์น ํ์ผ์ ์์ฑํ๊ณ ๊ตฌ์ฑ ํ์ผ์ ์ค๋นํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ์ด์ ๋ฒ์ ์ธ 1.34๊ณผ ๋น๊ตํ์ฌ BusyBox 1.35 ๋น๋์ ์ผ๋ฐ์ ์ธ RAM ์ฌ์ฉ๋์ 1726๋ฐ์ดํธ(1042344๋ฐ์ดํธ์์ 1044070๋ฐ์ดํธ๋ก) ์ฆ๊ฐํ์ต๋๋ค.
BusyBox๋ ํ์จ์ด์ GPL ์๋ฐ์ ๋ง์ ์ธ์ฐ๋ ์ฃผ์ ๋๊ตฌ์ ๋๋ค. BusyBox ๊ฐ๋ฐ์๋ฅผ ๋์ ํ์ฌ SFC(Software Freedom Conservancy) ๋ฐ SFLC(Software Freedom Law Center)๋ ๋ฒ์์ ํตํด ๋๋ ์ธ๋ถ๋ฅผ ํตํด GPL ํ๋ก๊ทธ๋จ์ ์์ค ์ฝ๋์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ๊ณตํ์ง ์๋ ํ์ฌ์ ๋ฐ๋ณต์ ์ผ๋ก ์ฑ๊ณต์ ์ผ๋ก ์ํฅ์ ๋ฏธ์ณค์ต๋๋ค. -๋ฒ์ ๊ณ์ฝ. ๋์์ BusyBox์ ์์ฑ์๋ ๊ทธ๋ฌํ ๋ณดํธ๊ฐ ์์ ์ ์ฌ์ ์ ๋ง์น ๊ฒ์ด๋ผ๊ณ ๋ฏฟ๊ณ ๊ฐ๋ ฅํ๊ฒ ๋ฐ๋ํฉ๋๋ค.
BusyBox 1.35์์๋ ๋ค์ ๋ณ๊ฒฝ ์ฌํญ์ด ๊ฐ์กฐ๋ฉ๋๋ค.
- find ์ ํธ๋ฆฌํฐ๋ "-samefile name" ์ต์ ์ ๊ตฌํํ์ฌ ์ง์ ๋ ์ด๋ฆ์ ๊ฐ์ง ํ์ผ๊ณผ ๋์ผํ inode๋ฅผ ์ฌ์ฉํ๋์ง ํ์ธํฉ๋๋ค. ์๊ฐ ๋น๊ต๋ฅผ ์ํ ์ฝ๋๋ฅผ ํตํฉํ๊ณ ํ์ผ ์ ๊ทผ ๋ฐ ์์ฑ ์๊ฐ์ ํ์ธํ๊ธฐ ์ํด "-amin", "-atime", "-cmin" ๋ฐ "-ctime" ์ต์ ์ ์ถ๊ฐํ์ต๋๋ค.
- mktemp ์ ํธ๋ฆฌํฐ์๋ ์์ ํ์ผ๊ณผ ๊ด๋ จ๋ ๊ฒฝ๋ก๋ฅผ ๊ณ์ฐํ๋ ๊ธฐ์ค ๋๋ ํ ๋ฆฌ๋ฅผ ์ง์ ํ๋ "--tmpdir" ์ต์ ์ด ์์ต๋๋ค.
- cpio ์ ํธ๋ฆฌํฐ์๋ ์ด์ ์ค์ ์ฅ์น ๋ฒํธ๋ฅผ ๋ฌด์ํ๋ "--ignore-devno" ์ต์ (ํญ์ 0์ ๊ธฐ๋ก)๊ณผ ์์นด์ด๋ธ์ ๋ฃ๊ธฐ ์ ์ inode ๋ฒํธ๋ฅผ ๋ค์ ๋งค๊ธฐ๋ "--renumber-inodes" ์ต์ ์ด ์์ต๋๋ค.
- awk ์ ํธ๋ฆฌํฐ๋ ์ด์ "printf %%" ํํ์์ ์ง์ํฉ๋๋ค.
- libbb ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฝ 12๊ฐ์ง์ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ๊ฐํ์ต๋๋ค. coreutils ์ ํ๊ตฐ์ ํด๋น ์ ํ๊ณผ realpath์ ํธํ์ฑ์ด ํฅ์๋์์ต๋๋ค.
- ์ ์ฌ์ ํ์ฌ ์์ ๋ํ ๋ง์ ์์ ์์ด ์ ์๋์๋๋ฐ, ์ด๋ ๋ค๋ฅธ ์๊ณผ์ ํธํ์ฑ์ ๊ฐ์ ํ๊ธฐ ์ํ ๊ฒ์ด์์ต๋๋ค. ash๋ bash์ ์ ์ฌํ ERR ํธ๋ฉ, set -E, $FUNCNAME์ ๋ํ ์ง์์ ์ถ๊ฐํ๊ณ "${s:}" ํํ์์ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด ์ถ์ถ ์๋๋ฅผ ๋์ ๋๋ค. ์ฌ์ ์นจ๋ฌต ์์์ "${x//\*/|}" ์์ ์ ์คํ์ด ๊ฐ์ํ๋์์ต๋๋ค.
- basename ์ ํธ๋ฆฌํฐ๋ ๋จ์ผ ํธ์ถ์์ ์ฌ๋ฌ ์ด๋ฆ์ ์ ๋ฌํ๋ "-a" ์ต์ ๊ณผ ๋์ ๋ถ๋ "SUFFIX" ๋ฌธ์๋ฅผ ์ ๊ฑฐํ๋ "-s SUFFIX" ์ต์ ์ ๊ตฌํํฉ๋๋ค.
- blkdiscard ์ ํธ๋ฆฌํฐ์ "-f"(๊ฐ์ ) ์ต์ ์ด ์ถ๊ฐ๋์์ต๋๋ค.
- httpd์์ ์ค๋ฅ ํ์ด์ง์ ๋ํ Last-Modified / ETag / Content-Length ํค๋ ์ ์ก์ ์ค๋จํ์ต๋๋ค.
- httpd์ telnetd๋ ๊ธฐ๋ณธ ๋คํธ์ํฌ ํฌํธ๋ฅผ ๋ณ๊ฒฝํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- ๋งค์ฐ ๊ธด ํ์ผ ์ด๋ฆ์ ๊ฐ์ง ์์ถ ํ์ผ์ ์ฒ๋ฆฌํ ๋ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋ชจ๋ ์ ์๋ tar์ ์ทจ์ฝ์ ์ด ์์ ๋์์ต๋๋ค.
- TLS ์ฝ๋์์๋ P256๊ณผ x25519 ๊ตฌํ์ด ๋ค์ ์์ ๋์์ต๋๋ค.
- wget ์ ํธ๋ฆฌํฐ๋ ํ์ผ์ ์ ์กํ๊ธฐ ์ํ "--post-file" ์ต์ ์ ๊ตฌํํ๊ณ "--post-data" ๋ฐ "--post-file" ์ต์ ์ ๋ํ Content-Type ํค๋๋ฅผ ์ฌ์ฉ์ ์ ์ํ ์ ์๋๋ก ํฉ๋๋ค.
- timeout ์ ํธ๋ฆฌํฐ๊ฐ ์ ๋ฐ์ดํธ๋์ด ๋ช ๋ น์ด ์ถ๊ฐ KILL_SECS์ด ๋ด์ ์๋ฃ๋์ง ์์ ๊ฒฝ์ฐ SIGKILL ์ ํธ๋ฅผ ๋ณด๋ด๋ "-k KILL_SECS" ์ต์ ์ ์ง์ํฉ๋๋ค.
- ip ์ ํธ๋ฆฌํฐ๊ฐ ์ ๋ฐ์ดํธ๋์ด ์ฅ์น์ ๋ํ netns ๋งค๊ฐ๋ณ์ ์ค์ ์ ์ง์ํฉ๋๋ค.
- cal ์ ํธ๋ฆฌํฐ๋ "-m" ์ต์ ์ ๊ตฌํํ์ฌ ์ง์ ๋ ์์ ํ์ํฉ๋๋ค.
- ๋ ์ง ๋ฐ ํฐ์น ์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ ์ง์ ์๊ฐ๋ ์คํ์ ์ ์ง์ ํ ์ ์์ต๋๋ค.
- vi ํธ์ง๊ธฐ๋ ~/.exrc ํ์ผ์ ๋ํ ์ง์์ ์ถ๊ฐํ๊ณ "-c" ๋ฐ EXINIT์ ์ฒ๋ฆฌ๋ฅผ ๋ณ๊ฒฝํ์ต๋๋ค.
- ed ์ ํธ๋ฆฌํฐ์์ ์ฝ๊ธฐ/์ฐ๊ธฐ ๋ช ๋ น์ ์คํํ ๊ฒฐ๊ณผ๋ POSIX-1.2008 ์ฌ์์ ์ค์ํ๊ฒ ๋์์ต๋๋ค. "-p" ์ต์ ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- cmp ์ ํธ๋ฆฌํฐ๊ฐ "-n N" ์ต์ ์ผ๋ก ์ ๋ฐ์ดํธ๋์ด ๋น๊ต ๋ฒ์๋ฅผ N๋ฐ์ดํธ๋ก ์ ํํฉ๋๋ค.
๋ํ, ๋ฉฐ์น ์ ์๋ BusyBox์ ์ ๊ด๋ฆฌ์์ ์ํด ๊ฐ๋ฐ๋์ด 0.8.6BSD ๋ผ์ด์ ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋๋ BusyBox ์๋ ๋ก๊ทธ์ธ Toybox 0์ด ์ถ์๋์์ต๋๋ค. Toybox์ ์ฃผ์ ๋ชฉ์ ์ ์ ์กฐ์ ์ฒด๊ฐ ์์ ๋ ๊ตฌ์ฑ ์์์ ์์ค ์ฝ๋๋ฅผ ๊ณต๊ฐํ์ง ์๊ณ ๋ ์ต์ํ์ ํ์ค ์ ํธ๋ฆฌํฐ ์ธํธ๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ๊ฒ์ ๋๋ค. ๊ธฐ๋ฅ ๋ฉด์์ Toybox๋ ์ฌ์ ํ BusyBox๋ณด๋ค ๋ค์ฒ์ง์ง๋ง, ๊ณํ๋ 296๊ฐ ๊ธฐ๋ณธ ๋ช ๋ น ์ค 217๊ฐ(์ ์ฒด 83๊ฐ, ๋ถ๋ถ 374๊ฐ)๊ฐ ์ด๋ฏธ ๊ตฌํ๋์์ต๋๋ค.
Toybox 0.8.6์ ํ์ ์ฌํญ์ผ๋ก๋ ์์คํ
์ด๋ฏธ์ง๋ฅผ ๋ง๋๋ ์คํฌ๋ฆฝํธ์ ๊ฐ์ , sha256sum, sha224sum, sha384sum, sha512sum, linux32, strace ๋ฐ hexdump ๋ช
๋ น์ ์ถ๊ฐ๋ฅผ ๋ค โโ์ ์์ต๋๋ค. โdate -sโ, โpmap -pโ, โtail -F -sโ, โkill -0โณ, reboot/halt/poweroff -dโ, โtail -bytes -linesโ, โi2cdetect -qโ, โfind -quit -lname -ilname -dโ, โcut -d $'\n'โ, โcut -nbโ, โcpio -ignore-devno -renumber-inodesโ, โtar -selinuxโ, "split -n", "grep -L" ์ต์
์ด ๊ตฌํ๋์์ต๋๋ค.
์ถ์ฒ : opennet.ru
