BSD en Windows: cosas que desearía haber sabido que existían

Los esfuerzos por ejecutar entornos BSD o similares a Unix en Windows —desde proyectos tempranos como BSD on Windows (BOW) y coLinux hasta el SFU/Interix de Microsoft y el WSL actual— ponen de relieve tanto el atractivo como la complejidad de tender puentes entre estos sistemas operativos. Los comentaristas sopesan la practicidad de esos subsistemas frente a alternativas modernas como las máquinas virtuales y las capas de compatibilidad, y debaten por qué POSIX, las APIs específicas de Linux y la interfaz Win32 estable de Windows han dado lugar a la situación fragmentada de portabilidad actual. El hilo también aborda los puntos fuertes y débiles del diseño del kernel NT y cómo las decisiones estratégicas de Microsoft y del ecosistema de código abierto en general moldearon qué plataformas llegaron a dominar.

BSD histórico en Windows (BoW) y subsistemas Unix

  • BoW se considera un artefacto histórico muy interesante: un entorno BSD en Windows 3.1 usando binarios a.out, más parecido a servicios al estilo EMX/HURD que a Cygwin.
  • Se mencionan como fortalezas que funciona en hardware muy modesto, no requiere formatear el disco ni cambiar controladores, puede usar Winsock y puede ejecutar cosas como vi, gcc, hack, Apache 1.3.
  • La principal limitación: esencialmente de un solo usuario, debido a las restricciones de Win16; algunos especulan que una evolución basada en NT habría sido mucho más influyente.
  • Algunos preferirían un subsistema BSD moderno y completo en Windows en lugar de un entorno peculiar como BoW.

Otras soluciones Unix en Windows

  • Los participantes recuerdan una larga lista de enfoques: Cygwin, MSYS2, Git Bash, coLinux, Linux parcheado basado en depurador, SFU/Interix, UWIN.
  • SFU/Interix se describe a la vez como “horrible” y como “funcionó bien” según el caso de uso; algunos lograron compilar cargas de trabajo reales, mientras que otros lo encontraron poco fiable y torpe de licenciar.
  • Hay nostalgia por un Windows que arranque en un entorno de usuario similar a Unix en modo carácter.

Binarios multiplataforma y POSIX frente a Linux

  • Algunos desearían compatibilidad nativa cruzada entre ejecutables de Windows y Linux; otros sostienen que la realidad actual (Win32 + WSL + contenedores) probablemente es lo mejor que se puede conseguir.
  • Cosmopolitan/APE y Win32-on-Linux se citan como direcciones prometedoras, pero se señalan limitaciones para APIs complejas (gráficos, Bluetooth, etc.).
  • Fuerte crítica al objetivo de APIs “solo Linux” y al comportamiento específico de glibc; POSIX se ve como infrautilizado a pesar de ser suficiente para la mayoría de las aplicaciones.
  • Usuarios de BSD sostienen que si los desarrolladores evitaran código específico de Linux, su software en gran medida “simplemente funcionaría” en BSD y otros sistemas tipo Unix.

Vinculación estática, empaquetado y complejidad de Linux

  • Una anécdota detallada describe intentos fallidos de distribuir un único binario enlazado estáticamente de un juego Love2D debido a pilas de dependencias profundas (bibliotecas de imagen/audio, Mesa, controladores GPU).
  • La vinculación estática en Linux se presenta como frágil y frustrante; se sugiere que la vinculación dinámica más el empaquetado (archivos .so, AppImage, Flatpak) es más realista.
  • Se menciona Go con cgo deshabilitado como una solución parcial para binarios CLI estáticos, aunque los gráficos siguen siendo difíciles.

Microsoft, POSIX y WSL

  • El subsistema POSIX histórico de NT se presenta a la vez como una casilla para contratos gubernamentales y como una oportunidad perdida; si se hubiera mejorado en lugar de abandonarse, algunos creen que el posterior dominio de Linux podría haberse atenuado.
  • WSL/WSL2 se menciona como una especie de “mea culpa”, reintroduciendo capacidades similares a Unix después de que se abandonaran subsistemas anteriores.
  • Debate sobre Interix: un lado lo llama “comprado y extinguido”, otros señalan que estuvo oficialmente soportado durante más de una década, aunque supuestamente su usabilidad disminuyó.

Diseño del kernel: NT frente a Unix

  • Algunos elogian el diseño del kernel NT y su herencia de VMS; otros lo llaman “ni bueno ni terrible”, criticando la complejidad de los controladores, el modelo IRQL, el HAL y la pila de red dividida.
  • Hay desacuerdo sobre si los benchmarks o la experiencia cotidiana muestran a NT como particularmente fuerte o débil; el consenso es que las capas Win32 ocultan en gran medida cualquier elegancia subyacente.

Frustraciones más amplias: ecosistemas y longevidad

  • Quejas sobre ecosistemas propietarios que causan obsolescencia de hardware (por ejemplo, impresoras que pierden compatibilidad con controladores en nuevas versiones de macOS).
  • Preocupación de que el dominio de Linux en soporte de hardware y DRM reduzca paradójicamente la elección práctica de sistema operativo, ya que otros SO libres deben importar código de Linux para mantenerse al día.
  • Algunos argumentan que la industria subestima la compatibilidad hacia atrás y la preservación, lo que conduce a un desperdicio innecesario.

Fuera de tema: riqueza, creatividad y expectativas

  • Una tangente explora cómo algunos creadores ricos dejan de hacer “proyectos geniales” (como juegos ambiciosos o experimentos de sistemas operativos) una vez que son ricos.
  • Las opiniones divergen entre criticar esto como una oportunidad desperdiciada y aceptar que el trabajo anterior fue una contribución “suficiente”.