{"id":104123,"date":"2022-05-23T15:36:40","date_gmt":"2022-05-23T13:36:40","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/reliz-yadra-linux-5-18"},"modified":"2022-05-23T15:36:40","modified_gmt":"2022-05-23T13:36:40","slug":"reliz-yadra-linux-5-18","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/news\/reliz-yadra-linux-5-18","title":{"rendered":"Lan\u00e7amento do n\u00facleo Linux 5.18","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ap\u00f3s dois meses de desenvolvimento, Linus Torvalds lan\u00e7ou o kernel Linux 5.18. Entre as mudan\u00e7as mais not\u00e1veis est\u00e3o: uma grande limpeza de funcionalidades obsoletas, a declara\u00e7\u00e3o de obsolesc\u00eancia do sistema de arquivos Reiserfs, a implementa\u00e7\u00e3o de eventos de rastreamento de processos de usu\u00e1rio, a adi\u00e7\u00e3o de suporte ao mecanismo de bloqueio de execu\u00e7\u00e3o de exploits Intel IBT, a inclus\u00e3o de um modo de detec\u00e7\u00e3o de estouro de buffer ao usar a fun\u00e7\u00e3o memcpy(), a adi\u00e7\u00e3o de um mecanismo de rastreamento de chamadas de fun\u00e7\u00e3o fprobe, a melhoria no desempenho do escalonador de tarefas em CPUs AMD Zen, inclus\u00e3o de um driver para gerenciar funcionalidades da CPU Intel (SDS), e integra\u00e7\u00e3o de partes de patches para reestrutura\u00e7\u00e3o de arquivos de cabe\u00e7alho, al\u00e9m da aprova\u00e7\u00e3o do uso do padr\u00e3o C11.      <\/p>\n<p>A nova vers\u00e3o inclui 16206 corre\u00e7\u00f5es feitas por 2127 desenvolvedores (na vers\u00e3o anterior, havia 14203 corre\u00e7\u00f5es feitas por 1995 desenvolvedores). O tamanho do patch \u00e9 de 108 MB (as mudan\u00e7as afetaram 14235 arquivos, foram adicionadas 1340982 linhas de c\u00f3digo e removidas 593836 linhas). Cerca de 44% de todas as mudan\u00e7as apresentadas na vers\u00e3o 5.18 est\u00e3o relacionadas aos drivers de dispositivos, aproximadamente 16% das mudan\u00e7as dizem respeito \u00e0 atualiza\u00e7\u00e3o de c\u00f3digo espec\u00edfico para arquiteturas de hardware, 11% est\u00e3o ligadas \u00e0 pilha de rede, 3% \u00e0s sistemas de arquivos e 3% a subsistemas internos do n\u00facleo.           <\/p>\n<p>Principais novidades no kernel 5.18:    <\/p>\n<ul>\n<li class=\"l\"> <b>Subsistema de disco, entrada\/sa\u00edda e sistemas de arquivos<\/b>\n<ul>\n<li class=\"l\"> No sistema de arquivos Btrfs, foi adicionada a capacidade de passar dados comprimidos durante a execu\u00e7\u00e3o das opera\u00e7\u00f5es send e receive. Anteriormente, ao usar send\/receive, o lado que enviava descompactava os dados armazenados de forma comprimida, enquanto o lado receptor recompunha os dados antes da grava\u00e7\u00e3o. No kernel 5.18, aplicativos no espa\u00e7o do usu\u00e1rio que usam chamadas send\/receive agora t\u00eam a capacidade de transmitir dados comprimidos sem reempacotamento. A funcionalidade foi implementada gra\u00e7as \u00e0s novas opera\u00e7\u00f5es ioctl BTRFS_IOC_ENCODED_READ e BTRFS_IOC_ENCODED_WRITE, que permitem ler e gravar informa\u00e7\u00f5es diretamente em extens\u00f5es.\n<p>Al\u00e9m disso, no Btrfs, o desempenho do fsync foi melhorado. Foi adicionada a capacidade de deduplica\u00e7\u00e3o e execu\u00e7\u00e3o de reflink (clonagem de metadados de arquivo criando um link para dados j\u00e1 existentes sem a necessidade de c\u00f3pia real) para todo o armazenamento, sem limita\u00e7\u00f5es a pontos de montagem.         <\/p>\n<li class=\"l\"> No modo de entrada\/sa\u00edda direta (Direct I\/O), \u00e9 poss\u00edvel acessar arquivos criptografados ao usar a criptografia inline do fscrypt, na qual as opera\u00e7\u00f5es de criptografia e a descriptografia s\u00e3o realizadas pelo controlador de armazenamento, e n\u00e3o pelo n\u00facleo. Com a criptografia convencional baseada no n\u00facleo, o acesso a arquivos criptografados por meio do Direct I\/O continua a ser imposs\u00edvel, pois o acesso aos arquivos \u00e9 feito evitando o mecanismo de buffer no n\u00facleo.\n<li class=\"l\"> O servidor NFS agora tem suporte padr\u00e3o para o protocolo NFSv3, que n\u00e3o requer ativa\u00e7\u00e3o separada e est\u00e1 dispon\u00edvel com a ativa\u00e7\u00e3o geral do NFS. O NFSv3 \u00e9 considerado a vers\u00e3o principal e sempre suportada do NFS, enquanto o suporte ao NFSv2 pode ser descontinuado no futuro. A efici\u00eancia da leitura do conte\u00fado dos diret\u00f3rios foi significativamente aumentada.\n<li class=\"l\"> O sistema de arquivos ReiserFS foi classificado como obsoleto e est\u00e1 programado para remo\u00e7\u00e3o em 2025. A classifica\u00e7\u00e3o do ReiserFS como obsoleto permitir\u00e1 reduzir o esfor\u00e7o de manuten\u00e7\u00e3o de altera\u00e7\u00f5es comuns entre sistemas de arquivos relacionadas ao suporte de uma nova API para montagem, iomap e blobs.\n<li class=\"l\"> Para o sistema de arquivos F2FS, foi implementada a possibilidade de mapeamento de identificadores de usu\u00e1rios em sistemas de arquivos montados, utilizado para associar arquivos de um determinado usu\u00e1rio em uma parti\u00e7\u00e3o montada de outro usu\u00e1rio no sistema atual.\n<li class=\"l\"> O c\u00f3digo para contagem de estat\u00edsticas nos manipuladores do Device-mapper foi reestruturado, o que aumentou significativamente a precis\u00e3o da contabiliza\u00e7\u00e3o em manipuladores como o dm-crypt.\n<li class=\"l\"> Para dispositivos NVMe, foi implementado suporte para somas de verifica\u00e7\u00e3o de 64 bits para a verifica\u00e7\u00e3o de integridade.\n<li class=\"l\"> Para o sistema de arquivos exfat, foi proposta uma nova op\u00e7\u00e3o de montagem chamada 'keep_last_dots', que pro\u00edbe a remo\u00e7\u00e3o de pontos no final do nome do arquivo (no Windows, os pontos no final do nome s\u00e3o removidos por padr\u00e3o).\n<li class=\"l\"> No EXT4, a performance do modo fast_commit foi melhorada e a escalabilidade aumentada. A op\u00e7\u00e3o de montagem 'mb_optimize_scan', que melhora a performance em condi\u00e7\u00f5es de grande fragmenta\u00e7\u00e3o do sistema de arquivos, foi adaptada para funcionar com arquivos com extens\u00f5es.\n<li class=\"l\"> O suporte para streams de grava\u00e7\u00e3o (write stream) foi interrompido no subsistema que gerencia dispositivos de bloco. Esse recurso foi proposto para SSDs, mas n\u00e3o se espalhou e atualmente n\u00e3o existem dispositivos que suportem este modo, sendo improv\u00e1vel que eles apare\u00e7am no futuro.                      <\/ul>\n<li class=\"l\"> <b>Mem\u00f3ria e servi\u00e7os do sistema<\/b>\n<ul>\n<li class=\"l\"> Foi iniciada a integra\u00e7\u00e3o de um conjunto de patches que permite reduzir significativamente o tempo de recompila\u00e7\u00e3o do n\u00facleo, reestruturando a hierarquia dos arquivos de cabe\u00e7alho e diminuindo o n\u00famero de depend\u00eancias cruzadas. O n\u00facleo 5.18 inclui patches que otimizam a estrutura dos arquivos de cabe\u00e7alho do escalonador de tarefas (kernel\/sched). Comparado \u00e0 vers\u00e3o anterior, o consumo de tempo do processador na compila\u00e7\u00e3o do c\u00f3digo kernel\/sched foi reduzido em 61%, enquanto o tempo real diminuiu em 3,9% (de 2,95 para 2,84 segundos).\n<li class=\"l\"> No c\u00f3digo do n\u00facleo, o uso do padr\u00e3o C11, publicado em 2011, foi permitido. Anteriormente, o c\u00f3digo adicionado ao n\u00facleo deveria estar de acordo com a especifica\u00e7\u00e3o ANSI C (C89), estabelecida em 1989. Nos scripts de constru\u00e7\u00e3o do n\u00facleo 5.18, a op\u00e7\u00e3o '--std=gnu89' foi substitu\u00edda por '--std=gnu11 -Wno-shift-negative-value'. A possibilidade de usar o padr\u00e3o C17 foi considerada, mas nesse caso seria necess\u00e1rio aumentar a vers\u00e3o m\u00ednima suportada do GCC; no entanto, a inclus\u00e3o do suporte ao C11 se enquadra nos requisitos atuais para a vers\u00e3o do GCC (5.1).\n<li class=\"l\"> A efici\u00eancia do escalonamento de tarefas em processadores AMD com microarquitetura Zen foi aumentada, onde cada n\u00f3 com canais de mem\u00f3ria locais possui m\u00faltiplos caches de \u00faltimo n\u00edvel (LLC, Last Level Cache). Na nova vers\u00e3o, o desbalanceamento de LLC entre n\u00f3s NUMA foi corrigido, resultando em um aumento significativo de desempenho sob certas cargas de trabalho.\n<li class=\"l\"> Foram ampliados os recursos para rastreamento de aplicativos no espa\u00e7o do usu\u00e1rio. Na nova vers\u00e3o do n\u00facleo, foi adicionada a possibilidade de que processos de usu\u00e1rios criem eventos de rastreamento (User events) e gravar dados em um buffer de rastreamento, que podem ser visualizados atrav\u00e9s de utilit\u00e1rios t\u00edpicos de rastreamento do n\u00facleo, como ftrace e perf. Os eventos de rastreamento do espa\u00e7o do usu\u00e1rio s\u00e3o isolados dos eventos de rastreamento do n\u00facleo. O estado dos eventos pode ser visualizado atrav\u00e9s do arquivo \/sys\/kernel\/debug\/tracing\/user_events_status, enquanto a inscri\u00e7\u00e3o de eventos e a grava\u00e7\u00e3o de dados s\u00e3o feitas atrav\u00e9s do arquivo \/sys\/kernel\/debug\/tracing\/user_events_data.\n<li class=\"l\"> Adicionado um mecanismo de rastreamento (probe) de chamadas de fun\u00e7\u00f5es \u2014 fprobe. A API fprobe \u00e9 baseada no ftrace, mas se limita apenas \u00e0 capacidade de anexar manipuladores de callback aos pontos de entrada e sa\u00edda das fun\u00e7\u00f5es. Ao contr\u00e1rio do kprobes e kretprobes, o novo mecanismo permite o uso de um \u00fanico manipulador para v\u00e1rias fun\u00e7\u00f5es ao mesmo tempo.\n<li class=\"l\"> Foi encerrado o suporte para processadores ARM antigos (ARMv4 e ARMv5), que n\u00e3o possuem unidade de gerenciamento de mem\u00f3ria (MMU). O suporte para sistemas ARMv7-M sem MMU foi mantido.\n<li class=\"l\"> Foi encerrado o suporte para a arquitetura semelhante ao RISC NDS32, utilizada nos processadores da Andes Technologies. O c\u00f3digo foi removido devido \u00e0 falta de manuten\u00e7\u00e3o e \u00e0 aus\u00eancia de demanda pelo suporte ao NDS32 no n\u00facleo do Linux (os usu\u00e1rios restantes utilizam vers\u00f5es especializadas do n\u00facleo oferecidas pelos fabricantes de hardware).\n<li class=\"l\"> Por padr\u00e3o, a constru\u00e7\u00e3o do n\u00facleo com suporte ao formato de arquivos execut\u00e1veis a.out para as arquiteturas alpha e m68k, onde esse formato ainda \u00e9 utilizado, est\u00e1 desativada. Provavelmente, o suporte ao obsoleto formato a.out ser\u00e1 completamente removido do n\u00facleo em breve. Os planos para a remo\u00e7\u00e3o do formato a.out est\u00e3o sendo discutidos desde 2019.\n<li class=\"l\"> Para a arquitetura PA-RISC, foi implementado suporte m\u00ednimo para o mecanismo vDSO (objetos compartilhados din\u00e2micos virtuais), que fornece um conjunto limitado de chamadas de sistema acess\u00edveis no espa\u00e7o do usu\u00e1rio sem a necessidade de altern\u00e2ncia de contexto. O suporte ao vDSO possibilitou a execu\u00e7\u00e3o com pilha n\u00e3o execut\u00e1vel.\n<li class=\"l\"> Foi adicionada a suporte ao mecanismo Intel HFI (Hardware Feedback Interface), que permite que o hardware envie informa\u00e7\u00f5es sobre a performance atual e efici\u00eancia energ\u00e9tica de cada CPU para o n\u00facleo.\n<li class=\"l\"> Adicionado um driver para o mecanismo Intel SDSi (Software-Defined Silicon), que permite a ativa\u00e7\u00e3o de recursos adicionais no processador (como instru\u00e7\u00f5es especializadas e mem\u00f3ria cache adicional). A ideia \u00e9 que chips com funcionalidades expandidas bloqueadas possam ser vendidos a um custo mais baixo e, posteriormente, essas funcionalidades podem ser 'compradas' e ativadas sem a necessidade de substituir fisicamente o chip.\n<li class=\"l\"> Foi adicionado o driver amd_hsmp para suporte \u00e0 interface AMD HSMP (Host System Management Port), que fornece acesso a fun\u00e7\u00f5es de gerenciamento de CPU por meio de um conjunto de registradores especiais, surgindo nos processadores de servidor AMD EPYC a partir da gera\u00e7\u00e3o Fam19h. Por exemplo, atrav\u00e9s do HSMP, \u00e9 poss\u00edvel obter dados sobre consumo de energia e temperatura, definir limites de frequ\u00eancia, ativar v\u00e1rios modos de aumento de desempenho e gerenciar par\u00e2metros de opera\u00e7\u00e3o da mem\u00f3ria.\n<li class=\"l\"> Na interface de entrada\/sa\u00edda ass\u00edncrona io_uring, foi implementada a op\u00e7\u00e3o IORING_SETUP_SUBMIT_ALL para registrar um conjunto de descritores de arquivo no buffer de anel, assim como a opera\u00e7\u00e3o IORING_OP_MSG_RING, que permite enviar um sinal de um buffer de anel para outro buffer de anel.\n<li class=\"l\"> No mecanismo DAMOS (Data Access Monitoring-based Operation Schemes), que permite liberar mem\u00f3ria levando em conta a frequ\u00eancia de acesso \u00e0 mem\u00f3ria, foram expandidas as capacidades de controle das opera\u00e7\u00f5es de mem\u00f3ria a partir do espa\u00e7o de usu\u00e1rio.\n<li class=\"l\"> A terceira s\u00e9rie de patches foi integrada com a implementa\u00e7\u00e3o do conceito de folhetos de p\u00e1ginas de mem\u00f3ria (page folios), que se assemelham \u00e0s p\u00e1ginas de mem\u00f3ria compostas (compound pages), mas diferem pela sem\u00e2ntica aprimorada e uma organiza\u00e7\u00e3o de trabalho mais clara. O uso de folhetos permite acelerar a gest\u00e3o de mem\u00f3ria em alguns subsistemas do n\u00facleo. Nos patches propostos, foi feita a transi\u00e7\u00e3o para folhetos nas fun\u00e7\u00f5es internas de gerenciamento de mem\u00f3ria, incluindo varia\u00e7\u00f5es da fun\u00e7\u00e3o get_user_pages(). Ofereceu-se suporte para a cria\u00e7\u00e3o de folhetos grandes no c\u00f3digo de leitura preditiva de dados.\n<li class=\"l\"> No sistema de constru\u00e7\u00e3o, passou a haver suporte para as vari\u00e1veis de ambiente USERCFLAGS e USERLDFLAGS, por meio das quais \u00e9 poss\u00edvel passar flags adicionais para o compilador e o vinculador.\n<li class=\"l\"> No subsistema eBPF, no mecanismo BTF (BPF Type Format), que fornece informa\u00e7\u00f5es para verifica\u00e7\u00e3o de tipos no pseudoc\u00f3digo BPF, foi implementada a possibilidade de adicionar anota\u00e7\u00f5es a vari\u00e1veis que fazem refer\u00eancia a \u00e1reas de mem\u00f3ria no espa\u00e7o de usu\u00e1rio. As anota\u00e7\u00f5es ajudam o sistema de verifica\u00e7\u00e3o do c\u00f3digo BPF a identificar e verificar acessos \u00e0 mem\u00f3ria de maneira mais eficaz.\n<li class=\"l\"> Foi proposto um novo manipulador de aloca\u00e7\u00e3o de mem\u00f3ria para armazenar programas BPF carregados, que permite um uso mais eficiente da mem\u00f3ria em situa\u00e7\u00f5es de carregamento de um grande n\u00famero de programas BPF.\n<li class=\"l\"> Na chamada do sistema madvise(), foi adicionado o sinalizador MADV_DONTNEED_LOCKED, que complementa o j\u00e1 existente MADV_DONTNEED, atrav\u00e9s do qual o n\u00facleo pode ser informado antecipadamente sobre a libera\u00e7\u00e3o de um bloco de mem\u00f3ria, ou seja, que esse bloco n\u00e3o \u00e9 mais necess\u00e1rio e pode ser utilizado pelo n\u00facleo. Ao contr\u00e1rio do MADV_DONTNEED, o uso do sinalizador MADV_DONTNEED_LOCKED \u00e9 permitido para p\u00e1ginas de mem\u00f3ria que est\u00e3o fixadas na RAM, que ao serem chamadas com madvise s\u00e3o liberadas sem mudar seu status fixo e, caso haja uma chamada subsequente ao bloco e uma gera\u00e7\u00e3o de 'page fault', retornam mantendo a fixa\u00e7\u00e3o. Adicionalmente, foi feita uma modifica\u00e7\u00e3o que permite usar o sinalizador MADV_DONTNEED com grandes p\u00e1ginas de mem\u00f3ria no HugeTLB.              <\/ul>\n<li class=\"l\"> <b>Virtualiza\u00e7\u00e3o e seguran\u00e7a<\/b>\n<ul>\n<li class=\"l\"> Para a arquitetura x86, foi adicionada a compatibilidade com o mecanismo de prote\u00e7\u00e3o de execu\u00e7\u00e3o de comandos Intel IBT (Indirect Branch Tracking), que dificulta o uso de t\u00e9cnicas de explora\u00e7\u00e3o por meio de Programa\u00e7\u00e3o Orientada a Retorno (ROP, Return-Oriented Programming), onde a explora\u00e7\u00e3o \u00e9 formada como uma cadeia de chamadas de peda\u00e7os j\u00e1 existentes de instru\u00e7\u00f5es em mem\u00f3ria, terminando com uma instru\u00e7\u00e3o de retorno de controle (geralmente, estas s\u00e3o as finaliza\u00e7\u00f5es de fun\u00e7\u00f5es). A ess\u00eancia do m\u00e9todo de prote\u00e7\u00e3o implementado est\u00e1 em bloquear desvios indiretos para o corpo da fun\u00e7\u00e3o atrav\u00e9s da adi\u00e7\u00e3o, no in\u00edcio da fun\u00e7\u00e3o, de uma instru\u00e7\u00e3o especial ENDBR, permitindo a execu\u00e7\u00e3o via desvio indireto somente se o desvio apontar para esta instru\u00e7\u00e3o (um chamado indireto por meio de JMP e CALL deve sempre chegar \u00e0 instru\u00e7\u00e3o ENDBR, localizada no in\u00edcio da fun\u00e7\u00e3o).\n<li class=\"l\"> Foi ativada uma verifica\u00e7\u00e3o mais rigorosa dos limites de buffers nas fun\u00e7\u00f5es memcpy(), memmove() e memset(), realizada durante a fase de compila\u00e7\u00e3o ao habilitar o modo CONFIG_FORTIFY_SOURCE. A modifica\u00e7\u00e3o adicionada consiste na verifica\u00e7\u00e3o de sa\u00eddas dos limites de elementos de estruturas, cujos tamanhos s\u00e3o conhecidos. Observa-se que essa possibilidade implementada ajudaria a bloquear todas as vulnerabilidades de estouro de buffer relacionadas ao memcpy() no n\u00facleo, identificadas pelo menos nos \u00faltimos tr\u00eas anos.\n<li class=\"l\"> Adicionada a segunda parte do c\u00f3digo da implementa\u00e7\u00e3o atualizada do gerador de n\u00fameros pseudoaleat\u00f3rios RDRAND, respons\u00e1vel pelo funcionamento dos dispositivos \/dev\/random e \/dev\/urandom. A nova implementa\u00e7\u00e3o se destaca pela unifica\u00e7\u00e3o do funcionamento do \/dev\/random e \/dev\/urandom, com a adi\u00e7\u00e3o de prote\u00e7\u00e3o contra a duplica\u00e7\u00e3o no fluxo de n\u00fameros aleat\u00f3rios durante a inicializa\u00e7\u00e3o. <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/pt\/vps\/\"   title=\"m\u00e1quinas virtuais\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2100\">m\u00e1quinas virtuais<\/a> E pela transi\u00e7\u00e3o para o uso da fun\u00e7\u00e3o hash BLAKE2s em vez de SHA1 para as opera\u00e7\u00f5es de mistura de entropia. Essa altera\u00e7\u00e3o aumentou a seguran\u00e7a do gerador de n\u00fameros pseudoaleat\u00f3rios, eliminando o algoritmo problem\u00e1tico SHA1 e evitando a sobregrava\u00e7\u00e3o do vetor de inicializa\u00e7\u00e3o do RNG. Como o algoritmo BLAKE2s supera o SHA1 em termos de desempenho, sua aplica\u00e7\u00e3o tamb\u00e9m teve um impacto positivo na performance.\n<li class=\"l\"> Para a arquitetura ARM64, foi adicionada a suporte para um novo algoritmo de autentica\u00e7\u00e3o de ponteiros \u2014 'QARMA3', que \u00e9 mais r\u00e1pido que o algoritmo QARMA, mantendo um n\u00edvel adequado de prote\u00e7\u00e3o. A tecnologia permite o uso de instru\u00e7\u00f5es ARM64 especializadas para verificar endere\u00e7os de retorno usando assinaturas digitais, que s\u00e3o armazenadas nos bits superiores n\u00e3o utilizados do pr\u00f3prio ponteiro.\n<li class=\"l\"> Para a arquitetura ARM64, foi implementado suporte na constru\u00e7\u00e3o com a inclus\u00e3o na GCC 12 do modo de prote\u00e7\u00e3o contra sobrescrita do endere\u00e7o de retorno da fun\u00e7\u00e3o em caso de estouro de buffer na pilha. A ess\u00eancia da prote\u00e7\u00e3o \u00e9 manter o endere\u00e7o de retorno separado, em uma 'pilha sombra', ap\u00f3s o controle ser transferido para a fun\u00e7\u00e3o, e extrair esse endere\u00e7o antes de sair da fun\u00e7\u00e3o.\n<li class=\"l\"> Foi adicionado um novo reposit\u00f3rio de chaves (keyring) \u2014 'machine', contendo as chaves do propriet\u00e1rio do sistema (MOK, Machine Owner Keys), suportadas no carregador shim. As chaves especificadas podem ser utilizadas para certificar digitalmente componentes do n\u00facleo que s\u00e3o carregados ap\u00f3s a inicializa\u00e7\u00e3o (por exemplo, m\u00f3dulos do n\u00facleo).\n<li class=\"l\"> Removido o suporte para chaves privadas assim\u00e9tricas para TPM, que foram propostas em uma vers\u00e3o obsoleta do TPM, t\u00eam problemas de seguran\u00e7a conhecidos e n\u00e3o se popularizaram na pr\u00e1tica.\n<li class=\"l\"> Adicionada prote\u00e7\u00e3o de dados do tipo size_t contra estouros inteiros. O c\u00f3digo utiliza os manipuladores size_mul(), size_add() e size_sub(), que permitem realizar multiplica\u00e7\u00e3o, adi\u00e7\u00e3o e subtra\u00e7\u00e3o de tamanhos do tipo size_t de forma segura.\n<li class=\"l\"> Na constru\u00e7\u00e3o do n\u00facleo, foram inclu\u00eddos os sinalizadores '-Warray-bounds' e '-Wzero-length-bounds', que emitem avisos quando um \u00edndice ultrapassa os limites de um array e ao usar arrays de comprimento zero.\n<li class=\"l\"> O dispositivo virtio-crypto agora suporta criptografia usando o algoritmo RSA.                                 <\/ul>\n<li class=\"l\"> <b>Subsistema de Rede<\/b>\n<ul>\n<li class=\"l\"> Na implementa\u00e7\u00e3o de pontes de rede, foi adicionado suporte para o modo de bloqueio de portas (locked mode), onde o usu\u00e1rio pode enviar tr\u00e1fego atrav\u00e9s de uma porta apenas com o endere\u00e7o MAC permitido. Tamb\u00e9m foi adicionada a possibilidade de usar v\u00e1rias estruturas para avaliar o estado do protocolo STP (Spanning Tree Protocol). Anteriormente, a associa\u00e7\u00e3o para VLAN poderia ser apenas uma liga\u00e7\u00e3o direta ao STP (1:1), onde cada VLAN era gerenciada de forma independente. Na nova vers\u00e3o, foi adicionado o par\u00e2metro mst_enable, que, quando ativado, controla o estado das VLANs atrav\u00e9s do m\u00f3dulo MST (Multiple Spanning Trees), permitindo que a associa\u00e7\u00e3o das VLANs corresponda ao modelo M:N.\n<li class=\"l\"> O trabalho de integra\u00e7\u00e3o de ferramentas para rastreamento das causas de queda de pacotes (c\u00f3digos reason) no stack de rede foi continuado. O c\u00f3digo da causa \u00e9 transmitido durante a libera\u00e7\u00e3o da mem\u00f3ria associada ao pacote, permitindo considerar situa\u00e7\u00f5es como a perda de pacotes devido a erros no preenchimento dos campos do cabe\u00e7alho, detec\u00e7\u00e3o de spoofing pelo filtro rp_filter, checksum incorreto, falta de mem\u00f3ria, viola\u00e7\u00e3o das regras IPSec XFRM, n\u00famero de sequ\u00eancia TCP incorreto, entre outros.\n<li class=\"l\"> Foi possibilitada a transmiss\u00e3o de pacotes de rede a partir de programas BPF, executados do espa\u00e7o do usu\u00e1rio no modo BPF_PROG_RUN, onde os programas BPF s\u00e3o executados no n\u00facleo, mas retornam o resultado ao espa\u00e7o do usu\u00e1rio. Os pacotes s\u00e3o transmitidos utilizando o subsistema XDP (eXpress Data Path). Suporta um modo ao vivo de processamento de pacotes, onde o manipulador XDP pode redirecionar pacotes de rede em tempo real para o stack de rede ou para outros dispositivos. Tamb\u00e9m \u00e9 poss\u00edvel criar geradores de tr\u00e1fego externo por software ou injetar quadros de rede no stack de rede.\n<li class=\"l\"> Para programas BPF, anexados a cgroups de rede, foram propostas fun\u00e7\u00f5es auxiliares para definir explicitamente o valor retornado pelas chamadas de sistema, permitindo transmitir informa\u00e7\u00f5es mais completas sobre as raz\u00f5es da falha nas chamadas de sistema.\n<li class=\"l\"> No subsistema XDP (eXpress Data Path) foi adicionada a suporte a pacotes fragmentados armazenados em v\u00e1rios buffers, permitindo que o XDP processe Jumbo frames e aplique TSO\/GRO (TCP Segmentation Offload\/Generic Receive Offload) para XDP_REDIRECT.\n<li class=\"l\"> O processo de remo\u00e7\u00e3o de namespaces de rede foi significativamente acelerado, o que era necess\u00e1rio em alguns grandes sistemas com alto volume de tr\u00e1fego.                      <\/ul>\n<li class=\"l\"> <b>Hardware<\/b>\n<ul>\n<li class=\"l\"> No driver amdgpu, a tecnologia de sincroniza\u00e7\u00e3o adaptativa FreeSync est\u00e1 habilitada por padr\u00e3o, permitindo ajustar a taxa de atualiza\u00e7\u00e3o da informa\u00e7\u00e3o na tela, garantindo suavidade e aus\u00eancia de interrup\u00e7\u00f5es durante jogos e visualiza\u00e7\u00e3o de v\u00eddeos. O suporte ao GPU Aldebaran foi declarado est\u00e1vel.\n<li class=\"l\"> No driver i915, foi adicionada a suporte para chips Intel Alderlake N e placas gr\u00e1ficas discretas Intel DG2-G12 (Arc Alchemist).\n<li class=\"l\"> No driver nouveau, foi garantido suporte a bitrates mais altos para interfaces DP\/eDP e suporte a extensores de cabo lttprs (Link-Training Tunable PHY Repeaters).\n<li class=\"l\"> No subsistema drm (Direct Rendering Manager), nos drivers armada, exynos, gma500, hyperv, imx, ingenic, mcde, mediatek, msm, omap, rcar-du, rockchip, sprd, sti, tegra, tilcdc, xen e vc4, foi adicionada a suporte ao par\u00e2metro nomodeset, que desativa a troca de modos de v\u00eddeo no n\u00edvel do kernel e o uso de recursos para acelera\u00e7\u00e3o de hardware de renderiza\u00e7\u00e3o, mantendo apenas a funcionalidade relacionada ao framebuffer do sistema.\n<li class=\"l\"> Foi adicionada a suporte aos SoCs ARM Qualcomm Snapdragon 625\/632 (usado em smartphones LG Nexus 5X e Fairphone FP3), Samsung Exynos 850, Samsung Exynos 7885 (usado no Samsung Galaxy A8), Airoha (Mediatek\/EcoNet) EN7523, Mediatek mt6582 (tablet Prestigio PMT5008 3G), Microchip Lan966, Renesas RZ\/G2LC, RZ\/V2L, Tesla FSD, TI K3\/AM62 e i.MXRTxxxx.\n<li class=\"l\"> Foi adicionada a suporte para dispositivos ARM e placas Broadcom (Raspberry Pi Zero 2 W), Qualcomm (Google Herobrine R1 Chromebook, SHIFT6mq, Samsung Galaxy Book2), Rockchip (Pine64 PineNote, Bananapi-R2-Pro, STM32 Emtrion emSBS, Samsung Galaxy Tab S, tablet Prestigio PMT5008 3G), Allwinner (A20-Marsboard), Amlogic (Amediatek X96-AIR, CYX A95XF3-AIR, Haochuangy H96-Max, Amlogic AQ222 e OSMC Vero 4K+), Aspeed (Quanta S6Q, ASRock ROMED8HM3), Marvell MVEBU\/Armada (Ctera C200 V1 e V2 NAS), Mstar (DongShanPiOne, Miyoo Mini), NXP i.MX (Protonic PRT8MM, emCON-MX8M Mini, Toradex Verdin, Gateworks GW7903).\n<li class=\"l\"> Foi adicionada a suporte a sistemas de \u00e1udio e codecs AMD PDM, Atmel PDMC, Awinic AW8738, i.MX TLV320AIC31xx, Intel CS35L41, ESSX8336, Mediatek MT8181, nVidia Tegra234, Qualcomm SC7280, Renesas RZ\/V2L, Texas Instruments TAS585M. Uma implementa\u00e7\u00e3o inicial do driver de \u00e1udio para o chip DSP Intel AVS foi adicionada. O suporte aos drivers para Intel ADL e Tegra234 foi atualizado, al\u00e9m de melhorias na compatibilidade de \u00e1udio em dispositivos Dell, HP, Lenovo, ASUS, Samsung e Clevo.    <\/ul>\n<p>Ao mesmo tempo, a Funda\u00e7\u00e3o de Software Livre da Am\u00e9rica Latina desenvolveu uma vers\u00e3o totalmente livre do kernel 5.18 \u2014 Linux-libre 5.18-gnu, livre de elementos de firmware e drivers que cont\u00eam componentes ou trechos de c\u00f3digo n\u00e3o livres, cuja utiliza\u00e7\u00e3o \u00e9 limitada pelo fabricante. A nova vers\u00e3o passou por uma limpeza dos drivers para pain\u00e9is MIPI DBI, VPU Amphion, WiFi MediaTek MT7986 WMAC, Mediatek MT7921U (USB) e Realtek 8852a\/8852c, chips de \u00e1udio da Intel AVS e da Texas Instruments TAS5805M. Tamb\u00e9m ocorreu a limpeza de arquivos DTS para diferentes SoCs Qualcomm com processadores baseados na arquitetura AArch64. O c\u00f3digo de limpeza de blobs nos drivers e subsistemas AMD GPU, MediaTek MT7915, Silicon Labs WF200+ WiFi, Mellanox Spectrum Ethernet, Realtek rtw8852c, Qualcomm Q6V5, Wolfson ADSP e MediaTek HCI UART foi atualizado.                         <\/ul>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=57235\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0440\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 5.18. \u0421\u0440\u0435\u0434\u0438 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0437\u0430\u043c\u0435\u0442\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439: \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0438\u0441\u0442\u043a\u0430 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0435\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0430 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0435\u0439 \u0424\u0421 Reiserfs, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432, \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u044d\u043a\u0441\u043f\u043b\u043e\u0438\u0442\u043e\u0432 Intel IBT, \u0432\u043a\u043b\u044e\u0447\u0451\u043d \u0440\u0435\u0436\u0438\u043c \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0431\u0443\u0444\u0435\u0440\u043e\u0432 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 memcpy(), \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 fprobe, \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-104123","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0440\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 5.18.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pt\/blog\/news\/reliz-yadra-linux-5-18\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 5.18 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0440\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 5.18.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/news\/reliz-yadra-linux-5-18\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2022-05-23T13:36:40+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2022-05-23T13:36:40+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Lan\u00e7amento do n\u00facleo Linux 5.18 | ProHoster","description":"Ap\u00f3s dois meses de desenvolvimento, Linus Torvalds apresentou o lan\u00e7amento do n\u00facleo Linux 5.18.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/news\/reliz-yadra-linux-5-18","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 5.18 | ProHoster","og:description":"\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0440\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 5.18.","og:url":"https:\/\/prohoster.info\/pt\/blog\/news\/reliz-yadra-linux-5-18","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2022-05-23T13:36:40+00:00","article:modified_time":"2022-05-23T13:36:40+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"104123","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-02-09 18:15:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2022-05-23 13:37:44","updated":"2026-02-09 18:15:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/104123","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=104123"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/104123\/revisions"}],"predecessor-version":[{"id":159344,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/104123\/revisions\/159344"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=104123"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=104123"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=104123"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}