A equipe do OpenBSD lançou a versão 7.9, trazendo um conjunto extenso de melhorias para diversas arquiteturas, novos drivers de rede, aprimoramentos de segurança e avanços na virtualização. O changelog completo está disponível na página oficial do projeto.

Suporte a plataformas específicas
ARM64
- Driver ICE(4) habilitado para ARM64, permitindo o uso de placas de rede Intel ICE em dispositivos baseados nessa arquitetura.
- Suporte adicionado aos SoCs RK3588 e RK3576, com novos drivers e extensões.
- Inclusão do controlador GL9755 SDHC da Genesys Logic, presente em alguns laptops Apple Silicon, ao driver
sdmmc(4).
AMD64
- Integração do SMU ao driver
amdpmc(4), essencial para alcançar os menores estados de energia em processadores AMD. - Desativação do recurso Panel Self Refresh (PSR) no
amdgpupara evitar travamentos em ThinkPad X13 gen 6. - Aumento do limite de CPUs para 255 e correção de bug que afetava máquinas com mais de 512 GB de RAM.
- Mitigação de vazamento de estado de ponto flutuante em processadores AMD Zen/Zen+.
RISC‑V64
- Suporte ao SoC SpacemiT K1 com driver
smtclock(4)e múltiplos drivers adicionais. - Implementação das extensões Zicbom e Svpbmt.
- Inclusão das device trees do SpacemiT K1 no mini‑root, facilitando a instalação.
- Tratamento de falhas de acesso a instruções como
PROT_EXEC, corrigindo SIGSEGV aleatórios nos núcleos X60.
Outras arquiteturas
- Correções no driver
ice(4)para sistemas big‑endian, permitindo seu funcionamento emsparc64. - Atualizações em barreiras de memória para
powerpc64, reescrita do TLB shootdown em Alpha e melhorias de contagem de CPU emmips64. - Inicialização completa dos registradores FPU em
sparc64e correções de mutex em CPUs Sun4U.
Melhorias no kernel
- Novo mecanismo de agendamento que reconhece núcleos com diferentes velocidades. O sysctl
hw.blockcpuaceita sequências S, P, E e L para classificar CPUs (SMT, performance, eficiente, letárgicas). Disponível em amd64 e arm64. - Substituição do cas spinlock por um lock de “parking” em mutexes do kernel.
- O daemon de paginação (
pagedaemon) deixa de ser forçado a dormir quando há requisições pendentes. - Implementado comando
stopnoddb(4)que enviaSIGSTOPao PID indicado. - Infraestrutura preparada para até 52 partições por disco.
- Pré‑alocação de 32 swapclusters para evitar alocação de memória dentro do caminho de criptografia de swap.
- Estratégia de criação de memória livre alterada para melhorar a defragmentação.
- Recusa de carregamento de binários sem segmento
PT_LOAD.
Suspend / Hibernação
- Hibernação atrasada: o sysctl
machdep.hibernatedelaypermite definir um tempo em segundos para que o sistema acorde do suspend e execute hibernação automática, evitando a exaustão da bateria.
SMP
- Desbloqueio de socket splicing,
icmp6_sysctl(), timeout lento do IGMP e tratamento paralelo de falhas em amd64/arm64. - Interrupções do driver
bse(4)tornadas MP‑safe. - Timers rápidos de IGMP e MLD6 protegidos com rwlock.
DRM e drivers gráficos
- Atualização do
drm(4)para Linux 6.18.22.
Virtualização (VMM/VMD)
- Semântica PCI para leitura de registradores inválidos (retorno 0xFF…FF).
- Novo sysctl
machdep.vmmodeindica se o kernel está rodando como host, guest ou em modo SEV. vmboot, um kernel mínimo que permitesysupgrade(8)em máquinas virtuais VMD.- Suporte a AMD SEV em
cd(4)/vioscsi(4)dentro de VMs. - Correções de segfault e race conditions em
vmd(8)evmm(4). - Emulação do MSR AMD SysCfg e compatibilidade com Apple Virtualization.
- Redução da área de low‑mem no mapa de memória do
vmd(8)para melhorar reinicializações de convidados Linux.
Novidades no userland
- disklabel(8) agora determina dinamicamente nomes de partições disponíveis e permite que o comando
deletezere partiçõesFS_UNUSEDindependentemente ded_npartitions. fstat(1)exibe o flag close‑on‑fork comofna coluna R/W.- Variável de ambiente XDG_RUNTIME_DIR suportada por
login(1)exenodm(1), padrão apontando para/tmp/run/user/${uid}. libsndioreinicia dispositivosaudio(4)após underrun;sndiod(8)habilita dispositivos de fallback e permite gravação e monitoramento simultâneos.- Correções no compilador LLVM para frame lowering em x86 com
-msave-args. pthread_set_name_np(3)aceita nomes longos;freeaddrinfo(3)lida graciosamente com argumentoNULL.pcidump(8)mostra janelas de ponte PCI quando “abertas”.file(1)reconhece fontes PSF2 e WOFF.- Diversas melhorias em
mg(1),ksh(1),echo(1),pkill(1),xargs(1)exterm(1). - Correções de ano bissexto em
newsyslog(8), falha deless(1)ao ler arquivos de tags inválidos e vazamento de memória emsensorsd(8).
Drivers e suporte a hardware
- PCI Power Management refinado;
xhci(4)pode auto‑desligar seu controlador USB4. - Novo driver nhi(4) para controladores USB4.
- Interface
audio(9)agora expõe o nome de exibição do hardware;envy(4)euaudio(4)retornam o nome do produto. - Correções de truncamento de nomes em
uaudio(4)nas aplicaçõeslibsndio. - Melhorias no
acpi(4)para pontes PCI e suporte ao recurso StorageD3Enable. - Drivers adicionados:
iasuskbd(4),sgmsi(4),cdpcie(4),dwpcie(4)(Qualcomm SC7280),qcuart(4),smtgpio(4),rkusbdpphy(4),ispi(4),acpihid(4),viogpu(4),psp(4),uvisor(4),uplcom(4),dwmshc(4). - Suporte a Apple Virtual USB Digitizer e ao PSP dos EPYC 9005.
wscons(4)impede carregamento de emulops que requerem caractere “?” ausente.
Redes
- Correções de vazamento de memória em
bnxt(4)e exibição de velocidades uplink/downlink emumb(4)viakstat(4). - Suporte a modems Quectel EC200A em
umsm(4)e ao chip RTL8126 (rev 0x64a00000) emrge(4). - SoftLRO ativado por padrão em
bnxt(4)eice(4). - Resolução do erro “too many data commands” em
ice(4)com TSO. - Aumento do buffer de
urndis(4)para 16 KB. dwqe(4)agora recupera corretamente quando o link está inativo.- 64‑bit DMA habilitado em diversos drivers (aq, em, rge, re, iavf, ix, ixv, ixl, igc, ice, iwx).
- Suporte a dispositivos BCM575xx (Thor/P5) em
bnxt(4)e driversmte(4)para Ethernet do SpacemiT K1.
Pilha wireless IEEE 802.11
- Correção de associação a APs que desativam todas as taxas 802.11b.
ieee80211_classify()atualizado para RFC 8325, priorizando sessões SSH interativas e limitando QoS de alta prioridade.- Inicialização de TIDs 4‑7 para melhorar agregação Tx.
- Implementação básica de 802.11ax e suporte a janela de 160 MHz em 5 GHz para
iwx(4). - Melhorias nos drivers
qwx(4),iwm(4),iwx(4)eiwn(4), incluindo suporte a PMF, SHA256‑PSK, Wi‑Fi 6e, e aumento do tamanho máximo de agregação VHT para 1024 KB.
Instalador, upgrade e ferramentas de pacote
installboot(8)conclui mesmo quandoefi(4)não está acessível.sysupgradeaborta se a partição/usrestiver acima de 90 % de uso.- Busca por dispositivos com
fw_update(8)emdmesg.bootedmesg(8). - AMD64 passa a carregar kernels a partir da partição EFI, similar ao suporte já existente em arm64.
- Detecção de partição keydisk aprimorada no instalador.
- Suporte a
aggr(4)em RAMDISK ARM64 e emRAMDISK_CDpara i386/amd64. - Aumento automático do tamanho da partição
/usr/objnodisklabel(8). - Aviso para usuários de floppy em i386/amd64:
fw_update(8)pode falhar devido ao aumento dos strings PCI no kernel.
Segurança
- BIOTLOCK: root não pode mais contornar a restrição
BIOCLOCKde BPF; a mudança não afeta nenhum software existente. - Promessa pledge(2) “tmppath” removida; recomenda‑se usar combinações de
unveilepledgecomorpath wpath cpath. - Introduzido o syscall __pledge_open(2), permitindo que a libc abra arquivos internos de forma controlada, apenas em modo leitura.
- Endereços de
/etc/localtimee/usr/share/zoneinfoverificados mais rigorosamente em processos pledged. - Correções em
dig(1)eunveil(2)para lidar com arquivos de resolução e sistemas de arquivos montados sobre outros pontos de montagem. - Processos forked iniciam sem pgrp definido, evitando race conditions.
- Ocultamento do endereço kernel
p_addremsysctl(2)para usuários não‑root.
Onde obter o OpenBSD 7.9
A imagem completa, notas de lançamento e o changelog detalhado estão disponíveis em: https://www.openbsd.org/79.html