Lançamento do FreeBSD 13.0

Após dois anos e meio desde a formação da linha 12.x, é lançado o FreeBSD 13.0, que é preparado para as arquiteturas amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 e riscv64. Imagens para sistemas de virtualização (QCOW2, VHD, VMDK, raw) e ambientes de nuvem Amazon EC2, Google Compute Engine e Vagrant também foram criadas.

Principais novidades:

  • Foi realizada a transição para uma implementação unificada do sistema de arquivos ZFS em Linux, proveniente do projeto OpenZFS. Entre as funcionalidades que se tornaram disponíveis no FreeBSD após a transição para o OpenZFS estão: um sistema de quotas avançado, criptografia de conjuntos de dados, seleção separada de classes de alocação (allocation classes), utilização de instruções de processadores vetoriais para acelerar a implementação do RAIDZ e o cálculo de somas de verificação, suporte ao algoritmo de compressão ZSTD, modo multihost (MMP, Multi Modifier Protection), ferramentas de linha de comando aprimoradas e a correção de muitos erros relacionados a condições de corrida e bloqueios.
  • O port para a arquitetura ARM64 (AArch64) foi movido para o primeiro nível de suporte (Tier 1), que está sob a responsabilidade de equipes encarregadas de resolver vulnerabilidades, preparar lançamentos e manter ports. O primeiro nível de suporte implica a formação de builds de instalação, atualizações binárias e pacotes prontos, além de garantir a resolução de problemas específicos e a manutenção da compatibilidade ABI para o ambiente do usuário e o núcleo (exceto por algumas subsistemas).
  • A arquitetura i386 foi movida para o segundo nível de suporte (Tier 2), no qual a formação de builds de instalação, atualizações binárias e pacotes prontos continuará, mas não garantirá a resolução de problemas específicos. O tipo de CPU (CPUTYPE) para a arquitetura i386 foi alterado de 486 para 686 por padrão (se desejado, builds para i486 e i586 podem ser gerados manualmente).
  • Os componentes clang, lld, lldb, compiler-rt, llvm, libunwind e libc++ foram atualizados para a versão 11.
  • O desenvolvimento foi transferido do sistema centralizado de controle de fontes Subversion para o sistema descentralizado Git.
  • A limpeza do sistema básico foi realizada, removendo aplicativos licenciados sob a GPL. O diretório de código fonte teve os binutils 2.17 e gcc 4.2.1 excluídos, e todas as arquiteturas suportadas foram transferidas para as ferramentas LLVM/clang. Foram incluídas as versões BSD das utilidades grep e dtc (Device Tree Compiler), que substituiram as versões licenciadas sob GPL. O processo de montagem automática amd foi removido, e sua funcionalidade agora é implementada via autofs. A utilidade ctm foi eliminada, sendo recomendada a utilização da porta misc/ctm.
  • A pilha de roteamento foi reescrita, adicionando suporte a objetos nexthop que armazenam dados sobre o estado utilizado para direcionar pacotes ao destino desejado. Agora é possível conectar algoritmos personalizados de busca de rotas. Foram adicionados algoritmos de busca de rotas do DPDK (Data Plane Development Kit) librte, que permitem otimizar o manuseio de tabelas de roteamento muito grandes. Para queries proxyarp, a interface fib foi utilizada. Foi adicionada a capacidade de alterar o número de fib em tempo real através do sysctl net.fibs. O suporte a rotas temporais para IPv4 e IPv6 foi implementado (com tempo de vida definido).
  • O suporte à Multipath-routing foi reescrito e tornado mais escalável, onde o tempo de busca não depende do tamanho da lista (O(1)). A nova implementação do Multipath agora está relacionada ao parâmetro do kernel ROUTE_MPATH, que substituiu o RADIX_MPATH e está habilitado por padrão. Para gerenciar o Multipath, foi proposto o sysctl net.route.multipath.
  • O framework criptográfico implementado a nível de kernel foi reformulado, o que agora oferece suporte a algoritmos criptográficos modernos e simplificou a interface para uso de criptografia em drivers e outros componentes do kernel. Algoritmos obsoletos como ARC4, Blowfish, CAST128, DES, MD5-HMAC e Skipjack foram removidos. No IPsec e Kerberos, o suporte a algoritmos considerados obsoletos no RFC 8221 e RFC 6649/8429, incluindo 3DES, foi encerrado. Algoritmos previamente declarados obsoletos na subsistema de criptografia de disco geli e cryptodev foram excluídos.
  • O kernel GENERIC agora inclui suporte para os drivers aesni e armv8crypto para acelerar a criptografia de disco baseada em geli usando instruções AES-NI para as arquiteturas amd64/i386 e AES-XTS para ARM64.
  • Foi adicionado o driver qat para os aceleradores criptográficos Intel QuickAssist (QAT) e o driver ossl com a implementação de procedimentos de criptografia acelerados do OpenSSL, otimizados por meio de código em assembler. O driver armv8crypto agora inclui suporte para AES-XTS e AES-GCM utilizando as instruções correspondentes dos processadores ARMv8.
  • Foi adicionada uma implementação TLS (kTLS) que opera no nível do kernel FreeBSD, permitindo um aumento significativo no desempenho de criptografia para sockets TCP. Suporta versões TLS de 1.0 a 1.3. Para criptografia, são utilizados drivers criptográficos do kernel que suportam AES-CBC ou AES-GCM. Para utilizar o kTLS no espaço do usuário, é necessário recompilar o OpenSSL com a opção WITH_OPENSSL_KTLS.
  • Foi adicionado um novo tipo de buffers de rede mbuf (network data buffer), que pode representar em um único buffer várias páginas de memória físicas não refletidas, aumentando assim o desempenho da chamada sendfile(2) ao reduzir o tamanho das listas de mbuf nos buffers dos sockets.
  • O stack TCP integrou o suporte ao algoritmo de redução proporcional da intensidade de envio de pacotes (Proportional Rate Reduction, RFC 6937), permitindo uma recuperação mais rápida das condições ideais do fluxo após problemas temporários na transmissão de dados. Para desabilitar o PRR, haverá um sysctl net.inet.tcp.do_prr.
  • Expandiram-se as capacidades do hipervisor Bhyve: foi adicionado o suporte para compartilhamento de arquivos por meio do VirtIO-9p (VirtFS). Implementou-se a possibilidade de trabalhar com snapshots. máquinas virtuaisFoi adicionado o suporte a dispositivos PCI HDAudio e portas seriais adicionais COM3 e COM4. Modelos de dispositivos desatualizados como bvmconsole e bvmdebug foram removidos. A estabilidade do trabalho com clientes VNC foi aprimorada, incluindo o aplicativo para macOS 'Screen Sharing'.
  • Os drivers VirtIO agora suportam a especificação VirtIO V1, melhorando a compatibilidade dos sistemas convidados com FreeBSD em diversos emuladores e hipervisores.
  • Para processos acoplados a ambientes jail, foi garante a conversão de vinculações a CPU (o cpuset inicialmente ligado ao processo será substituído considerando o cpuset do jail e as restrições estabelecidas).
  • Foi adicionada a capacidade de compilar o sistema base FreeBSD em ambientes com base em outros sistemas operacionais. A necessidade de compilar em outros sistemas é motivada pelo desejo de utilizar ferramentas de integração contínua ligadas ao Linux ou macOS para testar o FreeBSD.
  • Foi proposto um novo stack MMC/SD baseado no framework CAM, permitindo a conexão de dispositivos com interface SDIO (Secure Digital I/O). Por exemplo, SDIO é utilizado em módulos WiFi e Bluetooth para muitas placas, como a Raspberry Pi 3. O novo stack também permite usar a interface CAM para enviar comandos SD de aplicativos no espaço do usuário, possibilitando a criação de drivers de dispositivos que operam no nível do usuário.
  • A camada de compatibilidade com o Linux foi aprimorada. Os arquivos DTS (Device Tree Sources) foram sincronizados com o núcleo Linux 5.8.
  • Foi adicionada a suporte ao NFSv4.2 (RFC-7862) e implementada a possibilidade de operação do NFS sobre um canal de comunicação criptografado baseado em TLS 1.3, em vez de usar o Kerberos (modo sec=krb5p), que limitava a criptografia apenas das mensagens RPC e era implementado apenas por software.
  • A versão obsoleta do depurador GDB, que antes estava instalada no diretório /usr/libexec e era usada na ferramenta crashinfo, foi removida. Em vez do GDB pré-instalado para obter informações detalhadas sobre as causas da falha, agora é recomendável instalar uma versão mais recente do GDB a partir dos ports ou pacotes. O suporte para depuração de processos através do procfs foi interrompido. Um driver netgdb foi adicionado, permitindo acessar o depurador do núcleo pela rede.
  • A função insegura gets foi removida da libc (a partir do padrão C11 essa função foi excluída da especificação) e foram feitas correções nos ports que ainda usam essa função. As funções cap_random foram removidas (deve-se usar getrandom).
  • Foi adicionado um novo sistema de chamadas copy_file_range, compatível com a implementação do núcleo Linux, permitindo acelerar a cópia de dados de um arquivo para outro, graças à execução da operação apenas no lado do núcleo, sem leitura prévia dos dados na memória do processo. O sistema de chamada também é usado em servidor NFSv4.2 para a execução local de operações de cópia no servidor (sem transmissão ao cliente).
  • No mecanismo de entrada/saída assíncrono POSIX AIO, há suporte para funções vetorizadas. Em particular, foram adicionadas chamadas de sistema aio_writev e aio_readv, permitindo implementar equivalentes vetorizados das funções aio_read e aio_write.
  • O suporte aos componentes do espaço do usuário para o formato de arquivos executáveis a.out em sistemas com arquitetura i386 foi descontinuado. A utilidade elf2aout foi removida.
  • As utilidades ping e ping6 foram unificadas. O ping agora permite definir parâmetros de qualidade de serviço (QoS) por meio do IP DSCP e do Ethernet PCP.
  • Na utilidade freebsd-update, foi implementada a exibição do progresso de download dos arquivos e adicionadas as comandos updatesready e showconfig para verificar a disponibilidade de atualizações e mostrar a configuração.
  • Um grande esforço foi feito para melhorar o suporte a sistemas NUMA (Non-Uniform Memory Access).
  • Os drivers gráficos e componentes da pilha gráfica foram atualizados. Problemas relacionados ao funcionamento de ambientes baseados no protocolo Wayland foram resolvidos.
  • Foi adicionada uma subsistema de backlight para a criação de drivers de controle de iluminação. O driver pwm-backlight foi adicionado para gerenciar a iluminação do Pinebook e do Pinebook Pro.
  • O suporte ao protocolo SCTP foi transferido para um módulo separado sctp.ko, que está desativado por padrão no núcleo GENERIC.
  • Para dispositivos de entrada, foi proposto um novo driver usbhid, que utiliza o framework hid para interagir com dispositivos USB HID, em vez dos drivers ukbd, ums e uhid.
  • O driver cpufreq agora suporta a tecnologia Intel Speed Shift.
  • Foi adicionado suporte a novas placas baseadas em CPUs ARMv8 de 64 bits, incluindo SoC Broadcom BCM5871X e NXP LS1046A.
  • Para a arquitetura AMD64, foi implementado suporte a endereços virtuais de 57 bits (LA57). Adicionado suporte para CPUs x86 chinesas Hygon Dhyana, baseadas nas tecnologias da AMD.
  • O port para a arquitetura powerpc64 foi convertido para usar LLVM e ABI ELFv2 (arquivos binários de versões anteriores do FreeBSD não poderão ser usados no FreeBSD 13). Os drivers virtio, ixl, mrsas, aacraid e cpld foram portados para powerpc64.
  • Drivers para adaptadores Ethernet obsoletos foram removidos:
    • bm(4) BMAC
    • cs(4) Crystal Semiconductor CS8900/CS8920
    • de(4) DEC DC21x4x
    • ed(4) NE-2000 e WD-80×3
    • ep(4) 3Com Etherlink III (3c5x9) ISA
    • ex(4) Intel EtherExpress Pro/10 e Pro/10+
    • fe(4) Fujitsu MB86960A/MB86965A
    • hme(4) Sun Microelectronics STP2002-STQ
    • pcn(4) AMD PCnet
    • sf(4) Starfire
    • sn(4) SMC 91Cxx
    • tl(4) Texas Instruments ThunderLAN
    • tx(4) SMC 83c17x
    • txp(4) 3Com 3XP Typhoon/Sidewinder (3CR990)
    • vx(4) 3Com EtherLink III / Fast EtherLink III (3c59x) PCI
    • wb(4) Winbond W89C840F
    • xe(4) Xircom PCMCIA
  • Foram removidos os drivers ubsec (aceleradores criptográficos Broadcom BCM58xx), ufm (sintonizadores FM com interface USB), ctau (Cronix Tau), cx (Cronix Sigma) e vpo (SCSI de porta paralela).

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster