BusyBox — набір UNIX-утиліт командного рядка (у вигляді одного файлу), котрий є майже повним POSIX-середовищем для вбудованих та інших систем з невеликим обсягом доступного місця. Переваги — малий розмір та низькі вимоги до апаратури. Автори називали його "швейцарським ножем вбудованого Linux",[2] оскільки один виконуваний файл заміняє понад 300 загальних команд. Випущений як вільне програмне забезпечення на умовах GNU General Public License.[3]

BusyBox
Скріншот BusyBox
Тип Independent SUSp XCU implementation
Розробники Ерік Андерсен, Роб Лендлі, Денис Власенко та ін.
Перший випуск 4 листопада 1999[1]
Стабільний випуск 1.26 (20 грудня 2016; 7 років тому (2016-12-20))
Операційна система Linux, Unix-подібні
Мова програмування C
Ліцензія GNU GPL v2 тільки
Репозиторій git.busybox.net/busybox
Вебсайт busybox.net

BusyBox працює на великому числі різних POSIX-середовищ, таких як Linux (включаючи Android),[4][5][6] FreeBSD[7] і на різних власницьких ядрах, хоча багато з цих інструментів з набору спроєктовані для роботи з інтерфейсом ядра Linux.

Розробка BusyBox була розпочата в 1996 Брюсом Перенсом з метою оптимізації розміру і з урахуванням обмежених ресурсів. У той же час система є досить гнучкою і модульною (в момент компіляції можна включити/виключити всі необхідні компоненти). Проєкт повільно рухається до повної реалізації Single UNIX Specification V3[8], яка поки не досягнута. Також проєкт зацікавлений у проходженні тесту Linux Test Project.[9]

Модульний характер BusyBox дає можливість сформувати один уніфікований виконуваний файл, що містить в собі довільний набір реалізованих у пакеті утиліт (кожна утиліта доступна у формі символічного посилання на даний файл). Розмір, склад і функціональність колекції утиліт можна варіювати залежно від потреб і можливостей вбудованої платформи, для якої здійснюється складання. Пакет самодостатній, при статичному складанні з uclibc для створення робочої системи поверх ядра Linux потрібно лише створити декілька файлів-пристроїв у теці /dev і підготувати файли конфігурації.

Команди ред.

  • ash[en] — командна оболонка
  • 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.

Виноски ред.

  1. Архівована копія (PDF). Архів оригіналу (PDF) за 30 жовтня 2015. Процитовано 28 березня 2012.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  2. http://www.busybox.net/about.html [Архівовано 9 лютого 2014 у Wayback Machine.] The slogan for 'The Swiss Army Knife of Embedded Linux' source
  3. Busy Box License. Архів оригіналу за 1 вересня 2015. Процитовано 2 січня 2014.
  4. Архівована копія. Архів оригіналу за 6 січня 2014. Процитовано 2 січня 2014.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  5. Архівована копія. Архів оригіналу за 6 березня 2012. Процитовано 2 січня 2014.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  6. Архівована копія. Архів оригіналу за 6 січня 2014. Процитовано 2 січня 2014.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  7. Архівована копія. Архів оригіналу за 2 січня 2014. Процитовано 2 січня 2014.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  8. The Open Group Base Specifications Issue 6. Архів оригіналу за 27 грудня 2017. Процитовано 1 січня 2014.
  9. Linux Test Project на SourceForge.net

Посилання ред.