Кіріспе
Unix құралдар жинағы
BusyBox – бір орындалатын файлда бірнеше Unix утилиталарын ұсынатын бағдарламалық жиынтық. Ол Linux, Android және FreeBSD сияқты түрлі POSIX орталарында жұмыс істейді, бірақ оның көптеген құралдары Linux ядросы ұсынатын интерфейстермен жұмыс істеуге арналған. Ол ерекше түрде өте шектеулі ресурстарға ие кіріктірілген операциялық жүйелер үшін жасалды. Авторлар оны «Кіріктірілген Linux-тың швейцариялық армия пышағы» деп атады, себебі бір орындалатын файл 300-ден астам кең таралған командалардың негізгі функцияларын алмастырады. Ол GNU General Public License v2 шарттары бойынша ақысыз бағдарламалық жасақтама ретінде таратылады, бірақ 3-ші нұсқаға көшуге қатысты дау тудырды. BusyBox бастапқыда бір дискетке толық жүктелетін жүйені орнатуды мақсат еткен, ол құтқару дискісі ретінде де, Debian дистрибуциясын орнатушы ретінде де қолданылуы тиіс болған. Содан бері ол кіріктірілген Linux құрылғылары және Linux дистрибуцияларын орнатушылар үшін де-факто стандартты негізгі пайдаланушы кеңістігі құралдары жиынтығына айналды. Әрбір Linux орындалатын файлы бірнеше килобайт қосымша шығындарды қажет ететіндіктен, BusyBox бағдарламасының екі жүзден астам бағдарламаны біріктіруі дискідегі орынды және жүйелік жадты айтарлықтай үнемдеуге мүмкіндік береді. BusyBox-ты Энрике Занарди 1998 жылдың басына дейін күтіп келді және Debian жүктеу дискеттерінің орнату жүйесінің қажеттіліктеріне баса назар аударды, содан кейін Дейв Синеге оны Linux Router Project (LRP) үшін қабылдады. Синеге бірнеше қосымшалар жасады, модульдік құрылыс ортасын құрды және BusyBox-тың назарын жалпы жоғары деңгейдегі кіріктірілген жүйелерге аударды. 1999 жылы LRP дамуы баяулағандықтан, сол кезде Lineo, Inc. компаниясында жұмыс істеген Эрик Андерсен жобаны өз мойнына алды және 1999 жылдың желтоқсаны мен 2006 жылдың наурызы аралығында ресми күтуші болды. Осы кезеңде Linux кіріктірілген нарығы қарқынды өсті, ал BusyBox айтарлықтай жетілді, пайдаланушылар базасын және функционалдығын кеңейтті. Роб Лэндли 2005 жылдан 2006 жылдың соңына дейін күтуші болды, содан кейін Денис Власенко қазіргі күтуші болып тағайындалды.
GPLv2/GPLv3 даулары
2006 жылдың қыркүйегінде жобаны қолдаушы Роб Лэндли мен Брюс Перренс арасындағы ауыр пікірталас пен даулардан кейін, BusyBox жобасы GNU General Public License Version 3 (GPLv3) нұсқасын қабылдамауға бекітті; BusyBox лицензиясы тек GPL 2.0 ғана екендігі нақтыланды. 2006 жылдың қазан айынан бастап Денис Власенко Роб Лэндлиден BusyBox жобасын басқаруды қабылдады, ал Роб Лэндли лицензиялық даулардың салдарынан Toybox жобасын бастады.
GPL-ге қатысты сот іс-әрекеттері
2007 жылдың соңында BusyBox өзінің лицензиясының шарттарын (GPL) бұзуды белсенді түрде Нью-Йорк штатының оңтүстік округінің АҚШ округтік сотында қудалау арқылы көзге түсті. GPL-ді бұзу бойынша АҚШ-тағы алғашқы сот ісі ретінде танылған, кіріктірілген құрылғыда BusyBox-ты пайдалану туралы мәлімдеме жасалды. 2007 жылдың 21 қарашасында SFLC, Andersen және Landley компаниялары атынан Xterasys (іс № 07 CV 10455) және High Gain Antennas (іс № 07 CV 10456) компанияларына қарсы екі ұқсас сот процесін бастады. Xterasys ісі 17 желтоқсанда қолданылған бастапқы кодты жариялау және ашылмаған төлем жасау туралы келісіммен аяқталды, ал High Gain Antennas ісі 2008 жылдың 6 наурызында лицензия талаптарын орындау және ашылмаған төлем жасау шартымен шешілді. 2007 жылдың 7 желтоқсанында Verizon Communications компаниясына Actiontec маршрутизаторлары үшін тираждалған микробағдарлама тарату бойынша шағым түсті; бұл іс 2008 жылдың 17 наурызында лицензия талаптарын орындау, еркін бағдарламалық жасақтама лицензияларын одан әрі сақтауды қадағалайтын лауазымды тұлғаны тағайындау және белгісіз сомада төлем жасау шартымен аяқталды. 2008 жылдың 9 маусымында Bell Microproducts (іс № 08 CV 5270) және SuperMicro (іс № 08 CV 5269) компанияларына қарсы тағы да сот процесі қозғалды, ал Super Micro ісі 2008 жылдың 23 шілдесінде шешілді. BusyBox және Bell Microproducts компаниялары да 17 қазанда соттан тыс келісімге келді. 2009 жылдың 14 желтоқсанында Best Buy, JVC, Samsung және басқа да он төрт күдікті айыпталушы аталған жаңа сот ісі қозғалды. 2010 жылдың ақпан айында Samsung LN52A650 теледидарының микробағдарламасын GPLv2 лицензиясы бойынша жариялады, ол кейін SamyGO қоғамдық жобасы үшін анықтама ретінде пайдаланылды. 2010 жылдың 3 тамызында BusyBox Westinghouse компаниясынан үш еселенген залапты өтеу ретінде 90 000 доллар, адвокаттардың шығындары мен гонорары 47 865 доллар және сот ісінде Software Freedom Conservancy v. Best Buy, және басқалар, GPL-ді бұзу туралы жоғарыда айтылған істе "көптеген жоғары ажыратымды теледидарларды" иелену құқығын жеңіп алды. Бұл іс-қимылдарға және келісімдерге бастапқы автор Брюс Перенс пен басқарушы Дейв Синеге сияқты басқа да дамытушылар қатыспады. 2009 жылдың 15 желтоқсанында Перенс құқықтық жағдайдың кейбір аспектілеріне наразылығын білдіретін мәлімдеме жасады, әсіресе қазіргі BusyBox дамытушылары "басқа BusyBox дамытушыларының авторлық құқықтары туралы кейбір мәлімдемелерін алып тастаған және лицензиялық мәлімдемелерді өзгерткен сияқты" деп мәлімдеді.
On November 21, 2007, the SFLC brought two similar lawsuits on behalf of Andersen and Landley against two more companies, Xterasys (case 07 CV 10455) and High Gain Antennas (case 07 CV 10456). The Xterasys case was settled on December 17 for release of source code used and an undisclosed payment, and the High Gain Antennas case on March 6, 2008, for active license compliance and an undisclosed payment. On December 7, 2007, a case was brought against Verizon Communications over its distribution of firmware for Actiontec routers; this case was settled March 17, 2008 on condition of license compliance, appointment of an officer to oversee future compliance with free software licenses, and payment of an undisclosed sum. Further suits were brought on June 9, 2008, against Bell Microproducts (case 08 CV 5270) and SuperMicro (case 08 CV 5269), the Super Micro case being settled on July 23, 2008. BusyBox and Bell Microproducts also settled out of court on October 17. On December 14, 2009, a new lawsuit was filed naming fourteen defendants including Best Buy, JVC, Samsung and others. In February 2010 Samsung released its LN52A650 TV firmware under GPLv2, which was used later as a reference by the SamyGO community project. On about August 3, 2010, BusyBox won from Westinghouse a default judgement of triple damages of $90,000 and lawyers' costs and fees of $47,865, and possession of "presumably a lot of high def TVs" as infringing equipment in the lawsuit Software Freedom Conservancy v. Best Buy, et al., the GPL infringement case noted in the paragraph above. No other developers, including original author Bruce Perens and maintainer Dave Cinege, were represented in these actions or party to the settlements. On December 15, 2009, Perens released a statement expressing his unhappiness with some aspects of the legal situation, and in particular alleged that the current BusyBox developers "appear to have removed some of the copyright statements of other BusyBox developers, and appear to have altered license statements".
Ерекшеліктері
BusyBox-ты екі жүзден астам пайдалы құралдардың ішінен таңдап алуға бейімдеуге болады. Ол Single Unix Specification (SUS) талаптарында көрсетілген көптеген құралдармен қатар, пайдаланушы Linux жүйесінде күтетін көптеген басқа да құралдарды қамтамасыз етеді. BusyBox Almquist қабығын пайдаланады, ол A Shell, ash және sh деп те аталады. Балама ретінде кішірек 'hush' қабығын қолдануға болады. Бұрын "msh" және "lash" қабықтары да қолданылған. BusyBox – толыққанды жүктелу жүйесі болғандықтан, ол init демоны мен udev (немесе кейінгі systemd) орнына өзін іске қосу кезінде init, ал құрылғы қосылғанда mdev ретінде шақырып, оларды алмастырады. BusyBox веб-сайтында іске асырылған құралдардың толық тізімі берілген.
Бірыңғай екілік
Типтік компьютерлік бағдарламаларда әрбір қолданба үшін жеке екілік (жұмысқа қойылатын) файл болады. BusyBox – бір біртұтас екілік файл, ол көптеген қолданбалардың жиынтығы болып табылады. Олардың әрқайсысына әртүрлі атаулармен (әр атау үшін символдық немесе қатты сілтемелер арқылы қолдау көрсетіле отырып) белгілі бір тәсілмен, тиісті аргументтермен бір ғана BusyBox екілік файлы арқылы қол жеткізуге болады. BusyBox біртұтас екілік файл тәсілінен пайда көреді, себебі ол орындалатын файл форматымен (әдетте ELF) байланысты қосымша шығындарды азайтады және кітапхана қажет етпей-ақ бірнеше қолданба арасында кодты бөлісуге мүмкіндік береді. Бұл техника FreeBSD-дегі crunchgen командасы ұсынатын нәрсеге ұқсас, бірақ айырмашылығы BusyBox қолданбалардың жеңілдетілген нұсқаларын ұсынады (мысалы, файлдарды сұрыптау мүмкіндігі жоқ ls командасы), ал crunchgen жасаған қолданбалардың жиынтығы толық функционалды нұсқаларды ұсынады. Ортақ кодты бөлісу, сондай-ақ код өлшемін оңтайландыруға бағытталған әдістер BusyBox жүйесіне, BusyBox-пен ауыстырылған тиісті толық нұсқалы құралдармен құралданған жүйеге қарағанда әлдеқайда аз сақтау кеңістігін пайдалануға мүмкіндік береді. Стандартты Unix командаларының GNU, BusyBox, asmutils және Perl нұсқаларын салыстырған зерттеулер көрсеткендей, кейбір жағдайларда BusyBox басқа нұсқалардан жылдам жұмыс істей алады, бірақ бұл әрқашан осылай бола бермейді.
Құралдар мен қабылдау
BusyBox бірнеше операциялық жүйелерде қолданылады және OpenWrt, OpenEmbedded (Yocto жобасын қоса алғанда) және Buildroot сияқты таратулардың (дистрибутивтердің) маңызды құрамы болып табылады. Sharp Zaurus жүйелік қабықта орындалатын күнделікті Unix-қа ұқсас тапсырмалар үшін BusyBox-ты кеңінен пайдаланады. BusyBox сонымен қатар VMware ESXi және Alpine Linux-тың да маңызды құрамы болып табылады, бірақ екеуі де кіріктірілген таратулар емес. Ол Android-тегі бірнеше root қолданбаларына қажет, сондай-ақ Kingo Root сияқты "бір түрту арқылы root жасау" (1 Tap Root) шешімдерімен бірге орнатылып келеді.
Toybox туралы дау
Toybox 2006 жылдың басында бұрынғы BusyBox әзірлеушісі Роб Лэндли GPL 2.0 лицензиясымен, GPLv3/GPLv2 талқылауларына байланысты туған даулардың нәтижесінде бастады. 2011 жылдың соңында жоба тоқтап қалғаннан кейін BSD 2 лицензиясы бойынша қайта лицензияланды. 2013 жылдың наурыз айында ол 0BSD лицензиясы бойынша тағы да қайта лицензияланды. 2012 жылдың 11 қаңтарында Sony қызметкері Тим Бёрд GNU General Public License лицензиясы аясында емес, BusyBox-қа балама жасауды ұсынды. Ол оны қолданыстан тоқтаған Toybox негізінде құруды ұсынды. 2012 жылдың қаңтар айында GPL лицензиясы бар BusyBox жобасына BSD лицензиясы бар балама жасау туралы ұсыныс Мэтью Гарреттен Software Freedom Conservancy тобының авторлық құқықты сақтау үшін маңызды құралын алып тастағаны үшін қатты сынға ұшырады. BusyBox негізіндегі сот процестерін бастаған Роб Лэндли бұл әдейі жасалғанын айтты, себебі ол сот процестері күтілгендей оң нәтижелер бермегенін түсінді және оларды "қалай болса да тоқтатуды" қалады.