Após mais de um ano de desenvolvimento, foi lançado o DragonFlyBSD 6.0, um sistema operacional com um núcleo híbrido, criado em 2003 com o objetivo de oferecer uma alternativa ao desenvolvimento do ramo FreeBSD 4.x. Entre as características do DragonFly BSD, destacam-se o sistema de arquivos distribuído e versionado HAMMER, suporte para a inicialização de núcleos 'virtuais' do sistema como processos de usuário, capacidade de cache de dados e metadados do sistema de arquivos em SSDs, considerando links simbólicos variantes em contexto, a possibilidade de congelar processos mantendo seu estado no disco, e um núcleo híbrido que utiliza threads leves (LWKT).
Principais melhorias adicionadas no DragonFlyBSD 6.0:
- O sistema de cache na Virtual File System (vfs_cache) foi modernizado. A mudança melhorou a confiabilidade e aumentou o desempenho dos sistemas de arquivos. O cache de caminhos completos foi aprimorado com a chamada cache_fullpath().
- A utilidade dsynth, destinada à compilação local e manutenção de repositórios binários DPort, foi significativamente aprimorada. A nova versão permite especificar explicitamente ports-mgmt/pkg para compilar pacotes, adicionou suporte ao algoritmo ZSTD, e no comando 'prepare-system' assegura a remoção de pacotes obsoletos, além de oferecer a possibilidade de uso do ccache durante a compilação.
- O trabalho no sistema de arquivos HAMMER2 foi continuado, que se destaca por funções como montagem separada de snapshots, snapshots graváveis, cotas em nível de diretório, espelhamento incremental, suporte a vários algoritmos de compressão de dados, e espelhamento multi-master com distribuição de dados em vários hosts. A nova versão adicionou suporte inicial para multi-volume, permitindo combinar vários discos locais em uma única partição (o modo de rede multi-master ainda não é suportado). Implementou-se a possibilidade de aumentar o tamanho da partição (adicionada a comando hammer2 growfs). Problemas sérios com deduplicação foram corrigidos.
- O desempenho do sistema de arquivos tmpfs foi significativamente aprimorado. A utilidade mounttmpfs foi adicionada para facilitar a colocação de /tmp e /var/run em tmpfs.
- Foi adicionada a implementação do sistema de arquivos Ext2, que não contém código sob a licença GPL.
- Foram feitas mudanças significativas no sistema de memória virtual, incluindo a remoção do suporte ao mmap() MAP_VPAGETABLE, necessário para o funcionamento do vkernel (núcleos virtuais executados como um processo de usuário). No próximo lançamento, planeja-se retornar o vkernel, reformulando-o com base no HVM.
- A implementação das chamadas callout*() foi reformulada.
- Apoio ao framebuffer EFI foi melhorado.
- Suporte ao evdev foi adicionado ao driver sysmouse.
- Foram adicionadas chamadas clock_nanosleep, fexecve, getaddrinfo e timeout. Implementado suporte a fcntl(F_GETPATH) e às flags IP_SENDSRCADDR e SO_PASSCRED.
- Uma subsistema kmalloc_obj foi adicionada ao núcleo, permitindo reduzir a fragmentação da memória.
- Foi transferido do FreeBSD o suporte ao driver amdsmn para a subsistema SMN (System Management Network) dos processadores AMD.
- No devd, foi garantida a detecção automática de adaptadores sem fio e a criação de interfaces de rede wlanX para eles.
- O tipo sysclock_t foi convertido de 32 para 64 bits.
- A cadeia de execução de chamadas de sistema foi otimizada.
- O funcionamento sob condições de escassez de memória foi otimizado.
- O mecanismo de ambientes isolados Jail foi amplamente reestruturado. A estrutura dos parâmetros sysctl jail.* foi reorganizada.
- Suporte a controladores Ethernet Intel I219 foi adicionado e o suporte a chips Realtek foi ampliado. No driver bnx, foi adicionado suporte aos chips Broadcom NetXtreme 57764, 57767 e 57787.
- O stack de rede recebeu suporte à família de endereços AF_ARP, representando endereços ARP.
- Os componentes da interface DRM (Direct Rendering Manager) foram sincronizados com o núcleo Linux 4.10.17. O driver drm/i915 para GPUs Intel foi atualizado.
- A largura de banda padrão da porta serial foi aumentada de 9600 para 115200 bps.
- A utilidade ifconfig recebeu a opção "-f" e a possibilidade de filtrar a saída por grupos de interfaces.
- As implementações das utilidades shutdown, reboot, printf, test, sh, efivar, uefisign foram sincronizadas com o FreeBSD.
- Os jogos ching, gomoku, monop e cgram foram transferidos do NetBSD.
- As utilidades efidp e efibootmgr foram incluídas.
- As capacidades da biblioteca pthreads foram expandidas, com a adição do suporte a pthread_getname_np().
- A biblioteca libstdbuf foi transferida do FreeBSD.
- Suporte a sockaddr_snprintf() foi adicionado ao libutil, transferido do NetBSD.
- No instalador, o uso de caracteres especiais em senhas foi permitido.
- O pacote zstd (versão 1.4.8) foi incluído na composição básica.
- As versões dos componentes de terceiros foram atualizadas, incluindo dhcpcd 9.4.0, grep 3.4, less 551, libressl 3.2.5, openssh 8.3p1, tcsh 6.22.02, wpa_supplicant 2.9. Por padrão, o compilador gcc-8 é utilizado.
Fonte: opennet.ru
