Krabice na hračky - Toybox
Původní autoři | Robert Landley |
---|---|
Vývojáři | Robert Landley a další |
První vydání | 2006 |
Stabilní uvolnění | 0.8.4 / 24. října 2020 |
Úložiště | ![]() |
Napsáno | C |
Operační systém | Unixový |
Velikost | 814 KB (archivováno) |
Typ | Nezávislá implementace SUSp XCU |
Licence | Licence 0BSD[1] (permisivní licence / Ekvivalentní licence pro veřejnou doménu ) |
webová stránka | www |
Krabice na hračky je bezplatný open source software provádění více než 200 Unix nástroje příkazového řádku, jako je, str, a mv. Projekt Toybox byl zahájen v roce 2006,[2] a stal se S licencí BSD BusyBox alternativní.[3][4] Toybox je součástí balení Android 6.0 „Marshmallow“[5] a všechny novější verze systému Android (tj. ve všech aktuálně podporovaných verzích systému Android) a také se používá k vytváření systému Android v systémech Linux a macOS. Všechny nástroje jsou testovány na Linuxu a mnoho z nich funguje také na BSD a macOS.
Funkčnost a cíl
Toybox si klade za cíl poskytnout Licence BSD náhrada za GPL licencováno BusyBox.[6]Hlavními cíli technického designu společnosti Toybox jsou jednoduchost, maličkost, rychlost a dodržování standardů.[7] Toybox je POSIX -2008 a LSB 4.1 kompatibilní,[2] a nezaměřuje se na to, aby všechny možnosti byly nalezeny v GNU protějšky.
Toybox je licencován pomocí tolerantní Licence BSD, kde BusyBox používá copyleft GNU General Public License, které vedou k různým doménám využití. Busybox se většinou používá v copyleftu FOSS doménu, zatímco Toybox se používá většinou s doménou povolená licence projekty a komerčními společnostmi, např. Google Android,[8] což je explicitní cíl Toyboxu.[9] Z hlediska funkcí Toybox nedosáhl parity s Busyboxem.
Dějiny
Toybox zahájil počátkem roku 2006 Rob Landley[2][4] poté, co ukončil svou správu BusyBox kvůli sporu s Bruce Perens, původní tvůrce BusyBoxu.[10] V roce 2008 byl projekt nečinný.[3]Na konci roku 2011 Sony zaměstnanec Tim Bird navrhl vytvoření permisivně licencované alternativy k BusyBoxu.[6] Rob Landley souhlasil s tímto cílem a od začátku pokračoval v práci na Toyboxu opětovné vydávání licencí z GNU General Public License k 2-klauzuli Licence BSD[11][12]. V březnu 2013 byl projekt licencován na ještě tolerantnější 0-klauzuli Licence BSD.[13]
Na konci roku 2014 byl Toybox integrován do Android 6.0.x „Marshmallow“ vývojové větve pro použití na zařízeních.[5][8][14] V roce 2018 byl do AOSP přidán předpřipravený hostitelský Toybox, který pomohl hermetickému vytvoření samotného Androidu.[15]
Kontroverze
V lednu 2012 návrh na vytvoření alternativy licence BSD k projektu BusyBox s licencí GPL vyvolal ostrou kritiku Matthew Garrett za odebrání jediného relevantního nástroje pro vymáhání autorských práv z Zachování svobody softwaru skupina.[16] Rob Landley, který zahájil soudní spory založené na BusyBoxu, odpověděl, že je to úmyslné, s vysvětlením, že soudní spory projektu neprospěly, ale že vedly k vyhýbání se podnikům a vyjádřil přání zastavit soudní spory. „jakýmkoli způsobem to považuji za vhodné“.[17][18][19]
Průběh projektu
Oficiální dokumentace Toyboxu uvádí přehled dostupných, částečně dostupných a chybějících příkazů.[20] Verze 0.8.4 dosahuje přibližně 80% realizačních cílů projektu cílených na verzi 1.0.[21]
- Seznam příkazů Toybox
- acpi - Zobrazit stav zdrojů energie a tepelných zařízení.
- oblouk - Název tiskového zařízení (hardware), stejný jako uname -m.
- ascii - Zobrazit znakovou sadu ascii.
- base64 - Zakódujte nebo dekódujte v base64.
- basename - Vrátí část, která není adresářovou příponou odstranění cesty.
- blkdiscard - Zlikvidujte sektory zařízení.
- blkid - Typ tisku, štítek a UUID souborového systému na blokovém zařízení nebo obrázku.
- blockdev - Volejte ioctl (y) na každém uvedeném blokovém zařízení.
- bunzip2 - Dekomprimujte soubory bzip2.
- bzcat - Dekomprimujte soubory bzip2 na standardní výstup.
- CAL - Vytiskněte si kalendář.
- kočka - Kopírování (zřetězení) souborů do standardního výstupu.
- catv - Zobrazit netisknutelné znaky jako řídicí sekvence.
- chattr - Změňte atributy souborů v systému souborů Linux.
- chgrp - Změňte skupinu jednoho nebo více souborů.
- chmod - Změnit režim uvedených souborů.
- chown - Změnit vlastníka jednoho nebo více souborů.
- chroot - Spustit příkaz v novém kořenovém adresáři.
- chrt - Získat / nastavit zásadu a prioritu plánování v reálném čase a prioritu.
- chvt - Změna na číslo virtuálního terminálu N.
- cksum - Pro každý soubor zadejte hodnotu kontrolního součtu crc32, délku a název souboru.
- Průhledná - Vyčistěte obrazovku.
- cmp - Porovnejte obsah dvou souborů.
- komunikace - Vyberte nebo odmítněte řádky společné pro dva soubory.
- počet - Zkopírujte stdin na stdout a zobrazte jednoduchý indikátor průběhu do stderr.
- str - Kopírování souborů.
- cpio - Kopírování souborů do az archivu cpio formátu „newc“.
- crc32 - Výstupní kontrolní součet crc32 pro každý soubor.
- střih - Tisk vybraných částí řádků z každého SOUBORU na standardní výstup.
- datum - Nastavit / získat aktuální datum / čas.
- devmem - Čtení / zápis fyzické adresy pomocí / dev / mem.
- df - Zobrazuje celkové / použité / dostupné místo na disku pro každý souborový systém uvedený v příkazovém řádku nebo všechny aktuálně připojené souborové systémy.
- dirname - Zobrazit adresářovou část cesty.
- dmesg - Tiskněte nebo ovládejte vyrovnávací paměť jádra.
- dnsdomainname - Zobrazit doménu, do které tento systém patří (stejně jako název hostitele -d).
- dos2unix - Převést formát nového řádku z dos "" na unix "".
- du - Zobrazit využití disku, místo spotřebované soubory a adresáři.
- echo - Napište každý argument na standardní výstup, přičemž mezi nimi bude vždy jedna mezera, za kterou bude následovat nový řádek.
- egrep - Zobrazit řádky odpovídající rozšířeným regulárním výrazům.
- vysunout - Vysunout ZAŘÍZENÍ nebo výchozí / dev / cdrom.
- env - Nastavit prostředí pro vyvolání příkazu nebo vypsat proměnné prostředí.
- rozšířit - Rozbalte záložky do mezer podle zarážek tabulátorů.
- faktor - Celá čísla faktoru.
- spadnout - Řekněte souborovému systému, aby přidělil místo souboru.
- Nepravdivé - Vraťte nenulovou hodnotu.
- fgrep - Zobrazit řádky odpovídající regulárním výrazům.
- soubor - Prozkoumejte dané soubory a popište jejich typy obsahu.
- nalézt - Hledání adresářů pro shodu souborů.
- stádo - Správa poradních zámků souborů.
- fmt - Přeformátovat vstup do zalamování slov v dané délce řádku, zachování stávající úrovně odsazení, zápis do standardního výstupu.
- volný, uvolnit - Zobrazte celkové, volné a použité množství fyzické paměti a odkládacího prostoru.
- freeramdisk - Uvolněte veškerou paměť přidělenou specifikovanému ramdisku.
- fsfreeze - Zastavte nebo uvolněte souborový systém.
- fstype - Tisk typu souborového systému na blokovém zařízení nebo obrázku.
- fsync - Synchronizujte základní stav souboru s úložným zařízením.
- ftpget - Použijte File Transfer Protocol (FTP) k získání souboru ze serveru FTP.
- ftpput - Pomocí File Transfer Protocol (FTP) vložte soubor na server FTP.
- getconf - Získejte hodnoty konfigurace systému.
- grep - Zobrazit řádky odpovídající regulárním výrazům.
- skupiny - Vytiskněte skupiny, ve kterých je uživatel.
- gunzip - Dekomprimujte soubory gz.
- Stůj - Restartujte, zastavte nebo vypněte systém.
- hlava - Zkopírujte první řádky ze souborů do standardního výstupu.
- Pomoc - Zobrazit informace o použití příkazů toybox.
- hexedit - Hexadecimální editor souborů.
- název hostitele - Získat / nastavit aktuální název hostitele.
- hwclock - Získejte / nastavte hardwarové hodiny.
- i2cdetect - Detekovat zařízení i2c.
- i2cdump - Vypsat registry i2c.
- i2cget - Přečtěte si registr i2c.
- i2cset - Napište registr i2c.
- ikona - Převést kódování znaků souborů.
- id - Tisk ID uživatele a skupiny.
- ifconfig - Zobrazte nebo nakonfigurujte síťové rozhraní.
- inotifyd - Spustit program, když dojde k události souborového systému.
- insmod - Pokud je uveden, načtěte modul s názvem Možnosti předávání MODULŮ.
- Nainstalujte - Kopírování souborů a nastavení atributů.
- ionice - Změňte prioritu plánování I / O procesu.
- iorenice - Zobrazit nebo změnit prioritu I / O stávajícího procesu.
- iotop - Pořadí procesů podle I / O.
- zabít - Odeslat signál ke zpracování.
- zabít všechny - Odeslat signál (výchozí: TERM) všem procesům s křestními jmény.
- killall5 - Odeslat signál všem procesům mimo aktuální relaci.
- odkaz - Vytvořte pevný odkaz na soubor.
- ln - Vytvořte spojení mezi FROM a TO.
- záznamník - Přihlaste zprávu (nebo stdin) do syslogu.
- přihlásit se - Přihlaste se jako uživatel a v případě potřeby si vyžádejte uživatelské jméno a heslo.
- logname - Vytiskněte aktuální uživatelské jméno.
- losetup - Přiřaďte zařízení se zpětnou smyčkou k souboru nebo zobrazte aktuální soubor (pokud existuje) přidružený k zařízení se smyčkou.
- je - Seznam souborů.
- lsattr - Seznam atributů souboru v systému souborů Linux.
- lsmod - Zobrazte aktuálně načtené moduly, jejich velikosti a jejich závislosti.
- lspci - Seznam zařízení PCI.
- lsusb - Seznam hostitelů / zařízení USB.
- makedevs - Vytvořte řadu speciálních souborů, jak je uvedeno v tabulce zařízení.
- mcookie - Vygenerujte 128bitové silné náhodné číslo.
- md5sum - Vypočítejte hash md5 pro každý vstupní soubor, čtení ze stdin, pokud žádný.
- microcom - Jednoduchá sériová konzole.
- směs - Seznam zvukových kanálů OSS (modul snd-mixer-oss) nebo nastavení hlasitosti.
- mkdir - Vytvořte jeden nebo více adresářů.
- mkfifo - Vytvořte FIFO (pojmenované kanály).
- mknod - Vytvořte speciální soubor NÁZEV s daným typem.
- mkpasswd - Zašifrujte HESLO pomocí krypty (3).
- mkswap - Nastavte oblast swapu Linuxu na zařízení nebo souboru.
- mktemp - Bezpečně vytvořte nový soubor „DIR / TEMPLATE“ a vytiskněte jeho název.
- modinfo - Zobrazit pole modulů pro moduly určené názvem nebo cestou .ko.
- připojit - Připojit nové souborové systémy do adresářů.
- přípojný bod - Zkontrolujte, zda je adresář nebo zařízení přípojným bodem.
- mv - Přesouvat soubory.
- nbd-klient - Připojte se k serveru NBD.
- nc /netcat - Přeposlat standardní / standardní výstup do souboru nebo k síťovému připojení.
- netstat - Zobrazit informace o síti.
- pěkný - Spusťte příkazový řádek se zvýšenou nebo sníženou prioritou plánování.
- nl - Číselné řádky vstupu.
- nic - Spusťte příkaz, který přežije konec terminálu.
- nproc - Tisk počtu procesorů.
- nsenter - Spusťte příkaz COMMAND v existujícím (nastaveném) oboru názvů.
- od - Vypíše data v osmičkovém / hexadecimálním formátu.
- oneit - Jednoduchý program pro spuštění, který spouští jeden dodaný příkazový řádek
- partprobe - Řekněte jádru o změnách tabulky oddílů.
- heslo - Aktualizujte autentizační tokeny uživatele.
- vložit - Sloučit odpovídající řádky z každého vstupního souboru.
- náplast - Použít sjednocený rozdíl na jeden nebo více souborů.
- pgrep - Vyhledejte proces (procesy).
- pidof - Vytiskněte PID všech procesů s křestními jmény.
- ping - Zkontrolujte připojení k síti odesláním paketů hostiteli a nahlášením jeho odpovědi.
- kořenový_pivot - Zaměňte STARÉ a NOVÉ souborové systémy (jakoby simultánním připojením --move) a přesuňte všechny procesy s chdir nebo chroot pod STARÉ do NOVÉ (včetně vláken jádra), takže OLD může být odpojeno.
- pkill - vyhledat nebo signalizovat procesy na základě jména a dalších
- pmap - Nahlásit mapu paměti procesu nebo procesů.
- vypnout - Restartujte, zastavte nebo vypněte systém.
- printenv - Proměnné prostředí tisku.
- printf - Formátujte a tiskněte ARGUMENTY podle FORMÁTU pomocí syntaxe C printf.
- prlimit - Vytiskněte nebo nastavte limity zdrojů pro číslo procesu PID.
- ps - Seznam procesů.
- pwd - Tisk pracovního (aktuálního) adresáře.
- pwdx - Tisk pracovního adresáře procesů uvedených na příkazovém řádku.
- readahead - Předběžně načtěte soubory do mezipaměti disku.
- readlink - Ukažte, na co ukazuje symbolický odkaz.
- skutečná cesta - Zobrazit kanonickou absolutní cestu
- restartovat - Restartujte, zastavte nebo vypněte systém.
- renice - nastavit pěkné hodnoty běžících procesů
- resetovat - Resetujte terminál.
- rev - Výstup každého řádku obráceně, pokud nejsou uvedeny žádné soubory, je použit stdin.
- rfkill - Povolit / zakázat bezdrátová zařízení.
- rm - Odeberte každý argument ze souborového systému.
- rmdir - Odeberte jeden nebo více adresářů.
- rmmod - Uvolněte modul s názvem MODULE z jádra Linuxu.
- rtcwake - Zadejte daný stav spánku do daného času.
- sed - Editor streamů.
- násl - Počítejte od prvního do posledního, s přírůstkem.
- setfattr - Napište POSIX rozšířené atributy.
- setid - Spustit proces v nové relaci.
- sha1sum - Výpočet sha hash pro každý vstupní soubor, čtení ze stdin, pokud žádný.
- skartovat - Bezpečně odstraňte soubor přepsáním jeho obsahu náhodnými daty.
- spát - Počkejte, než odejdete.
- sntp - Jednoduchý klient síťového časového protokolu.
- třídit - Řadit všechny řádky textu ze vstupních souborů (nebo standardních) do standardního výstupu.
- rozdělit - Zkopírujte INPUT (nebo standardní) data do řady OUTPUT (nebo „x“) souborů s abecedně rostoucí příponou (aa, ab, ac ... az, ba, bb ...).
- stat - Zobrazit stav souborů nebo souborových systémů.
- struny - Zobrazte tisknutelné řetězce v binárním souboru
- su - Přepnout uživatele s výzvou k zadání hesla nového uživatele, pokud není spuštěn jako root.
- vyměnit - Zakázat swapování v daném swapregionu.
- swapon - Povolit prohození na daném zařízení / souboru.
- kořenový_spínač - Použijte z PID 1 pod initramfs k uvolnění initramfs, chrootu na NEW_ROOT a spuštění NEW_INIT.
- synchronizace - Zápis nevyřízených dat uložených v mezipaměti na disk (synchronizace), blokování až do dokončení.
- sysctl - Čtení / zápis řídicích dat systému (pod / proc / sys).
- tac - Výstupní řádky v opačném pořadí.
- ocas - Zkopírujte poslední řádky ze souborů do standardního výstupu.
- dehet - Vytvářejte, extrahujte nebo seznamujte soubory v souboru .tar (nebo komprimovaném formátu t? Z).
- sada úkolů - Spustit nový úkol, který může běžet pouze na určitých procesorech, nebo změnit afinitu procesoru ke stávajícímu PID.
- tričko - Zkopírujte stdin do každého uvedeného souboru a také do standardního výstupu.
- test - Vrácení true nebo false provedením testů.
- čas - Spusťte příkazový řádek a nahlaste skutečný, uživatelský a systémový čas uplynulý v sekundách.
- Časový limit - Spustit příkazový řádek jako podřízený proces a poslat dítěti signál, pokud příkaz dostatečně brzy neopustí.
- horní - Zobrazit aktivitu procesu v reálném čase.
- dotek - Aktualizujte časy přístupu a modifikace každého SOUBORU na aktuální čas.
- skutečný - Vrátit nulu.
- zkrátit - Nastavte délku souboru (souborů), v případě potřeby jej prodlužte.
- tty - Zobrazit název souboru terminálu připojeného k stdin.
- tunctl - Vytvářejte a mazejte tun / klepněte na virtuální ethernetová zařízení.
- ulimit - Vytiskněte nebo nastavte limity zdrojů pro číslo procesu PID.
- umount - Odpojte uvedené souborové systémy.
- uname - Tisk informací o systému.
- uniq - Nahlásit nebo odfiltrovat opakované řádky v souboru
- unix2dos - Převést formát nového řádku z unixu na dos.
- odpojit - Smažte jeden soubor.
- sdílení - Vytvořte nový obor názvů kontejnerů pro tento proces a jeho podřízené položky, aby některý atribut nebyl sdílen s nadřazeným procesem.
- provozuschopnost - Řekněte aktuální čas, jak dlouho je systém spuštěn, počet uživatelů a průměrné zatížení systému za posledních 1, 5 a 15 minut.
- usnout - Pauza na mikrosekundy MICROSECONDS.
- uudecode - Dekódujte soubor bez kódování.
- uuencode - Zakódujte binární soubor.
- uuidgen - Vytvořte a vytiskněte nový náhodný UUID RFC4122.
- vconfig - Vytvářejte a odebírejte virtuální ethernetová zařízení.
- vmstat - Tisk statistik virtuální paměti.
- w - Ukažte, kdo je přihlášen a jak dlouho se přihlašoval.
- hodinky - Spusťte PROG každých -n sekund a zobrazte výstup.
- toaleta - Počítání řádků, slov a znaků na vstupu.
- který - Hledejte $ PATH pro spustitelné soubory odpovídající názvu souboru.
- SZO - Tisk informací o přihlášených uživatelích.
- kdo jsem - Vytiskněte aktuální uživatelské jméno.
- xargs - Spusťte příkazový řádek jednou nebo vícekrát a připojte argumenty od stdin.
- xxd - Hexdump soubor na standardní výstup.
- Ano - Opakovaně výstupní vedení, dokud není zabito.
- zcat - Dekomprimujte soubory gz na standardní výstup.
Viz také
Reference
- ^ Toybox je vydáván na základě následující licence BSD „s nulovou doložkou“ Rob Landley
- ^ A b C Landley, Robert. „Co je to ToyBox?“. Web projektu Toybox. Citováno 13. července 2012.
- ^ A b DJ Walker-Morgan. „Inside the ToyBox: An interview with Rob Landley“. Citováno 13. července 2012.
- ^ A b Varghese, Sam (2012-02-01). „Projekt nahrazení BusyBox podporuje animovaný verbální plivání“. IT drát. Citováno 2013-05-12.
- ^ A b Android dostane hračku na lwn.net autor: Jake Edge (14. ledna 2015)
- ^ A b „Projekt výměny Busyboxu“. 2012-01-11. Citováno 2014-03-04.
- ^ Landley, Robert. „Design Docs“. Web projektu Toybox. Citováno 18. února 2015.
Toybox kombinuje nejběžnější linuxové nástroje příkazového řádku do jednoho spustitelného souboru s licencí BSD. Je to jednoduché, malé, rychlé a přiměřeně vyhovující standardům (POSIX-2008 a LSB 4.1).
- ^ A b krabice na hračky na android.googlesource.com (28.12.2014)
- ^ celf-2015.txt autor Rob Landley (2015)
- ^ Landley, Robert (30.06.2006). „Teď jdu ven.. busybox (Poštovní seznam).
- ^ Opětovné spuštění Toyboxu na toybox.landley.narkive.com (2011-11-20)
- ^ Přepněte na licenci BSD se 2 klauzulemi (s upozorněním na adresář skriptů). 0.2.0 by landley dne 15. listopadu 2011
- ^ Zjednodušte text licence, jak je uvedeno v seznamu adresátů. autor: Landley (14. března 2013)
- ^ Číslo 76861: Import částí Toyboxu do systému Android, včetně dos2unix, unix2dos, sort, uniq a usleep
- ^ „Začněte používat předinstalovaný hrací box“.
- ^ „Garrett: Pokračující boj proti prosazování GPL“. LWN.net. 2012-01-31. Citováno 2014-03-04.
Skutečným problémem zde je, že spoléhání se [Software Freedom Conservancy] na Busybox znamená, že jsou schopni cílit pouze na ty porušovatele, kteří tento kód Busybox používají. Žádní významní držitelé autorských práv k jádru dosud nenabídli, aby umožnili SFC vymáhat svá autorská práva, takže vynucovací akce se zastaví, jakmile se prodejci přesunou k této náhradě Busybox.
- ^ „Garrett: Pokračující boj proti prosazování GPL“. LWN.net. 2012-01-31. Citováno 2014-03-04.
> Jako bývalý správce společnosti busybox, který vůbec zahájil tyto soudní spory a nyní to HUGELY REGRETS kdy udělal, si myslím, že mám právo zastavit soudní spory jakýmkoli způsobem, který považuji za vhodný. Nikdy nevyústili v jediný řádek kódu přidaného do úložiště busybox. Vedly k tomu, že více než jedna společnost zcela opustila vývoj Linuxu a přešla na jiné operační systémy než Linux pro své vestavěné produkty, a jsou velkou částí důvodu politiky Androidu „No GPL in userspace“.
- ^ Proffitt, Brian (02.02.2012). „Vymáhání GPL vyvolává plameny komunity - Vyhodit dítě GPL ven s vymahací koupelovou vodou?“. ITworld. Citováno 2015-03-04.
- ^ Landley, Rob. „Embedded Linux Conference 2013 - Toybox: Writing a New Command Line“ (video). Linuxová nadace. Citováno 2016-06-24.
- ^ Stav Toyboxu
- ^ Průběh projektu k 0.8.3