8 pontos por GN⁺ 2025-03-31 | 10 comentários | Compartilhar no WhatsApp

"Precisamos transformar uma distribuição Linux para que ela funcione como o Windows."

  • Este texto propõe criar uma distribuição Linux capaz de executar arquivos executáveis do Windows via Wine por padrão, para resolver os problemas de portabilidade e de distribuição do Linux atual
  • Com isso, usuários de Windows poderiam migrar facilmente para o Linux quase sem treinamento, e os antigos problemas de compatibilidade do Linux também poderiam ser resolvidos ao mesmo tempo

A instabilidade do ambiente Linux

  • No Windows, até arquivos .exe de 20 anos atrás ainda podem ser executados, enquanto no Linux até binários de um ano atrás podem deixar de funcionar
  • Isso acontece por causa das diferenças de versão das bibliotecas e das atualizações no Linux, que fazem com que o mesmo executável não funcione em diferentes distribuições
  • As system calls do Linux são estáveis, mas a biblioteca C (libc) construída sobre elas é instável, e grande parte do espaço de usuário depende dela

O problema da distribuição de binários no Linux

  • No Linux, existem nada menos que quatro formas principais de distribuir arquivos executáveis, e cada uma tem seus próprios problemas
    • Binário puro: não funciona na maioria dos ambientes
    • AppImage: inclui todas as dependências, mas sua capacidade de preservação perfeita é incerta
    • Flatpak: fornece sandbox para cada aplicativo
    • Snap: outro gerenciador de pacotes baseado em sandbox
  • Todas elas têm formas diferentes de instalação, atualização e remoção, e ainda podem coexistir ao mesmo tempo
  • A maioria não é adequada para preservação de longo prazo e reexecução de aplicativos, e a chance de algo ainda rodar daqui a 20 anos é praticamente nula

Por que o Win32 é a solução

  • A Win32 API do Windows é considerada a única ABI (Application Binary Interface) estável no Linux
  • O Windows não faz system calls diretamente; ele realiza chamadas por meio de bibliotecas dinâmicas, preservando assim a estabilidade da API
  • Graças a essa estrutura, a Microsoft consegue alterar internamente o kernel e ainda assim oferecer a mesma interface aos usuários
  • Já o Linux chama system calls diretamente, e como as bibliotecas são instáveis, os problemas de compatibilidade persistem
  • O Wine implementa essa estrutura do Win32, permitindo executar até aplicativos da era do Windows 95, nos anos 1990
  • Em especial, se forem usados apenas aplicativos baseados em Win32, praticamente não há diferença de compatibilidade entre Wine e Windows

Conceito de uma nova distribuição Linux

  • A proposta é criar uma distribuição Linux com ambiente desktop semelhante ao Windows
  • Essa distribuição viria com Wine instalado por padrão e, com um pequeno patch no kernel, reconheceria e executaria automaticamente executáveis do Windows
  • Ela configuraria um ambiente Wine (prefix) por usuário e forneceria um sistema de arquivos e uma GUI no estilo do Windows
  • O ambiente Linux tradicional continuaria existindo em segundo plano, acessível para usuários avançados

Suporte verdadeiramente multiplataforma

  • O Wine pode ser executado não só no Linux, mas também em FreeBSD, macOS, Android e outros sistemas operacionais
  • Se todos os aplicativos forem distribuídos apenas como apps Win32, será possível executá-los em várias plataformas sem port extra
  • É uma estrutura que permite garantir compatibilidade com vários sistemas operacionais com um único aplicativo

As ameaças do futuro

  • macOS e Windows estão evoluindo em uma direção cada vez mais fechada, retirando o controle dos usuários
    • O Windows está adicionando recursos de captura automática de tela e análise por IA
    • O macOS restringe a execução apenas a aplicativos aprovados por meio do Gatekeeper
  • Ambos os sistemas operacionais monitoram a atividade dos usuários e até preparam funções para buscar e denunciar arquivos ilegais
  • A Microsoft está tornando o uso do Windows sem conta online cada vez mais difícil
  • Com isso, pode chegar o momento em que, se uma conta for suspensa, o próprio computador se torne inutilizável

Essa tendência é interpretada não tanto como malícia, mas como um problema causado por pressões econômicas e políticas

Por que empacotar o Linux como se fosse Windows

  • Essa nova distribuição Linux resolveria o problema de portabilidade e ofereceria aos usuários de Windows um ambiente de transição familiar
  • Num momento em que o upgrade para o Windows 11 está sendo imposto, ela poderia oferecer uma alternativa de migração simples
  • O argumento é que agora é o momento certo para imaginar uma distribuição Linux capaz de restaurar a soberania do usuário

