Pular para o conteúdo
OpenBSD 7.9 chega com suporte a ARM64, melhorias de segurança e novo driver ICE

OpenBSD 7.9 chega com suporte a ARM64, melhorias de segurança e novo driver ICE

OpenBSD 7.9 traz drivers ICE para ARM64, suporte a novos SoCs, aprimoramentos de segurança, virtualização e atualizações de rede.

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.

PinkPuffy

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 amdgpu para 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 em sparc64.
  • Atualizações em barreiras de memória para powerpc64, reescrita do TLB shootdown em Alpha e melhorias de contagem de CPU em mips64.
  • Inicialização completa dos registradores FPU em sparc64 e correções de mutex em CPUs Sun4U.

Melhorias no kernel

  • Novo mecanismo de agendamento que reconhece núcleos com diferentes velocidades. O sysctl hw.blockcpu aceita 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 stop no ddb(4) que envia SIGSTOP ao 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.hibernatedelay permite 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.vmmode indica se o kernel está rodando como host, guest ou em modo SEV.
  • vmboot, um kernel mínimo que permite sysupgrade(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) e vmm(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 delete zere partições FS_UNUSED independentemente de d_npartitions.
  • fstat(1) exibe o flag close‑on‑fork como f na coluna R/W.
  • Variável de ambiente XDG_RUNTIME_DIR suportada por login(1) e xenodm(1), padrão apontando para /tmp/run/user/${uid}.
  • libsndio reinicia dispositivos audio(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 argumento NULL.
  • 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) e xterm(1).
  • Correções de ano bissexto em newsyslog(8), falha de less(1) ao ler arquivos de tags inválidos e vazamento de memória em sensorsd(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) e uaudio(4) retornam o nome do produto.
  • Correções de truncamento de nomes em uaudio(4) nas aplicações libsndio.
  • 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 em umb(4) via kstat(4).
  • Suporte a modems Quectel EC200A em umsm(4) e ao chip RTL8126 (rev 0x64a00000) em rge(4).
  • SoftLRO ativado por padrão em bnxt(4) e ice(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 driver smte(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) e iwn(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 quando efi(4) não está acessível.
  • sysupgrade aborta se a partição /usr estiver acima de 90 % de uso.
  • Busca por dispositivos com fw_update(8) em dmesg.boot e dmesg(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 em RAMDISK_CD para i386/amd64.
  • Aumento automático do tamanho da partição /usr/obj no disklabel(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 BIOCLOCK de BPF; a mudança não afeta nenhum software existente.
  • Promessa pledge(2) “tmppath” removida; recomenda‑se usar combinações de unveil e pledge como rpath 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/localtime e /usr/share/zoneinfo verificados mais rigorosamente em processos pledged.
  • Correções em dig(1) e unveil(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_addr em sysctl(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

Via openbsd.org. Você pode conferir o post original em inglês:

What's New

Por · Última atualização: