Представлен (https://busybox.net/news.html) релиз пакета BusyBox 1.31 (http://www.busybox.net/) с реализацией набора стандартных утилит UNIX, оформленных в виде единого исполняемого файла и оптимизированных для минимального потребления системных ресурсов при размере комплекта менее 1 Мб. Первый выпуск новой ветки 1.31 позиционируется как нестабильный, полная стабилизация будет обеспечена в версии 1.31.1, которая ожидается примерно через месяц. Код проекта распространяется под лицензией GPLv2.
Модульный характер BusyBox даёт возможность сформировать один унифицированный исполняемый файл, содержащий в себе произвольный набор реализованных в пакете утилит (каждая утилита доступна в форме символической ссылки на данный файл). Размер, состав и функциональность коллекции утилит можно варьировать в зависимости от потребностей и возможностей встраиваемой платформы, для которой осуществляется сборка. Пакет самодостаточный, при статической сборке с uclibc для создания рабочей системы поверх ядра Linux требуется лишь создать несколько файлов устройств в директории /dev и подготовить файлы конфигурации. По сравнению с прошлым выпуском 1.20 потребление оперативной памяти типовой сборкой BusyBox 1.30 уменьшилось на 86 байт (с 1008478 до 1008392 байт).BusyBox является основным инструментом в борьбе с нарушением GPL в прошивках. Организации Software Freedom Conservancy (SFC) и Software Freedom Law Center (SFLC) от лица разработчиков BusyBox как через суд (https://www.opennet.dev/opennews/art.shtml?num=27520), так и путём заключения (https://www.opennet.dev/opennews/art.shtml?num=26883) внесудебных соглашений неоднократно успешно воздействовала на компании, не предоставляющие доступ к исходному коду GPL-программ. В то же время автор BusyBox всячески возражает (https://www.opennet.dev/opennews/art.shtml?num=24685) против такой защиты - считая что она ломает ему бизнес.
В версии BusyBox 1.31 выделяются следующие изменения:
- Добавлены новые команды: ts (реализация клиента и сервера для протокола TSP (Time-Stamp Protocol)) и i2ctransfer (создание и отправка сообщений I2C);
- В udhcp добавлена поддержка опций DHCP 100 (https://tools.ietf.org/html/rfc4833) (сведения о часовом поясе) и 101 (название часового пояса в БД TZ) для IPv6;
- В udhcpd добавлена поддержка статических привязок имён хостов к клиентам;
- В командных оболочках ash и hush реализованы числовые литералы "BASE#nnnn". Приведена к совместимости с bash реализация команды ulimit, в том числе добавлены опции "-i RLIMIT_SIGPENDING" и "-q RLIMIT_MSGQUEUE". Добавлена поддержка "wait -n". Добавлены совместимые с bash переменные EPOCH;- В командной оболочке hush реализована переменная "$-", в которой перечислены активированные по умолчанию опции командной оболочки;
- В bc из upstream перенесён код для передачи значений по ссылке, добавлена поддержка void-функций и возможность работы со значениями ibase до 36;
- В brctl все команды переведены на работу с использованием псевдо-ФС /sys;
- Объединён код утилит fsync и sync;
- Усовершенствована реализация httpd. Улучшена обработка HTTP-заголовков и работа в режиме прокси. В список MIME-типов включены SVG и JavaScript;
- В losetup добавлена опция "-c" (принудительная перепроверка размера файла, связанного c loop-устройством), а также опция для сканирования разделов. В mount и losetup обеспечена поддержка работы с использованием /dev/loop-control;- В ntpd значение SLEW_THRESHOLD увеличено с 0.125 до 0.5;
- В sysctl добавлена поддержка присвоения пустых значений;- В watch добавлена поддержка дробных значений в опции "-n SEC";
- Добавлена возможность запуска mdev в форме фонового процесса;- В утилите wget реализован флаг "-o" для определения файла для записи лога. Добавлены уведомления о начале и завершении загрузки;
- В telnetd добавлена поддержка команды AYT IAC;
- В vi добавлена команда 'dG'(удаление содержимого от текущей строки до конца файла);
- В команду dd добавлена опция 'oflag=append';
- В утилиту top добавлен флаг '-H' для включения режима сканирования отдельных потоков.
Кроме того, две недели назад состоялся (https://github.com/landley/toybox/releases/tag/0.8.1) релиз Toybox 0.8.1 (http://landley.net/toybox/), аналога BusyBox, развиваемого бывшим мэйнтейнером BusyBox и распространяемого (https://www.opennet.dev/opennews/art.shtml?num=32952) под лицензией BSD. Основным назначением Toybox является предоставление производителям возможности использования минималистичного набора стандартных утилит без открытия исходных текстов модифицированных компонентов. По возможностям Toybox пока отстаёт (http://landley.net/toybox/status.html) от BusyBox, но уже реализовано 188 базовых команд из 220 запланированных.
Из новшеств Toybox 0.8.1 можно отметить:
- Достигнут уровень функциональности, достаточный для сборки Android в окружении на базе утилит Toybox.
- В состав включены новые команды mcookie и devmem, из тестовой ветки перенесены переписанные команды tar, gunzip и zcat.
- Для тестирования предложена новая реализация vi.
- В команду find добавлена поддержка опций "-wholename/-iwholename",
"-printf" и "-context";
- В grep добавлена опция "--exclude-dir";
- В echo появилась поддержка опции "-E".
- В mount добавлена поддержка "UUID".
- В команду date добавлен учёт часового пояса, заданного в переменной окружения TZ.
- В sed добавлена поддержка относительных диапазонов (+N).
- Улучшена читаемость вывода ps, top и iotop.
URL: http://lists.busybox.net/pipermail/busybox-cvs/2019-June/039...
Новость: https://www.opennet.dev/opennews/art.shtml?num=50844
"По сравнению с прошлым выпуском 1.20 потребление оперативной памяти типовой сборкой BusyBox 1.30 уменьшилось на 86 байт (с 1008478 до 1008392 байт"Они это серьёзно?
думаю да
Что не так?
Этот софт изначально задуман для применения в системах с ограниченным ОЗУ и ПЗУ.
> Что не так?
> Этот софт изначально задуман для применения в системах с ограниченным ОЗУ и ПЗУ.В том что "не мерседес, а запорожец, не в лотто, а в карты, не выиграл …"
>
> Sizes of busybox-1.30.1 and busybox-1.31.0 (with equivalent config, static uclibc build):
> text data bss dec hex filename
> 1008478 487 7436 1016401 f8251 busybox-1.30.1
> 1008392 482 7428 1016302 f81ee busybox-1.31.0.
Речь про уменьшение потребления оперативной памяти, а не размера файла.
> Речь про уменьшение потребления оперативной памяти, а не размера файла.Речь о непонятном переводе. Оригинал я процитировал.
Впрочем, размер .text напрямую влияет на потребление оперативной памяти.
а на прошлой сборке он нехило так вырос на 7 килобайт...
плюс 7 килобайт
минус 86 байт
успех однако :)
плюс 86 байт, а мы тут точно не новость с презентации очередного ипхона про его рекордную емкость батарейки читаем оО
Более того, функционал растет, объем уменьшается.
это локальный минимум.. а тренд там прет вверх как на дрожжах...
> По сравнению с прошлым выпуском 1.20 потребление оперативной памяти типовой сборкой BusyBox 1.30 уменьшилось на 86 байт (с 1008478 до 1008392 байтВот теперь заживем
У них там наверняка ещё есть энтузиасты, проверяющие 100500 версий компилятора, в поисках сборки размером на ещё три байта меньше. Плюс некоторым важен размер сжатого бинарника.
С учётом расширения функционала - они сумели уменьшить потребление памяти. Вы всерьёз считаете, что имеете основания смеяться над этим?
у мя на малине 16 гиговые флэшки.. меньше нет.. я незнаю чем их заполнить...
А, ну на твоей малине применения для бизибокса закончились, разрабы то и забыли.. Кроме того, я уверен, что на твоей малине стоят gnu coreutils
С этим ихним линуксом это невозможно. Истинно говорю тебе, ставь венду.
В первую очередь важно сколько образ приложения занимает в оперативной памяти, а не сколько он занимает на накопителе, но и это тоже важно.Для busybox размер важный показатель и они о нём сообщают, что правильно.
Да. Потому что подсчёт в байтах - это нелепо. Никто и лишнюю сотню килобайт бы не заметил.
Сейчас уже смартфоны имеют по 4-8 ГИГАБАЙТ памяти.
Нет смысла оптимизировать такие крохи, когда рядом будет что-то крутиться абсолютно не оптимизированное и жрать лишние десятки мегабайт просто потому что потому.
Всё ещё выпускаются wifi роутеры у которых флешка на 4194304 байт, из которых область в 65536 байт зарезервирована под загрузчик и "nvram".
Да, а есть еще SoC`и с меньшими ресурсами ОЗУ и ПЗУ.
Счастье в неведении. Порой бывает такой страшный эмбед и столь же дикие задачи на пределе железа..
Да вам, батенька, в новости про электрон.
А то, что есть ещё и микроконтроллеры с килобайтной памятью, грядущий IoT, тут уже не всё так потребительно. Производителю умного чайника не выгодно, чтобы из-за каких-то чайников пришлось удорожить производство чипов хотя бы в 2 раза на миллионной партии.
>микроконтроллеры с килобайтной памятьюну давай, расскажи мне как на таком контроллере работает бусибокс...на ядре линукс 5.0
>грядущий IoT
будет с гигом оперативки...
Речь о счёте байтов, а не сабже.
Советую перестать считать, что эмбедовка ограничивается твоей мобилой и ознакомиться для расширения кругозора со статьями
https://lwn.net/Articles/741494/
https://lwn.net/Articles/744507/
https://lwn.net/Articles/746780/
https://lwn.net/Articles/748198/
В 1 Гб 12 485 370 раз влезает эти 86 байт.
Следовательно на 1 Гб:
Можно запустить 1064,715168799 инстансов предыдущей версии BusyBox
и 1064,805972281 новых версий инстансов.Т.е. экономия не видна.
Следовательно на 10 Гб, будет уже запущен на 1 инстанс busybox, т.е. 10648 вместо 10647
Я, конечно, извиняюсь, но тебе никогда в голову не приходило то, что оно рассчитано не только на ПК? Какой-нибудь роутер с 16мб оперативки? И там каждый байт на счету, не?
Хех, 16мб оперативки... Жируете, сударь :)
Я мажор, у меня в роутере 32. Правда флешку зажали, 4 мегабайта всего поставили.
Мажоры сейчас сидят на медиатеке mt7621 там оперативки до 512Mb, рабочий HW NAT на ванильной openwrt без блобов и 2 ядра 4 треда мипс. И стоит это от 30-40$ за роутер на али с официальной поддержкой openwrt.
У меня друг резко мажором захотел стать. Предоставьте ссылку.
Медиатек без блобов? Конечно-конечно.
Я бы тоже не отказался от пруфачка на счет hwnat без блоба
>рабочий HW NAT
>на ванильной openwrtOpenWRT же категорически против hwnatа, даже если есть свободные длайверы без блобов, ведь это же работать надо, портируя эти драйвера с версии на версию !!! А всё ради чего ? Ради неперегрева? Да фиг с нним. Ради отсутствия зависаний? Опенврт не падает !!!
На моем первом pc было вообще 8.
у мя было кажется 4... но это было 30 лет назад...
4мб 30 лет назад. Да Вы мажор, батенька. ES-1840 c 512кб Вы пропустили 30 лет назад видимо. Да и IBM PC-286 шли с 1мб в основной массе. 4мб - это уже 386sx/dx какой-нибудь...
Да вы монстры пацаны с такими обьемами в мегабайты...
Мой первый комп "Специалист" имел всего 16Kb RAM
Ностальгия, для тех кто в теме:
https://ru.wikipedia.org/wiki/Специалист_(компьютер)не смотря на маленькую по сегодняшним меркам память, "Спец" мог делать такое:
https://youtube.com/watch?v=Tfqn4G8jOjIпомимо кучи софта от черепахи Радио-86РК
роутеры с меньшим количеством оператички очень плохо работают с шифрованием канала... так что... утилита для ненужного хлама за который люди готовы платить деньги потому что слегка туповаты?
Все роутеры без аппаратного ускорителя очень плохо работают с шифрованием канала, потому что стоящий в них АРМовый огрызок традиционно не может в математику.
16мб и каждый байт? На 16кб ты будешь считать каждый байт. На 360кб ты будешь считать уже не каждый. На 1Мб ты будешь считать лишь некоторые байты. На 16Мб ты будешь считать килобайтами.Как я понимаю, в новости про уменьшение написали лишь для того, чтобы сообщить, что BusyBox не распухает, и 86 байт здесь надо читать как 0 + статистически незначимая погрешность. Получилось, как получилось, потому что авторы новости не нашли хороших слов, чтобы высказать что-то в стиле:
> По сравнению с прошлым выпуском 1.30 потребление оперативной памяти типовой сборкой BusyBox 1.31 не увеличилось (уменьшилось на 86 байт с 1008478 до 1008392 байт).
Более правильно сказать, что добавили возможностей и остались на том же потреблении памяти.На размерах обачных окружений типа AWS & co использование BusyBox вместо GNU может очень здорово съэкономить ресурсов.
деуплицирование там у них, встроенной в стораджи
и не лень было считать...ах да, каникулы ж начались, точно
Те, у кого сейчас начались каникулы - даже что-то близко подобное наваять не смогли бы, не переживай. Хотя, кто знает..
Хеллоуворлд без движка хромиума или дотнета это ж, пф.. это фантастика!
Молодцы, с увеличением функционала удерживают потребление ресурсов.Такую бы оптимизацию да для комбайнов типа Ubuntu и Android.
Наверняка процентов 30 оптимизации по RAM и CPU можно сделать прямо сразу.
Как бы не 50%. В окружениях на базе третьегнома удаляется (или отключается) всё, связанное с evolution calendar - сразу минус 200 мегабайт памяти, почти четверть.
с KDE немного помеьнше, но можно отключить всякие индексаторы-проверяльщики и вырубить дурацкие спецэффекты и получить нехилую экономию как памяти, так и времени ЦПУ.
все будет как в игрушках... понизить FPS, понизить разрешение, понизить текстуры...
а потом - "да нафиг в такое вообще играть"? :)
Если "нафига в такое играть", то нафига в такое играть? 8 )
Игра - это процесс действия, а не созерцания ; )
Toybox - это просто какая-то диверсия куколдов против свободного ПО на пользу yблюдочным корпорациям.
Можешь пояснить? Я в танке
BSD-лицензия позволяет любому просто скопировать код, закрыть его и продавать с ним продукты, не открывая изменений, то есть вообще никак не котрибутя что-то назад в оригинальный проект.
а ткните пожалуйста пальчиком - где в ГПЛ написано о необходимости что либо куда то контрибутить ?
Обязательное открытие изменений косвенно подразумевает контрибуцию обратно в проект. Очевидно же.
> Обязательное открытие изменений косвенно подразумевает контрибуцию обратно в проект.
> Очевидно же.Обязательное для кого? Облачники и прочие "все-что-угодно-ас-а-сервис" амазоны, гугли и майки сюда не попадают и "контрибутят" только крошки с барского стола.
Теслы вроде попадают, а кода уже лет 6 как все еще не видать (и никто из почтенных ревнителей лицензий с гордо задранной гузочкой почему-то даже не чешется).
Миллиарды гаджетов от китайцев? Да плевали китайцы на все эти заморочки бледнолицых чашко-глазых с Великой Китайской, но опять же, почему-то ревнители скромно стоят в сторонке и помалкивают.
Мазохисты, сэр.
ути-пути! корпорации опять обидели маленьго опеннетного анонима
Ты сделал несколько ошибок в слове "крапорации".
crap по рации? :D
> Ты сделал несколько ошибок в слове "крапорации".Только одну, првильно — "копрорации".
ШШШШ, не ломайте ребенку детство, пусть думает, что большинство кода написали добрые феи.
Свобода это рабство, да.
А вот и любители несвежего копирайта пожаловали.
интересно, под (Free)DOS/Win98/Win10 эксешник скомпилируется?...
Попробуй, потом нам расскажешь.
Поставь MinGW-W64 и попробуй собрать.
он есть в поставке цигвина. но если есть острое желание экзотики - можете собрать самостоятельно конечно :)
Минималистичным ОС вроде Колибри это нужно?
А что, если в busybox встроить systemd/X/electron/ ну, или, если серьезно, lynx/mplayer/dev/weechat?
Systemd и Electron минималистичным ОС точно не нужно. И в bysybox - чур меня, чур...
Ай молодец
/deb/ (пакетный менеджр) (быстрофикс)
ну и ctorrent/gcc/golang туда же, например....
и/или минималистичное ядро, способное запустить busybox....
это потенциально возможно?
Потенциально можно даже отвести под работу линя не файловую систему, а файлик в другой файловой системе. Впринципе оно реализуемо, но какой смысл? При обновлении хотя бы одной софтины вам придется пересобирать всю сборку, хотя смысла особого нету, если вы не шифруетесь настолько, что даже не хотите палить установленный софт.
пакетный менеджер+торрент качалка+компилятор и все это в мнималистичном виде...что бы это могло быть... :)
Ну дистрибутив в котором есть только busybox из бинарников - мне кажется возможен, разве нет?
Там и инит и шелл... (Можно даже статически собрать)
Ты хочешь чтобы всё это было интегрировано в busybox зачем-то или просто минималистичный дистрибутив с ним и этими утилитами? Есть всякие aboriginal linux и nenuzhnix (ненужникс, дистрибутив такой)
> Ну дистрибутив в котором есть только busybox из бинарников - мне кажется возможен, разве нет?Да таких... вагон и маленькая тележка. Только они все крайне узкоспециализированы. И пакетный менеджер обычно ipkg
Может, плюнуть и взять какой-нибудь Alpine?
Это что ж, они наплевали на Юникс-философию?
Вот по идее это в каком-то смысле всё ещё юниксвей снаружи. Нужно конкретизировать философию.
Это же не Red Hat, значит всё в порядке, можно всё в один бинарник пихать.
> Это же не Red Hat, значит всё в порядке, можно всё в один бинарник пихать.Это ж аноним, значит все в порядке -- можно не разбираться, а просто писать чепуху!
Подсказка: замена бузибоксного awk, cat, sh, grep и остальных 100500 компонентов может производиться на любую альтернативную, "наружную" реализацию прямо на лету, без пересборок и прочего.
Как наплевали?"Всё есть файл".
Там и есть один файл.
это их право
Если это разбить на кучу утилит, а не символик линкс, то увеличится занимаемое место, что противоречит основному назначению.
> набора стандартных утилит UNIX
> для минимального потребления системных ресурсовпри этом
> реализация httpd
> telnetd
> viи где истерики как про systemd? то есть автору busybox можно всё в один бинарник пихать?
Идеологически это всё ещё много утилит в одном бинарнике.
Этим не заставляют пользоваться как systemd. Systemd пропихивают катаньем или мытьём.
>> набора стандартных утилит UNIX
>> для минимального потребления системных ресурсов
> при этом
>> реализация httpd
>> telnetd
>> vi
> и где истерики как про systemd? то есть автору busybox можно всё
> в один бинарник пихать?Возможно, потому что авторы не позиционирует свой ящик, как единственно верную замену всему, что было до них, с собственным, нескучным и непохожим интерфейсом и поведением?
https://busybox.net/about.html
> BusyBox combines tiny versions of many common UNIX utilities into a single
> small executable.
> the options that are included provide the expected functionality and behave very much like their GNU counterparts.
> BusyBox provides a fairly complete environment for any small or embedded system.Т.е. заточенный набор утилит для спец-систем.
Ну и да, если вам нужен именно gawk или полноценный grep - "но проблем", прям на лету можно заменить, в отличие от.
Хорош прикалываться, задачи то вполне понятны. Впрочем, тут и выше объяснили для тех, кому еще не. Можно собать без vi, если хочется
> и где истерики как про systemd?А что, busybox тоже уже пихают в принудительном порядке во все дистрибутивы, а coreutils выпиливают?
Очень удобная штука для кросс-платформенных скриптов. Делаешь один bash-файл, кладёшь рядом линуксовую и виндовую версии busybox и забываешь про любой геморрой наличия или отсутствия нужных скрипту программ на стороне заказчика.
Я просто оставлю это здесь: https://lwn.net/Articles/202120/