{"id":115726,"date":"2024-05-13T13:52:06","date_gmt":"2024-05-13T11:52:06","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/reliz-yadra-linux-6-9"},"modified":"2024-05-13T13:52:06","modified_gmt":"2024-05-13T11:52:06","slug":"reliz-yadra-linux-6-9","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/news\/reliz-yadra-linux-6-9","title":{"rendered":"Lan\u00e7amento do n\u00facleo Linux 6.9","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ap\u00f3s dois meses de desenvolvimento, Linus Torvalds apresentou o lan\u00e7amento do n\u00facleo Linux 6.9. Entre as mudan\u00e7as mais not\u00e1veis est\u00e3o: o m\u00f3dulo dm-vdo para desduplica\u00e7\u00e3o e compress\u00e3o de dispositivos de bloco, o modo de acesso direto a arquivos no FUSE, suporte para a cria\u00e7\u00e3o de pidfd para threads individuais, um mecanismo BPF-token e suporte ao Rust em sistemas ARM64, a classifica\u00e7\u00e3o do sistema de arquivos Ext2 como obsoleto, a remo\u00e7\u00e3o do antigo driver NTFS e suporte ao mecanismo Intel FRED.        <\/p>\n<p>A nova vers\u00e3o trouxe 15680 corre\u00e7\u00f5es de 2106 desenvolvedores, com um tamanho de patch de 54 MB (as mudan\u00e7as afetaram 11825 arquivos, foram adicionadas 687954 linhas de c\u00f3digo e 225344 linhas foram removidas). Na vers\u00e3o anterior, houve 15641 corre\u00e7\u00f5es de 2018 desenvolvedores, com um size de patch de 44 MB. Cerca de 42% de todas as altera\u00e7\u00f5es apresentadas na vers\u00e3o 6.9 est\u00e3o relacionadas a drivers de dispositivos, aproximadamente 17% das mudan\u00e7as dizem respeito a atualiza\u00e7\u00f5es de c\u00f3digo espec\u00edfico para arquiteturas de hardware, 13% est\u00e3o ligadas \u00e0 pilha de rede, 7% \u00e0s sistemas de arquivos e 4% a subsistemas internos do kernel.      <\/p>\n<p>Principais inova\u00e7\u00f5es no n\u00facleo 6.9:  <\/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 Device Mapper (DM), foi adicionado um novo manipulador dm-vdo (otimizador de dados virtual), que permite, com base em dispositivos de bloco existentes, criar um dispositivo de bloco virtual com funcionalidades como desduplica\u00e7\u00e3o de dados repetidos, compress\u00e3o de dados, exclus\u00e3o de blocos vazios e aumento do tamanho do dispositivo de bloco conforme a necessidade (thin provisioning). As funcionalidades mencionadas s\u00e3o implementadas no n\u00edvel do dispositivo de bloco e n\u00e3o dependem do sistema de arquivos utilizado (por exemplo, com o dm-vdo, \u00e9 poss\u00edvel implementar a jun\u00e7\u00e3o autom\u00e1tica de dados duplicados e o armazenamento de informa\u00e7\u00f5es de forma compactada para qualquer sistema de arquivos). O uso do dm-vdo \u00e9 suportado para armazenamentos f\u00edsicos com tamanho de at\u00e9 256TB, e a cria\u00e7\u00e3o de volumes l\u00f3gicos de at\u00e9 4PB. Para gest\u00e3o de parti\u00e7\u00f5es vdo, recomenda-se utilizar lvm. A tecnologia VDO foi desenvolvida pela Permabit e foi aberta ap\u00f3s sua aquisi\u00e7\u00e3o pela Red Hat em 2017.\n<li class=\"l\"> No subsistema FUSE, utilizado para implementar sistemas de arquivos no espa\u00e7o do usu\u00e1rio, foi adicionada a implementa\u00e7\u00e3o inicial do modo \u00abpassthrough\u00bb, que permite acessar dados de arquivos diretamente no n\u00edvel do kernel, contornando o processo executado no espa\u00e7o do usu\u00e1rio, o que pode melhorar significativamente o desempenho em algumas situa\u00e7\u00f5es. Por exemplo, implementa\u00e7\u00f5es FUSE de sistemas de arquivos que operam em modo somente leitura e controlam o acesso aos arquivos podem entregar o conte\u00fado de arquivos diretamente da FS original sem transferi-los para o processo FUSE.\n<li class=\"l\"> O driver com a implementa\u00e7\u00e3o do sistema de arquivos Ext2 foi classificado como obsoleto (deprecated). A raz\u00e3o citada \u00e9 o suporte no driver apenas para contadores de tempo de 32 bits em inodes, que ir\u00e3o transbordar em 19 de janeiro de 2038. Recomenda-se usar o driver ext4, que suporta opera\u00e7\u00f5es com o sistema de arquivos Ext2 e \u00e9 completamente compat\u00edvel, mas pode utilizar timestamps nos volumes ext2 que n\u00e3o s\u00e3o afetados pelo problema de 2038, se o FS for criado com inodes maiores que 255 bytes (no driver ext2, contadores de tempo de 32 bits eram utilizados independentemente do tamanho do inode).\n<li class=\"l\"> O antigo driver do sistema de arquivos NTFS foi removido, sendo substitu\u00eddo a partir da vers\u00e3o 5.15 pelo novo driver NTFS3. A inclus\u00e3o de dois drivers com a implementa\u00e7\u00e3o do NTFS no kernel foi considerada inadequada, uma vez que o antigo driver n\u00e3o era atualizado h\u00e1 muitos anos, encontra-se em estado deplor\u00e1vel e s\u00f3 pode operar em modo de leitura.\n<li class=\"l\"> Foi adicionada ao sistema de arquivos zonefs e hugetlbfs a supporte para mapeamento de identificadores de usu\u00e1rios em sistemas de arquivos montados, que \u00e9 utilizado para associar arquivos de um determinado usu\u00e1rio em uma parti\u00e7\u00e3o montada de outro usu\u00e1rio com outro usu\u00e1rio no sistema atual.\n<li class=\"l\"> No NFSv4, foi fornecida aos administradores a capacidade de limpar estados de abertura e bloqueio de arquivos.\n<li class=\"l\"> Para o sistema de arquivos Ext4, somente corre\u00e7\u00f5es de bugs e atualiza\u00e7\u00e3o dos testes kunit foram realizados.\n<li class=\"l\"> No Btrfs, a continua\u00e7\u00e3o da tradu\u00e7\u00e3o de fun\u00e7\u00f5es para o uso de folhetos de p\u00e1ginas de mem\u00f3ria (page folios) foi realizada.\n<li class=\"l\">  No sistema de arquivos XFS, continuam os esfor\u00e7os para implementar a utiliza\u00e7\u00e3o da ferramenta fsck para verificar e corrigir problemas identificados em modo online, sem a necessidade de desmontar o sistema de arquivos.\n<li class=\"l\"> A chamada de sistema pwritev2() agora inclui a flag RWF_NOAPPEND, que permite especificar um deslocamento para a grava\u00e7\u00e3o, mesmo que o arquivo tenha sido aberto em modo de adi\u00e7\u00e3o de dados ao final do arquivo.\n<li class=\"l\"> Novos comandos ioctl foram adicionados: FS_IOC_GETUUID \u2014 retorna o identificador UUID do sistema de arquivos especificado, e FS_IOC_GETFSSYSFSPATH \u2014 determina a localiza\u00e7\u00e3o em \/sys\/fs da FS montada especificada.\n<li class=\"l\"> Os sistemas de arquivos efs, qnx4 e coda foram convertidos para utilizar a nova API de montagem de parti\u00e7\u00f5es.\n<li class=\"l\"> A implementa\u00e7\u00e3o de opera\u00e7\u00f5es em arquivos realizadas em modo sem distin\u00e7\u00e3o de mai\u00fasculas e min\u00fasculas foi aprimorada. O desempenho foi melhorado ao realizar inicialmente a compara\u00e7\u00e3o sens\u00edvel a mai\u00fasculas e revertendo para uma busca sem distin\u00e7\u00e3o de mai\u00fasculas e min\u00fasculas. Problemas ao montar overlayfs sobre diret\u00f3rios com modo sem distin\u00e7\u00e3o de mai\u00fasculas e min\u00fasculas foram resolvidos.                  <\/ul>\n<li class=\"l\"> <b>Mem\u00f3ria e servi\u00e7os do sistema<\/b>\n<ul>\n<li class=\"l\"> Foi implementado o suporte ao mecanismo Intel FRED (Flexible Return and Event Delivery), criado para aumentar a efici\u00eancia e confiabilidade da entrega de informa\u00e7\u00f5es sobre eventos de baixo n\u00edvel, em compara\u00e7\u00e3o com o mecanismo atualmente utilizado IDT (Interrupt Descriptor Table). O aumento do desempenho e a redu\u00e7\u00e3o das lat\u00eancias s\u00e3o garantidos pelo retorno de eventos pela instru\u00e7\u00e3o do processador IRET, em vez de transmitir eventos atrav\u00e9s da tabela IDT. A confiabilidade \u00e9 aumentada devido ao tratamento separado da entrada de eventos no contexto do n\u00facleo e no contexto do usu\u00e1rio, prote\u00e7\u00e3o contra execu\u00e7\u00e3o aninhada de NMI e a preserva\u00e7\u00e3o em um quadro de pilha estendida de todos os registradores da CPU relacionados \u00e0 exce\u00e7\u00e3o.\n<li class=\"l\"> Foi adicionada a habilidade de otimizar o acesso a dados de n\u00facleos individuais da CPU usando, no c\u00f3digo do n\u00facleo, espa\u00e7os de endere\u00e7o nomeados (Named Address Spaces), implementados no GCC na forma de uma extens\u00e3o GNU C.\n<li class=\"l\"> Foi adicionada a flag PIDFD_THREAD \u00e0 fun\u00e7\u00e3o pidfd_open(), permitindo a cria\u00e7\u00e3o de pidfd para threads individuais, e n\u00e3o apenas o uso de pidfd no contexto do l\u00edder do grupo de threads. Tamb\u00e9m foi proposta a implementa\u00e7\u00e3o de um pseudo-sistema de arquivos para acessar pidfd atrav\u00e9s do sistema de arquivos virtual. Ao contr\u00e1rio da identifica\u00e7\u00e3o de processos por meio do pid, o identificador pidfd est\u00e1 vinculado a um processo espec\u00edfico e n\u00e3o muda, enquanto o PID pode ser vinculado a outro processo ap\u00f3s a conclus\u00e3o do processo atual.\n<li class=\"l\"> O subsistema BPF foi adicionado um mecanismo de tokens BPF que permite delegar seletivamente programas de direitos de acesso a opera\u00e7\u00f5es privilegiadas do BPF. Por exemplo, \u00e9 poss\u00edvel conceder a um aplicativo n\u00e3o privilegiado acesso a subsistemas BPF espec\u00edficos sem conceder direitos completos CAP_BPF.\n<li class=\"l\"> O subsistema BPF introduziu um novo tipo de mem\u00f3ria compartilhada bpf_arena, que define uma \u00e1rea acess\u00edvel para compartilhamento entre programas BPF e processos no espa\u00e7o do usu\u00e1rio. Foi adicionada a instru\u00e7\u00e3o may_goto, que permite organizar o funcionamento de loops que podem ser interrompidos pelo verificador. Agora \u00e9 poss\u00edvel gerar cookies TCP SYN aleat\u00f3rios a partir de programas BPF e criar manipuladores BPF para combater o SYN flood.\n<li class=\"l\"> Continua a transfer\u00eancia de mudan\u00e7as da branch Rust-for-Linux, relacionada ao uso da linguagem Rust como segundo idioma para desenvolver drivers e m\u00f3dulos do kernel (o suporte ao Rust n\u00e3o est\u00e1 ativado por padr\u00e3o e n\u00e3o leva \u00e0 inclus\u00e3o do Rust como uma das depend\u00eancias obrigat\u00f3rias de constru\u00e7\u00e3o do kernel). Foi adicionada a suporte para o uso da linguagem Rust em processadores ARM de 64 bits. A transi\u00e7\u00e3o foi feita para a vers\u00e3o Rust 1.76. O macro \u2018container_of!\u2019 foi adicionado. Em vez da funcionalidade inst\u00e1vel \u2018ptr_metadata\u2019, foi utilizado o m\u00e9todo est\u00e1vel \u2018byte_sub\u2019. Um m\u00f3dulo \u2018time\u2019 foi adicionado com a fun\u00e7\u00e3o de convers\u00e3o de tempo \u2018msecs_to_jiffies()\u2019.\n<li class=\"l\"> O subsistema io_uring agora suporta o truncamento de arquivos (ftruncate_file).\n<li class=\"l\"> Foi adicionado um novo tipo de filas de trabalho WQ_BH (workqueue Bottom Halves) para a execu\u00e7\u00e3o ass\u00edncrona de c\u00f3digo no contexto de interrup\u00e7\u00f5es de software, direcionado ao uso em vez dos obsoletos tasklets.\n<li class=\"l\"> O subsistema de gerenciamento de timers foi significativamente reestruturado, melhorando a l\u00f3gica de sele\u00e7\u00e3o do n\u00facleo ativo da CPU para a execu\u00e7\u00e3o do timer acionado, para evitar despertar n\u00facleos inativos.\n<li class=\"l\"> Foi implementada a possibilidade de atualizar o modelo de consumo de energia do n\u00facleo (EM, Energy Model) durante a opera\u00e7\u00e3o, o que pode ser utilizado, por exemplo, para considerar o impacto da temperatura de opera\u00e7\u00e3o na efici\u00eancia energ\u00e9tica da CPU. A performance da fun\u00e7\u00e3o em_cpu_energy() foi significativamente aumentada, sendo que agora, em testes em um sistema estacion\u00e1rio, \u00e9 executada 1,43 vezes mais r\u00e1pido, e no teste com a placa RockPi 4B \u2014 1,69 vezes mais r\u00e1pida.\n<li class=\"l\"> Adicionada a suporte para execu\u00e7\u00e3o de sistemas com arquitetura ARM64 no modo LPA2 com espa\u00e7o de endere\u00e7amento virtual de 52 bits.\n<li class=\"l\"> Para sistemas ARM64, foi implementado o suporte para registros cont\u00ednuos PTE (Page Table Entry), permitindo melhorar o desempenho por meio da maior efici\u00eancia na utiliza\u00e7\u00e3o do TLB (Translation Lookaside Buffer).\n<li class=\"l\"> Foram aceitos patches para aumentar o desempenho do subsistema de gerenciamento de mem\u00f3ria ao reduzir a ocorr\u00eancia de bloqueios concorrentes em vmalloc().\n<li class=\"l\"> Para a arquitetura LoongArch, foi implementado um mecanismo de patching ao vivo no kernel, permitindo aplicar corre\u00e7\u00f5es ao kernel sem reiniciar.\n<li class=\"l\"> Para sistemas RISC-V, foi implementado o suporte para a chamada de sistema membarrier(), que garante a instala\u00e7\u00e3o de barreiras de mem\u00f3ria para threads em execu\u00e7\u00e3o no sistema.\n<li class=\"l\"> As exig\u00eancias para a vers\u00e3o do LLVM\/Clang que pode ser usada para compilar o kernel foram elevadas. Agora, \u00e9 necess\u00e1rio pelo menos a vers\u00e3o 13.0.1 do LLVM (anteriormente, a compila\u00e7\u00e3o era suportada a partir do LLVM 11+).\n<li class=\"l\"> No mecanismo \u00abUser trace events\u00bb, que permite criar eventos de rastreamento a partir de processos do usu\u00e1rio para monitorar a atividade no espa\u00e7o do usu\u00e1rio, foi adicionada suporte para exportar informa\u00e7\u00f5es sobre o evento em v\u00e1rios formatos (USER_EVENT_REG_MULTI_FORMAT).\n<li class=\"l\"> No mecanismo de rastreamento de chamadas de fun\u00e7\u00e3o, foi adicionada a capacidade de rastrear o estado dos argumentos de entrada da fun\u00e7\u00e3o ao rastrear a sa\u00edda da fun\u00e7\u00e3o. Os valores do operador return agora podem ser associados aos argumentos utilizados na chamada da fun\u00e7\u00e3o.\n<li class=\"l\"> A utilit\u00e1rio perf recebeu suporte para o modo de agrega\u00e7\u00e3o de sa\u00edda \u00abcluster\u00bb (\u00abperf stat -a \u2014per-cluster\u00bb) para combinar estat\u00edsticas de recursos compartilhados. Implementou-se a possibilidade de utilizar a biblioteca libcapstone para desassemblar instru\u00e7\u00f5es de CPU (\u00abperf script -F disasm\u00bb). Foram realizadas otimiza\u00e7\u00f5es no consumo de mem\u00f3ria ao executar os comandos perf report e perf annotate.                    <\/ul>\n<li class=\"l\"> <b>Virtualiza\u00e7\u00e3o e seguran\u00e7a<\/b>\n<ul>\n<li class=\"l\"> Foi adicionada prote\u00e7\u00e3o contra a vulnerabilidade RFDS (Register File Data Sampling) em processadores Intel Atom, permitindo extrair informa\u00e7\u00f5es residuais dos arquivos de registro (RF, Register File) do processador, que s\u00e3o usados para o armazenamento conjunto do conte\u00fado dos registros em todas as tarefas no mesmo n\u00facleo de CPU. Para bloquear a vulnerabilidade, \u00e9 necess\u00e1rio atualizar o microc\u00f3digo e usar a instru\u00e7\u00e3o VERW para limpar o conte\u00fado dos buffers microarquiteturais no momento do retorno do n\u00facleo para o espa\u00e7o do usu\u00e1rio. Para ativar a prote\u00e7\u00e3o durante a inicializa\u00e7\u00e3o do n\u00facleo, pode-se especificar a flag \u00abreg_file_data_sampling=on\u00bb. Informa\u00e7\u00f5es sobre a exposi\u00e7\u00e3o \u00e0 vulnerabilidade e a presen\u00e7a do microc\u00f3digo necess\u00e1rio para prote\u00e7\u00e3o podem ser avaliadas no arquivo \u00ab\/sys\/devices\/system\/cpu\/vulnerabilities\/reg_file_data_sampling\u00bb.\n<li class=\"l\"> Foi adicionada suporte b\u00e1sica para prote\u00e7\u00e3o de sistemas convidados atrav\u00e9s da extens\u00e3o AMD SEV-SNP (Secure Nested Paging), que assegura a opera\u00e7\u00e3o segura com tabelas de p\u00e1ginas de mem\u00f3ria aninhadas e protege contra ataques \u00abundeSErVed\u00bb e \u00abSEVerity\u00bb em processadores AMD EPYC, que podem contornar o mecanismo de prote\u00e7\u00e3o AMD SEV (Secure Encrypted Virtualization). <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/pt\/vps\/abuzoustojchivye-vps\/\"   title=\"KVM\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"4384\">KVM<\/a> As mudan\u00e7as necess\u00e1rias para utilizar o SNP est\u00e3o planejadas para serem adicionadas na ramifica\u00e7\u00e3o 6.10.\n<li class=\"l\"> M\u00f3dulos com implementa\u00e7\u00e3o das tecnologias IMA (Integrity Measurement Architecture) e EVM (Extended Verification Module) foram adaptados para usar a estrutura LSM (Linux Security Modules), o que, sem perda de funcionalidade, permitiu simplificar consideravelmente o c\u00f3digo, unificar funcionalidades duplicadas e empregar recursos t\u00edpicos dispon\u00edveis via LSM. O m\u00f3dulo IMA \u00e9 destinado \u00e0 verifica\u00e7\u00e3o da integridade dos componentes do sistema operacional por meio de assinaturas digitais e hashes. O m\u00f3dulo EVM protege atributos estendidos de arquivos (xattrs) contra ataques voltados a comprometer sua integridade (o EVM n\u00e3o permitir\u00e1 a realiza\u00e7\u00e3o de um ataque offline, onde um invasor pode modificar metadados, por exemplo, inicializando a partir de seu pr\u00f3prio dispositivo).\n<li class=\"l\"> Chamadas de sistema lsm_list_modules(), lsm_get_self_attr() e lsm_set_self_attr() foram refeitas para maior compatibilidade com ambientes de 32 bits, destinadas a listar os m\u00f3dulos LSM (Linux Security Modules) carregados e obter\/exibir atributos do m\u00f3dulo LSM. A altera\u00e7\u00e3o quebra a compatibilidade retroativa, mas como novas chamadas de sistema foram adicionadas na vers\u00e3o anterior do n\u00facleo e ainda n\u00e3o est\u00e3o sendo utilizadas em aplicativos, Linus Torvalds considerou que a mudan\u00e7a \u00e9 aceit\u00e1vel.\n<li class=\"l\"> Foi tentada a reinicializa\u00e7\u00e3o do uso do mecanismo UBSAN (Undefined Behavior Sanitizer). O cerne do problema \u00e9 que os compiladores tratam de maneira diferente os estouros de inteiros com tipos sinalizados e n\u00e3o sinalizados. Estouros sinalizados e estouros de ponteiros pertencem \u00e0 categoria de comportamento indefinido, enquanto os estouros n\u00e3o sinalizados s\u00e3o cortados em m\u00f3dulo 2n, mantendo apenas os bits menos significativos do resultado (\"wrap-around\") e n\u00e3o caem sob comportamento indefinido. Para excluir situa\u00e7\u00f5es de comportamento indefinido, o n\u00facleo \u00e9 compilado com a op\u00e7\u00e3o \"-fno-strict-overflow\", que leva ao uso de \"wrap-around\" para todos os estouros de inteiros. GCC e Clang n\u00e3o conseguem diagnosticar corretamente alguns problemas ao usar a flag \"-fno-strict-overflow\", e a inclus\u00e3o do UBSAN visa realizar um trabalho colaborativo com os desenvolvedores de compiladores para eliminar os falsos positivos e identificar estouros de inteiros em locais onde n\u00e3o h\u00e1 verifica\u00e7\u00f5es expl\u00edcitas.\n<p>Para verificar poss\u00edveis estouros no n\u00facleo, utilizam-se constru\u00e7\u00f5es do tipo \"var + offset <var> PAGE_SHIFT) &lt; pgoff){..}&quot;), que est\u00e3o ligadas \u00e0 compila\u00e7\u00e3o com a flag &quot;-fno-strict-overflow&quot; e n\u00e3o cobrem todo o c\u00f3digo onde pode potencialmente ocorrer um estouro. O problema \u00e9 que, ao usar UBSAN, essas verifica\u00e7\u00f5es resultavam em um grande n\u00famero de falsos avisos, e por essa raz\u00e3o, em 2021, o UBSAN teve que ser desativado. Na implementa\u00e7\u00e3o atualizada, foi proposto o uso de anota\u00e7\u00f5es especiais __signed_wrap e __unsigned_wrap, al\u00e9m de macros prontas com verifica\u00e7\u00f5es add_would_overflow(a, b) e add_wrap(a, b), permitindo separar o uso intencional dos desenvolvedores de estouros de inteiros de estouramentos acidentais que podem levar a vulnerabilidades. A proposta de uma reformula\u00e7\u00e3o mais ampla do n\u00facleo com a introdu\u00e7\u00e3o de defini\u00e7\u00f5es adicionais de tipos foi rejeitada por Linus Torvalds.                      <\/ul>\n<li class=\"l\"> <b>Subsistema de Rede<\/b>\n<ul>\n<li class=\"l\">  Na subsistema de rede, foram feitos esfor\u00e7os para reduzir a ocorr\u00eancia de conten\u00e7\u00e3o de bloqueios (\"lock contention\", tentativa de obter um bloqueio mantido por outro thread). O uso de bloqueios RTNL foi reduzido.\n<li class=\"l\"> Adicionada a possibilidade de ativar o suporte a polling ativo de sockets (busy polling) no contexto de chamadas epoll individuais. O tamanho do pool e os par\u00e2metros de or\u00e7amento podem ser definidos separadamente dos par\u00e2metros do sistema por padr\u00e3o.\n<li class=\"l\"> Implementada a estrutura net_hotdata para aumentar a efic\u00e1cia do cache das vari\u00e1veis de configura\u00e7\u00e3o de rede mais frequentemente utilizadas.\n<li class=\"l\"> O MPTCP agora suporta a configura\u00e7\u00e3o para sockets da op\u00e7\u00e3o TCP_NOTSENT_LOWAT, permitindo limitar o tamanho do buffer de envio. Na API para sockets MCTP, foi adicionada a funcionalidade de identificadores de rede (\"network ID\"), possibilitando o uso de v\u00e1rias redes MCTP n\u00e3o sobrepostas em um \u00fanico host.\n<li class=\"l\"> No IPSec, adicionado suporte para redirecionar mensagens ICMP com informa\u00e7\u00f5es de erro (RFC 4301).\n<li class=\"l\"> Acelerado o processo de escaneamento de rotas com tempo de vida expirado.\n<li class=\"l\"> O desempenho do XDP foi acelerado, gra\u00e7as \u00e0 maior rigidez em evitar a aloca\u00e7\u00e3o de grandes blocos de mem\u00f3ria.\n<li class=\"l\"> Adicionada a possibilidade de anexar metadados a mensagens netconsole.\n<li class=\"l\"> No Netfilter, permitida a defini\u00e7\u00e3o a partir do espa\u00e7o do usu\u00e1rio de tabelas que se conectam ao processo de fundo de controle e n\u00e3o s\u00e3o removidas automaticamente ap\u00f3s a conclus\u00e3o do aplicativo do usu\u00e1rio.\n<li class=\"l\"> No nftables, acelerado o processo de adi\u00e7\u00e3o de elementos em conjuntos set com intervalos combinados.                      <\/ul>\n<li class=\"l\"> <b>Hardware<\/b>\n<ul>\n<li class=\"l\"> No driver i915, continuada a implementa\u00e7\u00e3o do suporte para chips Intel LunarLake (Xe 2). Novos identificadores PCI adicionados para dispositivos baseados nos chips Intel Arrow Lake e Alder Lake N. Para Displayport, adicionado suporte para tunelamento (DP tunneling) e aloca\u00e7\u00e3o de largura de banda (bandwidth allocation). Para todas as plataformas, o modo fastboot foi ativado. Adicionado suporte para sa\u00edda de depura\u00e7\u00e3o vinculada a dispositivos espec\u00edficos.\n<li class=\"l\"> No driver AMDGPU, realizada a prepara\u00e7\u00e3o para a implementa\u00e7\u00e3o do suporte para GPU AMD RDNA3.5 e RDNA4. Adicionado suporte para ATHUB 4.1, LSDMA 7.0, JPEG DPG, IH 7.0, HDP 7.0, VCN 5.0, SMU 13.0.6, NBIO 7.11, SDMA 6.1, MMHUB 3.3, DCN 3.5.1, NBIF 6.3.1, VPE 6.1.1 e do framework RAS ACA. No m\u00f3dulo do kernel, adicionado o par\u00e2metro freesync_video para ativar o suporte experimental \u00e0 otimiza\u00e7\u00e3o de troca de modos de v\u00eddeo usando a tecnologia de sincroniza\u00e7\u00e3o adaptativa FreeSync.\n<li class=\"l\"> No driver Nouveau, o c\u00f3digo de gerenciamento de tela foi transferido para utiliza\u00e7\u00e3o da fun\u00e7\u00e3o kmemdup().\n<li class=\"l\"> Continuou o trabalho no driver drm (Direct Rendering Manager) Xe para GPUs baseadas na arquitetura Intel Xe, que s\u00e3o utilizadas nas placas gr\u00e1ficas Intel da fam\u00edlia Arc e na gr\u00e1fica integrada, come\u00e7ando com os processadores Tiger Lake.\n<li class=\"l\"> Adicionado o driver DRM para os chips Mediatek MT8188 VDOSYS1.\n<li class=\"l\"> As configura\u00e7\u00f5es relacionadas ao subsistema de v\u00eddeo foram transferidas para a se\u00e7\u00e3o CONFIG_VIDEO.\n<li class=\"l\"> Adicionada suporte para ARM64 SoC: Mediatek MT7981B (Filogic 820), MT7988A (Filogic 880), NXP i.MX8DXP, Renesas R8A779G2 (R-Car V4H ES2.0), R8A779H0 (R-Car V4M), TI J722S.\n<li class=\"l\"> Adicionada suporte para placas e dispositivos ARM: telefones Android baseados no chip Tegra30, modelos de Chromebook baseados no Mediatek MT8186, NAS, tablets e consoles de jogos baseados em Rockchips RK35xx, placas White Hawk baseadas em SoC Renesas, placas baseadas em Qualcomm SM8550 (Snapdragon 8 Gen 2), Apalis Evaluation Board, Sielaff i.MX6 Solo Board, Samsung Galaxy Tab 4 10.1 LTE.\n<li class=\"l\"> Realizada a refatora\u00e7\u00e3o do c\u00f3digo do subsistema de \u00e1udio ALSA. Adicionada suporte para sistemas de \u00e1udio Microchip SAM9x7, NXP i.MX95 e Qualcomm WCD939x. No driver SoundWire, foi adicionada suporte ASoC com coprocesadores de \u00e1udio AMD ACP 6.3, e para sistemas Intel, foi implementado o modo DSPless. Adicionada suporte para codecs de \u00e1udio adicionais Cirrus HD. No driver virtio, melhorou-se o controle dos dispositivos de \u00e1udio.\n<li class=\"l\"> Adicionada suporte para controladores Ethernet Marvell Octeon PCI Endpoint NIC VF e Intel E825-C 100G.            <\/ul>\n<\/ul>\n<p>Simultaneamente, o Fundo Latino-Americano de Software Livre lan\u00e7ou uma vers\u00e3o totalmente livre do n\u00facleo 6.9 \u2014 Linux-libre 6.9-gnu, livre de elementos de firmware e drivers que cont\u00eam componentes n\u00e3o livres ou partes de c\u00f3digo cuja utiliza\u00e7\u00e3o \u00e9 restrita pelo fabricante. Na vers\u00e3o 6.9, o c\u00f3digo de limpeza de blobs nos drivers amdgpu, ath12k, adreno, btusb e r8169 foi atualizado. A limpeza do novo driver ptp_fc3 foi realizada. Houve tamb\u00e9m a limpeza dos nomes dos blobs nos arquivos dts (devicetree) para a arquitetura Aarch64. Problemas com a limpeza do driver i915, que causavam travamentos durante a inicializa\u00e7\u00e3o, foram resolvidos. Foram feitas altera\u00e7\u00f5es relacionadas ao tratamento de blobs fornecidos como dumps em hexadecimal.<br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=61160\">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 6.9. \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: \u043c\u043e\u0434\u0443\u043b\u044c dm-vdo \u0434\u043b\u044f \u0434\u0435\u0434\u0443\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0438 \u0441\u0436\u0430\u0442\u0438\u044f \u0431\u043b\u043e\u0447\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432, \u0440\u0435\u0436\u0438\u043c \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0444\u0430\u0439\u043b\u0430\u043c \u0432 FUSE, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f pidfd \u0434\u043b\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432, \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c BPF-\u0442\u043e\u043a\u0435\u043d\u043e\u0432, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Rust \u043d\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 ARM64, \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0424\u0421 Ext2 \u0432 \u0440\u0430\u0437\u0440\u044f\u0434 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0445, \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u0440\u043e\u0433\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 NTFS, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\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-115726","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 6.9.\" \/>\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-6-9\" \/>\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 6.9 | 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 6.9.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/news\/reliz-yadra-linux-6-9\" \/>\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=\"2024-05-13T11:52:06+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2024-05-13T11:52:06+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\udd47 Lan\u00e7amento do kernel Linux 6.9 | ProHoster","description":"Ap\u00f3s dois meses de desenvolvimento, Linus Torvalds apresentou o lan\u00e7amento do kernel Linux 6.9.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/news\/reliz-yadra-linux-6-9","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 6.9 | 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 6.9.","og:url":"https:\/\/prohoster.info\/pt\/blog\/news\/reliz-yadra-linux-6-9","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":"2024-05-13T11:52:06+00:00","article:modified_time":"2024-05-13T11:52:06+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"115726","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-01-23 00:14:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-01-23 00:14:20","updated":"2026-01-23 00:14:20","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\/115726","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=115726"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/115726\/revisions"}],"predecessor-version":[{"id":164261,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/115726\/revisions\/164261"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=115726"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=115726"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=115726"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}