Se ha presentado la versión de OpenBSD 7.7, un sistema operativo libre y similar a UNIX. El proyecto OpenBSD fue fundado por Theo de Raadt en 1995 tras un conflicto con los desarrolladores de NetBSD, que resultó en la denegación de acceso de Theo al repositorio CVS de NetBSD. Posteriormente, Theo de Raadt, junto con un grupo de colaboradores, creó un nuevo sistema operativo abierto sobre la base del árbol de fuentes de NetBSD, cuyo objetivo principal es la portabilidad (se admiten 13 plataformas de hardware), la estandarización, el correcto funcionamiento, la seguridad proactiva y la integración de herramientas criptográficas. El tamaño de la imagen ISO de instalación completa del sistema base OpenBSD 7.7 es de 746 MB.
Además del propio sistema operativo, el proyecto OpenBSD es conocido por sus componentes, que se han difundido en otros sistemas y se han consolidado como algunas de las soluciones más seguras y de mayor calidad. Entre ellos se encuentran: LibreSSL (fork de OpenSSL), OpenSSH, el filtro de paquetes PF, demonios de enrutamiento OpenBGPD y OpenOSPFD, servidor NTP OpenNTPD, servidor de correo OpenSMTPD, multiplexor de terminal de texto (análogo a GNU screen) tmux, demonio identd con implementación del protocolo IDENT, alternativa BSDL al paquete GNU groff — mandoc, protocolo para la organización de sistemas tolerantes a fallos CARP (Common Address Redundancy Protocol), servidor http liviano, herramienta de sincronización de archivos OpenRSYNC.
Principales cambios:
- La implementación del framework drm (Direct Rendering Manager) se ha sincronizado con el núcleo de Linux 6.12.21 (en la versión anterior era 6.6.52). En el controlador inteldrm se ha implementado soporte para la GPU utilizada en los procesadores Intel basados en la arquitectura Arrow Lake. En el controlador amdgpu se ha añadido soporte para las GPUs Ryzen AI 300 (Strix Point, Strix Halo, Krackan Point) y Radeon RX 9070 (Navi 48).
- En el puerto para la arquitectura ARM64 se ha implementado soporte para el conjunto de instrucciones vectoriales SVE (Scalable Vector Extension). En sistemas con chips ARM Apple M1 se ha habilitado la gestión de estados de consumo energético. En el mecanismo de mapeo de páginas de memoria física (pmap, physical mapping) se han optimizado las operaciones de desalojo del búfer de traducción asociativa (TLB), lo que ha acelerado aproximadamente un 5% la ejecución de la prueba de compilación del núcleo. En el hardware con soporte para el cifrado QARMA3, se ha incluido la autenticación de punteros (PAC, Pointer Authentication Code) para proteger el espacio del usuario.
- En sistemas x86_64 para máquinas virtuales que se ejecutan con QEMU, se ha implementado el soporte para el mecanismo AMD SEV (Secure Encrypted Virtualization), utilizado en sistemas de virtualización para protección máquinas virtuales contra la intervención del hipervisor o del administrador del sistema host. En el controlador psp, utilizado para la configuración y ejecución de máquinas virtuales con AMD SEV habilitado, se ha añadido un comando para cargar el firmware en el chip.
- En sistemas x86_64 se ha añadido la capacidad de asignar áreas de memoria de más de 4 GB para DMA.
- Se ha mejorado el soporte para las arquitecturas RISC-V, Sparc64, HPPA, i386 y Powerpc64.
- Se ha mejorado el manejo de situaciones de falta de memoria en el sistema (OOM).
- Se han añadido características al mecanismo de seguimiento ptrace, que permiten establecer puntos de interrupción en procesos multiproceso en el depurador gdb. Se han incorporado comandos para leer y escribir la zona donde se guarda el estado del procesador en el proceso monitoreado al utilizar la instrucción XSAVE.
- En los scripts en lenguaje BT (BPFtrace o Bug Tracing), utilizados en el sistema de seguimiento btrace, se ha añadido soporte para construcciones de múltiples líneas. Se han agregado perfiles y nomenclaturas adicionales para los intervalos de tiempo en la utilidad btrace (hz, us, ms, s).
- Se ha añadido el parámetro sysctl kern.audio.kbdcontrol, que al establecerse en 0 hará que las teclas multimedia de control de volumen en el teclado se manejen como teclas normales.
- Se ha mejorado el manejo de fallos y se han ampliado las comprobaciones al entrar en los modos de suspensión y espera.
- Se ha revisado el código para detener procesos al recibir una señal, lo que ha resuelto problemas con la detención de procesos multiproceso, que se manifestaban en paquetes como golang y mpv.
- Se ha mejorado el soporte para sistemas multiprocesador (SMP). Se ha logrado que los temporizadores de entrada y salida TCP funcionen en paralelo, y las llamadas al sistema send() y recv() se han trasladado al uso de un bloqueo compartido. Varios hilos de usuario ahora pueden trabajar en paralelo con diferentes sockets, y la salida TCP ya no bloquea el procesamiento de paquetes IP.
Se han eliminado los bloqueos globales de las llamadas al sistema open, openat, ptsignal, psignal y prsignal, así como de sysctl kern.timeout_stats, kern.allowkmem, kern.video.record, net.inet.gre.allow, net.inet.gre.wccp, kern.global_ptrace, kern.wxabort, kern.malloc.kmemstat. Los controladores psp, wsmouse y wstpad, así como la estructura video_filtops, se han trasladado a la categoría mp-safe.
- En el hipervisor VMM se ha implementado la posibilidad de usar acpipci para conectar buses PCI.
- Se ha proporcionado la posibilidad de definir una política alternativa con configuraciones de rendimiento (perfpolicy), que se aplicará al funcionar el sistema con batería.
- Se ha añadido la opción «-f file» al comando sysctl para cargar todas las configuraciones de un archivo de una vez. En los scripts rc, se ha aplicado esta nueva opción para cargar sysctl.conf en su totalidad, en lugar de analizarlo línea por línea.
- En el comando pkg_add se ha implementado la llamada a ldconfig, si el registro de bibliotecas compartidas ha cambiado como resultado de la instalación de nuevos paquetes.
- Se ha añadido soporte para nuevo hardware. Mejorado el soporte para SoC MediaTek y Qualcomm Snapdragon (incluido X Elite). Se ha mejorado el soporte para dispositivos Samsung Galaxy Book4 Edge, ThinkPad T14 Gen 5, Vivobook, ThinkPad X1 Nano Gen 2, ThinkPad X13 y diversos Chromebook. Se ha añadido el controlador ice para Intel E810 Ethernet 1Gb/10Gb/25Gb/50Gb/100Gb y el controlador ixv para funciones virtuales Intel Ethernet 82598EB, 82559 y X540. Se ha continuado trabajando en la externalización de la ejecución de operaciones de red hacia las tarjetas de red.
- En sysupgrade se implementó un modo para la actualización offline de sistemas utilizando paquetes almacenados en el sistema de archivos local.
- En la utilidad fw_update se ha añadido la posibilidad de cargar (no instalar) firmware como usuario normal sin privilegios de root. Se añadió la opción «-l» para mostrar la lista de controladores y archivos.
- Para el proceso sshd-auth se ha habilitado la protección contra la explotación de vulnerabilidades, basada en la recomposición aleatoria del archivo ejecutable en cada arranque del sistema (relink). La recomposición permite hacer impredecibles los desplazamientos de funciones, lo que dificulta la creación de exploits que utilizan métodos de programación orientada a retorno.
- Se ha asegurado el aislamiento del proceso mountd utilizando la llamada al sistema unveil.
- En la pila de red se ha implementado el soporte para sockets AF_FRAME y la familia de protocolos IFT_ETHER, permitiendo a las aplicaciones enviar y recibir tramas Ethernet. Para los paquetes salientes UDP y TCP se ha utilizado un nuevo método de hash que optimiza la distribución del tráfico por colas y acelera notablemente (~20%) el envío de UDP para IPv4/IPv6 y TCP para IPv6. Para el dispositivo tun se ha implementado ioctl TUNSCAP y optimizado la interacción entre el núcleo y el espacio de usuario. Se ha realizado un caché de rutas independiente por cada hilo. En el controlador vio se ha habilitado el modo multiqueue.
- En la utilidad pfctl para interfaces de red y colas se permite la definición de ancho de banda que exceda 4Gbit.
- En iked, implementación del protocolo IKEv2 para IPsec, se ha añadido la opción «natt» para forzar el uso de nat-t.
- En relayd, proceso en segundo plano para redirigir y equilibrar solicitudes, se ha implementado el soporte para clientes. de certificados TLS.
- La herramienta de medición de rendimiento de red tcpbench ha añadido soporte para TLS.
- En bgpd se ha implementado el soporte para RFC 8654 (BGP Extended Message), RFC 8538 (BGP Notification Message), se ha activado por defecto la opción «reject as-set» y se ha asegurado la caché de Adj-RIB-Out.
- En LibreSSL 4.1.0 se ha añadido soporte experimental para la arquitectura loongarch64, se han propuesto nuevas implementaciones en ensamblador de los algoritmos SHA-1, SHA-256 y SHA-512 para la arquitectura amd64 (se utiliza la instrucción SHA-NI), nuevas implementaciones en ensamblador SHA-256 y SHA-512 para Aarch64 (se ha utilizado la extensión CE), se ha simplificado la implementación de MD5 para amd64, y se ha asegurado el almacenamiento en caché de la lista de certificados revocados (CRLs). Se ha trasladado la implementación ML-KEM 768 y 1024 desde BoringSSL.
- OpenSSH ha sido actualizado. Puede ver la lista de cambios en el anuncio de OpenSSH 10 (se eliminó el soporte para firmas digitales DSA, las operaciones de autenticación se han separado en un proceso aparte llamado sshd-auth, se utiliza por defecto el algoritmo híbrido de intercambio de claves "mlkem768x25519-sha256").
- El número de puertos para la arquitectura AMD64 ha ascendido a 12593 (antes 12312), para aarch64 a 12446 (antes 12148), y para i386 a 10429 (antes 10534). Las versiones de las aplicaciones en los puertos son:
- Asterisk 16.30.1, 18.26.1, 20.13.0 y 22.3.0
- Audacity 3.7.3
- CMake 3.31.6
- Chromium 135.0.7049.52
- Emacs 30.1
- FFmpeg 6.1.2
- GCC 8.4.0 y 11.2.0
- GNOME 47
- Go 1.24.1
- JDK 8u442, 11.0.26, 17.0.14 y 21.0.6
- KDE Gears 24.12.3
- KDE Frameworks 6.12.0
- KDE Plasma 6.3.3
- Krita 5.2.9
- LLVM/Clang 13.0.0, 16.0.6, 18.1.8, 19.1.7
- LibreOffice 25.2.1.2
- Lua 5.1.5, 5.2.4, 5.3.6, 5.4.7
- MariaDB 11.4.5
- Mono 6.12.0.199
- Mozilla Firefox 137.0 y ESR 128.9.0
- Mozilla Thunderbird 128.9.0
- Mutt 2.2.14 y NeoMutt 20250113
- Node.js 22.14.0
- OpenLDAP 2.6.9
- PHP 8.2.28, 8.3.19 y 8.4.5
- Postfix 3.10.1
- PostgreSQL 17.4
- Python 2.7.18 y 3.12.9
- Qt 5.15.16 (+ parches del proyecto KDE) y 6.8.2
- Ruby 3.2.8, 3.3.7, 3.4.2
- Rust 1.86.0
- SQLite 3.49.1
- Shotcut 25.01.25
- Sudo 1.9.16p1
- Suricata 7.0.7
- Tcl/Tk 8.5.19 y 8.6.16
- Vim 9.1.1265 y Neovim 0.10.4
- Xfce 4.20.0
- Se han actualizado los componentes de desarrolladores externos incluidos en OpenBSD 7.7:
- El stack gráfico Xenocara basado en X.Org 7.7 con xserver 21.1.16 + parches, freetype 2.13.3, fontconfig 2.15.0, Mesa 23.3.6, xterm 395, xkeyboard-config 2.20, fonttosfnt 1.2.4.
- LLVM/Clang 16.0.6 (+ parches)
- GCC 4.2.1 (+ parches) y 3.3.6 (+ parches)
- Perl 5.40.1 (+ parches)
- NSD 4.9.1
- Unbound 1.22.0
- Ncurses 6.4
- Binutils 2.17 (+ parches)
- Gdb 6.3 (+ parches)
- Awk 20250116
- Expat 2.7.1
- zlib 1.3.1 (+ parches)
Fuente: opennet.ru
