Многие пользователи Linux мечтают о том, чтобы их система всегда работала так же, как они ее настроили. Чтобы они могли легко переносить свою конфигурацию на другие компьютеры или восстанавливать ее после сбоя. Чтобы они могли безопасно обновляться и откатываться к предыдущим версиям. Если вы один из них, то вы заинтересуетесь NixOS - дистрибутивом и набором пакетов Nix, который реализует эти идеи.

NixOS - это проект, который полностью построен на Nix - инструменте, который позволяет создавать декларативные и воспроизводимые системы. В NixOS вы не изменяете файлы конфигурации вручную, а описываете желаемое состояние системы в специальном файле nixos/configuration.nix. Затем вы запускаете команду nixos-rebuild switch, которая автоматически устанавливает нужные пакеты, генерирует файлы конфигурации и активирует новую систему. 

Вы можете легко переключаться между разными версиями системы или откатываться к предыдущим состояниям. Вы также можете экспортировать свою конфигурацию в виде ISO-образа или виртуальной машины, которые можно запустить на других компьютерах или в облаке. Таким образом, вы получаете полный контроль над вашей системой и ее поведением.

Но что же нового в NixOS 23.05, последней стабильной версии, которая была выпущена под кодовым именем “Stoat” (Горностай)? Давайте рассмотрим некоторые из самых важных и интересных изменений и нововведений, которые она принесла.

Во-первых, NixOS 23.05 обновила версию Nix с 2.11 до 2.13, включая небольшое изменение языка в отношении представления вещественных чисел в функции builtins.toJSON. Это функция для преобразования данных в формат JSON, который используется для обмена данными между разными программами. Это может повлиять на некоторые сценарии использования, поэтому рекомендуется проверить свои скрипты и выражения на совместимость. Вы можете узнать больше об этом и других изменениях в заметках о выпуске 2.13 и 2.14.

Во-вторых, NixOS 23.05 обновила версию ядра Linux с 5.15 до 6.1, что привнесло множество улучшений и исправлений в различных областях, таких как графика, звук, сеть, безопасность и т.д. Вы можете посмотреть полный список изменений на сайте Kernelnewbies. В NixOS доступны все текущие версии ядер, показанные на kernel.org, так что вы можете выбрать ту, которая лучше всего подходит для вашего оборудования и потребностей.

В-третьих, NixOS 23.05 обновила версию systemd с v252 до v253, что также принесло много новых функций и усовершенствований для системы инициализации и управления службами.

Например, systemd теперь поддерживает загрузку изображений OCI (Open Container Initiative), что позволяет запускать контейнеры без дополнительных инструментов, таких как Docker или Podman. Это упрощает работу с приложениями, упакованными в стандартные форматы контейнеров. Также systemd теперь может автоматически создавать точки монтирования для файловых систем Btrfs с подтомами.

Это улучшает производительность и надежность файловых систем, особенно при использовании снимков и откатов. Однако при обновлении на эту версию systemd рекомендуется использовать nixos-rebuild boot и перезагружаться, а не nixos-rebuild switch на живой системе, так как в некоторых редких случаях последняя команда может потерпеть неудачу из-за отсутствия единиц монтирования.

Вы можете прочитать более подробно обо всех изменениях в заметках о выпуске systemd. Это поможет вам лучше понять, как работает ваша система и какие преимущества вы получаете от обновления. Если вы хотите узнать больше о systemd и его возможностях, вы можете посетить официальный сайт проекта или прочитать документацию. Там вы найдете много полезной информации и советов по настройке и использованию systemd. Вы также можете задать свои вопросы или поделиться своим опытом с другими пользователями systemd на разных форумах и каналах общения.