Lanzamiento de un conjunto minimalista de utilidades del sistema BusyBox 1.35

El lanzamiento del paquete BusyBox 1.35 se presenta con la implementación de un conjunto de utilidades estándar de UNIX, diseñadas como un único archivo ejecutable y optimizadas para un consumo mínimo de recursos del sistema con un tamaño establecido de menos de 1 MB. La primera versión de la nueva rama 1.35 se posiciona como inestable; la estabilización completa se proporcionará en la versión 1.35.1, que se espera para dentro de aproximadamente un mes. El código del proyecto se distribuye bajo la licencia GPLv2.

La naturaleza modular de BusyBox permite crear un archivo ejecutable unificado que contiene un conjunto arbitrario de utilidades implementadas en el paquete (cada utilidad está disponible en forma de un enlace simbólico a este archivo). El tamaño, composición y funcionalidad del conjunto de servicios públicos se puede variar dependiendo de las necesidades y capacidades de la plataforma integrada para la que se está realizando el montaje. El paquete es autónomo; cuando se construye estáticamente con uclibc, para crear un sistema que funcione sobre el kernel de Linux, solo necesita crear varios archivos de dispositivo en el directorio /dev y preparar archivos de configuración. En comparación con la versión anterior 1.34, el consumo de RAM del ensamblaje típico de BusyBox 1.35 aumentó en 1726 bytes (de 1042344 a 1044070 bytes).

BusyBox es la principal herramienta en la lucha contra las violaciones de GPL en el firmware. Software Freedom Conservancy (SFC) y Software Freedom Law Center (SFLC), en nombre de los desarrolladores de BusyBox, han influenciado repetidamente con éxito a las empresas que no brindan acceso al código fuente de los programas GPL, tanto a través de los tribunales como fuera de -acuerdos judiciales. Al mismo tiempo, el autor de BusyBox se opone firmemente a dicha protección, creyendo que arruina su negocio.

Los siguientes cambios se destacan en BusyBox 1.35:

  • La utilidad de búsqueda implementa la opción "-samefile name" para verificar si un archivo está usando el mismo inodo que el archivo con el nombre especificado. Código unificado para comparación de tiempos y opciones agregadas "-amin", "-atime", "-cmin" y "-ctime" para verificar el tiempo de acceso y la creación de archivos.
  • La utilidad mktemp ha agregado una opción "--tmpdir" para especificar el directorio base en relación con el cual se calculan las rutas asociadas con los archivos temporales.
  • Las opciones “-ignore-devno” se han agregado a la utilidad cpio para ignorar el número de dispositivo real (siempre se escribe 0) y “-renumber-inodes” para volver a numerar el inodo antes de almacenarlo en el archivo.
  • En la utilidad awk, se ha ajustado la expresión “printf %%”.
  • Se agregaron alrededor de una docena de cambios a la biblioteca libbb. Compatibilidad mejorada de realpath con su contraparte del conjunto coreutils.
  • Se han propuesto una gran cantidad de correcciones para los shells de comando ash y hush, con el objetivo de mejorar la compatibilidad con otros shells. Ash ha agregado soporte para trampas ERR tipo bash, set -E y $FUNCNAME, y recuperación de cadenas más rápida usando la expresión "${s:}". En Ash and Hush, se ha acelerado la ejecución de las operaciones "${x//\*/|}".
  • La utilidad basename implementa las opciones "-a" para pasar varios nombres en una llamada y "-s SUFFIX" para eliminar los caracteres "SUFFIX" finales.
  • Se agregó la opción "-f" (forzar) a la utilidad blkdiscard.
  • httpd ha dejado de enviar encabezados Última modificación/ETag/Content-Length para páginas con errores.
  • httpd y telnetd brindan la posibilidad de cambiar el puerto de red predeterminado.
  • Se corrigió una vulnerabilidad en tar que causaba que se consumiera toda la memoria disponible al procesar archivos con nombres de archivo muy largos.
  • La implementación de P256 y x25519 se ha modificado en el código TLS.
  • La utilidad wget implementa la opción "--post-file" para enviar archivos y le permite personalizar el contenido del encabezado Content-Type para las opciones "--post-data" y "--post-file".
  • La utilidad de tiempo de espera ahora admite la opción "-k KILL_SECS" para enviar una señal SIGKILL si el comando no se completa dentro de los segundos KILL_SECS adicionales.
  • Se ha agregado a la utilidad ip soporte para configurar el parámetro netns para dispositivos.
  • La utilidad cal implementa la opción "-m" para mostrar el mes especificado.
  • Las utilidades de fecha y toque permiten especificar un desplazamiento de zona horaria en las fechas.
  • En el editor vi, se agregó soporte para el archivo ~/.exrc y se cambió el manejo de “-c” y EXINIT.
  • En la utilidad ed, el resultado de la ejecución de comandos de lectura/escritura cumple con la especificación POSIX-1.2008. Se agregó soporte para la opción "-p".
  • Se agregó la opción "-n N" a la utilidad cmp para limitar la comparación a N bytes.

Además, hace unos días se lanzó Toybox 0.8.6, un análogo de BusyBox, desarrollado por un antiguo mantenedor de BusyBox y distribuido bajo la licencia 0BSD. El objetivo principal de Toybox es brindar a los fabricantes la posibilidad de utilizar un conjunto minimalista de utilidades estándar sin abrir el código fuente de los componentes modificados. En términos de capacidades, Toybox todavía está por detrás de BusyBox, pero ya se han implementado 296 comandos básicos (217 completamente y 83 parcialmente) de los 374 planeados.

Entre las novedades de Toybox 0.8.6 podemos destacar la mejora de los scripts para crear imágenes del sistema, la adición de los comandos sha256sum, sha224sum, sha384sum, sha512sum, linux32, strace y hexdump. Opciones implementadas “date -s”, “pmap -p”, “tail -F -s”, “kill -0″, reboot/halt/poweroff -d”, “tail –bytes –lines”, “i2cdetect -q” , "find -quit -lname -ilname -d", "cut -d $'\n'", "cut -nb", "cpio -ignore-devno -renumber-inodes", "tar -selinux", "split -n", "grep-L".

Fuente: opennet.ru

Añadir un comentario