Linux 6.12 poderia ter suporte “PREEMPT_RT” em tempo real

Preempt-RT é uma modificação que permite que tarefas com maior prioridade interrompam tarefas com menor prioridade.

El conceito de um sistema em tempo real Não é algo que tenha sido pensado nos últimos anos no Linux, já que a ideia disso começou há quase 20 anos, para ser exato em 2005 como parte do projeto “Realtime-Preempt” (“-rt”) com o desenvolvimento do modo PREEMPT_RT para o kernel Linux.

Para quem não sabe PREEMPT_RT, eles deveriam saber que é um patch para o kernel Linuxe converte o sistema operacional em um sistema em tempo real (em tempo real). O principal objetivo do PREEMPT_RT é reduzir a latência e garantir previsibilidade na execução de tarefas, o que é crucial em aplicações que exigem respostas rápidas.

Em palavras mais simples, podemos dizer que PREEMPT_RT permite que quase todas as partes do kernel sejam interrompidas, o que reduz a latência. Ao contrário de um kernel padrão, nem todas as seções podem ser interrompidas, o que pode causar atrasos nos tempos de resposta.

Desde 2015 o projeto está sob a supervisão da Linux Foundation e até agora, a implementação do modo PREEMPT_RT foi oferecida na forma de patches externos. Com base nesses patches, distribuições como RHEL, SUSE e Ubuntu criaram edições em tempo real de seus produtos, altamente exigidos em setores como sistemas financeiros, dispositivos de processamento de áudio e vídeo, sistemas de aviação, medicina, robótica, telecomunicações e aplicações industriais, onde é essencial garantir tempos de resposta previsíveis a eventos.

En 2019 o processo de promoção começou dos patches desenvolvidos no projeto PREEMPT_RT para o kernel principal do Linux. Na versão 5.3 do kernel, a opção PREEMPT_RT foi incluída no arquivo de configuração para ativar o modo em tempo real.

Os bits printk necessários para PREEMPT_RT estão localizados em linux-next. Esse foi o último obstáculo conhecido para PREEMPT_RT. A fila RT tem também o "console atômico" para o UART 8250 que ainda não está em linux-próximo. Isso significa comportamento de "console legado", como não imprimir de o contexto atômico em casos de emergência. O controlador 8250 UART é o único que fornece suporte para “console atômico” hoje.

Tudo Este trabalho está prestes a dar frutos., já que a integração completa das mudanças necessárias levou cinco anos e está em fase de conclusão, pois se espera que na versão 6.12 o kernel possa ser compilado no modo PREEMPT_RT sem a necessidade de aplicação de patches adicionais.

Menciona-se que o último obstáculo que impediu que PREEMPT_RT fosse habilitado foi a falta de suporte para saída atômica sem bloqueio usando a função printk. Esta funcionalidade já foi adotado no branch linux-next. Além disso, um console atômico sem bloqueio está pendente de implementação para o controlador UART 8250, cuja ausência atualmente impede a saída de mensagens de emergência para o console a partir de código executado em contextos atômicos.

Com os bits printk mesclados, PREEMPT_RT pode ser habilitado em X86, ARM64 e Risc-V. Essas três arquiteturas mescladas exigiram mudanças ao longo dos anos.
anos, deixando-me em uma posição onde não tenho mudanças essenciais no
fila que os afetaria. ARM e POWERPC ainda possuem alguns patches essenciais…

Desenvolvedores do kernel Linux anunciaram a integração das últimas mudanças necessárias no ramo linux-next, que será usado para compilar a versão 6.12. Estas mudanças permitirão que o kernel seja compilado com a opção PREEMPT_RT, que introduz capacidades em tempo real.

Assim que essas alterações forem aceitas na ramificação principal, modo PREEMPT_RT Estará disponível para arquiteturas X86, ARM64 e RISC-V. O suporte para arquiteturas ARM e POWERPC será adicionado posteriormente, pois os patches necessários ainda não foram totalmente integrados.

Vale ressaltar que as alterações propostas ainda não são definitivas e é possível que caso PREEMPT_RT não chegue na ramificação 6.12, seja integrado até o próximo ano na versão 6.13.

Finalmente, se você estiver interessado em saber mais sobre isso, você pode verificar os detalhes no link a seguir