BusyBox: la navaja suiza del Linux incrustado

Compartir en FaceBook
Compartir en Twitter

Busy Box integra las utilidades UNIX/Linux más comunes en un único y pequeño ejecutable por lo que es el compañero predilecto de los móviles que integran dicho sistema operativo como es el caso de Android.

Quizás ya seas un experto en esta cuestiones y esta entrada no te sea de gran utilidad pero si quieres empezar a bucear en las entrañas de tu móvil quizás estés en el artículo inicial adecuado.

En el momento de escribir esto, Busy Box va por su versión 1.15.2, la misma que anunció Amon_RA haber integrado en [Recovery] [29-Nov-2009] RA-dream-v1.4.0 aunque, a pesar de haber realizado dicha actualización, me sigue diciendo que estoy usando la versión 1.15.1 (algo que poco importa para lo que nos ocupa).

Aviso: Solo hay que teclear lo que aparece en negrita por lo que los símbolos $ y # los pone el sistema y la tecla de introducción se representa como [enter]. En principio nada de lo que vayamos a probar a continuación puede dañar vuestro terminal pero cualquier equivocación puede desembocar en resultados impredecibles; hacedlo bajo y exclusivamente bajo vuestra responsabilidad

Para entrar en BusyBox basta con ejecutar la aplicación Terminal Emulator y en cuanto aparezca el símbolo del sistema lo lógico es averiguar en primer lugar qué versión se tiene instalada mediante:

$ busybox [enter]

Comprobarás que la salida por pantalla es bastante larga porque, aparte de autoidentificarse en la primera línea, explica en qué consiste y nos facilita una relación de todos los comandos que soporta.

BusyBox v1.15.1 (2009-09-17 21:01:46 EDT) multi-call binary (...)

Podemos comprobar como el símbolo del sistema por defecto es un dólar “$” y que si lanzamos el comando “su” (super usuario):

$ su [enter]

éste cambia a:

#

Si queremos regresar al estado anterior, basta con teclear:

# exit [enter]

¿Empezamos?

Un comando muy útil es “unix name” que puede invocarse en su versión larga mediante:

$ uname -a [enter]

con lo que se obtiene una respuesta parecida a la siguiente:

Linux localhost 2.6.29.6-cm4 #2 PREEMPT Sun Nov 15 21:34:51 EST 2009 armv61 GNU/Linux

El correspondiente comando puede fraccionarse en:
uname -s o bien simplemente uname :: facilita el nombre del sistema operativo, en este caso: Linux
uname -n :: facilita el nombre del hostname, en este caso: localhost
uname -r :: facilita el nombre del kernel, en este caso: 2.6.29.6-cm4
uname -v :: facilita el nombre de la versión del S.O., en este caso: #2 PREEMPT Sun Nov 15 21:34:51 EST 2009
uname -m :: facilita el nombre del tipo de hardware, en este caso: armv61
uname -o (opción no documentada) :: facilita el nombre del tipo de S.O., en este caso: GNU/Linux
uname -p (opción documentada pero inoperativa) :: no facilita ninguna respuesta, en este caso: unknown

Otro comando muy interesante es “ip”:

$ ip [enter]

sin argumentos facilita la ayuda sobre cómo debe usarse pero recomiendo que se invoque empezando por:

$ ip address [enter]

lo cual nos dará una idea bastante clara sobre nuestra conectividad actual.

Finalmente, en esta introducción, no puede faltar el archiconocido comando “ping” que nos permite comprobar si un determinado servidor puede ser alcanzado a través de una red IP. Por ejemplo podemos comprobar si nuestro blog está vivo pidiéndole que nos mande 7 paquetes de respuesta:

$ ping -c 7 androisapps.es [enter]

y de paso comprobaremos, entre otras cosas, a qué velocidad lo hace en la variable “time” expresada en milisegundos.

Para salir de Terminal Emulator y dar la sesión por concluída basta teclear:

# exit [enter]

Conclusión: ésta es solo la introducción a un mundo de posibilidades más allá del entorno gráfico al que está acostumbrado el usuario convencional. Es una invitación a la investigación y a ir un paso más allá con paciencia, sabiendo que esta poderosa herramienta del sistema puede ser tan útil con conocimiento como peligrosa si se utiliza inadecuadamente.

¡Puedes ser el primero en comentar en esta entrada!

Escribe un comentario: