Busybox svájci kés a beágyazott linux rendszerekhez

BusyBox: svájci kés a beágyazott Linux rendszerekhez

A rendszeradminisztrátorok és a UNIX / Linux rendszerek felhasználói kétségtelenül hozzászoktak a kedvenc parancshéjhoz és szabványos szoftverekhez. De mindenkori használatuk nem mindig lehetséges. És akkor a BusyBox mentésre kerül - egyszerűsített héj kompakt rendszereszközökkel.







BusyBox: mi az, és miért kell egyáltalán?

Annak ellenére, hogy a grafikus héjak és a "barátságos" interfészek burjánzó növekedése ellenére elképzelhetetlen a UNIX nélküli parancssori és alapilletékek napjainkban. Számos tolmács és alapvető rendszerellátás nem áll meg, fejlődik és fejlődik, ami elkerülhetetlenül növeli a kötetet. Ugyanakkor vannak olyan tevékenységi területek, amelyeknél az alkalmazások tömörsége nyilvánvaló okok miatt nagyon fontos, például beágyazott eszközök esetén. Ugyanakkor sok esetben az alapvető "általános célú" segédprogramokban rejlő funkciók nagy része nem szükséges.

A 90-es évek közepén a problémák megoldására Bruce Perens létrehozta a BusyBox csomagot [1]. Most a projekt "svájci kés a beágyazott Linux rendszerekhez" helyezkedik el, és elsősorban a GNU / Linux kis elosztásait célozza meg. A GNU GPL licenc második verziója alatt terjeszthető.

A BusyBox az egyetlen végrehajtható fájl, amely egy teljes parancs interfészt indít. Ahogy a BusyBox hivatalos dokumentációja olvasható, a GNU / Linux minimális verziójának létrehozásához csak az operációs rendszermagot és az / etc, / dev könyvtárakat kell hozzáadni.

A népszerű GNU / Linux disztribúciókkal rendelkező BusyBox bináris csomagok elérhetők az adott repositories állományokban, és a forrás archívum a projekt webhelyén található [2]. A cikk foglalkozik a BusyBox v1.5.0 kiadásával. A BusyBox fejlesztői által megfogalmazott egyik fő cél - optimalizált és kompakt kódszámítás a korlátozott memória számára. Ez nem csak beszél megint előnyeit annak használatát a beágyazott eszközök, hanem jól megy egy másik megközelítés szellemében UNIX módon: magas szintű testreszabási (a BusyBoxból bináris fájl csak a szükséges komponenseket is tartalmazhat).

Az összeállítás szakaszában (vagy inkább maga a felépítési folyamat előtt) csak azokat az alapvető segédprogramokat választhatja ki, amelyekre szükség van. Ez a Linux kernel hangolásának stílusában valósul meg. Az automake alkalmazásokból a BusyBox előtelepítéséhez szükséges "konfigurálás" parancsfájlban gyűjtött gyakoribb módszer helyett az alábbi parancsok egyikét kell végrehajtani:







A "config" argumentum elindítja egy "kérdőív" elindítását, egy listát a rendelkezésre álló lehetőségekről és az alapvető segédprogramokról, amelyek az "Y" vagy az "N" helyett a szükséges és felesleges képességeket helyettesítik.

A "menuconfig" argumentum sokkal kényelmesebb konfigurációt eredményez, mint egy átkás alapú felület (lásd 1. ábra).

1. ábra: A BusyBox telepítése: "make menuconfig" a Linux kernelének megfelelően

Az "defconfig" argumentum automatikusan tartalmazza az összes rendelkezésre álló opciót, amely a BusyBox "általános célú" összeállítására készül.

Csakúgy, mint a Linux kernel esetében, a konfiguráció után egy konfigurációs fájlt hozunk létre, Config, amit a parancs mindig visszaadhat:

Ez igaz, amikor egy újabb változata BusyBoxból a régi konfigurációt (úgy, hogy konfigurációs munkát csak megjelent a következő kiadás a lehetőségek).

Alapértelmezés szerint, ha a "make menuconfig" hívás előtt nem volt .config fájl, automatikusan elindul a "defconfig" argumentummal. Így a felhasználónak csak a felesleges funkciókat kell letiltania. Van egy fordított opció is: az "allnoconfig" parancsfájl futtatása letiltja az összes beállítást, így utána csak azt választhatja ki, amire szüksége van.

Továbbá minden a hagyományos:

$ sudo make install

A BusyBox használatával

Indítsa el a BusyBox shell parancsot:

Egy függvény egyetlen hívására (általában egy BusyBox funkció korlátozza a GNU coreutils, az util-linux és egyéb szabványos csomagok egyik szolgáltatásának képességét) a következő paranccsal használható:

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

Ez például:

megmutatja az eredmény "ls -l /" parancs végrehajtását a BusyBox-ban (lásd 2. ábra) az aktuális shellben (például bash).

2. ábra. BusyBox működés közben: ls

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

Ez különösen fontos, tekintettel arra, hogy a BusyBox alapszolgáltatásai korlátozottak a képességükben, ezért a rendelkezésre álló zászlók listája különbözik azoktól, amelyeket minden szabványos eszközben látnak.

Emellett alternatív set coreutils (ls, cat, mv, cp, rm, chmod, df, ln, időpontját, wc, szép, teszt.) Tartalmazza a BusyBoxból és sok más program.

Ezek közül az első, hogy többszörös minimalista kagyló: hamu (60 Kb; elágazás csipetnyi Debian alapján a hamu a NetBSD, nem javasolt a használata BusyBoxból), csitt (18 Kb; megérti Bourne shell nyelvtan) lsh (csak 10 KB, csak a legegyszerűbb funkcionális), msh (30 KB, minix héj).

3. ábra: Az elemi parancsfájlok végrehajtása a BusyBox-ban

Nem látok különösebb jelentést az összes BusyBox funkció felsorolására, így egyszerű statisztikákra korlátozódom. A Gentoo Linux portjának BusyBox-ban való kialakításában 241 funkciót mutatnak be (de nem tartalmazza mindazt, ami a projekt keretén belül valósul meg). Ha figyelembe vesszük például ls, akkor a BusyBox változata ez a típus áll rendelkezésre 26 zászlók, mint az eredeti, az én esetemben (ls a GNU CoreUtils 6,7) - 55 (nem számítva a „támogatás” és a „változat”). Az elsőben lévő hiányzó zászlók közül választhat: -Q (nevek idézőjelekben), -m (vesszővel elválasztott lista), -U és -f (lista kimenet válogatás nélkül). Véleményem szerint mások még kevésbé jelentősek. Úgy gondolom, az általános tendenciák nyilvánvalóak.

4. ábra Hálózati eszközök a "make menuconfig" BusyBox-ban

Fontos figyelembe venni a BusyBox sajátosságait, nevezetesen a helymeghatározást és a tényleges kulcsfontosságú felhasználást: olyan komoly memóriahatású környezetekben való használatra, amelyek nem igénylik a korszerű modern rendszerüzemeltetők által nyújtott fejlett funkciókat.

Hol használható a BusyBox

BusyBoxból talált alkalmazást rendszerek, mint például a jól ismert Linux (PDA) és MOVIX (népszerű kompakt elosztó egy sor multimédiás Open Source-készítés), a telepítő Debian, Gentoo, a Red Hat, a Mandriva és egyéb projektek, valamint számos Linux-alapú eszközök (Sharp Zaurus, útválasztók, AP).