LAKI PINGVINI
BusyBox 1.20.2
Ivan TODOROVIĆ
1. novembar 2012.

Kao što je mnogima poznato, jedna Linux distribucija sastoji se od Linux kernela, odgovarajućih drajvera, nekakvog shella (komandnog interpretera) preko kojeg će korisnik upravljati računarom, kao i dodatnog softvera, među kojim su komande (ls, mount, ifconfig...) uobičajene za unixolike operativne sisteme. Te komande nisu ništa drugo do izvršni fajlovi smešteni u neki od sistemskih foldera (recimo, /bin, /sbin i /usr/bin). Ovi folderi podrazumevano su upisani u sistemsku promenljivu PATH, koja kaže gde treba tražiti programe čija imena unosite u komandni interpreter. Zbog toga uobičajene komande možete izvršavati iz bilo kog foldera, a interpreter će znati gde da ih traži.

Kompaktna kutija s alatom

Šta se dešava onda kada koristite distribuciju koja nema sve komande na koje ste navikli, a instalacija novog softvera nije jednostavna? Ili ako pokušavate da sklopite minijaturnu Linux distribuciju koja treba da radi na, recimo, embedded uređaju sa vrlo ograničenim kapacitetom skladištene memorije, gde stotine megabajta softvera naprosto nisu opcija? BusyBox donosi rešenje ovih problema.

Ovaj projekat nastao je davne 1996. godine, kada je autor pokušao da napravi upotrebljivu Linux distribuciju koja može da se podigne s jedne jedine diskete. Kao što smo rekli, uobičajene Linux komande su obični izvršni fajlovi, s tim što svaki izvršni fajl ima nekoliko kilobajta „zaglavlja” koje ga opisuje i omogućava njegovo pokretanje. U scenariju kada je sve to trebalo spakovati na jednu disketu od 1,44 MB zajedno sa kernelom, gubiti po nekoliko kilobajta na svakoj od stotinak komandi nije bilo zgodno. Zato je autor došao na ideju da većinu komandi spakuje u jedan izvršni fajl, i tako je nastao BusyBox.

Prednosti ovog pristupa su jasne. S obzirom na to da se radi o jednom fajlu, nema posebnog zaglavlja za svaku dostupnu komandu. Kako brojne Linux komande dele isti programski kôd, BusyBoxov izvršni fajl je mnogo manji nego što bi bio zbir pojedinačnih komandi, čak i kada bi se one „očistile” od pomenutih zaglavlja. Valja napomenuti to da BusyBox sadrži funkcionalne, ali ipak nešto osiromašene verzije komandi, tako da nisu dostupne baš sve opcije na koje ste navikli u „punokrvnim” izdanjima. Recimo, BusyBoxov ping nema mogućnost podešavanja intervala između pingovanja IP adrese, dok ls ne može da sortira rezultujući spisak fajlova. Ipak, ključna funkcionalnost je netaknuta, pa BusyBox svakako može da posluži za sve bitne poslove. Takođe, ako ste raspoloženi da ručno kompajlirate paket umesto traženja gotovog izvršnog fajla na internetu, možete odrediti koje će komponente biti uključene a koje izbačene, tako da se veličina rezultujućeg fajla može prilagoditi prema potrebi.

Ugrađene komande pozivaju se navođenjem njihovih imena kao prvog parametra BusyBoxovog izvršnog fajla, na primer:

./busybox ping 192.168.0.10

Drugi i daleko udobniji način je napraviti linkove koji će se zvati kao potrebne komande, a u stvari će pokazivati na BusyBoxov izvršni fajl (npr. /bin/ping koji pokazuje na /bin/busybox). Kada pozovete novonapravljeni fajl ln, zapravo ćete pokrenuti BusyBox, koji zatim proverava preko kog fajla je pozvan i automatski izvršava odgovarajuću komandu, zajedno sa ostalim parametrima koje ste eventualno prosledili. S obzirom na broj podržanih komandi, bilo bi suludo ručno praviti linkove za svaku od njih (spisak dostupnih komandi dobijate pozivanjem BusyBoxovog izvršnog fajla bez ikakvih parametara). Zato BusyBox podržava i „instalaciju” na sistem koristeći parametar -install, gde navodite u kom folderu treba napraviti linkove ka BusyBoxu, na primer:

/bin/busybox -install /bin

