Lanzamiento de un conjunto minimalista de utilidades del sistema BusyBox 1.31

Presentado por lanzamiento del paquete Caja ocupada 1.31 con la implementación de un conjunto de utilidades estándar 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.31 se posiciona como inestable; la estabilización completa se proporcionará en la versión 1.31.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.30, el consumo de RAM del ensamblaje típico de BusyBox 1.31 disminuyó en 86 bytes (de 1008478 a 1008392 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, ambos a través de tribunal, de esa manera conclusiones Los acuerdos extrajudiciales han influido con éxito en repetidas ocasiones en empresas que no proporcionan acceso al código fuente de los programas GPL. Al mismo tiempo, el autor de BusyBox hace todo lo posible para objetos a contra tal protección, creyendo que arruina su negocio.

Los siguientes cambios se destacan en BusyBox 1.31:

  • Se agregaron nuevos comandos: ts (implementación de cliente y servidor para el protocolo TSP (Time-Stamp Protocol)) e i2ctransfer (creación y envío de mensajes I2C);
  • Se agregó soporte para opciones DHCP a udhcp. 100 (información de zona horaria) y 101 (nombre de zona horaria en la base de datos TZ) para IPv6;
  • Se agregó soporte para enlaces de nombres de host estáticos a clientes en udhcpd;
  • Los shells ash y hush implementan los literales numéricos "BASE#nnnn". La implementación del comando ulimit se ha hecho compatible con bash, incluidas las opciones “-i RLIMIT_SIGPENDING” y “-q RLIMIT_MSGQUEUE”. Se agregó soporte para "esperar -n". Se agregaron variables EPOCH compatibles con bash;
  • El shell hush implementa una variable "$-" que enumera las opciones del shell habilitadas de forma predeterminada;
  • El código para pasar valores por referencia se transfirió a bc desde arriba, se agregó soporte para funciones nulas y la capacidad de trabajar con valores ibase hasta 36;
  • En brctl, todos los comandos se han convertido para que funcionen utilizando el pseudo-FS /sys;
  • Se ha fusionado el código de las utilidades fsync y sync;
  • Se ha mejorado la implementación de httpd. Procesamiento mejorado de encabezados HTTP y trabajo en modo proxy. La lista de tipos MIME incluye SVG y JavaScript;
  • La opción "-c" se ha agregado a losetup (verificación doble obligatoria del tamaño del archivo asociado con el dispositivo de bucle), así como una opción para escanear particiones. mount y losetup brindan soporte para trabajar usando /dev/loop-control;
  • En ntpd, el valor SLEW_THRESHOLD se ha incrementado de 0.125 a 0.5;
  • Se agregó soporte para asignar valores nulos a sysctl;
  • Se agregó soporte para valores fraccionarios en la opción “-n SEC” para observar;
  • Se agregó la capacidad de ejecutar mdev como proceso en segundo plano;
  • La utilidad wget implementa el indicador "-o" para especificar el archivo en el que escribir el registro. Se agregaron notificaciones sobre el inicio y finalización de las descargas;
  • Se agregó soporte para el comando AYT IAC a telnetd;
  • Se agregó el comando 'dG' a vi (eliminar contenido desde la línea actual hasta el final del archivo);
  • Se agregó la opción 'oflag=append' al comando dd;
  • El indicador '-H' se ha agregado a la utilidad superior para permitir el escaneo de subprocesos individuales.

Además, hace dos semanas tuvo lugar relizar Caja de juguetes 0.8.1, un análogo de BusyBox, desarrollado por el ex mantenedor de BusyBox y repartido bajo licencia BSD. 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. Según las capacidades de Toybox hasta el momento quedarse atrás de BusyBox, pero ya se han implementado 188 comandos básicos de los 220 previstos.

Entre las novedades de Toybox 0.8.1 podemos destacar:

  • Se ha logrado un nivel de funcionalidad suficiente para construir Android en un entorno basado en las utilidades Toybox.
  • Se incluyen los nuevos comandos mcookie y devmem, y los comandos tar, gunzip y zcat reescritos se mueven de la rama de prueba.
  • Se ha propuesto una nueva implementación de vi para realizar pruebas.
  • El comando de búsqueda ahora admite las opciones "-wholename/-iwholename".
    "-printf" y "-context";

  • Se agregó la opción "--exclude-dir" a grep;
  • Echo ahora admite la opción "-E".
  • Se agregó soporte "UUID" para montar.
  • El comando de fecha ahora tiene en cuenta la zona horaria especificada en la variable de entorno TZ.
  • Se agregó soporte para rangos relativos (+N) a sed.
  • Legibilidad mejorada de la salida ps, top e iotop.

Fuente: opennet.ru

Añadir un comentario