Oracle primeira versão estável (UEK R6), uma versão estendida do núcleo Linux, projetada para uso na distribuição Oracle Linux como alternativa ao pacote padrão do núcleo do Red Hat Enterprise Linux. O núcleo está disponível apenas para as arquiteturas x86_64 e ARM64 (aarch64). Os códigos-fonte do núcleo, incluindo a divisão em patches individuais, estão no repositório Git público da Oracle.
O pacote Unbreakable Enterprise Kernel 6 é baseado no núcleo (UEK R5 foi baseado no núcleo 4.14), que foi complementado com novas funcionalidades, otimizações e correções, além de ter sido testado quanto à compatibilidade com a maioria dos aplicativos que rodam no RHEL, e especialmente otimizado para trabalhar com software e hardware industrial da Oracle. Os pacotes de instalação e src do núcleo UEK R6 foram preparados para o Oracle Linux e . O suporte para a ramificação 6.x foi descontinuado, para usar o UEK R6 é necessário atualizar o sistema para o Oracle Linux 7 (não há restrições para o uso desse núcleo em versões similares do RHEL, CentOS e Scientific Linux).
Principais Unbreakable Enterprise Kernel 6:
- Suporte estendido para sistemas baseados na arquitetura ARM de 64 bits (aarch64).
- Implementado suporte para todos os recursos do Cgroup v2.
- Implementado o framework ktask para paralelização de tarefas no núcleo que consomem recursos significativos de CPU. Por exemplo, com o ktask, pode-se organizar a paralelização de operações de limpeza de intervalos de páginas de memória ou processamento de listas de inode;
- Uma versão paralela do kswapd foi incluída para lidar com operações de substituição de páginas de memória de forma assíncrona, permitindo uma redução no número de operações diretas (síncronas) de substituição. Quando o número de páginas livres de memória diminui, o kswapd executa a varredura para identificar páginas não utilizadas que podem ser liberadas.
- Suporte para verificação da integridade da imagem do núcleo e do firmware por meio de assinatura digital, durante a inicialização do núcleo com o mecanismo Kexec (inicialização do núcleo a partir de um sistema já inicializado).
- Otimização do desempenho do sistema de gerenciamento de memória virtual, melhorando a eficiência da limpeza de páginas de memória e cache, e aprimorando o tratamento de acessos a páginas de memória não alocadas (page faults).
- Suporte ampliado para NVDIMM, a memória persistente agora pode ser utilizada como RAM tradicional.
- Transição para o sistema de depuração dinâmica DTrace 2.0, que para o uso do subsistema do núcleo eBPF. O DTrace agora funciona sobre o eBPF, semelhante a como as ferramentas de rastreamento existentes no Linux operam sobre o eBPF.
- Melhorias foram realizadas no sistema de arquivos OCFS2 (Oracle Cluster File System).
- Apoio aprimorado ao sistema de arquivos Btrfs. Agora é possível aplicar Btrfs em partições raiz. Uma opção foi adicionada ao instalador para escolher Btrfs ao formatar dispositivos. A possibilidade de alocar arquivos de troca em partições com Btrfs foi adicionada. O Btrfs agora suporta compressão usando o algoritmo ZStandard.
- Suporte adicionado para a interface de entrada/saída assíncrona — io_uring, que se destaca pelo suporte ao polling de I/O e possibilidade de operar tanto com buffer quanto sem buffer. Em termos de desempenho, io_uring é muito próximo do SPDK e supera significativamente o libaio quando o polling está habilitado. Para usar io_uring em aplicativos de usuário, uma biblioteca liburing foi preparada, fornecendo uma ligação de alto nível sobre a interface do núcleo;
- Suporte adicionado ao modo para criptografia rápida de dispositivos.
- Suporte adicionado à compressão usando o algoritmo (zstd).
- No sistema de arquivos ext4, timestamps de 64 bits foram ativados nos campos do superbloco.
- No XFS, ferramentas foram incluídas para informar sobre o estado de integridade do sistema de arquivos durante a operação e obter o status da execução do fsck em tempo real.
- O stack TCP foi alterado por padrão para o modelo "" em vez de "As Fast As Possible" ao enviar pacotes. Para UDP, o suporte ao GRO (Generic Receive Offload) foi incluído. Adicionado suporte para recebimento e envio de pacotes TCP no modo zero-copy.
- Uma implementação do protocolo TLS a nível de núcleo (KTLS) foi ativada, que agora pode ser aplicada não apenas para dados enviados, mas também para dados recebidos.
- Por padrão, o backend para o firewall utiliza
nftables. Adicionado opcionalmente suporte a . - Suporte adicionado ao subsistema XDP (eXpress Data Path), permitindo que o Linux execute programas BPF no nível do driver de rede com acesso direto ao buffer DMA de pacotes e na fase anterior à alocação do buffer skbuff pela pilha de rede.
- Melhorado e ativado ao usar o modo UEFI Secure Boot. , que limita o acesso do usuário root ao núcleo e bloqueia caminhos de contorno do UEFI Secure Boot. Por exemplo, em modo lockdown, o acesso a /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, modo de depuração kprobes, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), algumas interfaces ACPI e registradores MSR da CPU é restrito, chamadas kexec_file e kexec_load são bloqueadas, a transição para o modo de suspensão é proibida, o uso de DMA para dispositivos PCI é limitado, a importação de código ACPI de variáveis EFI é proibida, e manipulações com portas de entrada/saída, incluindo a alteração do número de interrupção e porta de entrada/saída para a porta serial, não são permitidas.
- Adicionada a suporte para instruções aprimoradas IBRS (Enhanced Indirect Branch Restricted Speculation), que permitem a autorização adaptativa e a proibição da execução especulativa de instruções durante o manuseio de interrupções, chamadas de sistema e trocas de contexto. Com o suporte ao Enhanced IBRS, esse método é aplicado para proteção contra ataques da classe Spectre V2 em vez de Retpoline, já que oferece melhor desempenho.
- A proteção em diretórios acessíveis para escrita por todos foi aprimorada. Em tais diretórios, é proibido criar arquivos FIFO e arquivos pertencentes a usuários que não correspondam ao proprietário do diretório com a flag sticky.
- Por padrão, a randomização do espaço de endereçamento do núcleo nos sistemas ARM (KASLR) está ativada. Para Aarch64, a autenticação de ponteiros foi habilitada.
- Adicionada a suporte para 'NVMe over Fabrics TCP'.
- Adicionado o driver virtio-pmem, que fornece acesso a dispositivos de armazenamento refletidos no espaço de endereçamento físico, como NVDIMM.
Fonte: opennet.ru
