12 puntos por GN⁺ 2026-03-23 | 8 comentarios | Compartir por WhatsApp
  • Basado en el gestor de paquetes Nix, NixOS tiene una arquitectura que define todo el sistema como código y permite restaurarlo en cualquier momento a un estado determinista y reproducible
  • Gestiona todas las configuraciones y paquetes con un único archivo de configuración declarativo, lo que permite reconstruir el mismo entorno desde una sola fuente incluso en un equipo nuevo
  • Ofrece lanzamientos estables cada 6 meses, actualizaciones automáticas y, cuando hace falta, soporte para probar software más reciente mediante el canal unstable
  • Proporciona entornos de desarrollo aislados para experimentar con distintos lenguajes y herramientas sin contaminar el sistema, manteniendo una experiencia de desarrollo consistente entre macOS y Linux
  • También se adapta a la rápida rotación de herramientas en la era de la programación con LLM, y asegura consistencia hasta el despliegue con un modelo de compilación más determinista y en capas que Docker

La filosofía y el atractivo de NixOS

  • El núcleo de NixOS no es la distribución Linux, sino el gestor de paquetes Nix
    • NixOS es el resultado de un gestor de paquetes funcional, determinista y reproducible, capaz de configurar todo el sistema operativo según la entrada definida en el DSL de Nix
    • Ofrece una estructura que permite reconstruir el sistema o modificar solo una parte y, si no convence el resultado, hacer rollback
  • Mientras la mayoría de los sistemas operativos se vuelven inestables con el tiempo, en NixOS se puede definir y construir el estado
    • Evita la acumulación de estados ambiguos causada por instalación de paquetes, cambios de configuración y adición o eliminación de herramientas
    • Al definir el sistema como código, es posible reproducir el mismo resultado en cualquier momento

Configuración declarativa y gestión desde una sola fuente

  • En NixOS se puede definir todo el sistema —paquetes, configuración, mapeo de teclado y más— con una sola configuración declarativa
    • Igual que en los ejemplos de configuración de extensiones de GNOME o de mapeos de teclado, incluso los comportamientos detallados pueden describirse con el DSL de Nix
    • También es posible reconstruir todo el sistema desde una sola fuente en una computadora nueva
  • Esto permite mantener un estado del sistema consistente sin configuraciones manuales ni scripts dispersos

Estabilidad y gestión de actualizaciones

  • NixOS mantiene lanzamientos predecibles cada 6 meses y soporta actualizaciones automáticas
    • Minimiza la inestabilidad, las notificaciones molestas y los problemas de system drift que suelen aparecer en actualizaciones de otros sistemas operativos
    • Si se necesita, se puede activar el canal unstable para usar de forma experimental software más reciente
  • Incluso en una laptop HP ofrece alta compatibilidad de hardware y estabilidad, y puede usarse de inmediato sin configuración adicional

Aislamiento para experimentación y desarrollo

  • NixOS ofrece un entorno de experimentación seguro y de bajo costo
    • En lugar de instalar paquetes directamente en el sistema, se pueden ejecutar dentro de entornos shell aislados
    • Con el DSL de Nix se pueden definir declarativamente dependencias, pasos de compilación y resultados para mantener un entorno de desarrollo sin contaminación
  • Como el mismo gestor de paquetes Nix puede usarse tanto en macOS como en Linux, se logra consistencia en las herramientas de desarrollo y en la gestión de dependencias
    • También existe soporte de la comunidad para FreeBSD

Afinidad con la era de la programación con LLM

  • Las herramientas de programación basadas en LLM suelen requerir cambios frecuentes de versiones específicas de utilidades, compiladores y runtimes
    • Nix responde a esa necesidad al tratar las herramientas como entradas declarativas y ejecutarlas en entornos aislados
    • Por ejemplo, al compilar un agente de voz a texto en Rust, Nix carga automáticamente el toolchain de Rust y configura un entorno de compilación aislado
    • No modifica el entorno del sistema (~/.cargo, ~/.rustup, PATH, etc.)
  • Con flake.nix y nix flake check, es posible fijar el entorno de experimentación del agente como un artefacto reproducible
    • Convierte sesiones temporales en unidades de compilación verificables

