Recuerdo que para Linux que se ejecuta en sistemas integrados, debido a limitaciones de tamaño, no puede empaquetar tantos comandos como en estaciones de trabajo normales. Así que hay un do-it-all que puede imitar casi todos los comandos (incluyendo ls
, cd
, time
, etc.), pero no recuerdo su nombre.
Acabo de recordar vagamente algo como "minibox" o algo así, parece que tiene una "caja" en su nombre, ¿alguien sabe cuál es su nombre?
linux
command-line
embedded
wangshuaijie
fuente
fuente
cd
embargo, no imitará , eso no es posible.sh
, lo que tienecd
incorporado.emacs
...Respuestas:
El más popular podría ser BusyBox , pero también hay caja de herramientas (utilizada por Android), toybox y tal vez otros.
fuente
grep
probablemente es un enlace a busybox. La única excepción serácd
que debe ser un shell incorporado.Probablemente se esté refiriendo a Busybox , un shell "todo en uno".
fuente
BusyBox está diseñado de una manera bastante novedosa que puede ser bastante confuso cuando comienzas a hurgar en tus directorios / bin.
Como MSalters indicó, BusyBox es solo un ejecutable. Pero depende de que se cree un enlace simbólico a ese ejecutable para cada "comando" en él. Al conocer el nombre del enlace simbólico con el que se inició, sabe ejecutar la función C para ese comando.
Por lo tanto, el inicio de mi directorio PuppyLinux 5.2.8 Lucid / bin se parece a ...
Tenga en cuenta que la mayoría de los comandos son enlaces simbólicos a
busybox
. Esto incluye elash
shell muy minimalista utilizado principalmente durante las operaciones de arranque. También tenga en cuenta que el autor de distribución eligió incluir los comandos independientesbunzip2
y enbzcat
lugar de usar las versiones de busybox. Los enlaces simbólicosbunzip-BB-NOTUSED
ybzcat-BB-NOTUSED
realmente no son necesarios, pero ayudan a documentar lo que está sucediendo por el costo de un enlace simbólico.Tenga en cuenta también que una lista de directorios que informa los tamaños para el objetivo de los enlaces simbólicos (
ls -lL
ols -l --dereference
) en lugar del enlace simbólico mismo, informará que el tamaño de cada comando es el mismo que el debusybox
. Así, la misma lista con la-L
opción muestra ...El objetivo de BusyBox es la máxima reutilización del código dentro de sí mismo para minimizar la memoria y el espacio en disco requerido (es decir, la "huella") para un conjunto común de comandos ... sin necesidad de un shell en sí.
Bash y otros proyectiles logran lo mismo. Pero para hacerlo, implementan su propio entorno de línea de comandos. Este objetivo es también una de las razones de algunas de las sintaxis muy arcaicas para muchas funcionalidades de shell.
Actualmente estoy usando esta "técnica de BusyBox" para una biblioteca de funciones Bash y envoltorios más fáciles de usar para varios bashismos . Me ha permitido "ampliar" fácilmente los comandos con
--help
opciones y activar versiones de GUI cuando estén disponibles.fuente