BusyBox
BusyBox — набір UNIX-утиліт командного рядка (у вигляді одного файлу), котрий є майже повним POSIX-середовищем для вбудованих та інших систем з невеликим обсягом доступного місця. Переваги — малий розмір та низькі вимоги до апаратури. Автори називали його "швейцарським ножем вбудованого Linux",[2] оскільки один виконуваний файл заміняє понад 300 загальних команд. Випущений як вільне програмне забезпечення на умовах GNU General Public License.[3]
Скріншот BusyBox | |
Тип | Independent SUSp XCU implementation |
---|---|
Розробники | Ерік Андерсен, Роб Лендлі, Денис Власенко та ін. |
Перший випуск | 4 листопада 1999[1] |
Стабільний випуск | 1.26 (20 грудня 2016 ) |
Репозиторій | git.busybox.net/busybox |
Операційна система | Linux, Unix-подібні |
Мова програмування | C |
Ліцензія | GNU GPL v2 тільки |
Вебсайт | busybox.net |
BusyBox у Вікісховищі |
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 — командна оболонка
- 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.
Виноски
- Архівована копія. Архів оригіналу за 30 жовтня 2015. Процитовано 28 березня 2012.
- http://www.busybox.net/about.html The slogan for 'The Swiss Army Knife of Embedded Linux' source
- Busy Box License
- https://play.google.com/store/apps/details?id=com.bitcubate.root.busybox.complete
- https://market.android.com/details?id=stericson.busybox&hl=en
- https://play.google.com/store/apps/details?id=burrows.apps.busybox
- http://portsmon.freebsd.org/portoverview.py?category=sysutils&portname=busybox
- The Open Group Base Specifications Issue 6
- Linux Test Project на SourceForge.net
Посилання
- Офіційний сайт
- Building Tiny Linux Systems with BusyBox
- M. Tim. Jones. (15 серпня 2006). Busybox simplifies embedded Linux systems. developerWorks (англійською). IBM Corporation. Архів оригіналу за 29 лютого 2012. Процитовано 20 травня 2010.