Início Tecnologia Por que o kernel Linux mais recente não vai mais executar no...

Por que o kernel Linux mais recente não vai mais executar no seu 486 e 586

8
0

 

Algum tempo atrás, Linus Torvalds fez um comentário descartável que enviou ondulações pelo mundo do Linux. Talvez fosse hora de abandonar o apoio ao agora antigo Intel 486? Os desenvolvedores já haviam abandonado o 386 em 2012, e Torvalds refletiu abertamente se a hora de fazer mais cortes em benefício da modernidade.

Levaria três longos anos, mas essa eventualidade finalmente chegou. A partir da versão 6.15, o kernel Linux não suportará mais chips que executam a arquitetura 80486, juntamente com um bando de chips anteriores “586” também. Tudo depende de algumas tarefas domésticas e mudanças técnicas precisas que tornarão o novo código inoperante com as máquinas do passado.

Por que não funciona mais?

O kernel tem um método para imitar a instrução CMPXCH8B por algum tempo, mas agora será obsoleto.

A grande mudança está surgindo graças a um patch enviado por Ingo Molnar, um desenvolvedor de longa data no kernel Linux. O Patch reduz o suporte para CPUs pré-pentium mais antigas, incluindo o Intel 486 e uma ampla faixa de chips de terceiros que caíram entre as gerações 486 e Pentium quando se tratava de suporte a recursos de baixo nível.

No futuro, o Patch de Molnar reconfigura o kernel para exigir que as CPUs tenham suporte de hardware para as instruções do contador de carimbos de hora (RDTSC) e CMPXCHG8B. Estes se tornaram parte do X86 quando a Intel introduziu os primeiros processadores de Pentium no mercado no início dos anos 90. O contador de carimbos de data e hora é relativamente fácil de entender-um registro simples de 64 bits que armazena o número de ciclos executados pela CPU desde a última redefinição. Quanto ao CMPXCHG8B, é usado para comparar e trocar oito bytes de dados por vez. O Intel CPUs anterior obteve apenas a instrução CMPXCHG de byte. O kernel Linux costumava aparecer um pedaço de código para emular cmpxchg8b Para aliviar a interoperabilidade com chips mais antigos que não tinham o recurso no hardware.

As alterações removem cerca de 15.000 linhas de código. As exclusões incluem código para imitar a instrução CMPXCHG8B para processadores mais antigos que não tinham as instruções, várias rotinas matemáticas emuladas, juntamente com o código de configuração que configurou o kernel corretamente para as CPUs mais antigas de recursos.

Basicamente, se você tentar executar o Linux Kernel 6.15 em um 486 daqui para frente, ele simplesmente não vai funcionar. O kernel fará chamadas para instruções das quais o chip nunca ouviu falar e tudo cairá. O mesmo será verdadeiro para máquinas que executam vários chips não-pentium “586”, como o AMD 5 × 86 e o ​​Cyrix 5 × 86, bem como o AMD Elan. É provável que até alguns chips posteriores, como o Cyrix 6 × 86, podem não funcionar, dado seu apoio questionável ou inexistente à instrução CMPXCHG8B.

Por que agora?

O raciocínio de Molnar para a mudança foi direto, conforme explicado nas notas do patch:

In the x86 architecture we have various complicated hardware emulation
facilities on x86-32 to support ancient 32-bit CPUs that very very few
people are using with modern kernels. This compatibility glue is sometimes
even causing problems that people spend time to resolve, which time could
be spent on other things.

De fato, segue -se de Comentários anteriores de Torvaldsque observou como o desenvolvimento estava sendo retido pelo apoio aos membros antigos da arquitetura X86 da Intel. Em particular, o criador do Linux questionou se os kernels modernos eram amplamente compatíveis com 486 CPUs mais antigas, uma vez que várias características de baixo nível do kernel já haviam começado a implementar o uso de instruções como o RDTSC que não estavam presentes nos processadores de pré-pentium. “Nosso apoio não ao pentium é ativamente de buggy e quebrado agora”, exclamou Torvalds em 2022. “Esta não é uma questão teórica, mas muito um visual, mãe, isso nunca foi testado e não pode realmente trabalhar”, que ninguém jamais notou porque realmente se importa “.

A Intel manteve os chips i486 em produção por bons 18 anos, com os últimos exemplos enviados em setembro de 2007. Crédito: Konstantin Lanzet, CC BY-SA 3.0

Basicamente, a base de usuários para kernels modernos no hardware antigo 486 e inicial “586” era tão pequeno que os Torvalds não acreditavam mais que alguém estava verificando se o Linux atualizado trabalhava mais nessas plataformas. Assim, qualquer esforço de desenvolvimento adicional para anular bugs e manter essas plataformas suportadas foi injustificado.

Vale a pena reconhecer que a Intel fez suas últimas remessas de chips i486 em 28 de setembro de 2007. Isso talvez seja mais recente do que você imagina para um chip lançado em 1989. No entanto, esses chips não eram para uso mainstream. Além do início dos anos 90, o 486 estava morto para usuários de desktop, com um porta -voz da IBM chamando o 486 de “chip antigo” e um “dinossauro” em 1996. A produção da Intel continuou além desse ponto quase exclusivamente para o benefício de usuários militares, médicos, industriais e outros incorporados.

Fichas de terceiros como o AMD Elan também não serão mais utilizáveis. Crédito: PhiarcCC-BY-SA 4.0

Se houvesse uma comunidade grande e vocal pedindo apoio contínuo a esses processadores mais antigos, a equipe de desenvolvimento do kernel poderia ter visto as coisas de maneira diferente. No entanto, no mês ou mais que o adesivo do kernel tenha sido público, nenhum furore entrou em erupção. De fato, não há nada que impeça essas máquinas mais antigas ainda em execução do Linux-elas simplesmente não serão capazes de executar os kernels mais atualizados. Isso não é tão importante.

Embora geralmente haja implicações de segurança em torno da execução de sistemas operacionais desatualizados, o simples fato é que poucos sistemas 486 importantes devem estar realmente conectados à Internet de qualquer maneira. Eles não têm desempenho para carregar coisas como sites modernos e têm pouca despesas gerais para executar software antiviral ou firewalls, além de qualquer software necessário para suas principais tarefas. Os operadores de tais máquinas não estarão faltando muito ao ficar presos nas revisões anteriores do kernel.

Por fim, é bom ver os desenvolvedores do Linux continuando a podar a palha e melhorar o kernel para o futuro. Talvez seja triste dizer adeus ao 486 e ao bando de quase pentiums estranhos de outros fabricantes, mas se formos honestos, poucos ou nenhum estavam executando o kernel Linux mais recente de qualquer maneira. Em diante e para cima!

fonte