Um ano e meio após a formação da atualização anterior, foi lançado o sistema operacional NetBSD 10. As imagens de instalação, com um tamanho de 630 MB, estão disponíveis em compilações para 57 arquiteturas de sistema e 16 diferentes famílias de CPU. Este novo ramo inclui uma série de melhorias significativas, como suporte a listas de controle de acesso no sistema de arquivos FFS, otimização considerável de desempenho, criptografia de disco usando o algoritmo Adiantum e implementação no núcleo de drivers para VPN WireGuard.
O projeto suporta 8 portas principais, que formam o núcleo da estratégia de desenvolvimento do NetBSD: amd64, i386, evbarm, evbmips, evbppc, hpcarm, sparc64 e xen, além de 49 portas secundárias, relacionadas a CPUs como alpha, hppa, m68010, m68k, sh3, sparc e vax. As portas secundárias ainda são suportadas, mas já perderam relevância ou não têm um número suficiente de desenvolvedores interessados em seu desenvolvimento. Uma porta (acorn26) está na terceira categoria, onde estão as portas não funcionais que podem ser removidas caso não apareçam entusiastas interessados em seu desenvolvimento.
Principais melhorias no NetBSD 10:
- Suporte a listas de controle de acesso (POSIX.1e ACL) foi adicionado ao sistema de arquivos FFS, implementado usando atributos estendidos de arquivo e transferido do FreeBSD. Um novo tipo de sistema de arquivos FFSv2ea (não usado por padrão) foi proposto para permitir o uso de ACL, ao qual é possível migrar os sistemas de arquivos existentes com a ferramenta fsck_ffs.
- Adicionado o interface de rede wg com implementação VPN, compatível com WireGuard.
- O desempenho foi otimizado. A eficiência do cache de caminhos de arquivos no núcleo foi aumentada. O desempenho do planejador de tarefas, adaptado para sistemas Arm big.LITTLE que combinam núcleos de CPU rápidos e lentos, foi aprimorado. O desempenho das chamadas de sistema select e poll foi melhorado. O desempenho do sistema de arquivos tmpfs foi otimizado. O processo de inicialização foi acelerado. Foram adicionadas otimizações específicas para as arquiteturas x86 e AArch64. A largura de banda de operações de entrada e saída, bem como operações de rede em sistemas AArch64, foi aumentada.
- Foram feitas otimizações no sistema de memória virtual: um algoritmo radix tree mais rápido foi utilizado para buscar páginas de memória, aumentando a velocidade do rastreamento de páginas limpas e sujas, acelerando significativamente a operação fsync para arquivos grandes, melhorando o funcionamento com bloqueios e aumentando a eficiência da execução paralela de operações.
- Adicionada a suporte para criptografia de discos usando o algoritmo Adiantum, que permite alta eficiência em sistemas sem aceleração de hardware para criptografia AES. O utilitário cgdconfig agora suporta chaves compartilhadas, que podem ser usadas para criptografar múltiplos dispositivos de armazenamento. O algoritmo de hashing de senhas padrão foi alterado para Argon2id. A criptografia automática de partições de swap foi ativada (vm.swap_encrypt=1). Adicionada suporte a mecanismos de aceleração de criptografia de hardware fornecidos por processadores x86 e Arm, como instruções para acelerar AES e ChaCha. A implementação de software do AES fornecida pelo kernel garante um tempo de execução constante para todas as arquiteturas.
- Adicionada suporte a extensões de segurança fornecidas em processadores Armv8-A: PAN (Privileged Access Never), PA (Pointer Authentication), BTI (Branch Target Identification).
- Para identificar problemas de segurança no kernel, foram utilizados os mecanismos Kernel Concurrency Sanitizer e Kernel Memory Sanitizer.
- No stack de rede, foi implementado o RFC 7048, que melhora o funcionamento do mecanismo IPv6 Neighbor Discovery, tornando-o independente de endereços.
- Adicionado um novo interface de rede lagg para agregação de links de rede e garantia de redundância (lagg substitui a interface agr).
- Adicionado driver vether com a implementação de interfaces Ethernet virtuais, que podem ser usadas em bridges de rede e no lugar de interfaces tap.
- Na implementação do ipsec, adicionada sysctl net.key.allow_different_idtype para melhorar a compatibilidade com outras VPNs.
- Melhorou o suporte ao formato UDF (Universal Disk Format, sistema de arquivos para discos ópticos), que agora é compatível em nível de erros com a implementação do Windows 10. O utilitário newfs_udf agora pode criar no formato UDF 2.50 com uma partição separada para metadados. Adicionado utilitário fsck_udf para verificação e recuperação de sistemas de arquivos UDF com falhas.
- Adicionada suporte ao ZFS no utilitário fstat.
- O suporte ao mecanismo FUSE (Filesystem in Userspace) foi ampliado, e o driver refuse agora oferece suporte total às variantes da API FUSE usadas nas versões do FUSE de 1.1 a 3.10.
- Foi adicionada ao RAID a implementação de software a capacidade de configurar ordens de bytes invertidas (swapped-endian). A utilidade raidctl ganhou a opção "-t" para verificar a validade dos arquivos de configuração.
- Foi adicionada uma nova utilidade blkdiscard para realizar manualmente operações TRIM em discos para informar sobre blocos não utilizados.
- A utilidade scan_ffs agora pode mostrar estatísticas atuais ao receber o sinal SIGINFO (Ctrl+T).
- Novos programas foram incluídos:
- aiomixer — mixer de áudio.
- realpath — exibe o caminho absoluto do arquivo com base no caminho relativo.
- tradcpp — pré-processador estilo K&R C.
- ioctlprint — exibe valores de ioctl.
- testpat — exibe uma tabela de teste para avaliar a reprodução de cores da tela.
- warp — um jogo clássico de sistemas BSD.
- Foram incluídas e estão ativas na ctwm as fontes raster Spleen, fornecidas sob licença BSD e disponíveis tanto para telas de baixa resolução quanto para telas de alta densidade de pixels. Também foram incluídas fontes de console Terminus.
- Foi adicionada ao módulo de compatibilidade com Linux (compat_linux) o suporte para mecanismos eventfd, timerfd, temporizadores POSIX, preadv e pwritev.
- O suporte à virtualização foi melhorado. Adicionou-se suporte ao Xen PVH, permitindo o uso de drivers Xen PV em sistemas convidados baseados em HVM, e a implementação de interfaces de rede paravirtualizadas foi aprimorada. Nos núcleos de host (Dom0) para Xen, foi adicionado suporte a sistemas multiprocessados. Nos núcleos para Xen, também foi possibilitado o uso de módulos comuns ao núcleo normal. Dispositivos de rede (xennet) e blocos (xbd) foram adaptados para sistemas multiprocessados (receberam status MPSAFE). O suporte ao hipervisor HyperV foi significativamente aprimorado e as capacidades do hipervisor nvmm (NetBSD Virtual Machine Monitor) foram expandidas. Foi adicionada a possibilidade de entrar em modo de espera ao executar máquinas virtuais no nvmm.
- Os drivers VirtIO foram melhorados, agora implementando o suporte à especificação VirtIO 1.0. Foi adicionado o driver vio9p para montar sistemas de arquivos VirtIO 9P em sistemas convidados, exportados pelo ambiente host. Foi adicionado o driver viocon para a porta serial virtual.
- Chamadas de sistema eventfd e timerfd foram implementadas, compatíveis com o Linux e utilizadas em compat_linux. A chamada de sistema fexecve para execução de arquivos através de um descritor de arquivo foi adicionada.
- Componentes obsoletos foram removidos, por exemplo, o suporte às tecnologias HIPPI, FDDI e TokenRing foi descontinuado. Os drivers nsmb e mount_smbfs foram removidos do kernel para o SMBFS (não suportam novas versões do protocolo SMB), o suporte ao IPv6 Router Advertisement foi movido do kernel para o espaço do usuário e bibliotecas como libXTrap, libXevie e libglut foram eliminadas, assim como os drivers de muitos dispositivos antigos.
- O suporte ao hardware foi significativamente ampliado. O suporte a novos recursos dos processadores Intel e AMD foi garantido. O suporte a novas placas ARM foi adicionado (Raspberry Pi 4, Orange Pi 5, Lichee Pi Zero, ODROID-N2+, M1 Mac Mini, HummingBoard Pulse, UDOO Neo Full, PINE64 Quartz64, Asus Tinker, etc.). O suporte à arquitetura MIPS foi estendido.
- 17 novos drivers de dispositivos foram adicionados, incluindo drivers para tablets Wacom, Ethernet Realtek 8125 2.5 Gigabit, Ethernet Motorcomm YT8511C / YT8511H Gigabit, Ethernet Intel 700, Ethernet Broadcom GENETv5, aceleradores criptográficos Intel QuickAssist e modems LTE Intel XMM7360.
- Os drivers gráficos para GPUs Intel, NVIDIA e AMD para sistemas x86 foram atualizados. O subsistema DRM/KMS foi sincronizado com o kernel Linux 5.6.
- Versões de componentes de terceiros foram atualizadas, incluindo o gerenciador de janelas ctwm 4.0.3, gcc 10.5, lua 5.4.6, OpenSSL 3.0.12, postfix 3.8.4, tmux 3.2a, OpenSSH 9.6, X.org Server 21.1.7, BIND 9.18.24, Heimdal kerberos 7.8.0, unbound 1.19.1, wpa_supplicant 2.9, OpenLDAP 2.5.6, binutils 2.34, libfido2 1.13.0, pam-u2f 1.2.0, zlib 1.2.13.
Fonte: opennet.ru
