
Как известно всем, кто не особо ориентируется в чудесном мире дистрибутивов Линукса, существует множество невероятно разных и несовместимых друг с другом дистрибутивов, и вообще, где собираются два линуксоида, там создаются три новых дистрибутива. Это, конечно, на самом деле не совсем так, есть буквально несколько популярных семейств дистрибутивов, внутри которых различий не так уж много. Существует и множество независимых дистрибутивов, но они зачастую тоже не предлагают ничего реально оригинального и полезного, поэтому обычно не обретают большой популярности. Но иногда встречаются действительно уникальные проекты, решающие определённые задачи и сумевшие собрать вокруг себя стабильное сообщество или даже культ (почти как у Arch, но локальнее). Одним из таких дистрибутивов является NixOS, осторожному знакомству с которым и посвящена данная статья.
Не буду расписывать подробно историю и особенности дистрибутива, этого материала хватает в сети, отмечу лишь ключевые характеристики, остальное потом рассмотрим на практике. Про этот дистрибутив точно не скажешь, что его создали просто ради нескучных обоев (забегая вперёд, обои в нём оказались довольно скучными). NixOS основан на менеджере пакетов Nix и придерживается декларативного подхода к настройке пакетов и системных сервисов. Т.е. мы не указываем системе "устанавливай давай такой-то пакет”, а вписываем его название и какие-то сопутствующие параметры при необходимости в системный конфигурационный файл, и система при пересборке приводит себя в соответствие с этим конфигом, устанавливая для этого все нужные пакеты. У Nix есть много интересных фишек, например, приложения ставятся в каталог /nix/store, каждое в отдельной изолированной read-only директории с хешем по входным данным пакета в имени, что позволяет держать несколько версий одного и того же пакета и избегать ада зависимостей, т. к. при необходимости нет проблем держать отдельно библиотеку определённой версии для определённого пакета. Обновления системы атомарны и легко откатываются взад. Из-за подобных особенностей NixOS не придерживается FHS в структуре системных директорий, что может создавать проблемы для приложений, рассчитывающих на стандартную структуру каталогов, и отпугивает новичков.

Как вообще люди приходят к идее попробовать такую экзотику? Некоторые просто любят смотреть всякое странное и необычное, а меня также сподвигло к этому, как ни странно, обновление Gimp до третьей версии. Когда тебя заставляют в новой версии использовать привычный и часто востребованный инструмент лишь через нагромождения контекстных меню, то часто возникает желание плюнуть на эту всю новизну и вернуться к старой версии с привычным поведением. И тут всплывает, что большинство пакетных менеджеров под такие финты ушами просто не заточены, ну типа есть некоторые способы откатов или установки отдельных версий, но они обычно либо сложные, либо сопряжены со всякими побочными эффектами для целостной системы пакетов дистрибутива, а мне просто нужно, чтобы была одна программа одной фиксированной версии (можно Gimp-2 попробовать поставить из AUR, если повезёт, но тогда придётся текущий удалять). Даже flatpak, который вроде как отчасти должен помогать ставить всё изолированно и самодостаточно, рассчитан в первую очередь на установку последней версии определённой программы, а не на свободное жонглирование разными версиями, хотя в теории можно найти и установить вручную старый пакет. Поэтому мне захотелось посмотреть на практике, какие возможности предоставляет Nix в своей естественной среде обитания, тем более понравилась идея простых откатов при неудачных обновлениях. Статья будет об установке и базовой настройке дистрибутива NixOS, без залезания в дебри многочисленных команд терминала, просто по верхам пройдёмся и посмотрим, как тут устроено всё в основе и что можно по минимуму настроить для работы в нём.
Установка
Сразу обозначу, что NixOS устанавливался на ноунеймовый китайский ноутбук, где из коробки стояла какая-то версия Ubuntu с чудной разметкой дисков. Т. е. данное устройство изначально рассчитано под Линукс и особых проблем с драйверами тут не предвиделось, так что не стоит ожидать ниже слёзных историй про нелёгкий поиск вайфай-драйверов. Но у других производителей ситуация может быть заметно хуже, про это всегда стоит помнить, когда собираетесь использовать любой дистрибутив Линукса на ноутбуке.
На сайте проекта предлагается для скачивания два варианта ISO-образа: полноценный графический и минимальный консольный. Так как мы в рамках обзора не собираемся глубоко погружаться и усложнять себе жизнь, то скачиваем первый вариант. Для установки его с флешки рекомендую использовать Ventoy, ныне это самый простой и универсальный вариант. При загрузке с этого образа нам будут предложены два варианта live-сессии: с окружением Gnome и с KDE Plasma. Этот выбор не влияет на итоговое DE в установленной системе, потом в установщике будет предложено на выбор множество рабочих окружений, пока просто выбираем то, с чем будет более комфортно взаимодействовать в процессе установки.
Сначала был выбран вариант загрузки с KDE, но возникла проблема с подключением беспроводной сети (а без интернета установщик системы никуда двигаться не хочет). Менеджер подключений здесь очень мощный и навороченный, но вот банально подключиться к запароленному вайфаю он почему-то не смог (ну типичные кеды). Ладно, мы не гордые, перезагружаемся в сессию с Gnome и там без проблем подключаемся к вайфаю, чтобы система при установке докачала всё, что ей требуется.

