{"id":120593,"date":"2024-11-18T13:09:07","date_gmt":"2024-11-18T11:09:07","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/reliz-yadra-linux-6-12-s-podderzhkoj-realtime-rezhima"},"modified":"2024-11-18T13:09:07","modified_gmt":"2024-11-18T11:09:07","slug":"reliz-yadra-linux-6-12-s-podderzhkoj-realtime-rezhima","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/news\/reliz-yadra-linux-6-12-s-podderzhkoj-realtime-rezhima","title":{"rendered":"Lan\u00e7amento do n\u00facleo Linux 6.12 com suporte a modo Realtime","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.12. Entre as mudan\u00e7as mais not\u00e1veis est\u00e3o: a possibilidade de ativa\u00e7\u00e3o do modo de tempo real, sched_ext para a cria\u00e7\u00e3o de planejadores de CPU atrav\u00e9s do eBPF, a gera\u00e7\u00e3o de QR Code em situa\u00e7\u00f5es de emerg\u00eancia, o mecanismo Device Memory TCP, o mecanismo de reserva de recursos SCHED_DEADLINE server, melhorias no planejador de tarefas EEVDF e o m\u00f3dulo IPE para defini\u00e7\u00e3o de pol\u00edticas de integridade.        <\/p>\n<p>Na nova vers\u00e3o, foram aceitas 14.607 corre\u00e7\u00f5es de 2.167 desenvolvedores, com um tamanho de patch de 37 MB (as modifica\u00e7\u00f5es afetaram 13.087 arquivos, adicionando 507.913 linhas de c\u00f3digo e removendo 234.083 linhas). Na vers\u00e3o anterior, houve 15.130 corre\u00e7\u00f5es de 2.078 desenvolvedores, com um tamanho de patch de 85 MB (no n\u00facleo 6.10, o patch tinha o tamanho de 41 MB). Aproximadamente 45% de todas as mudan\u00e7as apresentadas no 6.12 est\u00e3o relacionadas a drivers de dispositivos; cerca de 12% das mudan\u00e7as dizem respeito \u00e0 atualiza\u00e7\u00e3o de c\u00f3digo espec\u00edfico para arquiteturas de hardware, 13% est\u00e1 vinculado ao stack de rede, 6% \u00e0s sistemas de arquivos e 3% a subsistemas internos do n\u00facleo.      <\/p>\n<p>As principais inova\u00e7\u00f5es no n\u00facleo 6.12:  <\/p>\n<ul>\n<li class=\"l\"> <b>Mem\u00f3ria e servi\u00e7os do sistema<\/b>\n<ul>\n<li class=\"l\"> Foi possibilitada a compila\u00e7\u00e3o do n\u00facleo com a op\u00e7\u00e3o PREEMPT_RT sem patches adicionais para operar em modo de tempo real. A \u00faltima funcionalidade faltante no n\u00facleo que impedia a ativa\u00e7\u00e3o do modo PREEMPT_RT era o suporte \u00e0 sa\u00edda at\u00f4mica n\u00e3o bloqueante atrav\u00e9s da fun\u00e7\u00e3o printk, que tamb\u00e9m foi aceita como parte do n\u00facleo. O suporte ao PREEMPT_RT est\u00e1 dispon\u00edvel para as arquiteturas x86, x86_64, ARM64 e RISC-V. At\u00e9 agora, a implementa\u00e7\u00e3o do modo PREEMPT_RT era oferecida na forma de patches externos, com base nos quais algumas distribui\u00e7\u00f5es, como RHEL, SUSE e Ubuntu, criavam edi\u00e7\u00f5es separadas em tempo real de seus produtos, demandadas em \u00e1reas como sistemas financeiros, dispositivos de processamento de \u00e1udio e v\u00eddeo, avia\u00e7\u00e3o, medicina, rob\u00f3tica, telecomunica\u00e7\u00f5es e sistemas industriais, onde \u00e9 necess\u00e1rio garantir um tempo de processamento de eventos previs\u00edvel.\n<li class=\"l\"> Foi adicionado o mecanismo \u201csched_ext\u201d (SCX), que permite o uso de eBPF para criar escalonadores de CPU que abrangem praticamente todos os aspectos do agendamento de execu\u00e7\u00e3o de tarefas e distribui\u00e7\u00e3o de recursos da CPU. Esses escalonadores podem ser carregados dinamicamente e executados dentro do n\u00facleo Linux. <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/pt\/vps\/abuzoustojchivye-vps\/\"   title=\"m\u00e1quina virtual\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"4348\">m\u00e1quina virtual<\/a> eBPF. O mecanismo sched_ext simplifica a cria\u00e7\u00e3o de escalonadores espec\u00edficos para determinadas tarefas, permitindo experimentar diversas t\u00e9cnicas e estrat\u00e9gias de escalonamento, al\u00e9m de possibilitar a r\u00e1pida cria\u00e7\u00e3o de prot\u00f3tipos funcionais e a substitui\u00e7\u00e3o de escalonadores em tempo real em infraestruturas produtivas. Por exemplo, com o sched_ext, \u00e9 poss\u00edvel criar um escalonador que leva em considera\u00e7\u00e3o as particularidades de um determinado aplicativo e que muda dinamicamente a estrat\u00e9gia de escalonamento com base no estado do sistema e em outros fatores adicionais.\n<li class=\"l\"> O conjunto inclui a parte restante dos patches necess\u00e1rios para o funcionamento do mecanismo SCHED_DEADLINE server, que resolve o problema da subutiliza\u00e7\u00e3o dos recursos de CPU por tarefas comuns em condi\u00e7\u00f5es de monop\u00f3lio de CPU por tarefas de alta prioridade (em tempo real). Para evitar a monopoliza\u00e7\u00e3o da CPU, o n\u00facleo anteriormente utilizava o mecanismo de Realtime throttling, que tentava reservar 5% para tarefas de baixa prioridade, deixando 95% do tempo para tarefas de tempo real. Este mecanismo deixava a desejar, pois as tarefas comuns, em muitas situa\u00e7\u00f5es, n\u00e3o recebiam tempo de CPU suficiente. O SCHED_DEADLINE server implementa um mecanismo de aloca\u00e7\u00e3o de recursos mais eficiente.\n<li class=\"l\"> Conclu\u00edda a integra\u00e7\u00e3o do escalonador de tarefas EEVDF (Earliest Eligible Virtual Deadline First), que substitui o escalonador CFS (Completely Fair Scheduler), fornecido a partir do n\u00facleo 2.6.23. O novo escalonador, ao escolher o pr\u00f3ximo processo para execu\u00e7\u00e3o, leva em considera\u00e7\u00e3o os processos que n\u00e3o receberam recursos de CPU suficientes ou que receberam mais tempo de CPU do que mereciam. No primeiro caso, a transi\u00e7\u00e3o de controle para o processo \u00e9 for\u00e7ada, enquanto no segundo, ela \u00e9 adiada. O antigo escalonador CFS usava heur\u00edstica e ajustes finos para determinar os processos que necessitavam de aten\u00e7\u00e3o especial, enquanto o novo escalonador os monitoriza de forma mais expl\u00edcita e n\u00e3o requer ajustes finos. Espera-se que o EEVDF reduza as lat\u00eancias na execu\u00e7\u00e3o de tarefas que o CFS enfrentava problemas de escalonamento.\n<li class=\"l\"> No manipulador de situa\u00e7\u00f5es de emerg\u00eancia do n\u00facleo \u2014 DRM Panic, que utiliza o subsistema DRM (Direct Rendering Manager) para exibir um relat\u00f3rio visual no estilo do \u201cblue screen of death\u201d, foi adicionada a capacidade de mostrar no ecr\u00e3 o logotipo e um c\u00f3digo QR com o relat\u00f3rio kmsg ao ocorrer uma situa\u00e7\u00e3o de falha. Como o c\u00f3digo QR pode conter apenas 2.953 bytes, existe a op\u00e7\u00e3o DRM_PANIC_SCREEN_QR_CODE_URL, na qual o relat\u00f3rio kmsg \u00e9 comprimido utilizando zlib e anexado como um par\u00e2metro \u00e0 URL, permitindo transmitir cerca de 7.500 bytes atrav\u00e9s de um QR code V40. Durante a constru\u00e7\u00e3o de pacotes com o n\u00facleo, as distribui\u00e7\u00f5es podem definir um link base para a URL, o que permitir\u00e1 organizar a transi\u00e7\u00e3o para uma p\u00e1gina para enviar relat\u00f3rios de problemas. Para selecionar o formato do QR code, existe a configura\u00e7\u00e3o DRM_PANIC_SCREEN_QR_VERSION.\n<li class=\"l\"> Foi adicionada a suporte \u00e0 extens\u00e3o ARM POE (Permission Overlay Extension), que permite definir permiss\u00f5es de acesso a regi\u00f5es de mem\u00f3ria. Com essa extens\u00e3o, sistemas com processadores ARM64 podem implementar um mecanismo de Chaves de Prote\u00e7\u00e3o de Mem\u00f3ria, usado para restringir o acesso a p\u00e1ginas de mem\u00f3ria sem modificar a tabela de p\u00e1ginas.\n<li class=\"l\"> Para as arquiteturas Loongarch, ARM64, PowerPC e s390, foi transferida a implementa\u00e7\u00e3o da chamada de sistema getrandom(), otimizada atrav\u00e9s do mecanismo vDSO (virtual dynamic shared object), que permite mover o manipulador da chamada de sistema do kernel para o espa\u00e7o do usu\u00e1rio e evitar alterna\u00e7\u00f5es de contexto. Essa otimiza\u00e7\u00e3o permite acelerar em at\u00e9 15 vezes a obten\u00e7\u00e3o de n\u00fameros aleat\u00f3rios.\n<li class=\"l\"> No subsistema de entrada\/sa\u00edda ass\u00edncrona io_uring, foi adicionada a capacidade de usar timeouts absolutos, que s\u00e3o acionados quando um determinado tempo \u00e9 alcan\u00e7ado nos rel\u00f3gios do sistema (anteriormente, apenas timeouts relativos poderiam ser definidos, especificando a dura\u00e7\u00e3o desde o in\u00edcio da opera\u00e7\u00e3o).\n<li class=\"l\"> Foram adicionados arquivos para a gera\u00e7\u00e3o de bindings para a biblioteca libcpupower usando a ferramenta SWIG, que permite formar bindings a partir de c\u00f3digo C\/C++ para v\u00e1rias linguagens de programa\u00e7\u00e3o. Os bindings permitem criar scripts em Python e outras linguagens e utiliz\u00e1-los para expandir a funcionalidade da biblioteca libcpupower, que oferece uma API para gerenciar cpufreq e drivers do espa\u00e7o do usu\u00e1rio.\n<li class=\"l\"> Na utilidade cpuidle, foi implementada a exibi\u00e7\u00e3o do valor do estado de inatividade \u2018residency\u2019, utilizado para sistemas em tempo real e que leva em considera\u00e7\u00e3o o tempo m\u00ednimo que o processador deve permanecer no estado de inatividade para justificar os custos de energia associados \u00e0 transi\u00e7\u00e3o para esse estado e de retorno dele.\n<li class=\"l\"> Adicionada a possibilidade de utilizar o compilador Clang para compilar a biblioteca padr\u00e3o C nolibc, que faz parte dos c\u00f3digos-fonte do n\u00facleo Linux e fornece uma camada sobre as chamadas de sistema b\u00e1sicas. Ao compilar nolibc no Clang, \u00e9 permitida a otimiza\u00e7\u00e3o na fase de linkagem (LTO).\n<li class=\"l\"> Foram descontinuadas algumas interfaces do cgroup1, como a contagem de TCP, a primeira vers\u00e3o de limites suaves (soft limit) e o gerenciamento de esgotamento de mem\u00f3ria livre. O suporte para essas funcionalidades ainda \u00e9 mantido na totalidade, e o aviso foi emitido para estudar o n\u00famero de usu\u00e1rios que continuam a utilizar essas capacidades.\n<li class=\"l\"> Adicionada a possibilidade de configurar o buffer circular de rastreamento para manter os dados acumulados ap\u00f3s a reinicializa\u00e7\u00e3o, o que permitir\u00e1 n\u00e3o perder as informa\u00e7\u00f5es de depura\u00e7\u00e3o acumuladas em caso de encerramento imprevisto do n\u00facleo. Os dados s\u00e3o armazenados na mem\u00f3ria. A ativa\u00e7\u00e3o \u00e9 feita atrav\u00e9s do par\u00e2metro de linha de comando do n\u00facleo trace_instance, por exemplo, definir \"trace_instance=boot_map@0x285400000:12M\" reserva 12 MB de mem\u00f3ria no endere\u00e7o 0x285400000 para o buffer \"boot_map\", que estar\u00e1 dispon\u00edvel atrav\u00e9s do arquivo \/sys\/kernel\/tracing\/instances\/boot_map.\n<li class=\"l\"> Continua a transfer\u00eancia de mudan\u00e7as da branch Rust-for-Linux, relacionadas ao uso da linguagem Rust como segunda linguagem para o desenvolvimento de drivers e m\u00f3dulos do n\u00facleo (o suporte ao Rust n\u00e3o est\u00e1 ativado por padr\u00e3o, e n\u00e3o leva \u00e0 inclus\u00e3o do Rust entre as depend\u00eancias obrigat\u00f3rias de constru\u00e7\u00e3o do n\u00facleo). Adicionados os m\u00f3dulos 'list' e 'rbtree' para trabalhar com listas vinculadas bidirecionais e \u00e1rvores de busca vermelho-preto. Expandidas as funcionalidades dos m\u00f3dulos 'init', 'sync', 'types' e 'error'. Fornecida a possibilidade de usar c\u00f3digo em Rust na constru\u00e7\u00e3o do n\u00facleo com prote\u00e7\u00e3o contra ataques Spectre (op\u00e7\u00f5es MITIGATION_{RETHUNK, RETPOLINE, SLS}), uso do sistema de depura\u00e7\u00e3o KASAN, mecanismos de prote\u00e7\u00e3o kCFI (kernel Control Flow Integrity) e Shadow Call, al\u00e9m do uso de plugins adicionais do GCC. Adicionado driver para o controlador Ethernet Applied Micro QT2025 PHY, escrito em Rust. Preparado um site separado com a documenta\u00e7\u00e3o \u2014 rust.docs.kernel.org.\n<li class=\"l\"> A utilidade xdrgen foi adicionada aos c\u00f3digos fonte do n\u00facleo para converter especifica\u00e7\u00f5es XDR (eXternal Data Representation) em fun\u00e7\u00f5es de codifica\u00e7\u00e3o e decodifica\u00e7\u00e3o XDR, escritas no estilo C adotado pelo n\u00facleo Linux.\n<li class=\"l\"> Foi aceita uma altera\u00e7\u00e3o no n\u00facleo com a implementa\u00e7\u00e3o de um mecanismo de mascaramento de ponteiros para reduzir o n\u00famero de chamadas lentas barrier_nospec() na fun\u00e7\u00e3o de 64 bits copy_from_user(), utilizada para copiar dados do espa\u00e7o do usu\u00e1rio para o n\u00facleo. A aplica\u00e7\u00e3o do mascaramento acelera em 2,6% a execu\u00e7\u00e3o do teste 'per_thread_ops', que avalia o n\u00famero de opera\u00e7\u00f5es que podem ser realizadas em um \u00fanico thread.\n<li class=\"l\"> Adicionado um novo driver USB, permitindo usar o protocolo 9pfs como transporte para a transmiss\u00e3o e recep\u00e7\u00e3o de dados com o dispositivo USB, ao montar o FS 9p sobre USB (por exemplo, 'mount -t 9p -o trans=usbg,aname=\/path\/to\/fs  \/mnt\/9'). Como exemplo de uso do novo driver, menciona-se a utiliza\u00e7\u00e3o em vez de NFS para organizar a inicializa\u00e7\u00e3o da parti\u00e7\u00e3o raiz no desenvolvimento de dispositivos incorporados.                    <\/ul>\n<li class=\"l\"> <b>Subsistema de disco, entrada\/sa\u00edda e sistemas de arquivos<\/b>\n<ul>\n<li class=\"l\"> A subsistema VFS foi adicionado com a capacidade de trabalhar com dispositivos de armazenamento cuja tamanhos de bloco s\u00e3o maiores que o tamanho da p\u00e1gina de mem\u00f3ria no sistema. Nos sistemas de arquivos, essa capacidade atualmente \u00e9 suportada apenas no XFS.\n<li class=\"l\"> No subsistema FUSE, que permite criar implementa\u00e7\u00f5es de sistemas de arquivos que operam no espa\u00e7o do usu\u00e1rio, foi adicionada a suporte \u00e0 mapeamento de identificadores de usu\u00e1rios de sistemas de arquivos montados, aplic\u00e1vel 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\"> Foi implementada uma nova opera\u00e7\u00e3o fcntl F_CREATED_QUERY, que permite ao aplicativo determinar se um arquivo aberto com a flag O_CREAT foi criado ou j\u00e1 existia antes.\n<li class=\"l\"> Na chamada do sistema name_to_handle_at(), foi adicionada a possibilidade de usar identificadores \u00fanicos de 64 bits de pontos de montagem para evitar condi\u00e7\u00f5es de corrida durante a an\u00e1lise de \/proc\/mountinfo.\n<li class=\"l\"> O tamanho da estrutura &#171;file&#187; no n\u00facleo foi reduzido de 232 para 184 bytes, o que permite diminuir o consumo de mem\u00f3ria em sistemas que trabalham ativamente com arquivos.\n<li class=\"l\"> Foi proibida a montagem de sistemas de arquivos em pontos de montagem dentro da hierarquia \/proc, por exemplo, em \/proc\/PID\/fd, o que criava potenciais problemas de seguran\u00e7a.\n<li class=\"l\"> No pseudo-FS NSFS (NameSpace FS), utilizado para trabalhar com espa\u00e7os de nomes, foi implementada a disponibiliza\u00e7\u00e3o de informa\u00e7\u00f5es adicionais sobre os espa\u00e7os de nomes dos pontos de montagem.\n<li class=\"l\"> No sistema de arquivos EROFS (Extendable Read-Only File System), destinado ao uso em parti\u00e7\u00f5es acess\u00edveis em modo somente leitura, foi adicionada a suporte \u00e0 montagem de sistemas de arquivos diretamente de imagens de disco salvas como arquivos.\n<li class=\"l\"> No XFS, foram adicionados novos comandos ioctl XFS_IOC_START_COMMIT e XFS_IOC_COMMIT_RANGE para compartilhar conte\u00fado entre dois arquivos.\n<li class=\"l\"> O NFS adicionou suporte ao protocolo &#171;LOCALIO&#187;, que permite determinar se o cliente e <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/pt\/server\/\"   title=\"servidor\" data-wpil-keyword-link=\"linked\">servidor<\/a> o NFS est\u00e3o no mesmo host, para implementar as otimiza\u00e7\u00f5es apropriadas.\n<li class=\"l\"> No sistema de arquivos Btrfs, foram propostas otimiza\u00e7\u00f5es de desempenho, realizado refatora\u00e7\u00e3o do c\u00f3digo, reduzida a \u00e1rea de bloqueio de extens\u00f5es durante opera\u00e7\u00f5es de leitura, e continuado o trabalho de transi\u00e7\u00e3o para o uso de volumes de p\u00e1ginas de mem\u00f3ria (page folios), com implementa\u00e7\u00e3o de libera\u00e7\u00e3o autom\u00e1tica de mem\u00f3ria para a estrutura btrfs_path.\n<li class=\"l\"> No sistema de arquivos Ext4 foram corrigidos erros relacionados \u00e0 aloca\u00e7\u00e3o de blocos, gerenciamento de extens\u00f5es, mecanismo de &#171;fast commit&#187; e registro de transa\u00e7\u00f5es.                  <\/ul>\n<li class=\"l\"> <b>Virtualiza\u00e7\u00e3o e seguran\u00e7a<\/b>\n<ul>\n<li class=\"l\"> Adicionado o m\u00f3dulo LSM IPE (Integrity Policy Enforcement), desenvolvido pela Microsoft para expandir o sistema existente de controle de acesso mandat\u00e1rio. O m\u00f3dulo permite definir uma pol\u00edtica geral de integridade para todo o sistema, indicando quais opera\u00e7\u00f5es s\u00e3o permitidas e como validar a autenticidade dos componentes. Por exemplo, com o IPE \u00e9 poss\u00edvel especificar quais arquivos execut\u00e1veis podem ser executados, levando em conta a verifica\u00e7\u00e3o de sua conformidade com a vers\u00e3o de refer\u00eancia, utilizando hashes criptogr\u00e1ficos fornecidos pelo sistema dm-verity.\n<li class=\"l\"> Na fase de compila\u00e7\u00e3o do kernel, foi disponibilizada a op\u00e7\u00e3o de habilitar separadamente os m\u00e9todos de prote\u00e7\u00e3o contra diferentes vulnerabilidades da classe Spectre na CPU. No Kconfig foram propostos novos par\u00e2metros: MITIGATE_MDS (prote\u00e7\u00e3o contra a vulnerabilidade Microarchitectural Data Sampling), MITIGATE_TAA (prote\u00e7\u00e3o contra a vulnerabilidade TSX Asynchronous Abort), MITIGATE_MMIO_STALE_DATA (prote\u00e7\u00e3o contra a vulnerabilidade MMIO Stale Data), MITIGATE_L1TF (prote\u00e7\u00e3o contra a vulnerabilidade L1 Terminal Fault), MITIGATE_RETBLEED (prote\u00e7\u00e3o contra a vulnerabilidade Retbleed), MITIGATE_SPECTRE_V1, MITIGATE_SPECTRE_V2 (prote\u00e7\u00e3o contra as vulnerabilidades Spectre), MITIGATE_SRBDS (prote\u00e7\u00e3o contra a vulnerabilidade Special Register Buffer Data Sampling), MITIGATE_SSB (prote\u00e7\u00e3o contra a vulnerabilidade Speculative Store Bypass).\n<li class=\"l\"> Adicionado o par\u00e2metro da linha de comando proc_mem.force_override e um conjunto de configura\u00e7\u00f5es de compila\u00e7\u00e3o no Kconfig (PROC_MEM_FORCE_ALWAYS, PROC_MEM_FORCE_PTRACE e PROC_MEM_FORCE_NEVER), que permitem proibir a altera\u00e7\u00e3o de mem\u00f3ria atrav\u00e9s de \/proc\/pid\/mem.\n<li class=\"l\"> O subsistema LSM (Linux Security Module) foi atualizado para usar chamadas est\u00e1ticas, o que aumentou a seguran\u00e7a e melhorou o desempenho.\n<li class=\"l\"> Possibilitada a utiliza\u00e7\u00e3o de n\u00facleos padr\u00e3o para a arquitetura ARM64 em ambientes virtuais, executados em sistemas Android com hipervisor KVM modificado (protected KVM).\n<li class=\"l\"> No m\u00f3dulo LSM Landlock, que permite limitar a intera\u00e7\u00e3o de um grupo de processos com o ambiente externo, foi implementada a concep\u00e7\u00e3o de &#171;IPC scoping&#187; para limitar seletivamente a intera\u00e7\u00e3o com ambientes sandbox, utilizando soquetes Unix e sinais. Por exemplo, \u00e9 poss\u00edvel proibir a conex\u00e3o usando soquetes Unix de um ambiente sandbox para processos que n\u00e3o aplicam isolamento, mas permitir conex\u00f5es com processos na mesma \u00e1rea de scope.\n<li class=\"l\"> No hipervisor KVM, foi adicionado um sinalizador no CPUID para sistemas convidados, indicando o suporte a extens\u00f5es AVX10.1.            <\/ul>\n<li class=\"l\"> <b>Subsistema de Rede<\/b>\n<ul>\n<li class=\"l\"> Foi adicionado o mecanismo Device Memory TCP, que permite o uso de soquetes de rede para o envio direto do conte\u00fado da mem\u00f3ria de dispositivos perif\u00e9ricos pela rede (modo zero-copy) e a coloca\u00e7\u00e3o direta do conte\u00fado dos pacotes de rede na \u00e1rea de mem\u00f3ria do dispositivo do lado do receptor. Os dados transmitidos nos pacotes s\u00e3o enviados diretamente da placa de rede para a mem\u00f3ria do dispositivo perif\u00e9rico ou da mem\u00f3ria do dispositivo para a placa de rede, evitando o CPU, enquanto os cabe\u00e7alhos dos pacotes v\u00e3o para os buffers normais do kernel.\n<li class=\"l\"> As funcionalidades de muitos drivers Ethernet e wireless foram ampliadas. Por exemplo, no driver Intel iwlwifi, foi adicionada a suporta\u00e7\u00e3o para deslocar opera\u00e7\u00f5es RLC\/SMPS para o lado do firmware; no driver RealTek rtw89, houve aumento de performance e suporte para os chips RTL8852BT\/8852BE-VT (WiFi 6); no driver Ethernet da microchip, foi adicionada a suporta\u00e7\u00e3o para as especifica\u00e7\u00f5es IEEE 802.3bw (100BASE-T1) e IEEE 802.3bp, al\u00e9m de melhorias nas implementa\u00e7\u00f5es dos virtuais Ethernet Microsoft vNIC e IBM veth. Novos drivers foram introduzidos para os chips Ethernet Realtek RTL9054, RTL9068, RTL9072, RTL9075, RTL9068, RTL9071 e Microchip LAN8650\/1 10BASE-T1S MAC-PHY.\n<li class=\"l\"> No MPTCP (MultiPath TCP), uma extens\u00e3o do protocolo TCP para a entrega de pacotes TCP simultaneamente por m\u00faltiplos caminhos atrav\u00e9s de diferentes interfaces de rede, o tamanho dos coeficientes de peso utilizados na rotea\u00e7\u00e3o foi aumentado de 8 para 16 bits. Foi implementada a identifica\u00e7\u00e3o de tr\u00e1fego perdido (blackhole) e a pausa tempor\u00e1ria das tentativas de estabelecimento de conex\u00f5es com sistemas que levam \u00e0 perda de tr\u00e1fego.\n<li class=\"l\"> Para IPv6, foi implementado suporte para a flag &#171;p&#187; no PIO (Prefix Information Option), utilizado em an\u00fancios RA (IPv6 Router Advertisements) para escolher o modelo de implanta\u00e7\u00e3o de clientes via DHCPv6-PD (Delega\u00e7\u00e3o de Prefixo DHCPv6, RFC9663) em vez da atribui\u00e7\u00e3o de endere\u00e7os individuais com base em prefixos, utilizando SLAAC (Configura\u00e7\u00e3o Autom\u00e1tica de Endere\u00e7o Sem Estado). No IPv6 IOAM6, foi adicionada a suportar um novo modo de encapsula\u00e7\u00e3o tunsrc, permitindo obter melhor desempenho.\n<li class=\"l\"> A performance de processamento de pacotes de controle IPsec foi aumentada.\n<li class=\"l\"> A performance de descarte (flush) de grandes conjuntos de regras nftables foi aumentada. No nfnetlink_queue, houve melhorias no suporte ao protocolo SCTP.\n<li class=\"l\"> Na API ethtool, foi adicionada a suporta\u00e7\u00e3o para vincular v\u00e1rias placas de rede a uma \u00fanica interface de rede.                      <\/ul>\n<li class=\"l\"> <b>Hardware<\/b>\n<ul>\n<li class=\"l\"> No driver AMDGPU, continuou o trabalho na implementa\u00e7\u00e3o do suporte para GPU AMD RDNA4 (&#171;GFX12&#187;). Foi adicionada a capacidade de reiniciar filas de tarefas individuais sem redefinir o estado de toda a GPU.\n<li class=\"l\"> A continua\u00e7\u00e3o do trabalho no driver drm (Direct Rendering Manager) Xe para GPUs baseadas na arquitetura Intel Xe, que \u00e9 utilizada em placas de v\u00eddeo Intel da fam\u00edlia Arc e gr\u00e1ficos integrados, come\u00e7ou com os processadores Tiger Lake. A nova vers\u00e3o inclui suporte para GPUs baseadas nas microarquiteturas Battlemage e Lunar Lake. Foi apresentado o suporte para modificadores CCS (Color Control Surface) Xe2 para gerenciar os par\u00e2metros de GPUs integradas e discretas.\n<li class=\"l\"> No driver i915, foi implementada a capacidade de output atrav\u00e9s da interface HWMON ou sysfs (atributo &#171;fan1_input&#187;) de informa\u00e7\u00f5es sobre a velocidade de rota\u00e7\u00e3o do ventilador. O par\u00e2metro &#171;i915.modeset&#187; foi declarado obsoleto, em vez de &#171;i915.modeset=0&#187; deve-se usar o par\u00e2metro &#171;i915.nomodeset&#187;.\n<li class=\"l\"> No driver DRM msm (GPU Qualcomm Adreno) foi adicionada a suporte para GPUs A615, A306 e A621.\n<li class=\"l\"> No driver Nouveau, houve uma reestrutura\u00e7\u00e3o e limpeza das estruturas internas.\n<li class=\"l\"> No driver intel_pstate, que gerencia os par\u00e2metros de consumo de energia (P-state) em sistemas com processadores Intel, foi adicionado suporte para sistemas h\u00edbridos com CPUs assim\u00e9tricos (diferentes em caracter\u00edsticas), bem como suporte para controle de energia de processadores baseados nas microarquiteturas Granite Rapids e Sierra Forest. No driver intel_idle, foi adicionado suporte para CPUs Xeon Granite Rapids. No driver intel_rapl, foi garantida a identifica\u00e7\u00e3o de processos da fam\u00edlia AMD 1Ah e processadores Intel ArrowLake-U.\n<li class=\"l\"> Foi continuado o trabalho para adicionar suporte ao ARM SoC Snapdragon X Elite, que utiliza um CPU Qualcomm Oryon de 12 n\u00facleos e GPU Qualcomm Adreno. O chip \u00e9 voltado para uso em laptops e PCs e supera em muitos testes de desempenho os chips Apple M3 e Intel Core Ultra 155H.\n<li class=\"l\"> Foi adicionado suporte para placas ARM, SoCs e dispositivos: Broadcom bcm2712 (Raspberry Pi 5), Renesas R9A09G057 (RZ\/V2H), Qualcomm Snapdragon 414 (MSM8929), Lenovo ThinkPad T14s Gen 6, Lenovo A6000\/A6010, Surface Laptop 7, Anbernic RG35XXSP, Firefly Core-PX30-JD4, Lunzn Fastrhino R68S, Aspeed Riser, AGX Orin, Rockchip Qnap-TS433, Huashan Pi, Meta Catalina, BeagleY-AI, NanoPi R2S Plus, ExynosAuto v920, SOPHGO SG2002, Qualcomm IPQ5332, LG G4 (h815), Cool Pi CM5 GenBook, Anbernic RG35XXSP, GameForce Ace, IBM P11, Kontron i.MX93 OSM-S, NanoPC-T6.\n<li class=\"l\"> Adicionado suporte para pain\u00e9is de display Anbernic RG28XX, On Tat Industrial Company KD50G21-40NT-A1, Innolux G070ACE-LH3, Melfas lmfbx101117480, Densitron DMT028VGHMCMI-1D, Microchip AC40T08A, AOU B116XTN02.3, AUO B116XAN06.1, AOU B116XAT04.1, BOE TV101WUM-LL2, BOE NV140WUM-N41, BOE NV133WUM-N63, BOE NV116WHM-A4D, BOE NE140WUM-N6G, CMN N116BCA-EA2, CMN N116BCP-EA2, CSW MNB601LS1-4, Starry er88577.\n<li class=\"l\"> No sistema de \u00e1udio, foi adicionada a compatibilidade com chips e codecs RME Digiface USB, AMD ACP 7.1, Mediatek MT6367, MT8365, Realtek RTL1320, C-Media CM9825. Os antigos drivers de \u00e1udio para ASoC Intel foram considerados obsoletos, sendo recomendados os drivers AVS. V\u00e1rias melhorias foram feitas no driver SoundWire.      <\/ul>\n<\/ul>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=62243\">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.12. \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: \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f Realtime-\u0440\u0435\u0436\u0438\u043c\u0430, sched_ext \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u0432 CPU \u0447\u0435\u0440\u0435\u0437 eBPF, \u0432\u044b\u0432\u043e\u0434 QR-\u043a\u043e\u0434\u0430 \u043f\u0440\u0438 \u0430\u0432\u0430\u0440\u0438\u0439\u043d\u044b\u0445 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f\u0445, \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c Device Memory TCP, \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 SCHED_DEADLINE server, \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u0437\u0430\u0434\u0430\u0447 EEVDF, \u043c\u043e\u0434\u0443\u043b\u044c IPE \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0438\u0442\u0438\u043a \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0446\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u0438. \u0412 \u043d\u043e\u0432\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u043f\u0440\u0438\u043d\u044f\u0442\u043e 14607 [&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-120593","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.12.\" \/>\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-12-s-podderzhkoj-realtime-rezhima\" \/>\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.12 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 Realtime-\u0440\u0435\u0436\u0438\u043c\u0430 | 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.12.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/news\/reliz-yadra-linux-6-12-s-podderzhkoj-realtime-rezhima\" \/>\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-11-18T11:09:07+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2024-11-18T11:09:07+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.12 com suporte ao modo Realtime | ProHoster","description":"Ap\u00f3s dois meses de desenvolvimento, Linus Torvalds apresentou o lan\u00e7amento do kernel Linux 6.12.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/news\/reliz-yadra-linux-6-12-s-podderzhkoj-realtime-rezhima","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.12 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 Realtime-\u0440\u0435\u0436\u0438\u043c\u0430 | 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.12.","og:url":"https:\/\/prohoster.info\/pt\/blog\/news\/reliz-yadra-linux-6-12-s-podderzhkoj-realtime-rezhima","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-11-18T11:09:07+00:00","article:modified_time":"2024-11-18T11:09:07+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"120593","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 08:06:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-01-23 08:06:19","updated":"2026-01-23 08:06: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\/120593","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=120593"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/120593\/revisions"}],"predecessor-version":[{"id":173076,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/120593\/revisions\/173076"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=120593"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=120593"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=120593"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}