Cum se configurează smartphone-uri și PC-uri. Portal informativ

Programe pentru busybox. BusyBox: un cuțit elvețian pentru sistemele Linux încorporate

Dmitri Shurupov

BusyBox: Cuțit elvețian pentru sistemele Linux încorporate

Administratorii de sistem și utilizatorii sistemelor UNIX/Linux sunt, fără îndoială, obișnuiți să lucreze cu shell-ul de comandă și standardul lor preferat. software. Dar lor utilizare pe scară largă nu întotdeauna posibil. Și apoi BusyBox vine în ajutor - o carcasă simplificată cu un set de instrumente de sistem compacte.

BusyBox: ce este și de ce este nevoie?

În ciuda creșterii nestăpânite cochilii graficeși interfețe „prietenoase”, imaginați-vă UNIX fără Linie de comanda iar utilitățile de bază sunt imposibile în zilele noastre. Numeroși interpreți și utilități de bază ale sistemului nu stau pe loc, cresc și se dezvoltă, ceea ce duce inevitabil la o creștere a volumului lor. În același timp, există domenii de activitate în care compactitatea oricăror aplicații motive evidente foarte important, de exemplu, în dispozitivele încorporate. Cu toate acestea, în multe cazuri, o mare parte din funcționalitatea care este inerentă utilităților de bază „de uz general” nu este necesară.

Pentru a rezolva aceste probleme, pe la mijlocul anilor 90, Bruce Perens a creat pachetul BusyBox. Acum, proiectul este poziționat ca un „cuțit elvețian pentru sistemele Linux încorporate” și vizează în primul rând utilizarea în distribuțiile GNU/Linux mici. Distribuit sub a doua versiune a licenței GNU GPL.

BusyBox este un singur fișier executabil care, atunci când este lansat, încarcă un fișier complet interfață de comandă. Conform documentației oficiale BusyBox, pentru a crea o versiune minimă de GNU/Linux, trebuie doar să adăugați nucleul sistemului de operare și directoarele /etc, /dev.

Instalarea BusyBox

Pachete binare cu BusyBox pentru distribuții populare GNU/Linux este disponibil în depozitele corespunzătoare, iar arhiva sursă este disponibilă pe site-ul web al proiectului. Acest articol discută despre lansarea BusyBox v1.5.0. Unul dintre obiectivele principale urmărite de dezvoltatorii BusyBox este optimizarea și compactitatea codului - luând în considerare memoria limitată. Acest lucru nu numai că reiterează beneficiile utilizării acestuia în dispozitive încorporate, dar se potrivește și cu o altă abordare în spiritul modului UNIX: nivel inalt personalizare (în fisier binar BusyBox poate include doar componentele necesare).

Chiar și în etapa de compilare (sau mai degrabă, înainte de procesul de asamblare în sine), puteți selecta doar acele utilități de bază necesare. Acest lucru este implementat în stilul personalizării nucleului Linux. În loc de metoda de script „configure”, care este mai comună printre aplicațiile construite cu automake, pentru a preconfigura BusyBox, trebuie să rulați una dintre următoarele comenzi:

$ make config

$ make menuconfig

$ make defconfig

Argumentul „config” face ca un „chestionar” să ruleze cu o listă de opțiuni disponibile și utilități de bază, ceea ce sugerează punerea „Y” sau „N” în locul capabilităților necesare și, respectiv, inutile.

Argumentul „menuconfig” apelează la o configurație de meniu mai convenabilă cu o interfață bazată pe blesteme (vezi Figura 1).

Argumentul „defconfig” activează automat totul Optiuni Disponibile, pregătirea pentru asamblarea unui BusyBox „de uz general”.

La fel ca in cazul cu Nucleul Linux, după configurare, este creat un fișier de configurare .config, la care puteți reveni oricând cu comanda:

$ make oldconfig

Acest lucru este relevant atunci când treceți la mai multe versiune noua BusyBox cu configurație veche(astfel încât la configurare, puteți lucra numai cu opțiunile care apar în următoarea ediție).

În mod implicit, dacă nu există niciun fișier .config înainte de a apela „make menuconfig”, make este automat pre-rulat cu argumentul „defconfig”. Astfel, utilizatorul va trebui doar să dezactiveze caracteristici inutile. Prevăzut și opțiune inversă: Rularea make cu „allnoconfig” dezactivează toate opțiunile, astfel încât apoi să puteți selecta doar ceea ce aveți nevoie.

$facă

$ sudo make install

Lucrul cu BusyBox

Puteți lansa shell-ul BusyBox cu comanda:

$bb

Pentru un apel unic la o funcție (de regulă, o funcție BusyBox implementează într-o măsură limitată capacitățile unuia dintre utilitarele de la GNU coreutils, util-linux și altele pachete standard) puteți folosi comanda:

$busybox<функция>[argumente]

Adică, de exemplu:

$ busybox ls -l /

va afișa în shell-ul curent (de exemplu, bash) rezultatul executării comenzii „ls -l /” în BusyBox (vezi Fig. 2).

Lista plina funcții disponibile V versiunea instalată BusyBox poate fi văzut în ieșirea comenzii „busybox” fără niciun argument. Pentru a vedea ajutorul pentru o anumită funcție, procedați în felul următor:

$ busybox --help<функция>

Acest lucru devine deosebit de relevant datorită faptului că utilitățile de bază incluse în BusyBox sunt limitate în capacitățile lor, astfel încât lista steaguri disponibile vor diferi de cele pe care toată lumea este obișnuită să le vadă prin mijloace standard.

Umplere BusyBox

Pe lângă setul alternativ de coreutils (ls, cat, mv, cp, rm, chmod, df, ln, date, wc, nice, test...), BusyBox include multe alte programe.

Printre acestea, în primul rând, merită evidențiată prezența mai multor shell-uri de comandă minimaliste: ash (60 KB; un fork of dash de la Debian, bazat pe ash de la NetBSD; recomandat pentru utilizare cu BusyBox), hush (18 KB; înțelege shell-ul Bourne). gramatică), lsh (doar 10 KB; doar cea mai simplă funcționalitate), msh (30 KB; shell minix).

Pentru lucrul cu arhive există utilitare precum tar, gzip, bzip2, ar, zip, rpm, dpkg. Pentru a procesa conținutul fișierelor există atât awk, sed, patch și editori de text ed și vi.

Instrumentele de rețea sunt larg reprezentate: atât client, cât și server. Dintre demoni, voi evidenția httpd (cu suport de autorizare, CGI), dnsd, telnetd, inetd, udhcpd. Pentru FTP există ftpget, ftpput și client tftp. În plus, există și propria versiune GNU wget. Printre alții utilități standard: ifconfig, route, traceroute, ping/ping6, netstat, nslookup, arp și arping.

De asemenea, notabile sunt implementările hdparm pentru vizualizarea/setarea parametrilor hard disk, syslogd pentru logare, instrumente pentru lucrul cu conturile de sistem (adduser/addgroup, deluser/delgroup, login, passwd, su), sisteme init.

Nu văd prea mult rost în enumerarea tuturor funcțiilor BusyBox, așa că mă voi limita la statistici simple. Construcția mea BusyBox din Gentoo Linux portage conține 241 de funcții (dar nu include tot ceea ce este implementat în cadrul acestui proiect). Dacă luăm ca exemplu ls, atunci în versiunea BusyBox există 26 de steaguri disponibile pentru acest utilitar, iar în cel original în cazul meu (ls din GNU coreutils 6.7) sunt 55 (fără a lua în calcul „help” și „versiune” ). Printre steagurile lipsă din primul se numără: -Q (nume între ghilimele), -m (listă separată prin virgule), -U și -f (ieșire listă fără sortare). Altele, după părerea mea, sunt și mai puțin semnificative. Tendințele generale cred că sunt evidente.

Rezumând

Cât de semnificativă este absența anumitor capacități este determinată de cerințele generale și sarcini specifice. După impresii subiective, edițiile BusyBox ale utilităților de bază le prezintă pe toate principalele, adică. capabilități utilizate zilnic (de majoritatea în majoritatea cazurilor). Desigur, majoritatea nu sunt toate, iar sarcinile sunt diferite, dar, în ansamblu, meritul autorilor este evident. Chiar au reușit să aleagă ceea ce aveau nevoie.

În același timp, este important să se țină cont de specificul BusyBox, și anume scopul său cheie poziționat și real: utilizarea în medii cu limitări serioase de memorie care nu au nevoie de funcționalitatea avansată pe care o oferă utilitățile moderne ale sistemului de bază.

Și BusyBox își face față perfect sarcinilor. În același timp, proiectul se dezvoltă activ: din ianuarie 2006, au fost deja lansate 16 versiuni, dintre care 5 au introdus inovații semnificative (versiunea 1.x.0). Un alt indicator al creșterii BusyBox este faptul că tot mai mulți dezvoltatori aleg să-l folosească în produsele lor în detrimentul altor opțiuni.

Aplicație

Unde se folosește BusyBox?

