Se ha presentado el lanzamiento del paquete BusyBox 1.34, que implementa un conjunto de utilidades estándar de UNIX, organizadas en un único archivo ejecutable y optimizadas para un consumo mínimo de recursos del sistema, con un tamaño total de menos de 1 MB. La primera versión de la nueva rama 1.34 se posiciona como inestable, y la estabilización completa se garantizará en la versión 1.34.1, que se espera aproximadamente dentro de un mes. El código del proyecto se distribuye bajo la licencia GPLv2.
La naturaleza modular de BusyBox permite formar un único archivo ejecutable que contiene un conjunto arbitrario de utilidades implementadas en el paquete (cada utilidad está disponible como un enlace simbólico a este archivo). El tamaño, composición y funcionalidad de la colección de utilidades se pueden variar según las necesidades y capacidades de la plataforma incrustada para la cual se realiza la compilación. El paquete es autosuficiente; con una compilación estática usando uclibc, para crear un sistema funcional sobre un núcleo Linux, solo se requiere crear algunos archivos de dispositivo en el directorio /dev y preparar los archivos de configuración. En comparación con la versión anterior 1.33, el consumo de memoria de la compilación típica de BusyBox 1.34 ha aumentado en 9620 bytes (de 1032724 a 1042344 bytes).
BusyBox es una herramienta principal en la lucha contra la violación de la GPL en los firmware. Las organizaciones Software Freedom Conservancy (SFC) y Software Freedom Law Center (SFLC), en representación de los desarrolladores de BusyBox, han influido exitosamente en las empresas que no proporcionan acceso al código fuente de programas bajo GPL, tanto por vía judicial como mediante la celebración de acuerdos extrajudiciales. Al mismo tiempo, el autor de BusyBox se opone a dicha protección, creyendo que arruina su negocio.
En la versión BusyBox 1.34 se destacan los siguientes cambios:
- Se ha añadido una nueva utilidad ascii con una tabla interactiva de nombres de caracteres ASCII.
- Se ha añadido una nueva utilidad crc32 para el cálculo de sumas de verificación.
- El servidor http integrado ha implementado soporte para los métodos DELETE, PUT y OPTIONS.
- En udhcpc se ha proporcionado la posibilidad de cambiar el nombre de la interfaz de red por defecto.
- En la implementación de los protocolos TLS se ha añadido soporte para curvas elípticas secp256r1 (P256).
- Se ha continuado el desarrollo de los intérpretes de comandos ash y hush. En hush, el tratamiento del comando ^D se ha alineado con el comportamiento de ash y bash, se ha implementado la construcción específica de bash $’str’, y se ha optimizado las operaciones de sustitución ${var/patrón/reemplazo}.
- Se han realizado numerosas correcciones y mejoras en la implementación de la utilidad awk.
- En las utilidades base32 y base64 se ha añadido la opción «-i» para ignorar caracteres no válidos.
- En las utilidades bc y dc, el tratamiento de las variables de entorno BC_LINE_LENGTH y DC_LINE_LENGTH se ha alineado más con las utilidades GNU.
- En la utilidad blockdev se han añadido las opciones —getra y —setra.
- En las utilidades chattr y lsattr se ha añadido la opción «-p». En lsattr se ha ampliado el número de flags del sistema de archivos ext2 que se soportan.
- Se han añadido las opciones «-n» (prohibir la sobrescritura) y «-t DIR» (especificar el directorio de destino) a la utilidad cp.
- Se ha corregido el funcionamiento de la construcción «cpio -d -p A/B/C» en cpio.
- Se ha añadido la opción «-t TYPE» (limitar la salida a un tipo específico de FS) a la utilidad df.
- Se ha añadido la opción -b (equivalente a ‘—apparent-size —block-size=1’) a la utilidad du.
- Se ha añadido la opción «-0» (finalizar cada línea con un carácter de código cero) a la utilidad env.
- Se ha añadido la opción «-h» (salida en un formato legible) a la utilidad free.
- Se ha añadido la opción «-t» (ignorar fallos) a la utilidad ionice.
- Se ha implementado el soporte para la variable de entorno LOGIN_TIMEOUT en la utilidad login.
- Se han añadido las opciones «-t» (especificar el directorio de destino para mover) y «-T» (tratar el segundo argumento como archivo) a la utilidad mv.
- Se ha añadido la opción «-s SIZE» (número de bytes a limpiar) a la utilidad shred.
- Se ha añadido la opción «-a» (aplicar el enlace a CPU para todos los hilos del proceso) a la utilidad taskset.
- Se ha implementado el soporte para valores no enteros (NN.N) en las utilidades timeout, top, watch y ping.
- Se ha añadido la opción «-z» (usar un carácter de código cero como separador) a la utilidad uniq.
- Se ha añadido la opción «-t» (verificación del archivo comprimido) a la utilidad unzip.
- Se ha permitido el uso de expresiones regulares en el comando ‘:s’ en el editor vi. Se ha añadido el parámetro expandtab. Se han mejorado las implementaciones para navegar entre párrafos, seleccionar rangos y deshacer cambios.
- Se han implementado las opciones -i (salida al estilo C) y «-o DISPLAYOFFSET» en la utilidad xxd.
- Se ha permitido el manejo de los códigos HTTP 307/308 para redireccionamiento en la utilidad wget. Se ha añadido la opción FEATURE_WGET_FTP para habilitar/deshabilitar el soporte FTP.
- Se ha añadido la opción «iflag=count_bytes» a la utilidad dd.
- Se han implementado las opciones «-O OUTSEP», «-D» y «-F LIST» compatibles con las herramientas toybox en la utilidad cut.
Fuente: opennet.ru
