Foi lançada a versão do sistema operacional UNIX livre OpenBSD 7.7. O projeto OpenBSD foi fundado por Theo de Raadt em 1995, após um conflito com os desenvolvedores do NetBSD, que resultou no fechamento do acesso de Theo ao repositório CVS do NetBSD. Após isso, Theo de Raadt e um grupo de apoiadores criaram um novo sistema operacional aberto a partir da base de código do NetBSD, cujos principais objetivos de desenvolvimento são a portabilidade (suportando 13 plataformas de hardware), padronização, funcionamento correto, segurança proativa e ferramentas criptográficas integradas. O tamanho da imagem ISO completa do sistema básico OpenBSD 7.7 é de 746 MB.
Além do próprio sistema operacional, o projeto OpenBSD é conhecido por seus componentes, que se espalharam por outros sistemas e se estabeleceram como algumas das soluções mais seguras e de qualidade. Entre eles: LibreSSL (fork do OpenSSL), OpenSSH, filtro de pacotes PF, demônios de roteamento OpenBGPD e OpenOSPFD, servidor NTP OpenNTPD, servidor de e-mail OpenSMTPD, multiplexador de terminal de texto (semelhante ao GNU screen) tmux, demônio identd com implementação do protocolo IDENT, alternativa BSD do pacote GNU groff - mandoc, protocolo para a organização de sistemas tolerantes a falhas CARP (Common Address Redundancy Protocol), servidor http leve, utilitário de sincronização de arquivos OpenRSYNC.
Principais mudanças:
- A implementação do framework drm (Direct Rendering Manager) está sincronizada com o núcleo Linux 6.12.21 (na versão anterior — 6.6.52). No driver inteldrm, foi implementado suporte para a GPU utilizada nos processadores Intel com microarquitetura Arrow Lake. No driver amdgpu, foi adicionado suporte para a GPU Ryzen AI 300 (Strix Point, Strix Halo, Krackan Point) e Radeon RX 9070 (Navi 48).
- No porto para a arquitetura ARM64, foi implementado suporte para o conjunto de instruções vetoriais SVE (Scalable Vector Extension). Em sistemas com chip ARM Apple M1, foi garantido o gerenciamento dos estados de consumo energético. No mecanismo de mapeamento de páginas de memória física (pmap, physical mapping), foram otimizadas as operações de descarte do buffer de tradução associativa (TLB), o que acelerou em cerca de 5% a execução do teste de compilação do núcleo. Em equipamentos com suporte ao algoritmo de criptografia QARMA3 para proteção do espaço do usuário, foi ativada a autenticação de ponteiros (PAC, Pointer Authentication Code).
- Em sistemas x86_64 para máquinas virtuais executadas com QEMU, foi implementado suporte para o mecanismo AMD SEV (Secure Encrypted Virtualization), utilizado em sistemas de virtualização para proteção máquinas virtuais contra intervenções do hipervisor ou do administrador do sistema host. No driver psp, utilizado para configuração e execução de máquinas virtuais com suporte ao AMD SEV, foi adicionada uma instrução para carregar o firmware no chip.
- Em sistemas x86_64, foi adicionada a possibilidade de alocar áreas de memória maiores que 4 GB para DMA.
- Foi melhorado o suporte para as arquiteturas RISC-V, Sparc64, HPPA, i386 e Powerpc64.
- Foi aprimorada a gestão de situações de falta de memória no sistema (OOM).
- O mecanismo de rastreamento ptrace agora possui funcionalidades que permitem definir pontos de parada no depurador gdb em processos multithread. Foram adicionados comandos para ler e gravar na área onde o estado do processador é salvo no processo rastreado ao usar a instrução XSAVE.
- Nos scripts em linguagem BT (BPFtrace ou Bug Tracing), usados no sistema de rastreamento btrace, foi adicionada a поддержки para construções multiline. A ferramenta btrace recebeu perfis adicionais e nomenclaturas para intervalos de tempo (hz, us, ms, s).
- Adicionado o parâmetro sysctl kern.audio.kbdcontrol, que ao ser definido como 0 faz com que as teclas multimídia de controle de volume no teclado sejam tratadas como teclas comuns.
- Melhorada a manuseio de falhas e ampliadas as verificações ao entrar nos modos de suspensão e espera.
- O código para interromper processos ao receber um sinal foi reformulado, resolvendo problemas com a parada de processos multithread, que estavam se manifestando em pacotes como golang e mpv.
- Apoio aprimorado para sistemas multiprocessadores (SMP). A execução paralela de timers de E/S TCP foi garantida, e as chamadas de sistema send() e recv() foram convertidas para uso de bloqueios compartilhados. Vários threads de usuário agora podem operar paralelamente com diferentes sockets, e a saída TCP não bloqueia mais o processamento de pacotes IP.
Eliminadas as bloqueios globais das chamadas de sistema open, openat, ptsignal, psignal e prsignal, assim como 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. Os drivers psp, wsmouse e wstpad, assim como a estrutura video_filtops, foram convertidos para mp-safe.
- No hypervisor VMM, implementada a possibilidade de usar acpipci para conectar barramentos PCI.
- Facilitada a definição de uma política alternativa com configurações de desempenho (perfpolicy) aplicável ao funcionamento em modo bateria.
- Adicionada à equipe sysctl a opção '-f file' para carregar todas as configurações de uma vez a partir de um arquivo. Nos scripts rc, a nova opção foi aplicada para carregar o sysctl.conf completamente, em vez de analisá-lo linha por linha.
- Na equipe pkg_add, realizado um chamado ldconfig, se a lista de bibliotecas compartilhadas foi alterada devido à instalação de novos pacotes.
- Foi adicionada a compatibilidade com novos dispositivos. Melhor suporte para SoCs MediaTek e Qualcomm Snapdragon (incluindo X Elite). Melhor suporte para dispositivos Samsung Galaxy Book4 Edge, ThinkPad T14 Gen 5, Vivobook, ThinkPad X1 Nano Gen 2, ThinkPad X13 e vários Chromebooks. Adicionado o driver ice para Intel E810 Ethernet 1Gb/10Gb/25Gb/50Gb/100Gb e o driver ixv para funções virtuais Intel Ethernet 82598EB, 82559 e X540. O trabalho continua na execução de operações de rede em placas de rede.
- No sysupgrade, foi implementado um modo para atualização offline de sistemas usando pacotes salvos no sistema de arquivos local.
- Na ferramenta fw_update, foi adicionada a capacidade de carregar (não instalar) firmware como um usuário comum sem permissões de root. Foi adicionado o sinalizador "-l" para exibir uma lista de drivers e arquivos.
- Para o processo sshd-auth, foi ativada a proteção contra exploração de vulnerabilidades, baseada na reconfiguração aleatória do executável em cada inicialização do sistema (relink). A reconfiguração torna imprevisíveis os deslocamentos de funções, dificultando a criação de exploits que utilizam técnicas de programação orientada a retorno.
- Foi assegurada a isolação do processo mountd usando a chamada de sistema unveil.
- Na pilha de rede, foi implementado suporte para sockets AF_FRAME e a família de protocolos IFT_ETHER, permitindo que aplicativos enviem e recebam quadros Ethernet. Para pacotes de saída UDP e TCP, foi empregado um novo método de hash, que otimizou a distribuição de tráfego entre filas e acelerou significativamente (~20%) o envio de UDP para IPv4/IPv6 e TCP para IPv6. Para o dispositivo tun, foi implementado ioctl TUNSCAP e otimizada a interação entre o núcleo e o espaço do usuário. Foi implementado um cache de roteamento separado para cada thread. No driver vio, foi incluído o modo multiqueue.
- Na ferramenta pfctl, para interfaces de rede e filas, foi permitida a definição de largura de banda superior a 4Gbit.
- No iked, implementação do protocolo IKEv2 para IPsec, foi adicionada a opção "natt" para forçar o uso de nat-t.
- No relayd, um processo em segundo plano para redirecionamento e balanceamento de solicitações, foi implementado suporte para clientes. certificados TLS.
- Na ferramenta de medição de desempenho de rede tcpbench, foi adicionada suporte para TLS.
- No bgpd, foi implementado suporte para RFC 8654 (BGP Extended Message), RFC 8538 (BGP Notification Message), com a opção "reject as-set" ativada por padrão, garantindo o cache Adj-RIB-Out.
- A versão 4.1.0 do LibreSSL adicionou suporte experimental para a arquitetura loongarch64, incluindo novas implementações em assembler dos algoritmos SHA-1, SHA-256 e SHA-512 para a arquitetura amd64 (usando a instrução SHA-NI), novas implementações em assembler de SHA-256 e SHA-512 para Aarch64 (utilizando a extensão CE), uma implementação simplificada de MD5 para amd64, e caching da lista de certificados revogados (CRLs), além da portação da implementação ML-KEM 768 e 1024 do BoringSSL.
- O OpenSSH foi atualizado. A lista de alterações pode ser vista no anúncio do OpenSSH 10 (o suporte para assinaturas digitais DSA foi removido, operações de autenticação foram separadas em um processo distinto sshd-auth, e o algoritmo híbrido de troca de chaves "mlkem768x25519-sha256" é utilizado por padrão).
- O número de ports para a arquitetura AMD64 alcançou 12593 (era 12312), para a aarch64 — 12446 (era 12148), e para i386 — 10429 (era 10534). Entre as versões de aplicativos nos ports:
- Asterisk 16.30.1, 18.26.1, 20.13.0 e 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 e 11.2.0
- GNOME 47
- Go 1.24.1
- JDK 8u442, 11.0.26, 17.0.14 e 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
- Mutt 2.2.13 e NeoMutt 20240201
- Mozilla Firefox 137.0 e ESR 128.9.0
- Mozilla Thunderbird 128.9.0
- Mutt 2.2.14 e NeoMutt 20250113
- Node.js 22.14.0
- OpenLDAP 2.6.9
- PHP 8.2.28, 8.3.19 e 8.4.5
- Postfix 3.10.1
- PostgreSQL 17.4
- Python 2.7.18 e 3.12.9
- Qt 5.15.16 (+ patches do projeto KDE) e 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 e 8.6.16
- Vim 9.1.1265 e Neovim 0.10.4
- Xfce 4.20.0
- Os componentes de desenvolvedores de terceiros incluídos no OpenBSD 7.7 foram atualizados:
- O stack gráfico Xenocara baseado no X.Org 7.7 com xserver 21.1.16 + patches, 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 (+ patches)
- GCC 4.2.1 (+ patches) e 3.3.6 (+ patches)
- Perl 5.40.1 (+ patches)
- NSD 4.9.1
- Unbound 1.22.0
- Ncurses 6.4
- Binutils 2.17 (+ patches)
- Gdb 6.3 (+ patches)
- Awk 20250116
- Expat 2.7.1
- zlib 1.3.1 (+ patches)
Fonte: opennet.ru