10 comentários

 
roxie 2025-04-02

Dá até para concordar com um ecossistema que aguenta 20 anos, mas por que no fim das contas é o wine...

 
yfkim97 2025-04-02

Parece que o macOS não dá mais para usar.

 
labeldock 2025-04-01

Não é que eu queira ser crítico, mas como alguém que já usou vários sistemas operacionais, não consigo concordar muito. Hoje em dia, a maioria das ferramentas de GUI já pode ser usada pela web, e se for preciso um bom desktop, é melhor usar o Windows, que tem uma UI bonita; além disso, o suporte a drivers também é muito melhor no Windows.

 
alucardkang 2025-03-31

Era para ser Steam, né...

 
prunusnira 2025-03-31

Tmax Windows... Lindows/Linspire... ReactOS... aff, minha cabeça...
Parece que o Proton da Valve está realmente fazendo um grande trabalho

 
aer0700 2025-03-31

Parece uma proposta bem criativa.

 
kwj9211 2025-03-31

Não seria melhor simplesmente fazer tweaks para rodar bem jogos / softwares top-tier?

...mas acho que não dá pra pensar assim, né? kkk

 
kandk 2025-03-31

Seria ótimo se chegasse a era em que fosse possível jogar sem precisar de um PC com Windows 11 ou superior buá buá

 
GN⁺ 2025-03-31
Opinião do Hacker News
  • Há quem defenda criar uma distribuição Linux que use o Wine para executar binários do Windows por padrão

    • No Debian, é fácil instalar com o comando sudo apt install wine-binfmt
    • Também é possível usar isso editando arquivos de configuração por outros métodos
  • No Windows, até arquivos .exe de 20 anos atrás ainda podem ser executados, mas no Linux até binários de 1 ano atrás podem deixar de funcionar por causa de atualizações

    • No Windows, ao instalar um app, todas as dependências dinâmicas são empacotadas junto; no Linux, as dependências dinâmicas costumam ser compartilhadas entre apps
    • Se as dependências mudarem, o app pode parar de funcionar
    • Para resolver isso, há métodos como distribuir como no Windows ou fazer linkagem estática
  • Não parece necessário criar uma nova distribuição

    • A maioria dos apps de Windows funciona via Wine, mas os hacks para fazer um app funcionar podem quebrar outro
    • Cada usuário precisa ajustar individualmente as configurações, e algo que funciona no computador de uma pessoa pode não funcionar no de outra
    • A solução mais simples seria distribuir um contêiner com Wine incluído, para que todos os usuários recebam o mesmo artefato e ele funcione sempre
    • Isso é ineficiente em termos de espaço, então seria necessário enxugar o Wine para uso em contêineres
    • Licenciamento e antipadrões de software são as únicas barreiras para esse sistema
  • O Zorin OS já oferece suporte a arquivos .exe com Wine quase por padrão, e o Steam OS/Proton tem diretrizes oficiais para otimizar novos jogos para o Proton em vez de criar um port Linux nativo

  • As distribuições Linux normalmente fazem linkagem dinâmica dos executáveis e não mantêm versões antigas das bibliotecas

    • O Windows mantém versões antigas dos executáveis porque não tem gerenciador de pacotes
    • Existe a Windows Store e também ferramentas CLI mais recentes, mas tradicionalmente a instalação de aplicativos no Windows era feita por download e instalação manual
    • No Linux também dá para fazer da mesma forma, mas os gerenciadores de pacotes das distribuições Linux geralmente são muito bons
  • As system calls do Linux são muito estáveis, mas a biblioteca C acima delas não é

    • O Windows também tem o mesmo problema e distribui a libc como parte do runtime do Visual C++
    • O Windows mantém a compatibilidade retroativa da libc até lançar uma nova versão do Visual Studio
  • Isso soa como alguém que quer o Lindows/Linspire

  • Se a ABI do Windows é tão estável, então fica a dúvida de por que existem computadores com Win95 ou NT que ninguém mexe com medo de algum software específico parar de funcionar

    • É comum ver esse tipo de computador em ambientes industriais, bibliotecas públicas, bancos de dados corporativos etc.
  • Não é necessário um patch no kernel para executar arquivos .exe; o binfmt_misc pode cuidar disso

    • O wine-binfmt executa automaticamente arquivos PE por meio do Wine