Após seis meses de desenvolvimento, foi lançado o FreeBSD 14.1. Imagens de instalação foram preparadas para as arquiteturas amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv7, aarch64 e riscv64. Além disso, foram preparadas compilações para sistemas de virtualização (QCOW2, VHD, VMDK, raw) e ambientes em cloud como Amazon EC2, Google Compute Engine e Vagrant.
Principais mudanças:
- Foi realizado um trabalho de melhoria na pilha de áudio. Implementou-se a capacidade de desconectar dispositivos de áudio de forma assíncrona, o que é necessário, por exemplo, para desconectar placas de som com interface USB a quente. O framework snd_clone e os parâmetros sysctl relacionados foram removidos, o que simplificou a subsistema de áudio. Agora, em vez de arquivos de dispositivos separados para cada canal de áudio (/dev/dspX.Y), é criado apenas o arquivo principal do dispositivo (/dev/dspX).
- As funções para manipulação de strings e memória na libc foram otimizadas com o uso de instruções SIMD em sistemas com arquitetura AMD64. Foram propostas 17 funções otimizadas utilizando SIMD, além de 9 funções convertidas para chamadas de funções otimizadas via SIMD. Durante os testes, o desempenho das novas funções no processamento de strings de 64 caracteres aumentou em 5,54 vezes.
- Adicionada suporte nativa para configuração utilizando cloud-init, uma ferramenta para configuração de sistema durante a fase de inicialização. Entre outras funcionalidades, suporta a criação de usuários/grupos, adição de chaves SSH, configuração de parâmetros de rede, definição do script inicial nuageinit e configuração de partições de disco (config-drive). A implementação é compatível com OpenStack e muitos para PrestaShop-fornecedores.
- Para novos sistemas de arquivos UFS2 criados pela ferramenta newfs, o journaling (soft updates) está habilitado por padrão.
- Foi disponibilizada a possibilidade de compilar o kernel apenas com suporte a IPv6 (INET6), sem IPv4 (INET).
- Na ferramenta adduser, utilizada no bsdinstall, foi garantida a criação de um dataset ZFS separado (partição, snapshot ou clone) para o diretório home do usuário, caso um dataset ZFS já esteja sendo utilizado para o diretório pai. Também foi adicionada a possibilidade de usar criptografia nos diretórios home através do ZFS. Para gerenciar a ativação desses recursos, foram adicionados os parâmetros "Zcreate" e "Zencrypt" no adduser.conf.
- Na biblioteca «libutil», a função «setusercontext» ganhou suporte para definir a prioridade dos processos com base nas configurações do arquivo «.login.conf», localizado no diretório home. Ao definir a prioridade ou umask, foi adicionado o suporte para o valor «inherit», onde a prioridade e o umask são definidos como os do processo pai.
- Na ferramenta «date», foi adicionado suporte para precisão em nanossegundos, por exemplo, «date -Ins» exibirá «2024-06-04T10:20:28,763742224+05:00», enquanto «date +%N» exibirá «415050400».
- Na ferramenta «dtrace», foi implementada a capacidade de gerar saídas em formatos que são convenientes para análise e visualização automática, como JSON, XML e HTML.
- Na ferramenta «usbconfig», foi incorporada a capacidade de exibir informações adicionais sobre dispositivos USB e fabricantes, conforme as descrições do arquivo /usr/share/misc/usb_vendors.
- No driver «ice», foi adicionado suporte para controladores Ethernet Intel E800 com largura de banda de 100 Gb/s.
- No driver Ethernet «msc», foi adicionado suporte para definir o endereço MAC com base no parâmetro «smsc95xx.macaddr», transmitido por alguns modelos de placas Raspberry Pi.
- Foram realizados esforços para aumentar a estabilidade do driver «iwlwifi» para chips sem fio da Intel.
- Adicionada a possibilidade de usar várias áreas PCI MCFG em sistemas amd64 e i386 para segmentar o espaço de endereçamento dos dispositivos PCI.
- Expandido o suporte a hardware.
- No manipulador NFS «mountd», a biblioteca «strunvis» foi utilizada para decodificar nomes de diretórios no arquivo «exports», permitindo o uso de caracteres especiais nos nomes de diretórios, como espaços. Novas variáveis sysctl, kern.rpc.unenc e kern.rpc.tls, foram adicionadas para configurar NFS-over-TLS.
- No carregador, foi garantida a leitura de arquivos de configuração listados na variável local_loader_conf_files, após os arquivos de configuração definidos no arquivo /boot/loader.conf.local. Também foi adicionada a capacidade de extrair configurações do SMBIOS em relação aos identificadores de fabricante e produto. Melhorada a detecção do console em sistemas com EFI. A implementação do framebuffer no carregador agora pode utilizar drivers de vídeo para console.
- Implementada a possibilidade de usar o carregador LinuxBoot (loader.kboot) para inicializar o FreeBSD a partir de ambientes baseados em Linux em sistemas aarch64 e amd64.
- No rc.conf foi adicionada a suporte ao parâmetro kdc_restart, que ativa a reinicialização automática do kdc (servidor Kerberos 5) em caso de falha. Adicionalmente, está disponível o parâmetro kdc_restart_delay, que permite definir um atraso antes da reinicialização.
- Por padrão, a fim de reduzir o tamanho dos relatórios enviados por e-mail, foram reduzidas as informações sobre as mudanças durante a execução de tarefas e scripts agendados que verificam a segurança. Para ajustar o nível de saída, podem ser utilizados os parâmetros daily_diff_flags e security_status_diff_flags em periodic.conf.
- As versões dos componentes de terceiros foram atualizadas: Clang/LLVM 18.1.5, OpenZFS 2.2.4, OpenSSH 9.7p1, awk 2024-01-22 (com suporte a UTF-8 e modo "-csv"), libarchive 3.7.4, sendmail 8.18.1, unbound 1.20.0.
Fonte: opennet.ru
