BusyBox — набір UNIX-утиліт командного рядка (у вигляді одного файлу), котрий є майже повним POSIX-середовищем для вбудованих та інших систем з невеликим обсягом доступного місця. Переваги — малий розмір та низькі вимоги до апаратури. Автори називали його "швейцарським ножем вбудованого Linux",http://www.busybox.net/about.html The slogan for 'The Swiss Army Knife of Embedded Linux' source оскільки один виконуваний файл заміняє понад 300 загальних команд. Випущений як вільне програмне забезпечення на умовах GNU General Public License.
BusyBox працює на великому числі різних POSIX-середовищ, таких як Linux (включаючи Android), FreeBSD і на різних власницьких ядрах, хоча багато з цих інструментів з набору спроєктовані для роботи з інтерфейсом ядра Linux.
Розробка BusyBox була розпочата в 1996 Брюсом Перенсом з метою оптимізації розміру і з урахуванням обмежених ресурсів. У той же час система є досить гнучкою і модульною (в момент компіляції можна включити/виключити всі необхідні компоненти). Проєкт повільно рухається до повної реалізації Single UNIX Specification V3, яка поки не досягнута. Також проєкт зацікавлений у проходженні тесту Linux Test Project.
Модульний характер BusyBox дає можливість сформувати один уніфікований виконуваний файл, що містить в собі довільний набір реалізованих у пакеті утиліт (кожна утиліта доступна у формі символічного посилання на даний файл). Розмір, склад і функціональність колекції утиліт можна варіювати залежно від потреб і можливостей вбудованої платформи, для якої здійснюється складання. Пакет самодостатній, при статичному складанні з uclibc для створення робочої системи поверх ядра Linux потрібно лише створити декілька файлів-пристроїв у теці /dev і підготувати файли конфігурації.
Команди
— командна оболонка awk — мова обробки рядків за шаблонами cat — прочитати chmod — змінити права cp — копіювати date — поточні дата та/або час dd — копіювати файл з конвертацією і форматуванням df — вивести статистику використання файлової системи dmesg — вивід буфера повідомлень ядра echo — вивести рядок egrep — grep з підтримкою розширених регулярних виразів fgrep — grep з оптимізованим пошуком фіксованого рядка grep — шукати по шаблону в кожному файлі або стандартному вводі gunzip — розпакувати з gzip gzip — упакувати в gzip kill — завершити процес init ln — створити link з назвою LINK_NAME або DIRECTORY прив'язаний до вказаного TARGET. login — почати нову сесію у системі ls — список файлів і тек mdu mdev — akin to udev mkdir — створити теку more — переглянути файл або стандартний вивід на одному екрані за раз, а не довгим списком зі скролом mount — змонтувати файлову систему mv — перемістити файл
Цікаві факти BusyBox є основним інструментом у боротьбі з порушенням GPL у прошивках. Організації Software Freedom Conservancy (SFC) і Software Freedom Law Center (SFLC) від особи розробників BusyBox як через суд, так і шляхом укладення позасудових угод неодноразово успішно впливала на компанії, що не надають доступ до початкового коду GPL-програм.
Для виробників, які не бажають відкривати початкові тексти модифікованих компонентів, у рамках проєкту Toybox розвивається аналог BusyBox, поширюваний під ліцензією BSD (2 clause). За можливостями Toybox поки відстає від BusyBox.
Виноски
Посилання Офіційний сайт Building Tiny Linux Systems with BusyBox