Çfarë është BusyBox dhe ku përdoret?


BusyBox është një koleksion i shërbimeve kryesore të Unix-it të paketuara si një binar i vetëm. Kjo e bën atë ideal për mjedise me burime të kufizuara, siç janë pajisjet e integruara. Shpërndarja e plotë ka pothuajse 400 nga komandat më të zakonshme.

BusyBox është me burim të hapur dhe i licencuar sipas GPL. Ajo u krijua në 1995 me qëllimin për të bërë një sistem bootable të përshtatet në një floppy të vetme. Grumbullimi i komandave së bashku në një binar redukton shpenzimet e përgjithshme dhe lejon ndarjen e kodit midis aplikacioneve në dukje të pavarura.

Çfarë përfshin BusyBox?

BusyBox ofron komandat e përditshme të komoditetit që shpesh ndihen sikur janë pjesë e guaskës suaj. Megjithëse mjetet e tokës së përdoruesit si ls dhe cat janë të kudondodhura, ato në fakt qëndrojnë në një paketë të veçantë të shërbimeve që është e pavarur nga guaska juaj. Shumë shpërndarje Linux i dorëzojnë këto komanda nëpërmjet coreutils të GNU-së, por të tjerat dërgojnë BusyBox në vend të tyre.

Projekti funksionon duke sinkronizuar emrat e njohur të komandave në /usr/bin me binarin BusyBox. Ky ekzekutues më pas thërret funksionin që korrespondon me emrin e kaluar si argument i tij i parë.

  • Me BusyBox komanda mkdir ekzekuton /usr/bin/busybox mkdir
  • Me GNU Coreutils – komanda mkdir ekzekuton /usr/bin/mkdir.

Ju mund të përdorni në mënyrë transparente komanda si mkdir, passwd, ps, tar dhe wget sapo të instalohet BusyBox. Komandat zbatohen si applets të cilat kombinohen në një shpërndarje funksionale BusyBox. Kompleti i plotë peshon rreth 1 MB. Apletet janë të lëvizshme, kështu që madhësia binare mund të zvogëlohet edhe më tej. Mund të kontrolloni se çfarë disponohet në instalimin tuaj duke ekzekutuar busybox pa argumente.

Meqenëse BusyBox u krijua për të fuqizuar sisteme të vogla bootable, ai mbulon gjithçka që nevojitet në tokën e përdoruesit për të nisur dhe administruar një sistem POSIX. Kjo shtrihet në një zbatim minimal init që mund të funksionojë si ID e procesit 1 dhe të mbështesë shërbimet e sistemit. Ju mund të miratoni BusyBox si një alternativë të lehtë për një demon të rregullt init ose sistemi.

Duke qenë se BusyBox është qëllimisht minimal, jo çdo komandë zbaton të gjitha tiparet e homologut të tij GNU. Ju mund të gjeni disa flamuj që mungojnë ose ndryshime në sjellje në situata të pazakonta. Kjo është një nga kompensimet e natyrës së efektshme të BusyBox.

Ku përdoret BusyBox?

BusyBox mund të gjendet kudo ku është një shqetësim përdorimi i diskut. Përdoret nga sisteme minimale operative si Alpine, si dhe nga skenarë të specializuar si pajisjet e ngulitura dhe predha celulare.

Shanset janë të mira që një pajisje me prejardhje nga Unix që nuk ka një shpërndarje konvencionale OS do të përdorë BusyBox. Do ta gjeni në ruterin tuaj të rrjetit, televizorin inteligjent, makinën moderne dhe pajisjet IoT. Secili prej këtyre cilësimeve karakterizohet nga nevoja për të ekzekutuar mjetet bazë të tokës së përdoruesit brenda një mjedisi shumë të kufizuar nga burimet.

Dërgimi i një binar të vetëm gjithë-në-një është më efikas. Redukton tepricën duke i lejuar të gjitha komandat të ndajnë kodin e përbashkët pa ruajtur bibliotekat e pavarura në disk. Meqenëse BusyBox ofron përputhshmëri të mirë me implementime të tjera dhe është i licencuar sipas GPL, zakonisht është opsioni i preferuar për mjediset që kanë nevojë për një grup të lehtë shërbimesh.

Shitësit e pajisjeve të integruara përfitojnë gjithashtu nga natyra modulare e BusyBox. Një produkt IoT mund të ketë nevojë vetëm për një pjesë të vogël të shërbimeve kritike për të ofruar funksionalitetin e tij. Shpërndarja e një binar të modifikuar BusyBox liron disa KB të tjera hapësirë në disk, gjë që mund të jetë një kursim i konsiderueshëm.

Si të provoni BusyBox

Ju mund të instaloni BusyBox pa zëvendësuar shërbimet tuaja aktuale. Përdorni menaxherin tuaj të paketave për të shtuar busybox, më pas shtoni komandën tuaj të zgjedhur në binarin busybox për të ekzekutuar një aplikacion:

busybox mkdir test

Kjo siguron që versioni BusyBox i komandës do të përdoret në vend të versionit në shtegun e paracaktuar të guaskës suaj.

Një mënyrë tjetër për të provuar BusyBox është përmes imazhit të tij zyrtar Docker:

docker run -it --rm busybox

Nëse keni të instaluar Docker, kjo do t'ju futë në zbatimin e guaskës së BusyBox. Ju mund të ekzekutoni një komandë specifike duke e shtuar atë pas emrit të imazhit:

docker run -it --rm busybox mkdir demo

BusyBox ka gjithashtu një emulator JavaScript që ju lejon të provoni shërbimet në shfletuesin tuaj të internetit.

Në shumicën e shpërndarjeve Linux nuk mund të zëvendësoni plotësisht coreutils me BusyBox. Komandat dhe paketat specifike të shpërndarjes shpesh janë të lidhura për të pritur që shërbimet coreutils të jenë të disponueshme. Shpërndarja juaj zakonisht do të refuzojë të çinstalojë këtë paketë pasi mund ta bëjë sistemin jofunksional nëse hiqet init.

Nëse dëshironi të mbështeteni te BusyBox, është më mirë të filloni me një shpërndarje që e përdor atë dhe më pas të vendosni softuerin tuaj tjetër në krye. Shtimi i BusyBox së bashku me coreutils siç tregohet më sipër funksionon mirë kur duhet të kontrolloni se si do të përgjigjet një aplikacion në një skenar të caktuar.

konkluzioni

BusyBox është një implementim i lehtë i shërbimeve UNIX të tokës së përdoruesit që vjen i paketuar si një binar i vetëm. Ju mund ta kombinoni atë me një kernel Linux për të krijuar një sistem funksional pa varësi të tjera.

BusyBox është optimizuar për mjedise me hapësirë të kufizuar. Kjo e bën atë ideal për produkte të integruara siç janë pajisjet IoT. Ju gjithashtu mund të gjeni BusyBox të instaluar në shpërndarje minimale, por përndryshe të përgjithshme Linux, siç është Alpine Linux.

Pavarësisht nëse jeni duke përdorur BusyBox ose GNU Coreutils, komandat tuaja të njohura në përgjithësi thjesht do të funksionojnë me cilindo implementim. Çdo problem që lind zakonisht do të jetë për shkak se BusyBox nuk zbaton një opsion të caktuar flamuri ose konfigurimi të rrallë.