Exemple uz practic BusyBox atunci când creați un kit de distribuție, puteți găsi în articolul lui Vsevolod Stakhov „Crearea dischete de bootși CD-uri Linux” din numărul 6, 2003 sau clasicul lui Bruce Perens „Building Tiny Linux Systems with Busybox” disponibil online (Partea 1: http://www.linuxjournal.com/article/4335

Încă nu înțeleg ce este busybox, explic ce este și de ce este necesar pe Android?

Răspunsuri (3)

  1. BusyBox este un software gratuit lansat în conformitate cu termenii GNU General Public License, care furnizează un număr de instrumente Unix într-un singur fișier executabil.

    Multe dintre instrumentele oferite de BusyBox sunt concepute pentru a funcționa cu interfețe asociate cu nucleul Linux. BusyBox poate rula pe diverse sisteme de operare, cum ar fi Linux și Android.

    Este folosit de mai multe sisteme de operare care rulează pe sisteme încorporate. A fost conceput special pentru sistemele de operare încorporate care au resurse limitate.

    Partajarea codului comun între aplicații și rutine optimizate pentru dimensiune permite BusyBox să fie mult mai mic decât un sistem cu versiuni de utilitate complete.

  2. Răspuns rapid: BusyBox este o colecție de instrumente puternice de linie de comandă într-un singur executabil binar care poate fi rulat pe sisteme bazate pe UNIX, inclusiv Android.

    Setul de instrumente disponibile depinde de modul în care a fost construit binarul BusyBox, iar codul sursă este GPLv2 open source, disponibil la busybox.net. Multe dintre instrumente nu fac nimic util fără root.

    Ce manipulări se pot face pe un smartphone? De exemplu, este posibil să scrieți date direct pe orice partiție a dispozitivului dvs. Multe firmware-uri terțe, inclusiv Cyanogenmod, folosesc BusyBox pe scară largă.

    Avantajele acestei aplicații sunt dimensiunile reduse și cerințele hardware reduse. Este un singur fișier (acest lucru economisește spațiu pe disc).

  3. Care sunt comenzile de bază pentru busybox?
    Iată o listă de comenzi în rusă:
    ash - shell de comandă
    awk - limbaj de procesare a șirurilor bazat pe modele
    pisică - citire fișier
    chmod - modificarea permisiunilor
    cp - copiere
    data - data și/sau ora curentă
    dd - copiați un fișier cu conversie și formatare
    df - afișează statisticile de utilizare a sistemului de fișiere
    dmesg - ieșire buffer de mesaje kernel
    echo - imprimă o linie
    egrep - grep cu suport extins pentru expresii regulate
    fgrep - grep cu căutare optimizată pe linie fixă
    grep - caută un model în fiecare fișier sau intrare standard
    gunzip - despachetează din gzip
    gzip - ambalare în gzip
    ucide - încheie procesul
    ln - creați un link denumit LINK_NAME sau DIRECTORY către ȚINTA specificată.
    autentificare - începeți o nouă sesiune în sistem
    ls - listează fișiere sau directoare
    mdu
    mkdir - creați un director
    mai mult - vizualizare pagină cu pagină a fișierelor text
    mount - montarea sistemelor de fișiere
    mv - mutați fișierul
    netstat - informații despre setările de rețea și conexiuni
    ntpc - client de sincronizare a timpului folosind protocolul NTP
    ntpsync
    nvram
    pidof - listează PID-urile tuturor proceselor ale căror nume se potrivesc cu NAME
    ping - trimite pachete ICMP ECHO_REQUEST către gazdele rețelei
    ps - informații despre procese
    pwd - imprimare director de lucru
    rm - eliminați fișiere sau directoare
    rmdir - elimina directoarele goale
    rstats - drepturi de autor
    sed - convertirea fluxurilor de text
    sh - interpret de comandă
    somn - pauză N secunde
    sincronizare - scrieți toate blocurile de sistem de fișiere stocate pe disc
    tar - lucrul cu arhivele tar
    atingere - actualizați data ultimei modificări a unui fișier sau fișiere date
    umount - demontarea sistemelor de fișiere
    uname - informații despre sistem
    usleep - pauză N microsecunde
    vi - editați fișierul
    watch - executa programul periodic
    zcat - despachetează la ieșirea standard
    Urmărește videoclipul care arată cum să instalezi BusyBox

Aceasta este o aplicație pentru instalarea BusyBox pe majoritatea dispozitivelor și apoi actualizarea acesteia la cea mai recentă versiune. Busybox este în esență un set de utilități de consolă pentru sistemele Linux. Necesar, de exemplu, pentru rularea programelor app2sd sau overclocking sau orice altceva similar care necesită conectarea modulelor kernel-ului de la terți. În majoritatea firmware-ului personalizat este deja încorporat.

Întrebări frecvente DESPRE PROGRAM:

Cum să overclockați un procesor folosind acest program?
În nici un caz. Busybox este necesar pentru unele programe de overclocking. Pune întrebări despre overclocking în subiectul dispozitivului tău.

Cum pot afla dacă Busybox este instalat și ce versiune este?
Instalăm Android Terminal Emulator, scriem busybox în el, dacă este instalat, atunci versiunea va fi scrisă și va fi afișat un scurt ajutor pentru comenzi.

-Pentru ce sunt comenzile busybox și ce este „Terminal”
Dacă nu știi ce este, atunci nu ai nevoie de el, crede-mă pe cuvânt. Dar este util pentru dezvoltare. Emulator de terminal Android. Pentru cei mai avansați - Better Terminal - mai greu de stăpânit, dar mai util. Există, de asemenea, un terminal bazat pe metoda proprie a lui Kevin Bon, folosind nu busybox, ci kbox. Un autor necunoscut anterior a făcut ceva nou și atractiv, deoarece terminalul său funcționează pe dispozitive fără root. În ceea ce privește comenzile... Dacă ești începător, atunci ar trebui să te uiți în căutarea Google și să tastați „comenzi
terminal linux" sau Android. Comenzile sunt necesare numai pentru confortul gestionării sistemului și dacă dvs utilizator obișnuit, nu ai nevoie de el Viata de zi cu zi. Dar busybox în sine este necesar în principal pentru programele care necesită drepturi de root pentru o funcționare corectă.

-Este posibil să dezinstalezi aplicația după instalarea busybox?
Da.

Atenţie!
1) În CyanogenMod și MIUI, BusyBox este deja instalat.
2) Aproape toate firmware-urile personalizate au deja instalat BusyBox. În cazuri rare, actualizarea busybox poate distruge firmware-ul sau poate cauza ca unele funcții și programe să nu funcționeze.
3) Vă sfătuiesc insistent să faceți o copie de rezervă a nandroid înainte de instalare partiția sistemului.

