Pamiętam, że w przypadku Linuksa działającego w systemach osadzonych, z powodu ograniczeń rozmiaru, nie można spakować tylu poleceń, jak na zwykłych stacjach roboczych. Istnieje więc zrób to wszystkie polecenia, które mogą naśladować prawie wszystkie komendy (w tym ls
, cd
, time
, itd.), Ale nie pamiętam jego nazwy.
Właśnie niejasno przypomniałem sobie coś takiego jak „minibox” lub coś takiego, wygląda na to, że ma w nazwie „pudełko”, czy ktoś wie, jak się nazywa?
linux
command-line
embedded
wangshuaijie
źródło
źródło
cd
, to niemożliwe.sh
, co macd
wbudowane.emacs
...Odpowiedzi:
Najpopularniejszym może być BusyBox , ale są też narzędzia (używane przez Androida), toybox i może inne.
źródło
grep
Prawdopodobnie jest to link do busybox. Jedynym wyjątkiem będzie to,cd
że musi to być wbudowana powłoka.Prawdopodobnie masz na myśli Busybox , powłokę „wszystko w jednym”.
źródło
BusyBox został zaprojektowany w dość nowatorski sposób, co może być dość mylące, gdy zaczniesz szperać w katalogach / bin.
Jak wskazali MSalters , BusyBox to tylko jeden plik wykonywalny. Ale zależy to od utworzenia dowiązania symbolicznego do tego pliku wykonywalnego dla każdego „polecenia” w nim zawartego. Znając nazwę dowiązania symbolicznego, z którym został uruchomiony, umie uruchomić funkcję C dla tego polecenia.
Tak więc początek mojego katalogu PuppyLinux 5.2.8 Lucid / bin wygląda jak ...
Zauważ, że większość poleceń to dowiązania symboliczne
busybox
. Obejmuje toash
bardzo minimalistyczną powłokę używaną głównie podczas operacji rozruchu. Zauważ też, że autor dystrybucji zdecydował się na dołączenie samodzielnych poleceńbunzip2
ibzcat
zamiast używać wersji busyboksa. Dowiązania symbolicznebunzip-BB-NOTUSED
ibzcat-BB-NOTUSED
nie są tak naprawdę konieczne, ale pomagają dokumentować, co się dzieje za cenę samego łącza symbolicznego.Zauważ też, że lista katalogów, która zgłasza rozmiary dla celu dowiązań symbolicznych (
ls -lL
lubls -l --dereference
) zamiast samego dowiązania symbolicznego, zgłosi rozmiar każdego polecenia tak samo, jak rozmiarbusybox
. Zatem ta sama lista z-L
opcją pokazuje ...Celem BusyBox jest maksymalne ponowne wykorzystanie kodu w sobie, aby zminimalizować wymaganą pamięć i miejsce na dysku (tj. „Ślad”) dla wspólnego zestawu poleceń ... bez konieczności używania samej powłoki.
Bash i inne pociski osiągają to samo. Ale w tym celu implementują własne środowisko wiersza poleceń. Ten cel jest również jednym z powodów bardzo archaicznej składni wielu funkcji powłoki.
Obecnie używam tej „techniki BusyBox” do biblioteki funkcji Bash i łatwiejszych w użyciu opakowań dla różnych bashism . Pozwoliło mi to łatwo „rozszerzyć” komendy o
--help
opcje i odpalić wersje GUI, jeśli są dostępne.źródło