- Linuxのコマンド群を1つの実行ファイルに統合した軽量マルチコールバイナリツールで、BusyBoxの代替として開発されたオープンソースユーティリティ
- 単一の実行ファイル(
toybox-x86_64)をダウンロードして実行するだけで、echo、cp、mv、cat などの基本コマンドを1つのバイナリで提供
- POSIX-2008 と LSB 4.1 標準に準拠し、高速な実行速度、簡潔な構造、標準準拠性を重視
- 元のプロジェクトの中核目標は、Android を完全な self-hosting 環境にすることで、AOSP を Android 自身でビルドできるように設計
- Google はこの思想を認め、2015年の Android Marshmallow 以降、Toybox を AOSP に統合して標準搭載
- BusyBox は GPLv2 ライセンスのため Android と非互換だが、Toybox は Android と互換性のある BSD ライセンスで再実装
- GNU ツールへの依存を取り除き、より透明で再現可能なビルド環境の提供を目指す
- Toybox は **「最小4つの構成要素で自己ビルド可能なシステム」**を目標とする
- POSIX コマンドセット、コンパイラ、C 標準ライブラリ、カーネル
- この構成により 再現可能な基盤システムを作り、その後エディタ(vi)、監視ツール(top)、シェル履歴などを追加して実用的な環境へ拡張可能
toybox コマンドでサブコマンドを呼び出すか、各コマンド名のシンボリックリンクを作成して通常のコマンドのように利用可能
- Linux カーネルと同じビルド構造(
make menuconfig; make; make install)に従い、.config ファイルベースで含める機能を選択可能
- クロスコンパイル環境を完全サポートし、ARM など x86 以外のターゲット向け静的バイナリをビルド可能
scripts/mkroot.sh を活用して Toybox ベースの最小 Linux システムをビルド可能
make root でルートファイルシステムを生成した後、chroot を実行
qemu とクロスコンパイラを併用すれば、自力でブート可能なミニ Linux 環境を構築
- ヘルプシステムを内蔵:
toybox help <コマンド> で各コマンドの説明を確認
1件のコメント
使ってみた方、便利ですか?