BusyBox

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

BusyBox
Скріншот BusyBox
Тип Independent SUSp XCU implementation
Розробники Ерік Андерсен, Роб Лендлі, Денис Власенко та ін.
Перший випуск 4 листопада 1999[1]
Стабільний випуск 1.26 (20 грудня 2016 (2016-12-20))
Репозиторій 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.

Виноски

Посилання

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.