> Кто-нибудь его реально использовал?Перешёл на него с генты года три назад. Потом и серваки с дебиана перевёл. Очень удобно.
> Для чего он вообще нужен?
Состояние всей системы описывается в едином конфигурационном файле /etc/nixos/configuration.nix. На основе этого файла устанавливаются все необходимые пакеты, генерируются конфиги, создаются юзеры и т. д. Можно скопировать этот файл на другую машину, запустить nixos-rebuild и получить идентичную систему. Очень удобно, когда переезжаешь на новую рабочую машину или развёртываешь новый сервер. Конфигурационный файл получается на удивление небольшим. Можно положить его в git и фактически получить полный бэкап всей системы. Гораздо удобнее, чем Ansible, и гораздо надёжнее: Ansible работает через раз, потому что применяет изменения к существующей системы, находящейся в неизвестно, каком состоянии. NixOS, в отличие от Ansible, каждый раз пересобирает систему абсолютно с нуля. Поэтому результат не зависит от неизвестного начального состояния и всегда получается одним и тем же. "Абсолютно с нуля" звучит страшно, но на самом деле пересобирается только те части системы, которые изменились с прошлых раз, остальные используются повторно, и "полная пересборка" обычно занимает несколько секунд. Потом происходит атомарное переключение со старой системы на новую. Примерно как Silverblue, только намного продвинутее. NixOS, например, позволяет параллельно устанавливать любое количество версий любого пакета, и они не конфликтуют. Если хранить несколько состояний системы, одинаковые пакеты хранятся на диске только один раз.
Далее, огромные плюс - это пакетный менеджер Nix, на котором основан сабж. Для разработчика это идеальный инструмент. Не нужно вручную устанавливать dev-пакеты и засирать ими систему - вместо этого для каждого проекта пишется файлик shell.nix, где декларативно описаны все зависимости. Потом запускаешь nix-shell и получаешь рабочее окружение, где доступны все зависимости. Опять же, разные проекты могут использовать разные версии одной библиотеки, и они не будут друг другу мешать. Можно для каждого проекта зафиксировать версию репозитория nixpkgs и получить абсолютно воспроизводимое окружение со строго фиксироанными версиями всех зависимостей. На работе стали юзать - очень удобно. Когда приходит новый сотрудник, ему не надо два дня объяснять, как запустить проект - он просто делает git clone, nix-shell - и получает полностью готовое рабочее окружение. До сих не верится, но это работает. Nix можно использовать независимо от NixOS, хоть на убунте, хоть на федоре - везде работает одинаково.
> Какие есть проблемы?
Главный минус - NixOS не использует FHS. Там никакого глобального /usr/lib нет, все пакеты живут в каталогах типа /nix/store/shs8kax43dk69fh94g5w4bc1ra3nv2j2-gcc-9.3.0. Поэтому всякая бинарная проприетарщина сходу не запустится. При желании запустить можно, но нужны дополнительные шаги. В остальном - даже не знаю, для меня одни плюсы. Это дистрибутив будущего, и он настолько крут, что многие даже не в состоянии осознать.