Descarca BusyBox Pro pe Android gratuitpoti urma linkul de mai jos.

Astăzi vom vorbi despre altul utilitar de sistem BusyBox. Permite aplicațiilor care includ funcții de acces la nucleu să se lanseze și să funcționeze cu succes sisteme Android după ce vă rootați gadgetul mobil.

De ce are nevoie Android de BusyBox și ce este?

După acordarea unui dispozitiv drepturi avansate (cu alte cuvinte, acces root), aplicațiile care le folosesc accesează adesea nucleul firmware-ului tău Android, ceea ce poate duce uneori la rezultate imprevizibile, încă de la lansare. biblioteci de sistem din aplicație externă folosind direct anumite comenzi Pot apărea pierderi de date, piratare sau defecțiune a sistemului de operare. Pentru un acces fiabil și neîntrerupt al unor astfel de aplicații la nucleul sistemului, trebuie să aveți grijă de un canal de schimb de date fiabil (sau interfață) între utilizator și Sistemul de fișiere. Această interfață este furnizată de un set de biblioteci de consolă pentru Android numit BusyBox.

În plus, bara pentru funcționalitate, comoditate și performanță a aplicațiilor cu privilegii root este în mod evident coborâtă datorită faptului că motoarele pentru majoritatea acestor programe au fost scrise în limbi de nivel înalt programare. Și aici BusyBox apare în fața noastră în cea mai favorabilă lumină - la urma urmei, doar C a fost folosit în dezvoltarea sa.

Ce aplicații necesită Busybox?

Aplicațiile care trebuie combinate cu pachetul prezentat includ:

  1. Manageri de fișiere
  2. Instrumente pentru recuperarea datelor și ștergerea cache-ului
  3. Instrumente pentru migrarea resurselor către carduri externe memorie
  4. Utilități pentru overclockarea unui procesor ARM sau a unui cip video.

Pentru a lor performanța optima De asemenea, este de dorit să aveți , deoarece acest applet mobil este cel care poate oferi în mod competent controlul privilegiilor root pentru fiecare program individual.

Cum se lucrează cu pachetul?

