Se ha presentado la versión beta de la distribución AlmaLinux 9, construida usando paquetes de la rama Red Hat Enterprise Linux 9 y que contiene todos los cambios propuestos en esta versión. Las compilaciones están preparadas para arquitecturas x86_64, ARM64, s390x y ppc64le en forma de imagen de arranque (780 MB), imagen mínima (1.7 GB) e imagen completa (8 GB). Se esperan los lanzamientos de RHEL 9 y AlmaLinux 9 a principios de mayo.
La distribución es idéntica a RHEL en funcionalidad, exceptuando los cambios relacionados con el rebranding y la eliminación de paquetes específicos de RHEL, como redhat-*, insights-client y subscription-manager-migration*. AlmaLinux es gratuito para todas las categorías de usuarios, se desarrolla con la participación de la comunidad y utiliza un modelo de gestión similar a la organización del proyecto Fedora. Los creadores de AlmaLinux intentaron lograr un equilibrio óptimo entre el soporte corporativo y los intereses de la comunidad: por un lado, se han involucrado recursos y desarrolladores de CloudLinux, que tiene una gran experiencia en el soporte de forks de RHEL, y por otro, el proyecto es transparente y es controlado por la comunidad.
La distribución AlmaLinux es respaldada por la empresa CloudLinux, que a pesar de involucrar sus recursos y desarrolladores, ha transferido el proyecto a una organización no lucrativa separada, la AlmaLinux OS Foundation, para su desarrollo en una plataforma neutral con la participación de la comunidad. Se ha destinado un millón de dólares al año para el desarrollo del proyecto. Todos los desarrollos de AlmaLinux se publican bajo licencias libres.
Los principales cambios en AlmaLinux 9 y RHEL 9 en comparación con la rama RHEL 8:
- Se ha actualizado el entorno del sistema y las herramientas de compilación. Se ha utilizado GCC 11 para la compilación de paquetes. La biblioteca estándar C se ha actualizado a glibc 2.34. El paquete del núcleo Linux se ha construido sobre la base de la versión 5.14. El gestor de paquetes RPM se ha actualizado a la versión 4.16 con soporte de control de integridad a través de fapolicyd.
- Se ha completado la migración de la distribución a Python 3. Por defecto, se ha propuesto la rama Python 3.9. El suministro de Python 2 se ha detenido.
- El escritorio está basado en GNOME 40 (en RHEL 8 se entregaba GNOME 3.28) y en la biblioteca GTK 4. En GNOME 40, los escritorios virtuales en la vista general (Activities Overview) se han trasladado a una orientación horizontal y se presentan como una cadena continua que se desplaza de izquierda a derecha. En cada escritorio mostrado en la vista general, se presentan visualmente las ventanas disponibles, para las cuales se aplica panorámica dinámica y escalado durante la interacción del usuario. Se asegura una transición fluida entre la lista de programas y los escritorios virtuales.
- En GNOME se utiliza el gestor power-profiles-daemon, que proporciona la posibilidad de cambiar sobre la marcha entre el modo de ahorro de energía, el modo de consumo energético equilibrado y el modo de máximo rendimiento.
- Todos los flujos de audio se han trasladado al servidor multimedia PipeWire, que ahora se utiliza por defecto en lugar de PulseAudio y JACK. El uso de PipeWire permite ofrecer capacidades profesionales de procesamiento de audio en una edición de escritorio normal, eliminar la fragmentación y unificar la infraestructura de audio para diversas aplicaciones.
- Por defecto, el menú de arranque GRUB está oculto si RHEL es el único sistema operativo instalado y la última carga se realizó sin errores. Para mostrar el menú durante el arranque, basta con mantener presionada la tecla Shift o presionar varias veces la tecla Esc o F8. Entre los cambios en el cargador de arranque, también se señala la colocación de los archivos de configuración de GRUB para todas las arquitecturas en un solo directorio /boot/grub2/ (el archivo /boot/efi/EFI/redhat/grub.cfg ahora es un enlace simbólico a /boot/grub2/grub.cfg), es decir, se puede arrancar el mismo sistema instalado utilizando tanto EFI como BIOS.
- Los componentes para el soporte de varios idiomas se han trasladado a paquetes langpacks, que permiten variar el nivel de soporte lingüístico instalado. Por ejemplo, en el paquete langpacks-core-font se ofrecen solo fuentes, en langpacks-core: la configuración regional para glibc, la fuente básica y el método de entrada, mientras que en langpacks se incluyen traducciones, fuentes adicionales y diccionarios para la verificación ortográfica.
- Se han actualizado los componentes para garantizar la seguridad. En la distribución se ha activado una nueva rama de la biblioteca criptográfica OpenSSL 3.0. Por defecto, se han incluido algoritmos criptográficos más modernos y seguros (por ejemplo, se ha prohibido el uso de SHA-1 en TLS, DTLS, SSH, IKEv2 y Kerberos, se han deshabilitado TLS 1.0, TLS 1.1, DTLS 1.0, RC4, Camellia, DSA, 3DES y FFDHE-1024). El paquete OpenSSH se ha actualizado a la versión 8.6p1. Cyrus SASL ha sido trasladado al backend GDBM en lugar de Berkeley DB. En las bibliotecas NSS (Network Security Services) se ha descontinuado el soporte para el formato DBM (Berkeley DB). GnuTLS se ha actualizado a la versión 3.7.2.
- Se ha mejorado significativamente el rendimiento de SELinux y se ha reducido el consumo de memoria. En /etc/selinux/config se ha eliminado el soporte para la configuración "SELINUX=disabled" para desactivar SELinux (la configuración indicada ahora solo desactiva la carga de políticas, y para desactivar realmente la funcionalidad de SELinux ahora se requiere pasar al núcleo el parámetro "selinux=0").
- Se ha añadido soporte experimental para VPN WireGuard.
- Por defecto, se ha prohibido el acceso SSH como usuario root.
- Se han declarado obsoletas las herramientas de gestión de filtros de paquetes iptables-nft (utilidades iptables, ip6tables, ebtables y arptables) y ipset. Para la gestión del cortafuegos, ahora se recomienda utilizar nftables.
- Se ha incluido un nuevo demonio mptcpd para la configuración de MPTCP (MultiPath TCP), una extensión del protocolo TCP para establecer conexiones TCP que entreguen paquetes simultáneamente por múltiples rutas a través de diferentes interfaces de red, enlazadas a diferentes direcciones IP. El uso de mptcpd permite configurar MPTCP sin necesidad de la utilidad iproute2.
- Se ha eliminado el paquete network-scripts, y ahora se debe utilizar NetworkManager para configurar las conexiones de red. Se ha mantenido el soporte para el formato de configuraciones ifcfg, pero NetworkManager por defecto utiliza un formato basado en el archivo keyfile.
- Se han incluido nuevas versiones de compiladores y herramientas para desarrolladores: GCC 11.2, LLVM/Clang 12.0.1, Rust 1.54, Go 1.16.6, Node.js 16, OpenJDK 17, Perl 5.32, PHP 8.0, Python 3.9, Ruby 3.0, Git 2.31, Subversion 1.14, binutils 2.35, CMake 3.20.2, Maven 3.6, Ant 1.10.
- Se han actualizado los paquetes del servidor Apache HTTP Server 2.4.48, nginx 1.20, Varnish Cache 6.5 y Squid 5.1.
- Se han actualizado las bases de datos MariaDB 10.5, MySQL 8.0, PostgreSQL 13 y Redis 6.2.
- Para la construcción del emulador QEMU, por defecto se utiliza Clang, lo que permite aplicar en el hipervisor KVM algunos mecanismos de protección adicionales, como SafeStack para protegerse contra técnicas de explotación basadas en la programación orientada a retorno (ROP — Return-Oriented Programming).
- En SSSD (Daemon de Servicios de Seguridad del Sistema) se ha aumentado la detallación de los registros, por ejemplo, ahora se adjunta el tiempo de finalización de la tarea a los eventos y se refleja el flujo de autenticación. Se han añadido funciones de búsqueda para analizar problemas con la configuración y el rendimiento.
- Se ha ampliado el soporte para IMA (Arquitectura de Medición de Integridad) para verificar la integridad de los componentes del sistema operativo mediante firmas digitales y hashes.
- Por defecto se utiliza una jerarquía de cgroup unificada (cgroup v2). Los cgroups v2 se pueden utilizar, por ejemplo, para limitar el consumo de memoria, recursos de CPU y entrada/salida. La principal diferencia de los cgroups v2 respecto a v1 es la aplicación de una jerarquía común de cgroups para todos los tipos de recursos, en lugar de jerarquías separadas para la asignación de recursos de CPU, regulación del consumo de memoria y para la entrada/salida. Las jerarquías separadas llevaron a dificultades en la organización de la interacción entre manejadores y a un costo adicional de recursos del núcleo al aplicar reglas para procesos mencionados en diferentes jerarquías.
- Se ha añadido soporte para la sincronización de tiempo exacto basada en el protocolo NTS (Network Time Security), que utiliza elementos de la infraestructura de claves públicas (PKI) y permite el uso de TLS y cifrado autenticado AEAD (Cifrado Autenticado con Datos Asociados) para proteger criptográficamente la interacción entre el cliente y servidores el protocolo NTP (Network Time Protocol). El servidor NTP chrony se ha actualizado a la versión 4.1.
- Se ha proporcionado soporte experimental para KTLS (implementación de TLS a nivel de kernel), Intel SGX (Software Guard Extensions), DAX (Acceso Directo) para ext4 y XFS, y soporte para AMD SEV y SEV-ES en el hipervisor KVM.
Fuente: opennet.ru
