-
리눅스 명령어 세트를 하나의 실행 파일로 통합한 경량 멀티콜 바이너리 도구로, BusyBox의 대안으로 개발된 오픈소스 유틸리티
- 단일 실행 파일(
toybox-x86_64)만 다운로드 후 실행하면, echo, cp, mv, cat 등 기본 명령어를 하나의 바이너리로 제공
- POSIX-2008과 LSB 4.1 표준에 부합하며, 빠른 실행 속도와 간결한 구조, 표준 준수성을 강조함
- 원래 프로젝트의 핵심 목표는 Android를 완전한 self-hosting 환경으로 만드는 것으로, AOSP를 Android 자체에서 빌드할 수 있도록 설계됨
- Google은 이 철학을 인정해 2015년 Android Marshmallow부터 Toybox를 AOSP에 통합하여 기본 탑재함
- BusyBox는 GPLv2 라이선스로 Android와 비호환이지만, ToyBox는 Android와 호환되는 BSD 라이선스로 재작성됨
- GNU 도구 의존성을 제거하고 더 투명하고 재현 가능한 빌드 환경 제공을 지향
- Toybox는 ‘최소 네 가지 구성요소로 자가 빌드 가능한 시스템’ 을 목표로 함
- POSIX 명령어 세트, 컴파일러, C 표준 라이브러리, 커널
- 이 구성을 통해 재현 가능한 기반 시스템을 만들고, 이후에 에디터(vi), 모니터링(top), 셸 히스토리 등을 추가해 실사용 가능한 환경으로 확장 가능
-
"toybox" 명령어를 통해 서브 명령을 호출하거나, 각 명령어 이름으로 심볼릭 링크를 생성해 일반 명령처럼 사용 가능
-
리눅스 커널과 동일한 빌드 구조(
make menuconfig; make; make install)를 따르며, .config 파일 기반으로 포함할 기능 선택 가능
-
크로스 컴파일 환경을 완전 지원, ARM 등 비 x86 타깃용 정적 바이너리 빌드 가능
-
scripts/mkroot.sh를 활용해 Toybox 기반의 최소 리눅스 시스템 빌드 가능
-
make root로 루트 파일시스템 생성 후 chroot 실행
-
qemu와 크로스 컴파일러를 함께 사용하면 자체 부팅 가능한 미니 리눅스 환경 구성
-
도움말 시스템 내장:
toybox help <명령어>로 각 명령 설명 확인