Redox OS recibió el soporte del administrador de paquetes pkgar
Los desarrolladores del sistema operativo Redox dieron a conocer hace poco que han introducido el nuevo administrador de paquetes pkgar, el cual se utilizara dentro del sistema.
Para quienes desconocen de Redox el cual es un sistema operativo que tiene como principal enfoque que su desarrollo sea utilizando el lenguaje Rust y el concepto de microkernel donde solo se proporciona la interacción entre los procesos y la administración de recursos a nivel del kernel y toda la otra funcionalidad se transfiere a las bibliotecas que pueden usar tanto el kernel como las aplicaciones de usuario.
Como parte del proyecto, se está desarrollando un nuevo formato de paquete, una biblioteca con funciones de administración de paquetes y una herramienta de línea de comandos para crear y extraer una colección de archivos verificados criptográficamente.
El formato pkgar no pretende ser universal y está optimizado teniendo en cuenta las características específicas del sistema operativo Redox OS.
El administrador de paquetes admite la verificación de la fuente mediante firma digital y control de integridad. Las sumas de verificación se calculan utilizando la función hash blake3. Se puede acceder a la funcionalidad de verificación de pkgar sin guardar realmente el archivo del paquete, manipulando solo la parte del encabezado.
En particular, el paquete consta de un archivo de encabezado (.pkgar_head) y un archivo de datos (.pkgar_data). Se puede obtener un paquete de resumen completo correctamente firmado (.pkgar) simplemente adjuntando el archivo de encabezado al archivo de datos.
El archivo de encabezado contiene sumas de verificación separadas para el encabezado y estructuras con parámetros del archivo de datos, así como una firma digital para verificar el paquete.
El archivo de datos incluye una lista secuencial de todos los archivos y directorios suministrados en el paquete. Antes de cada elemento de datos hay una estructura con metadatos, que incluye una suma de verificación para los datos en sí, el tamaño, los derechos de acceso, la ruta relativa del archivo a instalar y el desplazamiento de los parámetros del siguiente elemento de datos.
Si durante el proceso de actualización los archivos individuales no han cambiado y la suma de verificación coincide, entonces se omiten y no se descargan.
Se puede verificar la integridad de la fuente obteniendo solo el archivo de encabezado y la exactitud del archivo de datos seleccionado cargando solo las estructuras con los parámetros de este archivo y asegurándose de que coincidan con la suma de verificación verificada en el archivo de encabezado.
Directamente, los datos en sí pueden verificarse después de descargarlos, utilizando la suma de verificación de la estructura con los parámetros que preceden a los datos.
Inicialmente, los paquetes implican la posibilidad de un ensamblaje repetible, lo que implica que crear un paquete para un directorio específico siempre conduce a la formación de un paquete idéntico. Después de la instalación, solo se guardan los metadatos en el sistema, lo cual es suficiente para reconstruir el paquete a partir de los datos instalados (la composición del paquete, las sumas de verificación, las rutas y los derechos de acceso están disponibles en los metadatos).
Los principales objetivos de pkgar:
- Atomico: las actualizaciones se aplican siempre que sea posible de forma automática.
- Ahorro de tráfico: los datos se transmiten a través de la red solo cuando cambia el hash (solo los archivos actualizados se descargan durante la actualización).
- Están involucrados algoritmos criptográficos rápidos de alto rendimiento (blake3 admite la paralelización del procesamiento de datos al calcular un hash). Si los datos del repositorio no se han almacenado previamente en caché, se puede calcular un hash para los datos descargados en el momento del arranque.
- Minimalismo: a diferencia de otros formatos, pkgar incluye solo los metadatos necesarios para extraer el paquete.
- Independencia del directorio de instalación: cualquier usuario puede instalar el paquete en cualquier directorio (el usuario debe tener derecho a escribir en el directorio seleccionado).
- Seguridad: los paquetes siempre se verifican criptográficamente y la verificación se realiza antes de que se realicen las operaciones reales con el paquete (el encabezado se carga primero y, si la firma digital es correcta, los datos se transfieren al directorio temporal, que se mueve al directorio de destino después de la verificación).