Бизибокс
Оригинальный автор(ы) | Брюс Перенс |
---|---|
Разработчик(и) | Эрик Андерсен, [1] Роб Лэндли, [2] Denys Vlasenko [3] и другие |
Первоначальный выпуск | 4 ноября 1999 г [4] |
Стабильная версия | 1.36.1 (19 мая 2023 г [±] [5] | )
Репозиторий | |
Написано в | С |
Операционная система | Unix-подобный |
Размер | 2,1 МБ (сжатый «tar.bz2») |
Тип | |
Лицензия | Начиная с 1.3.0: только GPL-2.0. [6] До версии 1.2.2.1: GPL-2.0 или новее. [7] |
Веб-сайт | занятой ящик |
BusyBox — это пакет программного обеспечения , который содержит несколько утилит Unix в одном исполняемом файле . Он работает в различных средах POSIX, таких как Linux , Android , [8] и FreeBSD , [9] хотя многие из предоставляемых им инструментов предназначены для работы с интерфейсами, предоставляемыми ядром Linux . Он был специально создан для встраиваемых операционных систем с очень ограниченными ресурсами. Авторы назвали его « швейцарским армейским ножом встроенного Linux ». [10] поскольку один исполняемый файл заменяет основные функции более чем 300 распространенных команд. Оно распространяется как бесплатное программное обеспечение на условиях GNU General Public License v2 . [6] после неоднозначного решения не переходить на версию 3 .
История [ править ]
Происхождение [ править ]
Первоначально написанный Брюсом Перенсом в 1995 году и объявленный готовым для использования по назначению в 1996 году. [11] Изначально BusyBox стремился разместить полную загрузочную систему на одной дискете , которая могла бы служить как аварийным диском, так и установщиком дистрибутива Debian . С тех пор он был расширен и стал де-факто стандартным базовым набором инструментов пользовательского пространства для встроенных устройств Linux и установщиков дистрибутива Linux. Поскольку каждый исполняемый файл Linux требует нескольких килобайт служебных данных, объединение более двухсот программ вместе с помощью программы BusyBox часто экономит значительный объем дискового пространства и системной памяти.
BusyBox обслуживался Энрике Занарди и был сосредоточен на потребностях системы установки загрузочных дискет Debian до начала 1998 года, когда Дэйв Синедж взял на себя управление проектом Linux Router Project (LRP). Cinege внесла несколько дополнений, создала модульную среду сборки и сместила акцент BusyBox на общие встроенные системы высокого уровня . Поскольку развитие LRP в 1999 году замедлилось, Эрик Андерсен, тогда работавший в Lineo, Inc. , взял на себя управление проектом и стал его официальным сопровождающим в период с декабря 1999 по март 2006 года. За это время рынок встраиваемых систем Linux бурно рос, а BusyBox сильно развился. расширение как своей пользовательской базы, так и функциональности. Роб Лэндли стал сопровождающим с 2005 года до конца 2006 года, затем нынешним сопровождающим стал Денис Власенко.
Споры по поводу GPLv2/GPLv3 [ править ]
В сентябре 2006 года, после тяжелых дискуссий и разногласий между сопровождающим проекта Робом Лэндли и Брюсом Перенсом , [12] Бизибокс [13] [14] проект решил не принимать Стандартную общественную лицензию GNU версии 3 ( GPLv3 ); лицензия BusyBox была указана только как GPL-2.0 . [15]
С октября 2006 года Денис Власенко взял на себя сопровождение BusyBox от Роба Лэндли, который основал Toybox , также в результате разногласий по поводу лицензии. [13] [16]
Иски по GPL [ править ]
В конце 2007 года BusyBox также приобрел известность благодаря активному преследованию нарушений условий своей лицензии (GPL) в Окружном суде США Южного округа Нью-Йорка . [17]
Первый иск в США по поводу нарушения GPL касался использования BusyBox во встроенном устройстве . Иск, [17] Дело 07-CV-8205 было возбуждено 20 сентября 2007 г. Юридическим центром свободы программного обеспечения (SFLC) от имени Андерсена и Лэндли против Monsoon Multimedia Inc. после того, как код BusyBox был обнаружен в обновлении прошивки и предпринята попытка связаться с компания, очевидно, потерпела неудачу. Дело было урегулировано публикацией версии источника «Муссон» и выплатой Андерсену и Лэндли нераскрытой суммы денег. [18]
21 ноября 2007 г. SFLC подала два аналогичных иска от имени Андерсена и Лэндли против еще двух компаний: Xterasys (дело 07-CV-10455) и High-Gain Antennas (дело 07-CV-10456). [19] [20] Дело Xterasys было урегулировано 17 декабря из-за разглашения использованного исходного кода и нераскрытой оплаты. [21] и дело об антеннах с высоким коэффициентом усиления от 6 марта 2008 г. за активное соблюдение лицензии и нераскрытый платеж. [22] 7 декабря 2007 г. против Verizon Communications было возбуждено дело по делу о распространении прошивки для маршрутизаторов Actiontec; [23] [24] Это дело было урегулировано 17 марта 2008 г. при условии соблюдения условий лицензии, назначения должностного лица для наблюдения за будущим соблюдением лицензий на бесплатное программное обеспечение и выплаты нераскрытой суммы. [25] Дополнительные иски были предъявлены 9 июня 2008 г. против Bell Microproducts (дело 08-CV-5270) и SuperMicro (дело 08-CV-5269). [26] Дело Super Micro урегулировано 23 июля 2008 г. [27] 17 октября дело BusyBox и Bell Microproducts также было урегулировано во внесудебном порядке. [28]
14 декабря 2009 года был подан новый иск, в котором были названы четырнадцать ответчиков, включая Best Buy , JVC , Samsung и других. [29] [30] [31] В феврале 2010 года компания Samsung выпустила прошивку телевизора LN52A650 под лицензией GPLv2. [32] который позже использовался в качестве ссылки проектом сообщества SamyGO . [33]
Примерно 3 августа 2010 года BusyBox выиграла у Westinghouse заочное решение о возмещении тройного ущерба в размере 90 000 долларов США, судебных издержек и гонораров в размере 47 865 долларов США, а также владения «предположительно большим количеством телевизоров высокой четкости» как оборудования, нарушающего авторские права, в иске Software Freedom Conservancy. против Best Buy и др., дело о нарушении прав GPL, упомянутое в абзаце выше. [34]
Никакие другие разработчики, в том числе первоначальный автор Брюс Перенс и сопровождающий Дэйв Синедж, не были представлены в этих действиях и не участвовали в урегулировании. 15 декабря 2009 года Перенс опубликовал заявление, в котором выразил свое недовольство некоторыми аспектами правовой ситуации и, в частности, заявил, что нынешние разработчики BusyBox «похоже, удалили некоторые заявления об авторских правах других разработчиков BusyBox и, похоже, изменили их». лицензионные заявления». [35]
Особенности [ править ]
BusyBox можно настроить для предоставления набора из более чем двухсот утилит. Он может предоставлять большинство утилит, указанных в Единой спецификации Unix (SUS), а также многие другие, которые пользователь ожидает увидеть в системе Linux. BusyBox использует оболочку Almquist , также известную как A Shell, ash и sh. [36] Альтернативой для индивидуальной настройки является меньшая «тихая» оболочка. Раньше были доступны «Мш» и «лэш». [37]
Поскольку это полноценная система начальной загрузки, она в дальнейшем заменит демон init и udev (или современный systemd ), используя себя как init при запуске и mdev во время горячего подключения.
На сайте BusyBox представлен полный список реализованных утилит. [38]
Одиночный двоичный файл [ править ]
Типичные компьютерные программы имеют отдельный двоичный ( исполняемый ) файл для каждого приложения. BusyBox — это один двоичный файл, представляющий собой конгломерат множества приложений, доступ к каждому из которых можно получить, вызвав один двоичный файл BusyBox с разными именами (поддерживается наличием символической ссылки или жесткой ссылки для каждого отдельного имени). [39] определенным образом с соответствующими аргументами.
BusyBox выигрывает от единого двоичного подхода, поскольку он снижает накладные расходы, связанные с форматом исполняемого файла (обычно ELF ), и позволяет совместно использовать код между несколькими приложениями без необходимости использования библиотеки . Эта техника аналогична той, которую предоставляет crunchgen. [40] во FreeBSD , разница в том, что BusyBox предоставляет упрощенные версии утилит (например, лс без возможности сортировки файлов), в то время как сгенерированная crunchgen сумма всех утилит предложит полнофункциональные версии.
Совместное использование общего кода, а также подпрограмм, написанных с учетом оптимизации размера, может привести к тому, что система BusyBox будет использовать гораздо меньше места для хранения, чем система, построенная с соответствующими полными версиями утилит, замененными BusyBox. Исследовать [41] сравнение в GNU , BusyBox, asmutils и Perl реализаций стандартных команд Unix показало, что в некоторых ситуациях BusyBox может работать быстрее, чем другие реализации, но не всегда.
Команды [ править ]
В официальной документации BusyBox приведен обзор доступных команд и их параметров командной строки.
Список команд BusyBox [42]
Примеры [ править ]
Программы, включенные в BusyBox, можно запускать, просто добавив их имя в качестве аргумента к исполняемому файлу BusyBox:
/bin/busybox ls
Чаще всего нужные имена команд связаны (с помощью жестких или символических ссылок) с исполняемым файлом BusyBox; BusyBox читает argv[0], чтобы найти имя, по которому он вызывается, и запускает соответствующую команду, например просто
/bin/ls
после того, как /bin/ls связан с /bin/busybox . Это работает, поскольку первый аргумент, передаваемый программе, — это имя, используемое для вызова программы, в этом случае аргументом будет «/bin/ls». BusyBox увидит, что его «имя» — «ls», и будет действовать как программа «ls».
Техника и ресепшн [ править ]
BusyBox используется несколькими операционными системами, работающими на встроенных системах , и является важным компонентом таких дистрибутивов, как OpenWrt , OpenEmbedded (включая Yocto Project ) и Buildroot . Sharp Zaurus широко использует BusyBox для выполнения обычных Unix-подобных задач, выполняемых в оболочке системы. [43]
BusyBox также является важным компонентом VMware ESXi , Tiny Core Linux , SliTaz 5(Rolling) и Alpine Linux , которые не являются встроенными дистрибутивами.
Он необходим для нескольких корневых приложений на Android, а также предустановлен в некоторых решениях «1 Tap Root», таких как Kingo Root .
Споры Toybox поводу по
Toybox был запущен в начале 2006 года под лицензией только GPL-2.0 бывшим сопровождающим BusyBox Робом Лэндли в результате разногласий вокруг обсуждений GPLv3/GPLv2. В конце 2011 года [44] он был повторно лицензирован в соответствии с лицензией BSD-2 после того, как проект был бездействующим. [45] В марте 2013 года он был повторно лицензирован под лицензией 0BSD . [46] 11 января 2012 года Тим Берд, сотрудник Sony , предложил создать альтернативу BusyBox, которая не будет подпадать под действие Стандартной общественной лицензии GNU. Он предложил сделать это на основе бездействующего Toybox. [47] В январе 2012 года предложение о создании лицензированной BSD альтернативы проекту BusyBox, лицензируемому GPL, вызвало резкую критику со стороны Мэтью Гаррета за то, что он лишил группу Software Freedom Conservancy единственного подходящего инструмента для прав защиты авторских . [48] Инициатор судебных исков, основанных на BusyBox, Роб Лэндли ответил, что это было намеренно, поскольку он пришел к выводу, что судебные иски не привели к ожидаемым положительным результатам, и он хотел остановить их «любым способом, который я считаю нужным» . [49] [50]
См. также [ править ]
- Toybox с другой политикой лицензирования Аналогичный проект
- Основные утилиты GNU
- util-linux , iproute2 , ethtool
- sbase и ubase предназначены для формирования базовой системы, похожей на busybox, но гораздо меньшей. Лицензия MIT
- 9base- порт различных оригинальных инструментов Plan 9 для Unix. Лицензия MIT
- Heirloom Toolchest — это набор стандартных утилит Unix, созданных на основе исходных материалов Unix.
- Linux во встроенных системах
- Linux для мобильных устройств
Ссылки [ править ]
- ^ «Домашняя страница Эрика Андерсена» . Архивировано из оригинала 13 июня 2010 года . Проверено 23 декабря 2009 г.
- ↑ Активные проекты. Архивировано 29 июля 2010 г. на Wayback Machine , веб-сайт Роба Лэндли.
- ↑ Денис Власенко. Архивировано 5 сентября 2017 г., в Wayback Machine , сопровождающий BusyBox.
- ^ «busybox-жалоба-14 декабря 2009 г.» (PDF) . Юридический центр свободы программного обеспечения. Архивировано из оригинала (PDF) 24 сентября 2015 года . Проверено 30 июня 2022 г.
- ^ «История выпусков» . Проверено 31 мая 2023 г.
- ↑ Перейти обратно: Перейти обратно: а б «БизиБокс» . Архивировано из оригинала 24 февраля 2018 года . Проверено 23 февраля 2018 г.
- ^ "busybox-1.2.2.1.tar.bz2" . Архивировано из оригинала 31 марта 2022 года . Проверено 29 июня 2021 г.
Из журнала изменений: Это последний выпуск BusyBox под старой двойной лицензией «GPLv2 или новее». Будущие версии (содержащие изменения после svn 16112) будут только GPLv2, без «или более поздней версии».
- ^ BitCubate X. «BusyBox Classic» . Архивировано из оригинала 27 октября 2022 года . Проверено 8 августа 2017 г.
- ^ «Обзор порта FreeBSD» . Архивировано из оригинала 2 января 2014 года . Проверено 2 сентября 2011 г.
- ^ «Слоган источника «Швейцарский армейский нож встраиваемого Linux»» . Архивировано из оригинала 24 февраля 2018 года . Проверено 23 февраля 2018 г.
- ^ Лэндли, Роб. «Аналитический анализ BusyBox» (TXT) . Архивировано из оригинала 25 октября 2021 года . Проверено 11 ноября 2022 г.
- ^ Заявление о судебных процессах Busybox в блоге Брюса Перенса (15 декабря 2009 г., в архиве)
- ↑ Перейти обратно: Перейти обратно: а б Корбет, Джонатан (1 октября 2006 г.). «Занят, занят, занят» . LWN.net . Архивировано из оригинала 7 января 2016 года . Проверено 21 ноября 2015 г.
Поскольку BusyBox можно найти во многих встроенных системах, он оказывается в центре дебатов по GPLv3 против DRM. [...] Реальный результат, однако, таков: BusyBox станет GPLv2 только начиная со следующего выпуска. Принято считать, что удаление «или любой более поздней версии» юридически оправдано, и что объединение другого кода, предназначенного только для GPLv2, в любом случае вызовет эту проблему.
- ^ Лэндли, Роб (9 сентября 2006 г.). «Re: Забавно заменить GPLv2 на v3…» . lwn.net. Архивировано из оригинала 16 сентября 2017 года . Проверено 21 ноября 2015 г.
Не придумывайте, пожалуйста, подставной аргумент. Я считаю, что лицензирование BusyBox по лицензии GPLv3 бесполезно, ненужно, слишком сложно и запутанно, и, кроме того, у него есть реальные недостатки. 1) Бесполезно: мы никогда не откажемся от GPLv2.
- ^ GPL версии 2 только для BusyBox 1.3.0. Архивировано 14 сентября 2016 г. в Wayback Machine на lwn.net.
- ^ Лэндли, Роберт (30 сентября 2006 г.). «Сейчас я ухожу. Возможно, я вернусь через какое-то время» . busybox (список рассылки). Архивировано из оригинала 18 июля 2016 года . Проверено 21 июля 2016 г.
- ↑ Перейти обратно: Перейти обратно: а б От имени разработчиков BusyBox Андерсена и Лэндли компания SFLC впервые в истории подала иск о нарушении лицензии GPL США. Архивировано 6 октября 2007 г. в Wayback Machine (Центр права по свободе программного обеспечения, 20 сентября 2007 г.)
- ^ Байфилд, Брюс (30 октября 2007 г.). «Урегулирование достигнуто по делу Busybox-Monsoon GPL» . Linux.com . Архивировано из оригинала 24 сентября 2008 года.
- ^ Команда юристов Linux подает в суд по поводу нарушений GPL. Архивировано 13 декабря 2007 г., в Wayback Machine (Мартин ЛаМоника, CNET News.com, 21 ноября 2007 г.).
- ^ «Второй раунд исков о нарушении прав GPL, поданных от имени разработчиков BusyBox» . Архивировано из оригинала 24 ноября 2007 года . Проверено 25 ноября 2007 г.
- ^ «Разработчики BusyBox и корпорация Xterasys соглашаются урегулировать иск по лицензии GPL» . Архивировано из оригинала 19 декабря 2007 года . Проверено 18 декабря 2007 г.
- ↑ Разработчики BusyBox и антенны с высоким коэффициентом усиления соглашаются отклонить иск по лицензии GPL. Архивировано 9 марта 2008 г. в Wayback Machine (пресс-релиз SFLC).
- ^ Гросс, Грант (7 декабря 2007 г.). «Юридическая группа с открытым исходным кодом снова наносит удар по BusyBox, подавая в суд на Verizon» . Компьютерный мир . Архивировано из оригинала 11 января 2023 года . Проверено 6 января 2021 г.
- ^ «Разработчики BusyBox подали иск против Verizon Communications о нарушении прав GPL» . Архивировано из оригинала 30 декабря 2007 года . Проверено 22 декабря 2007 г.
- ^ Verizon урегулировала иск о программном обеспечении с открытым исходным кодом , архивировано 21 марта 2008 г. в Wayback Machine (Пол Макдугелл, InformationWeek , 17 марта 2008 г.)
- ^ SFLC подает еще один раунд исков о нарушении GPL от имени разработчиков BusyBox. Архивировано 11 июня 2008 г., в Wayback Machine (пресс-релиз SFLC).
- ^ Разработчики BusyBox и Supermicro соглашаются прекратить судебный процесс по GPL: добросовестные обсуждения приводят к отклонению дела о нарушении авторских прав. Архивировано 27 июля 2008 г., в Wayback Machine (пресс-релиз SFLC).
- ^ 2008. Андерсен против Bell Microproducts, Inc. , № 08-cv-5270, Док. № 16 (СДНЙ от 17 октября 2008 г.) (уведомление об увольнении по собственному желанию)
- ^ Перлоу, Джейсон (16 декабря 2009 г.). «Как избежать современной публичной порки под лицензией GPL» . zdnet.com. Архивировано из оригинала 13 марта 2016 года . Проверено 24 марта 2016 г.
Публичных порок и казней, подобных недавнему иску SFLC, можно было бы избежать, если бы действительно существовали действующие стандарты и процедуры соответствия GPL и другим лицензиям на свободный и открытый исходный код.
- ^ Best Buy, Samsung, Westinghouse и еще 11 фигурантов в иске GPL на cnet.com
- ^ The Software Freedom Conservancy, Inc. и г-н Эрик Андерсен против BestBuy, Samung, Westinghouse, JVC, Western Digital, Bosch, Phoebe Micro, Humax, ... Архивировано 19 января 2017 г., в Wayback Machine (Нью-Йорк, 2009 г.). )
- ^ Визуальный дисплей — открытый исходный код на samsung.com «Загрузите ссылки ниже. Мы используем GPLv2 и LGPLv2.1, а не GPLv3 и LGPLv3. Модель: LN40A650 / LN52A650 / LN52A750 [...] LN52A750.zip» (архив 2010 г.)
- ↑ Main_Page. Архивировано 16 февраля 2017 г., в Wayback Machine на samygo.tv.
- ^ Джонс, Памела (3 августа 2010 г.). «BusyBox и GPL снова преобладают — обновленные версии 4X» . Гроклав . Архивировано из оригинала 4 августа 2010 года . Проверено 27 сентября 2012 г.
- ^ Брюс Перенс, « Заявление по искам Busybox », perens.com (15 декабря 2009 г.).
- ^ «Ясеневые варианты» . Архивировано из оригинала 10 марта 2010 года . Проверено 15 мая 2008 г.
- ^ «Используйте новую опцию «выбрать», чтобы создать конфигурацию оболочки» . 8 августа 2003 г. Архивировано из оригинала 1 апреля 2019 г. Проверено 2 апреля 2019 г.
Оболочка «ash» добавляет около 60 КБ в конфигурацию по умолчанию и является наиболее полной и наиболее корректной оболочкой, входящей в состав busybox. Эта оболочка на самом деле является производной оболочки Debian 'dash' (автор Герберт Сюй), которая была создана путем портирования оболочки 'ash' (написанной Кеннетом Алмквистом) из NetBSD.
- ^ «BusyBox — швейцарский армейский нож встраиваемого Linux» . Архивировано из оригинала 2 февраля 2018 года . Проверено 23 февраля 2018 г.
- ^ «BusyBox упрощает встроенные системы Linux: небольшой набор инструментов для небольших сред» . ИБМ . Архивировано из оригинала 9 декабря 2008 года.
- ^ FreeBSD по основным командам Руководство –
- ^ Тайер, Дуг; Миллер, Кейт (16–17 апреля 2004 г.). «Четыре программы UNIX в четырех коллекциях UNIX: поиск единообразия в значке с открытым исходным кодом» (PDF) . Труды Симпозиума по обучению и вычислительной технике Среднего Запада . Университет Миннесоты, Моррис. Архивировано (PDF) из оригинала 3 октября 2011 г. Проверено 5 декабря 2011 г.
- ^ «Справка по командам BusyBox» . Архивировано из оригинала 2 февраля 2018 года . Проверено 24 февраля 2013 г.
- ^ «Линукс в дороге» . Архивировано из оригинала 7 сентября 2018 года . Проверено 27 августа 2018 г.
- ^ Лэндли, Роб. «Подтверждение изменения лицензии» . Ртутный репозиторий Toybox . Архивировано из оригинала 24 июля 2015 года . Проверено 24 июля 2015 г.
- ^ «Новости игрушечного ящика» . Архивировано из оригинала 9 сентября 2015 года . Проверено 14 сентября 2015 г.
- ^ Лэндли, Роб. «Упростите текст лицензии, как указано в списке рассылки» . Ртутный репозиторий Toybox . Архивировано из оригинала 28 июля 2021 года . Проверено 29 июня 2021 г.
- ^ «Проект замены Busybox» . 11 января 2012. Архивировано из оригинала 18 февраля 2015 года . Проверено 4 марта 2014 г.
- ^ «Гаррет: Продолжающаяся борьба с соблюдением GPL» . LWN.net . 31 января 2012. Архивировано из оригинала 14 сентября 2016 года . Проверено 4 марта 2014 г.
Реальная проблема здесь заключается в том, что зависимость [Software Freedom Conservancy] от Busybox означает, что они могут преследовать только нарушителей, которые используют этот код Busybox. Ни один крупный обладатель авторских прав на ядро до сих пор не предложил разрешить SFC защищать свои авторские права, в результате чего принудительные меры затормозятся, поскольку поставщики перейдут на замену Busybox.
- ^ «Гаррет: Продолжающаяся борьба с соблюдением GPL» . LWN.net . 31 января 2012. Архивировано из оригинала 14 сентября 2016 года . Проверено 4 марта 2014 г.
>Как бывший сопровождающий busybox, который НАЧАЛ эти судебные иски и теперь ОГРОМНО СОЖАЛЕЕТ о том, что когда-либо сделал это, я думаю, что имею право прекратить судебные процессы любым способом, который считаю нужным. Они ни разу не привели к добавлению ни одной строчки кода в репозиторий busybox. Они привели к тому, что несколько компаний полностью отказались от разработки Linux и перешли на операционные системы, отличные от Linux, для своих встраиваемых продуктов, и они во многом являются причиной политики Android «Нет лицензии GPL в пользовательском пространстве».
- ^ Проффитт, Брайан (2 февраля 2012 г.). «Наблюдение за соблюдением GPL разжигает общественное пламя. Выплеснуть ребенка GPL вместе с водой из ванны?» . ITмир. Архивировано из оригинала 7 января 2016 года . Проверено 4 марта 2015 г.
Дальнейшее чтение [ править ]
- Перенс, Брюс (1 ноября 2000 г.). «Создание крошечных Linux-систем с помощью BusyBox. Часть I» . Linux-журнал . Архивировано из оригинала 22 ноября 2015 года . Проверено 22 ноября 2015 г.
- Джонс, М. Тим (15 августа 2006 г.). «Busybox упрощает встроенные системы Linux» . Разработчик работает . ИБМ.