문서 보기문서 편집수정 내역 BusyBox (덤프버전으로 되돌리기) == 개요 == '''BusyBox'''는 수많은 [[UNIX]] [[CLI|명령행]] [[유틸리티]]의 기능을 하나의 실행 파일 안에 통합시킨 소프트웨어이다. 공식 슬로건은 "[[임베디드 시스템|임베디드]] [[Linux|리눅스]] 업계의 [[스위스 아미 나이프]](The Swiss Army Knife of Embedded Linux)". == 상세 == 몇백 KB 정도밖에 안 되는 작은 바이너리 속에 필수 UNIX 유틸리티 350여개의 기능이 얼추 들어가 있기 때문에, 임베디드 환경에서 널리 이용된다. BusyBox를 사용하는 임베디드 리눅스 환경에서 ls -al /bin 을 찍어 보면 수많은 명령어가 busybox로 심볼릭 링크되어 있는 모습을 볼 수 있다. 물론 용량 제약 때문에 각 명령어가 제공하는 기능들이 간략화되었기 때문에, GNU Coreutils나 [[POSIX]]/[[Single UNIX Specification|SUS]] 스펙에 비교하면 은근히 기능들이 빠져 있다는 단점이 있다. BusyBox를 컴파일할 때 원하는 명령어("applet")를 포함할지 여부를 선택할 수 있다. 만약 350개의 유틸리티 모두가 필요하지 않다고 생각해서 덜어낸다면 몇십 KB밖에 안 하는 BusyBox 바이너리를 만들 수도 있다. BusyBox는 [[GNU 일반 공중 사용 허가서|GNU GPLv2]] 하에 배포되는 [[자유 소프트웨어]]이다. === 포함된 유틸리티 === BusyBox는 작은 [[셸(컴퓨터)|셸]](ash-like)부터 [[텍스트 에디터]](sed, [[vi]]-like)는 물론 네트워크 유틸리티(ifconfig, ifup...)에 이르기까지, 작은 용량에 비해 굉장히 풍부한 유틸리티 라인업을 자랑한다. 2023년 5월 19일 릴리즈된 1.36.1 기준, BusyBox에서 지원하는 애플릿의 목록은 다음과 같다. ||{{{[}}}, {{{[[}}}, acpid, addgroup, adduser, adjtimex, ar, arp, arping, ash, awk, basename, beep, blkid, brctl, bunzip2, bzcat, bzip2, cal, cat, catv, chat, chattr, chgrp, chmod, chown, chpasswd, chpst, chroot, chrt, chvt, cksum, clear, cmp, comm, cp, cpio, crond, crontab, cryptpw, cut, date, dc, dd, deallocvt, delgroup, deluser, depmod, devmem, df, dhcprelay, diff, dirname, dmesg, dnsd, dnsdomainname, dos2unix, dpkg, du, dumpkmap, dumpleases, echo, ed, egrep, eject, env, envdir, envuidgid, expand, expr, fakeidentd, false, fbset, fbsplash, fdflush, fdformat, fdisk, fgrep, find, findfs, flash_lock, flash_unlock, fold, free, freeramdisk, fsck, fsck.minix, fsync, ftpd, ftpget, ftpput, fuser, getopt, getty, grep, gunzip, gzip, hd, hdparm, head, hexdump, hostid, hostname, httpd, hush, hwclock, id, ifconfig, ifdown, ifenslave, ifplugd, ifup, inetd, init, inotifyd, insmod, install, ionice, ip, ipaddr, ipcalc, ipcrm, ipcs, iplink, iproute, iprule, iptunnel, kbd_mode, kill, killall, killall5, klogd, last, length, less, linux32, linux64, linuxrc, ln, loadfont, loadkmap, logger, login, logname, logread, losetup, lpd, lpq, lpr, ls, lsattr, lsmod, lzmacat, lzop, lzopcat, makemime, man, md5sum, mdev, mesg, microcom, mkdir, mkdosfs, mkfifo, mkfs.minix, mkfs.vfat, mknod, mkpasswd, mkswap, mktemp, modprobe, more, mount, mountpoint, mt, mv, nameif, nc, netstat, nice, nmeter, nohup, nslookup, od, openvt, passwd, patch, pgrep, pidof, ping, ping6, pipe_progress, pivot_root, pkill, popmaildir, printenv, printf, ps, pscan, pwd, raidautorun, rdate, rdev, readlink, readprofile, realpath, reformime, renice, reset, resize, rm, rmdir, rmmod, route, rpm, rpm2cpio, rtcwake, run-parts, runlevel, runsv, runsvdir, rx, script, scriptreplay, sed, sendmail, seq, setarch, setconsole, setfont, setkeycodes, setlogcons, setsid, setuidgid, sh, sha1sum, sha256sum, sha512sum, showkey, slattach, sleep, softlimit, sort, split, start-stop-daemon, stat, strings, stty, su, sulogin, sum, sv, svlogd, swapoff, swapon, switch_root, sync, sysctl, syslogd, tac, tail, tar, taskset, tcpsvd, tee, telnet, telnetd, test, tftp, tftpd, time, timeout, top, touch, tr, traceroute, true, tty, ttysize, udhcpc, udhcpd, udpsvd, umount, uname, uncompress, unexpand, uniq, unix2dos, unlzma, unlzop, unzip, uptime, usleep, uudecode, uuencode, vconfig, vi, vlock, volname, watch, watchdog, wc, wget, which, who, whoami, xargs, yes, zcat, zcip|| == 사용 시스템 == 수많은 임베디드 리눅스 시스템에서 BusyBox를 사용하고 있다. 대표적인 예로 [[공유기]]([[OpenWrt]], [[DD-WRT]] 등), [[TV]]([[webOS]] 등)이 있다. [[Android]]에서는 기본탑재되어 있지는 않으나, [[커스텀 롬]] 등에는 내장되어 있는 경우가 있으며, [[루팅]]한 기기라면 Play Store에서 BusyBox를 설치하는 애플리케이션을 다운로드받아 설치할 수 있다. [[Alpine Linux]]는 경량형 배포판이라는 특성상 임베디드가 아닌 데스크톱/서버용 운영체제임에도 BusyBox를 사용하고 있다. [[분류:오픈 소스 소프트웨어]][[분류:Linux]][[분류:유틸리티]]캡챠되돌리기