Wine portado para OpenBSD
Portar a camada de compatibilidade do Windows Wine para o OpenBSD permitiu que jogos modernos como The Witcher 3 e Disco Elysium rodem no sistema BSD tradicionalmente voltado para segurança, recorrendo a drivers gráficos atualizados para AMD/Intel e a ferramentas baseadas em Vulkan. Os contribuidores explicam o trabalho técnico profundo necessário — como interceptar e reescrever instruções `%gs`, redirecionar sinais e contornar o modelo rígido de isolamento de processos e `ptrace` do OpenBSD — ao mesmo tempo em que observam que o upstream do Wine reluta em dar suporte oficial a outro sistema operacional. O projeto também se torna um ponto de tensão para questões mais amplas sobre a postura do OpenBSD em relação a código assistido por IA, manutenção de longo prazo e se rejeitar contribuições geradas por LLM deixará sistemas operacionais menores “para trás” em termos de recursos e suporte a hardware.
Esforço de port e abordagem técnica
- O Wine foi portado para OpenBSD/amd64 e consegue executar jogos exigentes (por exemplo, Witcher 3 remaster, Disco Elysium, Hollow Knight, Prey, Death Stranding, Factorio).
- Trabalho específico para OpenBSD:
- Lidar com o registrador
%gs: o OpenBSD intercepta instruções%gsporque%gs/gsbasesão 0, então o port decodifica as instruções interceptadas, reescreve-as para formas sem%gsusando registradores temporários e salta via stubs. Isso desbloqueia a maioria dos aplicativos básicos do Windows e muitos jogos. - Lidar com
ucontext, mapeamento de stack,mmape contexto de trap para que a lógica de%gssaiba onde operar. - Tratamento de sinais: o OpenBSD não permite sinalizar uma thread em outro processo. O Wine emula as APIs de thread do Windows por meio de sinais Unix, então o port captura sinais interprocessos e os reemite dentro do processo de destino (por exemplo, remapeando para outro sinal).
- Equivalentes de
ReadProcessMemory/WriteProcessMemorysão complicados devido ao modelo de segurança do OpenBSD e às restrições deptrace, especialmente para Electron/Chromium e Steam.
- Lidar com o registrador
Upstream e manutenção
- O Wine já oferece suporte a FreeBSD e macOS, então estender para outro BSD é visto como desafiador, mas não extremo.
- Alguns patches são específicos do OpenBSD e são considerados muito improvisados ou intrusivos ao código de aplicativo emulado do Wine para serem aceitos upstream.
- Segundo relatos, os mantenedores do Wine hesitam em adicionar suporte contínuo para outro sistema operacional; OpenBSD e possivelmente NetBSD provavelmente manterão patches separados.
Gráficos, drivers e suporte a hardware
- O OpenBSD oferece suporte a GPUs Intel e AMD modernas com 2D/OpenGL acelerados por hardware e Vulkan por meio de drivers DRM derivados do Linux; o suporte da Nvidia é, na prática, limitado ao antigo hardware
nv(4)sem aceleração. - O VKD3D funciona se Vulkan e as extensões necessárias estiverem presentes; no OpenBSD isso parece funcionar bem com hardware AMD.
- O desempenho é descrito como “aceitável” por alguns, mas não são fornecidos benchmarks detalhados.
Ferramentas, repositórios e ports
- O port do Wine está na árvore de ports do OpenBSD (baseada em CVS, espelhada no GitHub). A entrada dos ports é uma receita de build mais patches, não um fork de todo o Wine.
- Há uma branch separada no GitHub acompanhando o trabalho específico do Wine para OpenBSD; issues estão sendo aceitas lá.
Reação da comunidade e importância
- Muitos comentaristas estão entusiasmados, chamando isso de um trabalho impressionante e um grande passo para jogos em BSD e suporte a aplicativos legados do Windows.
- Alguns veem isso como evidência de que os BSDs estão recebendo mais atenção e podem se tornar refúgios contra tendências de outros sistemas operacionais.