Za kraj, ako vam korišćenje ovakvog alata deluje kao nešto potpuno nepotrebno, evo jednog vrlo konkretnog primera iz prakse. Recimo, „rutovali” ste svoj Android telefon i dobili pristup komandnom interpreteru pod punim root privilegijama. Ubrzo ste zaključili da Androidu nedostaje ogroman broj komandi na koje ste navikli pod pravim Linuxom, te sistem nije naročito upotrebljiv za rad iz komandne linije. Rešenje je, naravno, BusyBox. Pored toga što možete naći gotov izvršni fajl koji je već neko napravio za ovu svrhu, evo načina kako ga možete sami napraviti. Sve što vam je potrebno jeste neki od kros-kompajlera, pomoću kojih možete praviti ARM izvršne programe za Linux direktno na svom PC računaru. Kao primer uzećemo besplatni CodeSourcery toolchain. Ako ste ga instalirali u podrazumevani folder (~/CodeSourcery/Sourcery_ G++_Lite), prvo treba dopuniti promenljivu PATH dodavanjem putanje ka CodeSourcery alatkama (~/CodeSourcery/Sourcery_G++_Lite/bin). Zatim iz foldera u koji ste raspakovali BusyBox izvorni kôd pozovite sledeće komande (obe make komande komande kucajte u po jednom redu, sa razmakom ispred LDFLAGS):

$ make CROSS_COMPILE=arm-none-linux-gnueabi- LDFLAGS=-static defconfig

$ make CROSS_COMPILE=arm-none-linux-gnueabi- LDFLAGS=-static

Ovim se forsira statičko linkovanje rezultujućeg izvršnog fajla, jer Android ne koristi iste deljene biblioteke kao klasične Linux distribucije. Dobijeni izvršni fajl (busybox) prebacite sa računara na Android u folder /system/ xbin, dodelite mu izvršne privilegije (chmod 4755 /system/ xbin/busybox), a onda ga na Androidu pokrenite sa

/system/xbin/busybox -install -s /system/xbin/

Na taj način napraviće se svi potrebni linkovi i imaćete dostupne komande koje BusyBox nudi.


Platforma:
GNU/Linux
Licenca:
GNU GPLv2
Veličina:
2,1 MB (tarball)
Cena:
program je besplatan
Adresa:
www .busybox .net
PRETHODNI TEKST
SLEDEĆI TEKST
Najčitanije
Igre
Telefoni
Hardver
Softver
Nauka
Aktuelno štampano izdanje
JUN 2025
Doom: The Dark Ages
Doom iz mračnog doba drugačiji je od svih drugih Doomova, jer je Slayer koncipiran kao tenk sa štitom...
Clair Obscur: Expedition 33
Estetika Belle Époquea, gameplay u skladu sa kanonima JRPG-a, vrhunsko pripovedanje i ljubav prema igrama...
Computex 2025, Tajpej, Tajvan
AI NEXT
Ovaj, nekada ultra-PC-specifični sajam, odavno se proširio na srodne tehnologije, biznis rešenja i digitalne usluge, postavši varijanta azijskog C...
Gigabyte GeForce RTX 5070 Gaming OC 12G
Višak samopouzdanja
Kartica je sa hardverske strane vrlo kvalitetna, ali ništa ne može da nadomesti nedostatak snage „pod haubom”...
Asus ProArt P16 (H7606WP)
Pronalazak neverovatnog
Novi ProArt P16 donosi moderna rešenja, u dobro usaglašenom odnosu gabarita i performansi – alatka koju ćete sa ponosom nosati sa sobom...
Logitech ProX Superlight 2
Sve udvostručeno
Ovaj miš predstavlja jasnu indikaciju da najveći proizvođač ne želi da napusti nijedan segment tržišta...
Winhance 25.05
Popravka Prozora
U pitanju je alatka koja omogućava da se brzo rešite (većine) bloatwarea, ali i da obavite optimizaciju rada Windowsa...
TCL NXTPAPER 11 Plus
Momak za sve
Ovo bi bio najbolji tablet „za te pare” i da košta 100 evra više...
.rs: Beogradski prevoz na Yandexu • Srbija u SEPA • Loši primeri digitalizacije
Unapređeno e Zakazivanje
Beogradski prevoz na Yandexu • Srbija u SEPA • Loši primeri digitalizacije
Google Mariner, Google Astra i AI autonomni agenti
Uspon tihog softvera
Umesto kliktanja stručnog lica, softver će, već ove godine, u tihom, gotovo nečujnom načinu rada - završavati posao...
Fatal Fury: City of the Wolves
Fatal Fury je oduvek bio čudna cvećka u svetu borilačkih igara; takav je i ostao...
Arc Raiders
Novi extraction shooter iz pera autora dobrih delova franšize Battlefield (i potcenjenog The Finals)...
© 2025 Svet kompjutera. Sva prava zadrzana.
Novi broj - Arhiva - Forum - O nama