Про саму установку мало чего можно рассказать интересного, тут используется установщик Calamares, который, скорее всего, видел каждый, кто в принципе устанавливал дистрибутивы с графическим установщиком. Идём по пунктам установки, вводим требуемые данные и ставим галочки как нам нужно, после завершения перезагружаемся — здесь специфика NixOS почти никак не проявляется. Рабочее окружение выбрал Xfce при установке как наиболее привычный и удобный вариант, но там ещё куча всего есть на выбор, как видно на скриншоте выше. Диск можно было дать разметить на автомате, благо ноут ни для чего больше не использовался у меня и ценных данных там не было, но я решил заранее в gparted всё подготовить и вручную указать разделы, скрин из уже установленной системы того, что получилось:

Загрузочный раздел на fat32, два системных раздела на Btrfs под гипотетический дуалбут в будущем, общий раздел для данных на ext4, и небольшой раздел для свопа (ничего не знаю, мне он не мешает, пусть будет). На первый системный раздел OS1 и был установлен NixOS, Btrfs там была выбрана просто для ещё большей надёжности системы, чтобы можно было быстро клепать снапшоты через timeshift, надёжности много не бывает, а почти 200 ГБ для всего должно хватить. Но тут уж как кому удобнее и какие есть потребности, в принципе, можно было и всё на одном разделе с ext4 разместить.
Первоначальная настройка и обслуживание
Система сразу после установки предоставляет пользователю довольно скудный набор приложений, арчеводам это может понравиться. Есть буквально лишь самое необходимое, типа браузера, просмотрщика изображений, медиаплеера, а остальное нам нужно будет установить уже самостоятельно. В том числе и ряд апплетов и плагинов для Xfce, ибо изначально в комплекте нет даже привычного панельного апплета для переключения раскладок клавиатуры.
Для начала нужно познакомиться с великим и ужасным единым файлом конфигурации NixOS, который по дефолту располагается здесь: /etc/nixos/configuration.nix. Тем, кто просто что-то читал о данном дистрибутиве, может казаться, что в нём изначально должен быть весь конфиг системы до деталей расписан на 100500 строк, включая даже всякие мелочи для DE типа значков на рабочем столе. Но на самом деле это не совсем так, сразу после установки там всего сотня с лишним строк, и то, часть просто закомментирована. В этом файле не хранится весь конфиг пользовательского окружения и программ, здесь лишь самые базовые вещи, кратко заданные через специальные параметры. Например, старт системы с X11, дисплейным менеджером и Xfce задаётся вот так лаконично там:
# Enable the X11 windowing system.
services.xserver.enable = true;
# Enable the XFCE Desktop Environment.
services.xserver.displayManager.lightdm.enable = true;
services.xserver.desktopManager.xfce.enable = true;
Файл configuration.nix принадлежит руту, поэтому править его можно лишь с рутовыми привилегиями (но никто не запрещает в дальнейшем присвоить его себе, система от этого не сломается). В базовой комплектации нам доступен редактор nano, можем использовать его для начала:
sudo nano /etc/nixos/configuration.nixИли же текстовый редактор из Xfce, доступный в моём случае:
sudo mousepad /etc/nixos/configuration.nix
Здесь следует сразу обозначить, что это не совсем привычный файл конфигурации, изменения в нём не применятся ни сразу сами по себе, ни после перезагрузки. Для применения нужно пересобрать систему, которая таким образом приведёт себя в соответствие с указанными в файле параметрами. Для этого используется команда:
sudo nixos-rebuild switch
Теперь можно начинать разбирать установку приложений, в NixOS нам доступно несколько разных способов, разберём на примере установки консольного монитора ресурсов btop. Посмотреть, какие вообще доступны пакеты для Nix и как они здесь конкретно называются, можно через сайт с каталогом пакетов. Вводим там название "btop” и получаем первым в результатах нужный пакет с краткой инструкцией по каждому варианту установки, что куда вводить. Самый nix-way способ заключается в установке через внесение пакета в вышеупомянутый configuration.nix. Найдём там секцию environment.systemPackages и добавим в неё название этого пакета, получится такое в результате:
environment.systemPackages = with pkgs; [
btop
];
Указание опциональной приставки "with pkgs” в начале этой секции нужно для того, чтобы не писать "pkgs.” перед каждым пакетом в ней. Обратим также внимание, что стандартных приложений здесь нет в списке, эта секция вообще пустая изначально (кроме пары комментариев с примерами) и предназначена для установки дополнительных приложений. Добавив все нужные пакеты, применяем эти изменения через nixos-rebuild switch и дожидаемся, пока система скачает и установит всё нужное. Большинство изменений вступает в силу сразу, хотя некоторые системные компоненты могут потребовать перезагрузки. Установленные таким образом приложения будут доступны всем пользователям системы и благодаря декларативному подходу весь этот набор приложений можно легко перенести в конфиг NixOS на другом устройстве.
Следующий способ пригодится, если хочется просто одноразово воспользоваться какой-то утилитой или просто посмотреть, что это за зверь такой, не устанавливая её на постоянной основе. Вводим в терминале команду:
nix-shell -p btopПосле этого откроется оболочка, в которой пакет будет доступен до выхода из неё. Прав суперпользователя для такого даже не нужно.
Следующий способ позволяет установить приложение тоже только для текущего пользователя без привилегий, но уже на постоянной основе. Вводим команду:
nix profile add nixpkgs#btop Этот метод является не очень nix-way, т.к. здесь установка происходит императивно, данные об установленных так пакетах не хранятся в общем конфиге и вообще отдельно администрируются и обновляются. Так что смотрите сами, как вам лучше организовать установку пакетов: либо всё через общий легко воспроизводимый конфиг, либо что-то устанавливайте чисто для текущего пользователя. Есть ещё схожий метод установки через nix-env, но он считается устаревшим, поэтому рассматривать его не будем. Я никуда не спешил, так что просто в итоге собрал себе такой список приложений в общем конфиге из того, что действительно нужно:
environment.systemPackages = with pkgs; [
wget
mc
htop
git
unixtools.net-tools # ifconfig и прочие привычные утилиты
traceroute
zip
unzip
p7zip
unrar
conky
tldr # упрощённый man
dnsutils # nslookup
mtr
timeshift
google-chrome
telegram-desktop
amnezia-vpn
gimp2
evince
libreoffice
hunspellDicts.ru-ru
vscode-fhs
dbeaver-bin
galculator
mate.engrampa # архиватор
xfce.thunar-archive-plugin
xfce.xfce4-xkb-plugin
xfce.xfce4-battery-plugin
xfce.xfce4-sensors-plugin
xfce.catfish # поисковик по файлам
xfce.xfce4-whiskermenu-plugin # современное меню Крысы
menulibre # утилита для правки этого меню
];
Кроме базовых удобств типа браузеров и мессенджеров (хотя, не являются ли они уже роскошью в наше время…) мне на этом ноуте нужны были, в первую очередь, средства разработки: vscode и приложение для администрирования базы MySQL. С первым не рисковал и просто выбрал fhs-вариант (говорят, там проще всякие расширения ставить), для второго хотел установить привычный MySQL Workbench, однако он хоть без проблем установился, но никак не хотел подключаться к базе, чего-то не хватало видимо в комплекте. Не стал долго возиться, поставил вместо неё бобра (dbeaver-bin), тоже сойдёт. По идее, в таких ситуациях можно подключить флатпак или даже снап (в нём точно должна работать MySQL Workbench после пары живительных команд), но не хотелось сразу захламлять систему ещё какими-то пакетными менеджерами.
Также поставил несколько плагинов для Xfce: современное меню с его редактором, поисковик, индикаторы питания и температуры, плагин для архиваторов. В основном оно после перезагрузки всё без проблем интегрируется в систему само, но иногда приходится немного поразбираться. Например, чтобы файловый менеджер Thunar смог скооперироваться с thunar-archive-plugin, добавляющий в контекстное меню пункты для работы с архивами, пришлось добавить в configuration.nix такой параметр, задающий переменную окружения:
environment.sessionVariables = {
THUNARX_DIRS = "/run/current-system/sw/lib/thunarx-3";
};
Нюансы NixOS всплывают иногда в неожиданных местах, например, захотелось изменить описание калькулятора galculator в меню whisker, чтобы его там можно было найти по запросу "калькулятор”, но через графический интерфейс не получается, нет доступа к файлу. Смотрим, что там за путь проблемный в ошибке, а это /nix/store/bla…-galculator-2.1.4…, и в этой системе это, в принципе, директория лишь для чтения. Здесь достаточно скопировать указанный desktop-файл себе в ~/.local/share/applications и уже делать с ним всё что угодно, при наличии у пользователя файла там он будет приоритетно использоваться для меню Xfce.
И да, благословенный второй Gimp здесь оказался доступен в виде отдельного пакета gimp2, так что с его установкой никаких проблем не было. Но если нужно установить обе версии, и актуальную тоже, то если просто их обе указать в конфиге (gimp2 и gimp), то через терминал будет запускаться только третий, gimp2 — лишь название пакета для Nix, система сама не знает, что ей запускать при вводе этой команды, у неё только один единый Gimp на все потребности. Для этого случая я нашёл такое решение, как записать в секции environment.systemPackages установку этих двух пакетов, чтобы их можно было вызывать по командам gimp2 и gimp3:
(pkgs.writeShellScriptBin "gimp2" ''
exec ${pkgs.gimp2}/bin/gimp "$@"
'')
(pkgs.writeShellScriptBin "gimp3" ''
exec ${pkgs.gimp}/bin/gimp "$@"
'')
Некоторые приложения требуют дополнительного внимания после установки. Например, установленный через основной конфиг клиент для VPN Amnezia не смог подключиться, т. к. не был запущен соответствующий сервис. В других дистрибутивах обычно при установке приложение уже добавляет свой systemd-сервис в автозагрузку, здесь же придётся делать это вручную, для чего в основной конфиг добавим такую отдельную секцию:
systemd.services.amnezia-vpn = {
description = "Amnezia VPN Service";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = "/run/current-system/sw/bin/AmneziaVPN-service";
Restart = "always";
RestartSec = 5;
User = "root";
};
}; Как оказалось, в базовой системе не хватало шрифтов для отображения всяких интересных символов, добавим установку гуглошрифтов в отдельную секцию конфига, чтобы отображались азиатские иероглифы и смайлы:
fonts.packages = with pkgs; [
noto-fonts
noto-fonts-cjk-sans-static
noto-fonts-cjk-serif-static
noto-fonts-color-emoji
];
Также в общем конфиге можно настроить переключение раскладки. Никто не запрещает, конечно, справляться стандартными средствами, добавить команду setxkbmap с нужными параметрами в автозапуск через настройки Xfce, но зато тут тоже можно организовать всё по nix-way, к тому же, в такой реализации раскладка без проблем сохранялась при использовании KVM-переключателя, что в данном случае было важно. Для этого нужна такая отдельная секция в конфиге, которая в данном примере задаёт переключение между английской и русской раскладками по Ctrl+Shift, с индикацией раскладки на Scroll Lock и правым Alt в качестве клавиши Compose:
services.xserver.xkb = {
layout = "us,ru";
variant = ",winkeys";
options = "grp:ctrl_shift_toggle,grp_led:scroll,terminate:ctrl_alt_bksp,compose:ralt";
};
Ещё мне захотелось заменить бегущие строки при загрузке системы на какую-то графическую заставку (у нас тут всё-таки современное чудо китайской техники за 50 кусков дерева, а не какая-то гиковская малинка), здесь поможет plymouth, как и в других дистрибутивах. Хотя plymouth есть в списке пакетов для Nix, ставить его через секцию environment.systemPackages не нужно, он настраивается через свои параметры в основном теле конфига, например, можно добавить такие строки после параметров bootloader, чтобы наблюдать крутящийся кружок при запуске системы:
boot.plymouth.enable = true;
boot.plymouth.theme = "spinner";
boot.initrd.systemd.enable = true;
boot.kernelParams = [ "quiet" "splash" ];
boot.consoleLogLevel = 0;
Хорошо, с установкой программ и базовыми настройками разобрались, а что же тут вообще с возможностями отката изменений? При каждом nixos-rebuild switch создаётся новое поколение (generation) системы, которое можно отдельно загрузить, выбрав его прямо в меню загрузчика. Таким образом можно загрузиться в старом конфиге системы, если последний сломался по какой-то причине. Откатиться на предыдущее поколение относительно текущего запущенного можно командой sudo nixos-rebuild switch --rollback. Посмотреть в терминале список имеющихся поколений можно через команду nixos-rebuild list-generations. Каждое поколение занимает некоторое место на диске в зависимости от того, какие в нём были внесены изменения в систему, поэтому старые поколения желательно удалять регулярно, если всё хорошо с текущей конфигурацией. Удалять можно и автоматически через основной конфиг, и вручную по возрасту поколений, но мне больше всего нравится оставлять определённое количество последних по времени поколений, что для пяти поколений, к примеру, можно сделать командой sudo nix-env -p /nix/var/nix/profiles/system --delete-generations +5. При этом, однако, сами файлы этих удалённых поколений не исчезают, для такой очистки дополнительно нужно использовать команду sudo nix-collect-garbage, чтобы освободить место на диске. Последнюю команду вообще можно самостоятельно использовать с параметром -d, тогда она просто сносит все неактуальные поколения с их файлами, если уж точки восстановления системы не нужны и хочется сэкономить место на диске.
Стоит помнить, что конфигурационный файл configuration.nix не откатывается к своему прежнему состоянию при перескоках между поколениями, это просто отдельный конфиг, на который система ориентируется при пересборке. Поэтому обычно рекомендуется загонять его в git для контроля версий, ну либо ещё как-то бекапить регулярно.
Скачать и установить обновления можно командой sudo nixos-rebuild switch --upgrade. Почти то же самое, что и через знакомые apt или pamac, разве что не показывает перед этим что конкретно будет скачано и обновлено, приходится принимать на веру, что это всё действительно нужно и ничего не будет пропущено.
Регулярные обновления — это хорошо, однако периодически также придётся переходить на новые версии системы. Стабильные релизы NixOS выпускают раз в полгода, обычно в конце мая и ноября, почти как Ubuntu, только здесь нет длительной поддержки предыдущих версий, поэтому для секьюрности и поддержания софта в актуальном состоянии лучше оперативно переходить на новые версии (ну есть ещё вариант постоянно сидеть на unstable-канале). Делается это в терминале через смену текущего канала обновлений. Посмотреть текущий канал и версию системы можно такими командами:
sudo nix-channel --list
nixos-version
Посмотреть статусы каналов и их названия можно на этой странице проекта. Находим там последний нумерованный стабильный релиз, в данном случае это недавно вышедший nixos-26.05, задаём его в качестве канала и обновляем данные по этому каналу:
sudo nix-channel --add https://channels.nixos.org/nixos-26.05 nixos
sudo nix-channel --update
После чего просто как обычно обновляем систему через sudo nixos-rebuild switch --upgrade. Вообще обновления в NixOS занимают порой непредсказуемое время, может и довольно долго происходить, поэтому лучше начинать эту процедуру с запасом времени. В моём случае при обновлении версии система сначала не смогла скачать обновление vscode без включённого средства исправления зарубежного интернета, но после его включения со второй попытки довольно быстро всё докачала и установила, в процессе поотрубала все сервисы, в том числе сеть, но таки в итоге оно всё перезапустилось. В остальном всё оказалось довольно быстро и гладко, ничего с концами не отвалилось после перезагрузки, только выдало несколько варнингов по поводу приставок xfce и mate в списке программ в конфиге, т. к. в новой версии можно уже указывать эти пакеты без этих уточнений. Исправляем это тоже сразу и ещё раз пересобираем систему. Если что-то пошло не так, то можно легко откатиться на предыдущее поколение, только имейте в виду, что при откате канал сам обратно не сбросится и при запуске обновления система снова попытается обновиться до этой версии.
Как можно было заметить в процессе чтения статьи, приходится использовать всякие весьма разные и непривычные команды в работе с системой, с различными параметрами. Запоминать это всё сложно, но, к счастью, в баше существует такая удобная вещь, как алиасы, и тем более есть возможность задавать их через основной конфиг NixOS. Это делается в отдельной секции конфига, я для себя внёс туда такие простые команды, что значительно упростило дальнейшую эксплуатацию системы:
programs.bash.shellAliases = {
_clear = "sudo nix-env -p /nix/var/nix/profiles/system --delete-generations +5;
sudo nix-collect-garbage"; # удалить все старые поколения кроме 5 последних
_config = "mousepad /etc/nixos/configuration.nix"; # открыть в редакторе основной конфиг
_reconf = "sudo nixos-rebuild switch"; # пересборка системы
_update = "sudo nixos-rebuild switch --upgrade"; # установка обновлений пакетов
_generations = "nixos-rebuild list-generations"; # просмотр списка имеющихся поколений
};
Здесь ещё много чего можно было бы затронуть, но уже не в этот раз. Есть в NixOS ещё такая штука как flakes, которая умудряется одновременно и считаться почти что новым стандартом для организации конфигурации системы, и быть до сих пор экспериментальной функцией, которую нужно специально включать. А ещё есть Home Manager, отдельная система для декларативной организации всей пользовательской среды. Но это всё не является обязательным для первого знакомства и использования NixOS, если нет цели добиться максимальной воспроизводимости системы при развёртывании на разных устройствах.
Выводы
Дистрибутив этот, конечно же, не для новичков (что довольно очевидно по статье, но в мире, где принято неиронично советовать начинать путь в Линуксе с Arch, не лишним будет это уточнять), обслуживать его в значительной степени придётся через терминал и конфигурационные файлы, с установкой и запуском ряда приложений есть всякие свои нюансы, которые придётся решать через смекалку, поисковики и LLM, и притом этот опыт потом не сильно пригодится в других дистрибутивах. NixOS по своей природе любит пожирать место на диске, и это нужно учитывать, но при некоторых способах организации обслуживания системы может не так уж и много занимать места по сравнению с другими.
Про NixOS часто пишут, что для её использования нужно учить специальный язык программирования. Это лишь отчасти так, в основном конфиге системы с помощью него много можно всего полезного сделать, но это всё не обязательно для обычного не вовлечённого глубоко пользователя, для него часто можно отступать от nix-way и настраивать многие нужные вещи по старинке. Обычно есть возможность обходиться средствами DE или другими пакетными менеджерами, чтобы что-то определённое настроить или установить, в том числе, есть возможности эмулировать FHS и устанавливать альтернативные варианты приложений под эту имитацию стандартной файловой иерархии. В базе своей язык Nix — это скорее язык конфигурационных файлов, где можно разобраться с основами просто беря примеры из имеющихся уже конфигов, а с более сложными случаями вполне могут помочь LLM, они всё-таки куда лучше справляются со строгим программным кодом, чем с подсказками по GUI в разных программах разных версий.
Так что да, дистрибутив необычный, но оставляет широкий простор для компромиссов в процессе использования. Очень непросто привыкнуть к декларативному подходу в установке и обновлениях, когда ты, например, просто добавил в конфиг traceroute в установленные программы, а система при пересборке приняла решение всё пообновлять по этому поводу. Да и обновления очень непрозрачные, узнать, что будет точно обновлено в классическом смысле не получится, хотя в многообразии команд для Nix можно найти некоторые хаки для этого. Порой кажется, что в глубине NixOS только из всяких хаков и состоит, в ней есть куча казалось бы никак не связанных команд для управления системой, которые к тому же регулярно меняются и при этом не всегда нормально документируются. Но хорошо, что системой вполне можно пользоваться, не ныряя в её глубины.
Комментарии
12:59
1) Система для программистов;
2) Система одного файла, по сути, хотя их много, конечно;
3) Свои пути для установки/запуска ПО, тех же AppImage, и прочие особенности, что осилят не все …
14:16
Очень грамотно выбрана глубина в деталях и широта охвата.
.
У меня есть ассоциация, только моя, сформированная годами. В английском сленге есть слово "Nix", которое означает "ничего" или "отбой" в качестве ответа на сделанный запрос, например каких-то котировок. Есть мнение, что образовалось от "No interest, thanks." Глядя на NixOS и название его пакетника, я не могу успокоить эти ассоциативные мысли, хотя понимаю, что в разных сферах разный сленг.