Despliegue y modelo de desarrollo consistente

  • Nix ofrece un método de construcción de imágenes más determinista y en capas que Docker
    • Con dockerTools.buildLayeredImage se pueden crear imágenes Docker pequeñas y reproducibles
    • Con la misma configuración, se puede compilar el mismo resultado en otras arquitecturas
  • Ese mismo modelo se aplica de forma consistente a laptops, shells, dependencias de proyectos, pipelines de CI y artefactos de despliegue
    • En lugar de combinar muchas herramientas, permite gestionar todo el sistema de software con una sola forma de pensar

Conclusión

  • NixOS es una implementación de un sistema declarativo, reproducible, reversible y estable
  • Permite experimentar y actualizar sin miedo, y no contamina el sistema incluso en entornos de herramientas que cambian rápidamente
  • También en flujos modernos de desarrollo como los agentes de programación con LLM ofrece al mismo tiempo estabilidad y flexibilidad
  • NixOS es la forma en que esta filosofía se materializa de la manera más completa en el uso diario

8 comentarios

 
dongho42 2026-03-24

Yo también usé NixOS por casi medio año hace tiempo, y un día no pude resolver, por más que buscara en Google, una tarea muy simple que en otros sistemas operativos ni siquiera requiere buscar nada aparte. Entonces vi en un lugar como el foro de NixOS una solución que había dejado registrada algún experto en NixOS, y cuando vi que esa solución hacky de varias decenas de líneas era la que tenía más likes, sentí que mi vida futura con NixOS se veía muy oscura, así que me volví a Arch...

 
dongho42 2026-03-24

Y no lo recuerdo bien, pero era flake o alguna función así, que en unos lados la llaman best practice, en otros experimental y en otros ambas cosas, y ver que eso lleva años así me dejó clarísimo que me esperaba un camino lleno de sufrimiento..

Claro, la experiencia de poder convertir en código todo el entorno de escritorio sí fue agradable.

 
pmc7777 2026-03-24

Firebase Studio también usa Nix

 
laeyoung 2026-03-24

Oh... ¡ya veo!

Por cierto, R.I.P. Firebase Studio ;_;

 
grenade 2026-03-24

Es demasiado difícil, lo intenté un poco y luego me rendí T_T
(I use Arch btw)

 
ztaka 2026-03-24

Quien sabe, lo usa de boca en boca jajaja
Una configuración reproducible implementada con un lenguaje funcional declarativo

 
ytuniverse 2026-03-24

La curva de aprendizaje es ridículamente empinada. Te exige un nivel alto, tanto como garantiza la reproducibilidad.
Incluso usando flake, sigue siendo complicado.

