Foi lançado o OpenBSD 7.1, um sistema operacional UNIX-like de código aberto e multiplataforma. O projeto OpenBSD foi fundado por Theo de Raadt em 1995 após um conflito com os desenvolvedores do NetBSD, que resultou na perda de acesso de Theo ao repositório CVS do NetBSD. Após isso, Theo de Raadt, junto com um grupo de colaboradores, criou um novo sistema operacional aberto com base na árvore de código-fonte do NetBSD, com os principais objetivos de desenvolvimento sendo portabilidade (suporte a 13 plataformas de hardware), padronização, operação correta, segurança proativa e inclusão de ferramentas criptográficas. O tamanho da imagem ISO completa do sistema base OpenBSD 7.1 é de 580 MB.
Além do próprio sistema operacional, o projeto OpenBSD é conhecido por seus componentes, que se tornaram populares em outros sistemas e se destacaram como algumas das soluções mais seguras e de qualidade. Entre eles: LibreSSL (fork do OpenSSL), OpenSSH, o filtro de pacotes PF, os demônios de roteamento OpenBGPD e OpenOSPFD, o servidor NTP OpenNTPD, o correio servidor OpenSMTPD, o multiplexador de terminal de texto (análoga ao GNU Screen) tmux, o daemon identd com implementação do protocolo IDENT, a alternativa BSDL ao pacote GNU groff — mandoc, o protocolo para organização de sistemas tolerantes a falhas CARP (Common Address Redundancy Protocol), o servidor HTTP leve e a ferramenta de sincronização de arquivos OpenRSYNC.
Principais melhorias:
- Foi anunciada a disponibilidade de suporte para computadores Mac equipados com o chip ARM da Apple M1 (Apple Silicon), como os Macs Apple M1 Pro/Max e Apple T2. Foram adicionados drivers para SPI, I2C, controlador DMA, teclado, touchpad, gerenciamento de energia e desempenho. O suporte a Wi-Fi, GPIO, framebuffer, USB, tela e unidades NVMe foi assegurado.
- Apoio à arquitetura ARM64 foi aprimorado. Foram adicionados drivers gpiocharger, gpioleds e gpiokeys, permitindo suporte a carregadores, luzes indicadoras e botões conectados ao GPIO (como feito no Pinebook Pro). Novos drivers foram adicionados: mpfclock (controlador de clock MSS do SoC PolarFire), cdsdhc (controlador host SD/SDIO/eMMC da Cadence), mpfiic (controlador I2C do SoC PolarFire MSS) e mpfgpio (GPIO do SoC PolarFire MSS).
- O suporte à arquitetura RISC-V 64 foi melhorado, incluindo drivers uhid e fido, e suporte à instalação em discos com GPT foi garantido.
- Na ferramenta mount_msdos, o uso de nomes de arquivos longos está habilitado por padrão.
- O código do coletor de lixo para sockets unix foi reestruturado.
- O sysctl hw.perfpolicy está definido por padrão como 'auto', o que implica ativar o modo de desempenho total quando conectado à fonte de alimentação e usar um algoritmo adaptativo quando funcionando com bateria.
- Suporte aprimorado para sistemas multiprocessadores (SMP). Filtros de eventos em canais nomeados, kqread, áudio e sockets foram atualizados para a categoria mp-safe, assim como o mecanismo BPF. As chamadas de sistema poll, select, ppoll e pselect foram reescritas e agora são implementadas sobre kqueue. Chamadas de sistema como kevent, getsockname, getpeername, accept e accept4 foram liberadas de bloqueios. Uma interface do kernel para funções atômicas load e store foi adicionada, permitindo o uso de tipos int e long em elementos de estruturas que utilizam contagem de referências.
- A implementação do framework drm (Direct Rendering Manager) foi sincronizada com o kernel Linux 5.15.26 (na versão anterior — 5.10.65). No driver inteldrm, foi adicionada a suporte para chips Intel baseados nas microarquiteturas Elkhart Lake, Jasper Lake e Rocket Lake. No driver amdgpu, foi acrescentado suporte para APU/GPU Van Gogh, Rembrandt "Yellow Carp" Ryzen 6000, Navi 22 "Navy Flounder", Navi 23 "Dimgrey Cavefish" e Navi 24 "Beige Goby".
- A biblioteca FreeType inclui renderização de subpixel para fontes.
- Uma utilidade realpath foi adicionada para exibir o caminho absoluto para um arquivo.
- Na utilidade rcctl, foi adicionada o comando "ls rogue" para mostrar processos em segundo plano que estão em execução, mas não estão incluídos no rc.conf.local.
- No BPFtrace, foi implementado suporte para variáveis em verificações. Scripts kprofile.bt para perfil de pilha de kernel e runqlat.bt para identificar atrasos no agendador foram adicionados ao btrace.
- Na libc, foi adicionado suporte à RFC6840, que define suporte para a flag AD e a configuração ‘trust-ad’ para DNSSEC.
- No apm e apmd, foi incluída a exibição do tempo estimado para recarga da bateria.
- Foi disponibilizada a possibilidade de armazenar o banco de dados capability em /etc/login.conf.d para facilitar a adição de classes de contas personalizadas a partir de pacotes.
- No malloc, foi implementado caching para regiões de memória de 128k a 2M.
- No arquivador pax, foi adicionado suporte para cabeçalhos estendidos com dados mtime, atime e ctime.
- As utilidades gzip e gunzip ganharam a opção "-k" para preservar o arquivo original.
- Na utilidade openrsync, foram adicionadas as opções: "—compare-dest" para verificar a presença de arquivos em diretórios adicionais; "—max-size" e "—min-size" para limitar o tamanho dos arquivos.
- Foi adicionada a comando seq para gerar sequências numéricas.
- Do FreeBSD 13, foi trazida a implementação universal de funções trigonométricas (implementações em assembly para x86 foram desativadas).
- Do FreeBSD, foram trazidas as implementações das funções lrint, lrintf, llrint e llrintf (anteriormente foi utilizada a implementação do NetBSD).
- A utilidade fdisk contém numerosas alterações e correções relacionadas ao trabalho com partições de disco.
- Adicionada suporte para novo hardware, incluindo o controlador Intel PCH GPIO (para plataformas Cannon Lake H e Tiger Lake H), RTC NXP PCF85063A/TP, UART Designware da Synopsys, Ethernet Intel 2.5Gb, SIMCom SIM7600, RTL8156B, wifi USB MediaTek MT7601U, wifi BCM4387.
- Incluídas firmwares relicitadas para chips wireless Realtek, permitindo o uso dos drivers rsu, rtwn e urtwn sem a necessidade de carregar firmwares manualmente.
- Os drivers ixl (Intel Ethernet 700), ix (Intel 82598/82599/X540/X550) e aq (Aquantia AQC1xx) agora incluem suporte para o processamento de tags VLAN de hardware e cálculo/verificação de somas de verificação para IPv4, TCP4/6 e UDP4/6.
- Adicionado driver de som para chips Intel Jasper Lake. Suporte adicionado para o controlador de jogo Xbox One.
- No stack wireless IEEE 802.11, suporte para canais de 40MHz foi implementado para o modo 802.11n e suporte inicial para o padrão 802.11ac (VHT). Para os drivers, um manipulador opcional de varredura em segundo plano foi adicionado. Ao escolher um ponto de acesso, agora são priorizados os pontos com canais de 5GHz, seguindo-se os pontos com canais de 2GHz.
- A implementação do driver vxlan foi reescrita para funcionar independentemente da subsistema bridge.
- No instalador, a lógica para chamar a utilidade pkg_add foi reformulada para reduzir a intensidade do movimento de arquivos durante a atualização. O processo de configuração para instalação e atualização foi documentado no arquivo install.site. Firmwares permitidos para uso em produtos de terceiros foram adicionados para todas as arquiteturas. A utilidade fw_update foi implementada para instalar firmwares proprietários disponíveis no meio de instalação.
- No xterm, o rastreamento do mouse foi desativado por padrão por motivos de segurança.
- No usbhidctl e usbhidaction, o acesso ao sistema de arquivos foi isolado usando a chamada de sistema unveil.
- No dhcpd, a anexação aos interfaces de rede inativos ('down') é garantida por padrão, para permitir a recepção de pacotes assim que a interface de rede for ativada.
- No OpenSMTPD (smtpd), a verificação TLS para conexões de saída 'smtps://' e 'smtp+tls://' foi ativada por padrão.
- No httpd foi implementada a verificação da versão do protocolo, adicionada a possibilidade de definir arquivos personalizados com textos de erro e melhorado o tratamento de dados compactados, incluindo a opção gzip-static em httpd.conf para entrega de arquivos anteriormente compactados com a indicação de gzip no cabeçalho content-encoding.
- No IPsec, o parâmetro proto em iked.conf agora permite a especificação de uma lista de protocolos. A ferramenta ikectl ganhou o comando "show certinfo" para exibir autoridades certificadoras e certificados confiáveis. Em iked, a manipulação de mensagens fragmentadas foi aprimorada.
- No rpki-client, foi adicionada compatibilidade para verificação das chaves públicas do BGPsec Router e melhorada a verificação de certificados X509. Foi incluído um cache de arquivos verificados. A compatibilidade com a RFC 6488 foi aprimorada.
- No bgpd, foi adicionado o parâmetro "port", que pode ser utilizado nas seções "listen on" e "neighbor" para vinculação a um número de porta de rede não padronizado. O código foi refatorado para trabalhar com a RIB (Routing Information Base), levando em consideração o suporte futuro a multipath.
- No gerenciador de janelas de console tmux ("terminal multiplexer"), foram ampliadas as capacidades para saída colorida. Foram adicionados os comandos pane-border-format, cursor-colour e cursor-style.
- No LibreSSL, foi realizado o porting do OpenSSL para suporte à RFC 3779 (extensões X.509 para endereços IP e sistemas autônomos) e ao mecanismo de Certificate Transparency (um log público independente de todos os certificados emitidos e revogados, que possibilita a auditoria independente de todas as alterações e ações das autoridades certificadoras, além de permitir a detecção imediata de tentativas de criar registros falsos de forma oculta). A compatibilidade com o OpenSSL 1.1 foi significativamente melhorada e foram utilizados nomes de cifras idênticos aos do OpenSSL para TLSv1.3. Muitas funções foram convertidas para utilizar calloc(). Uma quantidade considerável de novas chamadas foi adicionada ao libssl e libcrypto.
- O pacote OpenSSH foi atualizado. Uma visão detalhada das melhorias pode ser vista nas análises do OpenSSH 8.9 e OpenSSH 9.0. A ferramenta scp foi configurada por padrão para usar SFTP em vez do protocolo SCP/RCP obsoleto.
- O número de ports para a arquitetura AMD64 foi de 11301 (anteriormente 11325), para a aarch64 — 11081 (anteriormente 11034), para a i386 — 10136 (anteriormente 10248). Entre as versões dos aplicativos nos ports: Asterisk 16.25.1, 18.11.1 e 19.3.1, Audacity 2.4.2, CMake 3.20.3, Chromium 100.0.4896.75, Emacs 27.2, FFmpeg 4.4.1, GCC 8.4.0 e 11.2.0, GNOME 41.5, Go 1.17.7, JDK 8u322, 11.0.14 e 17.0.2, KDE Applications 21.12.2, KDE Frameworks 5.91.0, Krita 5.0.2, LLVM/Clang 13.0.0, LibreOffice 7.3.2.2, Lua 5.1.5, 5.2.4 e 5.3.6, MariaDB 10.6.7, Mono 6.12.0.122, Firefox 99.0 e ESR 91.8.0, Thunderbird 91.8.0, Mutt 2.2.2 e NeoMutt 20211029, Node.js 16.14.2, OpenLDAP 2.4.59, PHP 7.4.28, 8.0.17 e 8.1.4, Postfix 3.5.14, PostgreSQL 14.2, Python 2.7.18, 3.8.13, 3.9.12 e 3.10.4, Qt 5.15.2 e 6.0.4, R 4.1.2, Ruby 2.7.5, 3.0.3 e 3.1.1, Rust 1.59.0, SQLite 2.8.17 e 3.38.2, Shotcut 21.10.31, Sudo 1.9.10, Suricata 6.0.4, Tcl/Tk 8.5.19 e 8.6.8, TeX Live 2021, Vim 8.2.4600 e Neovim 0.6.1, Xfce 4.16.
- Componentes de terceiros incluídos no OpenBSD 7.1 foram atualizados:
- O stack gráfico Xenocara com base no X.Org 7.7 com xserver 1.21.1 + patches, freetype 2.11.0, fontconfig 2.12.94, Mesa 21.3.7, xterm 369, xkeyboard-config 2.20, fonttosfnt 1.2.2.
- LLVM/Clang 13.0.0 (+ patches)
- GCC 4.2.1 (+ patches) e 3.3.6 (+ patches)
- Perl 5.32.1 (+ patches)
- NSD 4.4.0
- Unbound 1.15.0
- Ncurses 5.7
- Binutils 2.17 (+ patches)
- Gdb 6.3 (+ patch)
- Awk 12.10.2021
- Expat 2.4.7
Fonte: opennet.ru
