BSD no Windows: Coisas que eu gostaria de saber que existiam
Esforços para executar ambientes BSD ou semelhantes a Unix no Windows — de projetos antigos como BSD on Windows (BOW) e coLinux até o SFU/Interix da própria Microsoft e o WSL de hoje — destacam tanto o apelo quanto a complexidade de conectar esses sistemas operacionais. Os comentaristas avaliam a viabilidade desses subsistemas em comparação com alternativas modernas como máquinas virtuais e camadas de compatibilidade, e discutem por que POSIX, APIs específicas do Linux e a interface Win32 estável do Windows levaram à história fragmentada de portabilidade de hoje. O tópico também aborda os pontos fortes e fracos do design do kernel NT e como escolhas estratégicas da Microsoft e do ecossistema de código aberto em geral moldaram quais plataformas se tornaram dominantes.
BSD histórico no Windows (BoW) e subsistemas Unix
- O BoW é visto como um artefato histórico muito legal: um ambiente BSD no Windows 3.1 usando binários a.out, mais parecido com serviços no estilo EMX/HURD do que com Cygwin.
- Pontos fortes mencionados: roda em hardware muito modesto, sem formatação de disco ou mudanças de drivers, pode usar Winsock e consegue executar coisas como vi, gcc, hack, Apache 1.3.
- Principal limitação: essencialmente monousuário, por causa das restrições do Win16; algumas pessoas especulam que uma evolução baseada em NT poderia ter sido muito mais impactante.
- Alguns prefeririam um subsistema BSD moderno e completo no Windows em vez de um ambiente esquisito como o BoW.
Outras soluções Unix-no-Windows
- Os participantes lembram de uma longa linha de abordagens: Cygwin, MSYS2, Git Bash, coLinux, Linux com debugger hackeado, SFU/Interix, UWIN.
- SFU/Interix é descrito ao mesmo tempo como “horrível” e “funcionava bem”, dependendo do caso de uso; alguns tiveram sucesso compilando cargas de trabalho reais, outros acharam pouco confiável e estranho de licenciar.
- Há nostalgia por um Windows que inicializa em um userland estilo Unix em modo caractere.
Binários multiplataforma e POSIX vs Linux
- Alguns gostariam de compatibilidade cruzada nativa entre executáveis Windows e Linux; outros argumentam que a realidade atual (Win32 + WSL + containers) provavelmente é o melhor que se consegue.
- Cosmopolitan/APE e Win32-on-Linux são citados como direções promissoras, mas são apontadas limitações para APIs complexas (gráficos, Bluetooth, etc.).
- Há críticas fortes ao direcionamento para APIs “só Linux” e comportamento específico do glibc; POSIX é visto como pouco usado apesar de ser suficiente para a maioria dos apps.
- Usuários de BSD argumentam que, se os desenvolvedores evitassem código específico de Linux, seu software em grande parte “simplesmente funcionaria” em BSD e outros sistemas parecidos com Unix.
Linkagem estática, empacotamento e complexidade do Linux
- Uma anedota detalhada descreve tentativas fracassadas de distribuir um único binário estaticamente ligado de um jogo Love2D devido a pilhas profundas de dependências (bibliotecas de imagem/áudio, Mesa, drivers de GPU).
- A linkagem estática no Linux é retratada como frágil e frustrante; linkagem dinâmica com empacotamento (arquivos .so, AppImage, Flatpak) é sugerida como mais realista.
- Go com cgo desativado é mencionado como uma solução parcial para binários CLI estáticos, embora gráficos continuem difíceis.
Microsoft, POSIX e WSL
- O subsistema POSIX histórico do NT é enquadrado tanto como um requisito de conformidade para contratos governamentais quanto como uma oportunidade perdida; se tivesse sido melhorado em vez de abandonado, alguns acham que a posterior dominância do Linux poderia ter sido enfraquecida.
- WSL/WSL2 é referido como uma espécie de “mea culpa”, reintroduzindo capacidades semelhantes ao Unix depois que os subsistemas anteriores foram descartados.
- Debate sobre Interix: um lado diz que foi “comprado e extinguido”, outros apontam que ele foi oficialmente suportado por mais de uma década, embora sua usabilidade supostamente tenha piorado.
Design de kernel: NT vs Unix
- Alguns elogiam a herança VMS do kernel NT e seu design; outros o chamam de “nem bom / nem terrível”, criticando a complexidade de drivers, o modelo IRQL, o HAL e a pilha de rede dividida.
- Há discordância sobre se benchmarks ou a experiência cotidiana mostram o NT como particularmente forte ou fraco; o consenso é que as camadas Win32 escondem em grande parte qualquer elegância por baixo.
Frustrações mais amplas: ecossistemas e longevidade
- Reclamações sobre ecossistemas proprietários causando obsolescência de hardware (por exemplo, impressoras perdendo suporte a drivers em novas versões do macOS).
- Preocupação de que a dominância do Linux em suporte a hardware e DRM reduza paradoxalmente a escolha prática de sistema operacional, já que outros sistemas livres precisam importar código do Linux para acompanhar.
- Alguns argumentam que a indústria subestima compatibilidade retroativa e preservação, levando a desperdício desnecessário.
Fora do tópico: riqueza, criatividade e expectativas
- Um desvio explora como criadores ricos às vezes param de fazer “projetos legais” (como jogos ambiciosos ou experimentos de SO) depois de ficarem ricos.
- As opiniões divergem entre criticar isso como uma oportunidade desperdiçada e aceitar que o trabalho anterior já foi contribuição “suficiente”.