Además, parece que internamente usa SQLite, y el rendimiento también es inconsistente, así que hay cierta fluctuación en el tiempo que tarda volver a reproducir un entorno.

 
GN⁺ 2026-03-23
Comentarios en Hacker News
  • Creo que NixOS es insuperable en compatibilidad con herramientas de IA
    En otros OS es difícil dejarle la configuración del sistema a una IA, pero NixOS resulta confiable gracias a su estructura declarativa y con rollback
    No le encargaría a Claude ni a Codex cambiar de Pulseaudio a Pipewire o instalar Hyprland, pero con NixOS tendría la confianza suficiente como para dejárselo hasta a Grok
    La clave es la estabilidad de poder revisar los cambios de antemano y revertirlos en cualquier momento
    Si eres desarrollador, te recomiendo probar NixOS soñando con un “Linux de escritorio administrado por IA”. Puedes empezar diciéndole a Claude: “hazme una configuración de Gnome basada en Flake que pueda demostrar en una VM”

    • Llevo 3 años usando NixOS y más de 1 año usando Claude. La combinación de ambos es realmente ideal
      Sorprende ver a Claude ajustar de forma declarativa la configuración dconf de GNOME
      Eso sí, a veces la IA produce resultados raros porque no entiende el complejo contexto del ecosistema Nix
      Se nota que la estructura lambda no convencional de Nix y el scope implícito entre módulos lo hacen difícil no solo para las personas, sino también para la IA
      Por eso es importante definir con claridad la estructura y los patrones del proyecto. Aun así, crear plantillas basadas en Nix es un proceso divertido y productivo
    • Si soy sincero, esto parece una solución técnica excesiva para un problema que no existe
      ¿De verdad hace falta usar un LLM para instalar Hyprland? Con simplemente sudo dnf install hyprland basta
      Más que que Nix sea “amigable con la IA”, parece que la gente termina usando LLM porque manejarlo directamente es engorroso
    • Yo tuve una experiencia parecida. Hace tiempo publiqué en HN algo llamado “ClaudeOS”, pero en realidad era una combinación de NixOS + Flakes + Claude Code
      Administro la configuración de varias máquinas como “perfiles de negocio” y despliego automáticamente en cada una los repos y ajustes necesarios
      Un compañero de trabajo usaba Windows originalmente, pero ahora ya usa NixOS en su día a día
      También gestiono de forma declarativa toda la configuración del hardware, y mis ajustes están en un repositorio público de GitHub. Se agradece cualquier feedback
    • Yo también hice que Claude resolviera problemas de configuración en NixOS, y funcionó realmente bien
      Incluso al mover configuraciones a una nueva estructura o al crear varios entornos de prueba de WM/DE, Claude se encarga de la mayor parte del trabajo repetitivo
      Ahora el sistema está completamente estable, así que casi no tengo nada que hacer manualmente
      En otros OS es difícil tener ese nivel de confianza
    • Antes Nix me parecía demasiado críptico, así que esperé hasta que la IA avanzara más
      En su lugar administraba mis entornos de desarrollo con scripts de Docker, pero ahora siento que la compatibilidad entre Nix e IA es perfecta
      Parece que en adelante saldrán muchos más programas que la IA podrá manejar con facilidad
  • Después de usar Windows durante 30 años, hace 1 año me cambié por completo a Nix
    Ahora no tengo ninguna intención de volver a Windows
    Me encanta que toda la configuración del OS esté dentro de un repositorio Git
    Desarrollar sin Nix es casi tan ineficiente como programar sin Git
    Una vez que dejas todo configurado, preparar un sistema nuevo después es muy sencillo

    • Me pregunto si existe algún proyecto que permita crear fácilmente contenedores aislados basados en mi configuración de NixOS
      Quiero que cada app corra en un entorno independiente sin afectar al sistema completo
      Creo que NixOS es uno de los caminos hacia ese futuro
    • En algún momento pensé volver a Fedora Bazzite, pero me quedé en NixOS porque permite implementar HDR en Sway de forma más estable
      La GPU de Nvidia también funciona bien, y es mucho más estable que Gamescope
    • Me gustaría ver ejemplos de cómo usar nix-shell para ejecutar scripts de Python rápidamente. Todavía estoy aprendiendo cómo interactúan Python y NixOS
  • Me gustaría poder querer más a NixOS, pero el mayor problema es la falta de documentación
    La información está dispersa entre varios foros, blogs viejos e issues

    • Además, es confuso que haya dos wikis oficiales (nixos.wiki, wiki.nixos.org)
      Ambas se actualizan, pero al buscar nunca está claro cuál está más al día
    • Yo antes también me quejaba de la falta de documentación, pero ahora pienso que el propio código fuente es la documentación
      Clonar nixpkgs y leerlo directamente es lo más rápido
    • ChatGPT es bastante útil para juntar material de distintas fuentes y crear ejemplos de código funcionales
    • En realidad muchos usuarios ni siquiera leen la documentación y dejan que Claude Code escriba el código Nix
  • Probé NixOS como sistema operativo para laptop, y tenía ventajas y desventajas muy marcadas
    La configuración declarativa y las funciones de snapshot son revolucionarias, pero la distinción entre paquetes y servicios y el concepto de Flake me resultaron confusos
    Al instalar KDE solo se instaló la configuración mínima, así que hizo falta ajustar cosas extra, y además la documentación cambiaba según la versión, por lo que era difícil seguirla
    Al final lo dejé porque necesitaba una máquina estable, pero me parece una excelente opción para administradores de sistemas

    • A mí Flake también me pareció difícil al principio, pero en la práctica es la forma más intuitiva
      El instalador de Determinate Systems activa Flake por defecto
      Puedes mover la configuración de /etc/nixos a un repositorio Git, y con el comando nixos-install --flake <repo> es posible desplegar una configuración completa
      Si además usas Home-manager, también puedes gestionar de forma declarativa hasta el directorio de usuario
      Los archivos de /etc pueden gestionarse con environment.etc, y los archivos de .config con opciones de home-manager
      Enlaces relacionados: opción environment.etc, opciones de home-manager
    • Estaba buscando documentación sobre mkOutOfStoreSymlink y me dio risa ver una respuesta que decía “es tan simple que no hace falta documentación”
      Aun así, las ventajas de NixOS son tan grandes que estoy migrando por completo en el orden homelab → laptop → desktop
      Pero la situación de la documentación sigue siendo desesperante
    • Flake cumple dos funciones:
      1. declarar las entradas y salidas del codebase
      2. fijar (pinning) la versión de las fuentes de entrada
        Es decir, cumple a nivel de Nix el papel de un package.json y su lock file
    • Me sorprende que todavía nadie haya usado LLM para mejorar la documentación
  • Siempre me gustó NixOS, pero desde la era de los LLM me gusta todavía más
    Le pides a Codex “modifica esta configuración del servidor para que funcione un certificado wildcard” y en 5 minutos queda resuelto
    Nunca antes había sido tan fácil la administración reproducible de servidores

  • Desde que me cambié a NixOS, la época en que manejaba todo con apt o brew me parece tecnología de la Edad de Piedra
    También combina excelente con herramientas de IA como Copilot

    • NixOS es 95% excelente, pero el 5% restante es muy doloroso
      Para resolver problemas hace falta una comprensión más profunda que en Linux normal
      A cambio, la estructura hace que pagues esa complejidad de una sola vez al inicio
    • He usado varias distribuciones Linux durante 20 años, pero NixOS es la primera que me da la sensación de “esta es la respuesta correcta”
      Lo mejor es poder hacer instalaciones temporales con nix-shell o ver todos los paquetes instalados en un solo archivo de configuración
      Gracias a los snapshots automáticos, experimentar no da miedo. Si algo sale mal, basta con arrancar la generación anterior
      Antes me daba miedo modificar parámetros del kernel, pero ahora puedo probar lo que quiera
      Como me gusta Lisp, también consideré Guix System, pero en términos de uso práctico NixOS es mejor
  • Ojalá NixOS no tuviera esa estructura de sistema de archivos tan rara
    Sé que es un enfoque para resolver el problema de usar varias versiones de Python al mismo tiempo, pero para mí eso no hace falta
    Solo quiero mantener la misma configuración en todas mis máquinas
    Ahora mismo estoy experimentando con imágenes Fedora bootc y Podman, pero es incómodo no tener algo como nixos-rebuild switch que aplique los cambios al instante
    Al final es un trade-off entre Nix, que permite experimentar fácilmente, y Fedora, con sistema de archivos estándar

  • La mayor ventaja de NixOS es la reproducibilidad determinista del caché de CI
    No hace falta reconstruir paquetes cada vez, y configurar entornos de desarrollo también es sencillo

    • Usar Nix en CI es una combinación realmente perfecta
      Por ejemplo, Tangled construyó todo su sistema de CI con Nix, y resolvió por completo los problemas de caché de GitHub Actions
  • No para todo el sistema, pero uso mucho devenv.sh
    Permite configurar entornos de desarrollo mucho más fácilmente que con contenedores locales

    • Pero el método de fijar versiones (pinning) no me queda claro
      Me decepciona que no haya una forma sencilla de alinear versiones como con .tool-versions de asdf
      En el mundo de Nix dicen “ese enfoque está mal”, pero yo igual quiero poder fijar versiones individuales
    • Me da curiosidad la diferencia con home-manager
    • Con un simple pkgs.mkShell también puedes crear un entorno parecido, así que me pregunto por qué haría falta usar devenv
  • Me gusta NixOS, pero prefiero Guix
    El lenguaje Guile me resulta más familiar y la documentación también está mejor hecha. Veo ambos sistemas como hermanos

    • Creo que Guix merece mucho más amor
      Usar un lenguaje de programación real (Scheme) es una gran ventaja
      Tiene una base mucho más potente que un simple lenguaje de configuración