lançamento , um sistema operacional com um núcleo híbrido, em 2003 com o objetivo de um desenvolvimento alternativo da linha FreeBSD 4.x. Entre as características do DragonFly BSD, destaca-se o sistema de arquivos de versão distribuída , suporte para a inicialização de núcleos "virtuais" do sistema como processos de usuários, capacidade de cache de dados e metadados do sistema de arquivos em SSDs, considerando links simbólicos variantes que levam em conta o contexto, possibilidade de congelar processos mantendo seu estado no disco, e um núcleo híbrido que utiliza threads leves (LWKT).
Principais , adicionados ao DragonFlyBSD 5.8:
- Incluída na composição principal a ferramenta , destinada à construção local e manutenção de repositórios binários DPort. O suporte para paralelização da construção de um número arbitrário de portas é garantido, levando em conta a árvore de dependências. Durante a preparação de um novo lançamento no DPort, também foram feitas várias alterações voltadas para acelerar a construção de vários pacotes dependentes.
- No libc, foi implementado um mecanismo eficaz de mascaramento de sinais, que protege malloc*() e funções similares de problemas causados por interrupções de sinais. Para bloqueio e desbloqueio a curto prazo de sinais, foram propostas as funções sigblockall() e sigunblockall(), que funcionam sem a realização de chamadas de sistema. Além disso, a função strtok() no libc foi adaptada para uso em aplicações multithread, foram adicionadas as constantes TABDLY, TAB0, TAB3 e a função __errno_location para melhorar o suporte a dports.
- Os componentes da interface DRM (Direct Rendering Manager) estão sincronizados com o núcleo do Linux 4.9, com a portação de recursos individuais do núcleo 4.12, voltados para melhorar o suporte ao Wayland.
O driver drm/i915 para GPUs Intel está sincronizado com o núcleo do Linux 4.8.17, com a transferência de código do núcleo 5.4 para suportar novos chips (Skylake, Coffelake, Amber Lake, Whiskey Lake e Comet Lake). O driver drm/radeon para placas gráficas AMD está sincronizado com o núcleo do Linux 4.9. - Os algoritmos de troca de memória virtual foram significativamente aprimorados, eliminando ou minimizando problemas de responsividade na interface do usuário em situações de falta de memória. Foram resolvidos problemas de travamentos no Chrome/Chromium devido à falta de memória do sistema.
- O escalonamento do núcleo foi melhorado em sistemas com um grande número de núcleos de processador. O tempo de solicitação de páginas de memória virtual foi reduzido. A concorrência SMP em condições de falta de memória foi diminuída. A eficiência da chamada 'open(... O_RDWR)' foi aumentada.
- O gerador de números pseudoaleatórios no núcleo foi reformulado. O driver RDRAND foi adaptado para acumular entropia de todas as CPUs. A intensidade
e o tamanho da alimentação do RDRAND, que anteriormente consumia 2-3% do tempo da CPU durante o tempo ocioso, foram reduzidos. - Novas chamadas de sistema realpath, getrandom e lwp_getname foram adicionadas (permitiram implementar pthread_get_name_np).
- Adicionada a suporte aos mecanismos de proteção SMAP (Supervisor Mode Access Prevention) e SMEP (Supervisor Mode Execution Prevention). O SMAP permite bloquear o acesso a dados no espaço do usuário a partir de código privilegiado executado no nível do núcleo. O SMEP impede a transição do modo núcleo para a execução de código que esteja no nível do usuário, bloqueando assim a exploração de muitas vulnerabilidades no núcleo (shell code não será executado, pois está no espaço do usuário);
- As variáveis sysctl para configuração do Jail foram reformuladas. Agora é possível montar nullfs e tmpfs a partir do Jail.
- Adicionado um modo de recuperação para o sistema de arquivos HAMMER2, que pode ser usado durante a recuperação após uma falha. Neste modo, é permitido a destruição de snapshots ao atualizar inode no local (permite a exclusão de arquivos e diretórios na ausência de espaço livre em disco, quando o mecanismo de copy-on-write não pode ser utilizado). A performance foi significativamente melhorada devido à reformulação do suporte à distribuição de threads no HAMMER2. O processo de descarregamento de buffers (flush) também foi consideravelmente aprimorado.
- A confiabilidade e a performance do TMPFS foram aumentadas. A eficiência operacional em condições de falta de memória livre no sistema foi aprimorada.
- Na pilha de rede para IPv4, foi implementado suporte a prefixes /31 ().
No tap, o tratamento do ioctl SIOCSIFMTU foi melhorado para suportar MTU > 1500. Adicionada a suporte para SIOCSIFINFO_IN6 e SO_RERROR. - O driver iwm foi sincronizado com o FreeBSD, com suporte para chips sem fio Intel (adicionada a suporte para iwm-9000 e iwm-9260).
- Adicionadas funções compatíveis com Linux basename() e dirname() para melhorar a compatibilidade em ports.
- Foram trazidos do FreeBSD os fsck_msdosfs, sys/ttydefaults.h, AF_INET/AF_INET6 para libc/getaddrinfo(), calendar(1), rcorder-visualize.sh. Da OpenBSD, foram transferidas funções de math.h.
- As versões de componentes de terceiros foram atualizadas, incluindo Binutils 2.34, Openresolv 3.9.2, DHCPCD 8.1.3. O compilador gcc-8 é agora usado por padrão.
Fonte: opennet.ru
