Após sete meses de desenvolvimento, foi lançado o DragonFlyBSD 6.2, um sistema operacional com um núcleo híbrido, criado em 2003 com o objetivo de desenvolvimento alternativo da linha FreeBSD 4.x. As características do DragonFly BSD incluem um sistema de arquivos de versão distribuída chamado HAMMER, suporte para carregar "núcleos virtuais" do sistema como processos de usuário, capacidade de cache de dados e metadados do sistema de arquivos em SSDs, links simbólicos variáveis que consideram o contexto, capacidade de congelar processos mantendo seu estado em disco, e um núcleo híbrido que utiliza threads leves (LWKT).
As principais melhorias adicionadas no DragonFlyBSD 6.2:
- O hipervisor NVMM foi transferido do NetBSD, suportando mecanismos de virtualização de hardware SVM para CPUs AMD e VMX para CPUs Intel. No NVMM, apenas o conjunto mínimo necessário de ligações em torno dos mecanismos de virtualização de hardware é executado no nível do núcleo, enquanto todo o código de emulação de hardware funciona no espaço do usuário. Para tarefas como criação máquinas virtuais, alocação de memória e distribuição de VCPU, é utilizada uma ferramenta baseada na biblioteca libnvmm, e para iniciar sistemas convidados, é utilizado o pacote qemu-nvmm.
- O trabalho na sistema de arquivos HAMMER2 foi continuado, que é notável por funções como montagem separada de snapshots, snapshots graváveis, cotas a nível de diretórios, espelhamento incremental, suporte a vários algoritmos de compressão de dados, espelhamento multi-mestre com distribuição de dados em vários hosts. A nova versão implementou suporte ao comando growfs, que permite redimensionar uma partição existente do HAMMER2. Também foi incluído suporte experimental ao componente xdisk, que permite montar partições do HAMMER2 de sistemas remotos.
- Os componentes da interface DRM (Direct Rendering Manager), o gerenciador de vídeo TTM e o driver amdgpu foram sincronizados com o núcleo Linux 4.19, o que possibilitou suporte a chips AMD até o APU 3400G. O driver drm/i915 para GPU Intel foi atualizado, incluindo suporte para GPU Whiskey Lake e resolvendo um problema de falhas durante a inicialização. O driver Radeon foi reestruturado para utilizar o gerenciador de vídeo TTM.
- No chamado poll, foi implementado suporte para o evento POLLHUP, retornado ao fechar a segunda extremidade de um canal nomeado ou FIFO.
- O núcleo melhorou significativamente os algoritmos de gerenciamento de páginas de memória, aumentando a eficiência na seleção de páginas para serem movidas para a área de troca e melhorando consideravelmente o comportamento de aplicativos que consomem muitos recursos, como navegadores, em sistemas com pouca memória.
- O cálculo do valor maxvnodes foi alterado para reduzir o consumo de memória pelo núcleo, já que o cache de um número excessivo de vnode pode diminuir a eficiência, por exemplo, se os blocos de dados forem também armazenados em cache no nível do dispositivo de bloco.
- O utilitário fstyp agora oferece suporte ao sistema de arquivos BeFS. O makefs do FreeBSD foi atualizado para incluir suporte ao sistema de arquivos FAT. O desempenho das utilidades fsck e fdisk foi aprimorado. Erros no código ext2fs e msdosfs foram corrigidos.
- Adicionado o ioctl SIOCGHWADDR para obter o endereço físico da interface de rede.
- O ipfw3nat agora suporta NAT para pacotes ICMP, implementado através da reutilização do icmp idport.
- O driver ichsmb agora suporta controladores Intel ICH SMBus para os chips Cannonlake, Cometlake, Tigerlake e Geminilake.
- A geração de arquivos initrd foi transferida do uso de vn para makefs.
- A biblioteca padrão libc adicionou as funções getentropy(), clearenv() e mkdirat(). A compatibilidade da implementação do shm_open() e /var/run/shm com outros sistemas foi melhorada. Tipos específicos de plataforma __double_t e __float_t foram adicionados. As funções relacionadas à criptografia foram restauradas na libdmsg. A performance das pthreads foi aprimorada.
- No utilitário dsynth, destinado à compilação local e manutenção de repositórios binários DPort, foi adicionada a opção "-M" e a variável PKG_COMPRESSION_FORMAT. O suporte ao gerenciador de pacotes pkg 1.17 e a segunda versão dos metadados pkg foi garantido.
- Importados PAM-library OpenPAM Tabebuia, utilitário de verificação de senhas passwdqc 2.0.2, pacotes mandoc 1.14.6, OpenSSH 8.8p1, dhcpcd 9.4.1 e file 5.40.
- Uma vulnerabilidade localmente explorável no núcleo que permitia que um usuário aumentasse seus privilégios no sistema foi corrigida (CVE não divulgada).
- O driver ndis, que permitia o uso de drivers binários NDIS do Windows, foi removido.
- O suporte ao formato de arquivos executáveis a.out foi encerrado.
Fonte: opennet.ru
