BusyBox
Тип | Independent SUSp XCU implementation |
---|---|
Розробники | Ерік Андерсен, Роб Лендлі, Денис Власенко та ін. |
Перший випуск | 4 листопада 1999[1] |
Стабільний випуск | 1.26 (20 грудня 2016 ) |
Операційна система | Linux, Unix-подібні |
Мова програмування | C |
Ліцензія | GNU GPL v2 тільки |
Репозиторій | git.busybox.net/busybox |
Вебсайт | busybox.net |
BusyBox — набір UNIX-утиліт командного рядка (у вигляді одного файлу), котрий є майже повним POSIX-середовищем для вбудованих та інших систем з невеликим обсягом доступного місця. Переваги — малий розмір та низькі вимоги до апаратури. Автори називали його "швейцарським ножем вбудованого Linux",[2] оскільки один виконуваний файл заміняє понад 300 загальних команд. Випущений як вільне програмне забезпечення на умовах GNU General Public License.[3]
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.
- ↑ Архівована копія (PDF). Архів оригіналу (PDF) за 30 жовтня 2015. Процитовано 28 березня 2012.
{{cite web}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання) [Архівовано 2015-09-24 у Wayback Machine.] - ↑ http://www.busybox.net/about.html [Архівовано 9 лютого 2014 у Wayback Machine.] The slogan for 'The Swiss Army Knife of Embedded Linux' source
- ↑ Busy Box License. Архів оригіналу за 1 вересня 2015. Процитовано 2 січня 2014.
- ↑ Архівована копія. Архів оригіналу за 6 січня 2014. Процитовано 2 січня 2014.
{{cite web}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання) - ↑ Архівована копія. Архів оригіналу за 6 березня 2012. Процитовано 2 січня 2014.
{{cite web}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання) - ↑ Архівована копія. Архів оригіналу за 6 січня 2014. Процитовано 2 січня 2014.
{{cite web}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання) - ↑ Архівована копія. Архів оригіналу за 2 січня 2014. Процитовано 2 січня 2014.
{{cite web}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання) - ↑ The Open Group Base Specifications Issue 6. Архів оригіналу за 27 грудня 2017. Процитовано 1 січня 2014.
- ↑ Linux Test Project на SourceForge.net
- Офіційний сайт [Архівовано 6 липня 2010 у Wayback Machine.]
- Building Tiny Linux Systems with BusyBox
- M. Tim. Jones. (15 серпня 2006). Busybox simplifies embedded Linux systems. developerWorks (англійською) . IBM Corporation. Архів оригіналу за 29 лютого 2012. Процитовано 20 травня 2010.