Главная

Friday, 27 March 2020

BusyBox - ничего лишнего.

Всем привет. 

Системные администраторы и пользователи Linux-систем, несомненно, привыкли к работе со своей любимой командной оболочкой и к стандартным программным средствам. Но их повсеместное использование не всегда возможно. И тогда на помощь приходит BusyBox – упрощенный shell с набором компактных системных средств.

BusyBox: что это такое и кому это нужно?

Несмотря на безудержный рост графических оболочек и «дружелюбных» интерфейсов, представить себе UNIX без командной строки и основных утилит в наши дни невозможно. Многочисленные интерпретаторы и базовые системные утилиты не стоят на месте, растут и развиваются, что неизбежно ведет и к увеличению их объема. В то же время существуют сферы деятельности, в которых компактность любых приложений по очевидным причинам очень важна, например, во встраиваемых устройствах. Вместе с тем во многих случаях не требуется значительная часть той функциональности, которая присуща базовым утилитам «общего назначения».

Для решения этих проблем еще в середине 90-х Брюсом Перенсом (Bruce Perens) был создан пакет BusyBox. Сейчас проект позиционируется как «швейцарский нож для встраиваемых Linux-систем» и в первую очередь ориентирован на использование в небольших дистрибутивах GNU/Linux. Распространяется под второй версией лицензии GNU GPL.

BusyBox представляет собой единственный исполняемый файл, при запуске которого загружается полноценный командный интерфейс. Как гласит официальная документация BusyBox, для формирования минимальной версии GNU/Linux к этому достаточно добавить лишь ядро ОС и каталоги /etc, /dev.


Что же внутри BusyBox.

Помимо альтернативного набора coreutils (ls, cat, mv, cp, rm, chmod, df, ln, date, wc, nice, test...) в состав BusyBox входит и множество других программ.

Среди них, во-первых, стоит выделить наличие нескольких минималистских командных оболочек: ash (ответвление от dash из Debian, основанного на ash из NetBSD; рекомендован для использования с BusyBox), hush (понимает грамматику Bourne shell), lsh , msh (minix shell).

Для работы с архивами есть такие утилиты, как tar, gzip, bzip2, ar, zip, rpm, dpkg. Для обработки содержимого файлов есть как awk, sed, patch, так и текстовые редакторы ed и vi.

Ничего удивительного что BusyBox стал основной для компактных версий сетевых мини-ОС типа OpenWRT или RouterOS. Хотя утверждение касательно RouterOS спорно.

Также BusyBox легко нашел применение и качестве операционной начинки для домашних WiFi-роутеров. Вот наглядный пример с ASUS RT-N12D1.


Увидимся.

No comments:

Post a Comment

А что вы думаете по этому поводу?