De fapt, BusyBox nu este nici măcar un program, ci un set unificat de instrumente pentru transmiterea și primirea datelor de la o aplicație de sistem către nucleul mediului și invers. Pentru a lucra cu pachetul, nu trebuie să faceți nicio manipulare. Dacă aplicație de sistem cu drepturi root va necesita BusyBox, veți vedea imediat o notificare despre necesitatea instalării pachetului, după care, ca urmare a confirmării, instalarea va avea loc automat.

Dacă doriți să descărcați manual BusyBox din Play Store, aveți și dreptul de a face acest lucru. Mai multe versiuni de BusyBox pentru Android sunt disponibile pe popularul forum mobil 4pda. Printre altele, w3bsit3-dns.com conține și o versiune extinsă și plătită a managerului de rădăcină numită busybox pro.

Instalarea drepturilor de root prin intermediul aplicației se poate face în mai multe moduri: atât inteligent (inteligent), cât și obișnuit.

Selectarea metodei de instalare pentru aplicația busybox Android

Instalarea inteligentă a BusyBox oferă posibilitatea de a personaliza în mod flexibil aspectul fiecărui applet compus individual, dar această funcție este disponibilă numai în versiune profesionala BusyBox Pro.

Ce include managerul rădăcină BusyBox?

Acest pachet constă din câteva zeci de utilități care simplifică accesul la date de pe un dispozitiv rootat. Puteți să vă uitați la lista lor pe una dintre file după instalare.

Lista utilităților componente ale setului de instrumente busybox pentru Android

Cum se accesează programul?

Accesul manual la utilitățile încorporate este oferit folosind emulatorul de terminal de linie de comandă Android, care poate fi descărcat aici. Cu lista comenzile disponibile poate fi găsit pe pagina wiki a proiectului.

Rezumat. Programul busybox pentru Android va fi o achiziție valoroasă pentru utilizatorii de manageri de fișiere cu funcții de accesare a nucleului de sistem și fanii overclockării hardware. comunicator mobil. Dacă utilizați firmware personalizat (MIUI, CyanogenMod), BusyBox este încorporat în mod implicit. Înainte de instalare, vă recomandăm să creați copie de rezervă partiția de sistem pentru a evita blocările sau inoperabilitatea unor programe.

BusyBox. Această aplicație este un program de instalare BusyBox pentru Android. BusyBox conține versiuni mici ale multor utilitare UNIX într-un singur mic fisier executabil. Oferă un înlocuitor pentru majoritatea utilităților găsite în GNU fileutils, shellutils etc. Utilitarele BusyBox au de obicei mai puține caracteristici decât omologii lor GNU cu funcții complete, dar acele caracteristici incluse în BusyBox sunt compatibile cu caracteristici similare ale utilitarelor GNU. BusyBox oferă un mediu destul de complet pentru orice sistem mobil sau încorporat.

Aplicația conține un ansamblu BusyBox pentru platforme ARM, x86 sau MIPS, acceptă 334 de applet-uri, este un ansamblu cu cele mai multe Set complet funcții. Acceptă instalarea și eliminarea BusyBox prin intermediul aplicației și instalarea printr-o arhivă zip pentru recuperare, care poate fi salvată pe un card de memorie din meniul aplicației ( Meniul -> Arhivă zip). Arhiva este salvată cu o versiune de BusyBox care este compatibilă în mod special cu sistemul actual și este posibil să nu funcționeze pe alte dispozitive.

Pentru a instala BusyBox pe sistem, sunt necesare drepturi de superutilizator (root), dar puteți utiliza utilitarele busybox fără drepturi de superutilizator. Pentru a face acest lucru, trebuie doar să introduceți următoarea comandă în orice terminal Android:

export PATH=/data/data/ru.meefik.busybox/files/bin:$PATH

După aceasta, puteți utiliza utilitățile din pachetul busybox în același terminal. Înainte de a utiliza această caracteristică aceasta aplicație trebuie lansat cel puțin o dată după instalare pe dispozitiv.

Descrierea procedurii de instalare.

Descărcați și instalați programul. Lansați-l, accesați (Setări) făcând clic pe butonul dispozitivului dvs. Android din colțul din stânga jos... În Setări, bifați caseta pentru (Înlocuire applet-uri).. Ieșiți (Setări) și faceți clic pe (Instalare), după a face clic pe BusyBox va necesita furnizarea SuperSu are dreptate, sunt de acord și instalarea va începe în 3 secunde.Dacă instalarea are succes, se va scrie peste tot - (terminat), adică gata. Apoi, reporniți dispozitivul și după repornire, puteți dezinstala propriul program de instalare BusyBox.

Descarca Aplicația BusyBox(Busybox) pe Android poti urma linkul de mai jos.

Cele mai bune articole pe această temă