Правильный linux пробуем nixos уникальный странный и очень удобный дистрибутив

Обновлено: 06.07.2024

NixOS — дис­три­бу­тив Linux, создан­ный поверх мене­дже­ра паке­тов Nix. Он исполь­зу­ет декла­ра­тив­ную кон­фи­гу­ра­цию и поз­во­ля­ет надеж­но обнов­лять систе­му. Пред­ла­га­ют­ся два основ­ных направ­ле­ния: теку­щий ста­биль­ный выпуск и Unstable после послед­ней разработки.

Любая ОС Linux после уста­нов­ки тре­бу­ет базо­вой настрой­ки — уста­нов­ки необ­хо­ди­мых при­ло­же­ний, настрой­ки базо­вых служб и без­опас­но­сти. Обыч­но для таких целей я создаю тек­сто­вый файл и в него копи­рую базо­вые коман­ды по настрой­ке ОС и кон­фи­гу­ра­ци­он­ные фай­лы. У каж­дой вер­сии дис­три­бу­ти­ва Linux базо­вая настрой­ка систе­мы может отличаться.

Несколь­ко лет назад я наткнул­ся на дис­три­бу­тив для Linux под назва­ни­ем NixOS — с декла­ра­тив­ным опи­са­ни­ем кон­фи­гу­ра­ции систе­мы и функ­ци­о­наль­ным мене­дже­ром паке­тов nix. Вся кон­фи­гу­ра­ция NixOS опи­сы­ва­ет­ся в кон­фи­гу­ра­ци­он­ном фай­ле /etc/nixos/configuration.nix, в кото­ром ука­зы­ва­ют­ся настрой­ки систе­мы, уста­нав­ли­ва­е­мые паке­ты и сер­ви­сы. На осно­ве это­го фай­ла коман­дой nixos-rebuild созда­ет­ся кон­фи­гу­ра­ция системы.

Будем ста­вить NixOS на вир­ту­аль­ную маши­ну. Так как я исполь­зую неста­биль­ную вет­ку, то ее и будем ставить.

Установка NixOS

Для удоб­ства рабо­ты запу­стим openssh сервис:

sudo systemctl start sshd

И зада­дим пароль для поль­зо­ва­те­ля nixos:

Смот­рим теку­щий IP-адрес вир­ту­аль­ной маши­ны и под­клю­ча­ем­ся по это­му адре­су по ssh под поль­зо­ва­те­лем nixos.

После под­клю­че­ния к систе­ме про­ве­ря­ем, какие дис­ки у нас подключены:

Созда­ем раз­де­лы на дис­ке vda (в зави­си­мо­сти от типа вир­ту­аль­ной маши­ны дис­ки могут отли­чать­ся) и мон­ти­ру­ем их:

sudo parted /dev/vda -- mkpart primary linux-swap 1MiB 4GiB

Гене­ри­ру­ем пер­во­на­чаль­ную кон­фи­гу­ра­цию системы:

После выпол­не­ния коман­ды созда­ют­ся 2 файла:

  • /mnt/etc/nixos/configuration.nix
  • /mnt/etc/nixos/hardware-configuration.nix

При­ве­дем файл кон­фи­гу­ра­ции /mnt/etc/nixos/configuration.nix к тако­му виду:

Вни­ма­ние: ука­зы­вая пара­метр —no-root-passwd, мы запре­ща­ем вход в систе­му поль­зо­ва­те­лю root.

После уста­нов­ки систе­мы уста­но­вим пароль для наше­го поль­зо­ва­те­ля rebrain, что­бы после пере­за­груз­ки систе­мы мы смог­ли под­клю­чить­ся уда­лен­но по ssh:

Раз­мон­ти­ру­ем раз­де­лы и выклю­ча­ем вир­ту­аль­ную маши­ну :

Пер­во­на­чаль­ная уста­нов­ка завер­ше­на, пере­хо­дим к базо­вой настройке.

Настройка NixOS

В настрой­ках вир­ту­аль­ной маши­ны отклю­ча­ем ISO образ и загру­жа­ем в уста­нов­лен­ную систе­му. Захо­дим по SSH с аутен­ти­фи­ка­ци­ей по паро­лю, ска­чи­ва­ем и рас­па­ко­вы­ва­ем архив с кон­фи­гу­ра­ци­ей в дирек­то­рию /etc/nixos.

У нас полу­ча­ет­ся такая струк­ту­ра конфигурации:

  • основ­ные настрой­ки систе­мы хра­нят­ся в дирек­то­рии /etc/nixos/nix-config/generic;
  • инди­ви­ду­аль­ные настрой­ки теку­ще­го сер­ве­ра — в дирек­то­рии /etc/nixos/nix-config/servers/example.

При­во­дим кон­фи­гу­ра­цию /etc/nixos/configuration.nix к тако­му виду:

Гене­ри­ру­ем хеш паро­ля для поль­зо­ва­те­ля rebrain командой:

И встав­ля­ем резуль­тат в /etc/nixos/nix-config/servers/example/users.nix в hashedPassword, где _generated_hash_pass_ заме­ня­ем на наш хеш. В ито­ге кон­фи­гу­ра­ция будет выгля­деть так:

sudo nano /etc/nixos/nix-config/servers/example/users . nix ssh-keys = import . / . . / . . /generic/security/ssh-keys . nix ;

Что­бы авто­ри­зо­вать­ся на сер­ве­ре по клю­чу, про­пи­сы­ва­ем в файл generic/security/ssh-keys.nix пуб­лич­ный ключ:

sudo nano /etc/nixos/nix-config/generic/security/ssh-keys . nix

Ссыл­ка на ключ work.rebrain_example уже про­пи­са­на в фай­ле servers/example/users.nix:

Вни­ма­ние! Пара­метр users.root = < hashedPassword = null; >; запре­ща­ет вход в систе­му поль­зо­ва­те­лю root.

Если необ­хо­ди­мо управ­лять теку­щей систе­мой c помо­щью ути­ли­ты nixops, добав­ля­ем ssh ключ root пользователю:

sudo nano /etc/nixos/nix-config/generic/security/ssh-keys . nix sudo nano /etc/nixos/nix-config/servers/example/users . nix

Если в систе­ме вме­сто vda дис­ка исполь­зу­ет­ся sda, то в фай­ле /etc/nixos/nix-config/servers/example/configuration.nix меня­ем /dev/vda на /dev/sda:

sudo nano /etc/nixos/nix-config/servers/example/configuration . nix

Обнов­ля­ем кон­фи­гу­ра­цию систе­мы и перезагружаемся:


При пер­вом вхо­де zsh пред­ла­га­ет скон­фи­гу­ри­ро­вать файл

/.zshrc,так как у нас уже гото­ва для него кон­фи­гу­ра­ция (в фай­ле generic/shell.nix), то про­пус­ка­ем кон­фи­гу­ра­цию и созда­ем пустой файл — вво­дим 0.

Созда­дим для нашей кон­фи­гу­ра­ции git-репозиторий:

sudo git config --global user . email "rebrain@NixOS-example" sudo git init & amp ; & amp ; sudo git add -A & amp ; & amp ; sudo git commit -m "first commit"

Все коман­ды с git выпол­ня­ем от име­ни root, так как пра­ва пап­ки /etc/nixos при­над­ле­жат root поль­зо­ва­те­лю. Теперь мы можем отсле­жи­вать свою конфигурацию.

Пер­во­на­чаль­ная настрой­ка систе­мы завер­ше­на. Прой­дем­ся по основ­ным настройкам:

  • nur = import … — здесь добав­ля­ем поль­зо­ва­тель­ский репо­зи­то­рий с про­грам­ма­ми (пол­ный код в примере).

4. generic/security/ssh-keys.nix — запи­сы­ва­ем пуб­лич­ные клю­чи для ssh аутентификации.
5. generic/services/fail2ban.nix — настра­и­ва­ем рабо­ту ути­ли­ты fail2ban c фай­р­во­лом nftables, добав­ля­ем, какие IP-адре­са игно­ри­ро­вать. Для сер­ви­са sshd зада­ем агрес­сив­ный метод сканирования.
6. generic/services/syslog-ng.nix — сохра­ня­ем логи ssh сер­ве­ра в отдель­ный файл.
7. generic/services/logrotate.nix — настра­и­ва­ем рота­цию ssh логов.
8. generic/services/sshd.nix

9. generic/services/unbound.nix — ста­вим локаль­ный ДНС сер­вер для кэши­ро­ва­ния запросов.
10. generic/ids.nix — зада­ем поль­зо­ва­те­лям фик­си­ро­ван­ный UID .
11. generic/locale.nix — настра­и­ва­ем шрифт, коди­ров­ку, лока­ли­за­цию, син­хро­ни­за­цию с сер­ве­ром вре­ме­ни и часо­вой пояс.
12. generic/pkgs.nix — уста­нав­ли­ва­ем часто исполь­зу­е­мые программы.
13. generic/shell.nix — настра­и­ва­ем shell, али­а­сы, про­грам­му nano и ZSH .
14. generic/tweaks.nix — неболь­шие тви­ки системы.
15. servers/example/configuration.nix — здесь сохра­ня­ем инди­ви­ду­аль­ные настрой­ки для теку­щей вир­ту­аль­ной маши­ны example.

    • boot.loader.grub.device = «/dev/vda»; — загру­жа­ем­ся с дис­ка /dev/vda.
    • boot.kernelParams = [ «lockdown=confidentiality» ]; — бло­ки­ру­ют­ся воз­мож­но­сти, поз­во­ля­ю­щие вно­сить изме­не­ния в рабо­та­ю­щее ядро из про­стран­ства поль­зо­ва­те­ля, и отклю­ча­ет­ся функ­ци­о­наль­ность, кото­рую мож­но исполь­зо­вать для извле­че­ния кон­фи­ден­ци­аль­ной инфор­ма­ции из ядра.
    • servers/example/users.nix — настра­и­ва­ем поль­зо­ва­те­ля rebrain.
    • hashedPassword — ука­зы­ва­ем фик­си­ро­ван­ный хеш паро­ля. Опция users.mutableUsers = false; поз­во­ля­ет запре­тить сме­ну паро­ля из консоли.
    • openssh.authorizedKeys.keys — про­пи­сы­ва­ем откры­тые ука­зан­ные в generic/security/ssh-keys.nix пуб­лич­ные ssh клю­чи, по кото­рым поль­зо­ва­тель может авто­ри­зо­вать­ся на сервере.
    • groups.ssh-users.members — про­пи­сы­ва­ем, каким поль­зо­ва­те­лям раз­ре­шен вход по ssh.
      • services.fail2ban.enable — акти­ви­ру­ем сер­вис fail2ban. По умол­ча­нию сер­вис отклю­чен в generic/services/fail2ban.nix.
      • services.fail2ban.jails.sshd — акти­ви­ру­ем jail sshd.
      • servers/example/services/firefall-nft.nix — акти­ви­ру­ем фай­р­вол nftables, откры­ва­ем 22 порт.

      В ито­ге, мы закры­ли неко­то­рые вет­ки ата­ки и под­го­то­ви­ли шаб­лон, кото­рый мож­но исполь­зо­вать на дру­гих систе­мах на базе Linux NixOS.

      Немного о Linux NixOS

      Собственно по мотивам ТЫЦ но про NixOS и на основе моего опыта эксплуатации сабжа в течение как минимум одного года восьми месяцев и двух дней или шестьсот двенадцати дней кому как угодно. Ибо именно столько у меня стоит NixOS основной системой тыц.

      Моей предыдущей системой была гента поэтому и свои сравнения я буду проводить непосредственно с ней. Все написанные мною слова выражают мои собственные мысли и не были призваны разжигать какие бы то ни было конфликты и/или жжения в любых частях тела прилегающих к седалищному нерву.

      Так вот последние два абзаца написаны собственно только ради того что… Да детки в NixOS таких проблем нет. И быть не может by design. И я скромно умалчиваю про другие архитектуры, контейнера, FHS environment и прочие побочные плюшки.

      Немного про установку. Генту можно собрать за время от пары часов до нескольких дней. Развернуть из бинпакетов можно минут за сорок ну плюс минус около того. NixOS бинарный дистрибутив поэтому кампелять тут ничего не нужно.

      Дальше сам процесс разработки. Про генту я скромно умолчу. А вот NixOS разрабатывают на гитхабе открыто, свободно и без бюрократии и 1770 запросов на слияние и 3753 проблемы тому доказательство.

      Я скажу так в генте для меня всегда была головной болью настроить gnome/kde/plasma. Полные метапакеты натащат столько что ппц а минимальные как правило просто обрезаны по самое немогу и для комфортного существования приходилось искать ту самую золотую середину самостоятельно. В NixOS просто дефолтный выбор мне что называется зашел на ура. Одной проблемой меньше.

      Итак вот мы прожили в системе определённое время накопились критические изменения и настало то самое время обновлять. У NixOS считай весь корень тупо набор симлинков поэтому, как не трудно додумать, он чудесно версионируется. Да у вас всегда есть не просто единственное текущее состояние системы но и всё неудалённые прошлые её состояния.

      В NixOS пакетный менеджер заведует не просто версией хромиума но и всеми его настройками и да даже его расширениями.

      Любые нативные игрушки steam-run спасает и делает не просто хорошо а прям прекрасно.

      Ну и покамест на этом всё. Надеюсь мои многобукав помогут кому нибудь сделать свой выбор.


      NixOS — это дистрибутив Linux, построенный вокруг двух ключевых идей:

      1. Декларативное описание конфигурации (или, лучше сказать, состояния) системы.
      2. Функциональный менеджер пакетов, допускающий откаты и параллельную установку приложений.

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

      Другими словами, если тебе нужна система с установленным Apache, PHP, MySQL, SSH и с некоторыми дополнительными настройками, ты просто описываешь все это в одном конфиге, а затем отдаешь команду на развертывание системы. Независимо от того, свежеустановленная это ОС или уже используемая, ты получишь абсолютно идентичную систему с идентичным набором пакетов и конфигов.

      Все это возможно благодаря пакетному менеджеру Nix. В классических дистрибутивах Linux пакетный менеджер при установке пакета «размазывает» его содержимое по всей системе: запускаемые файлы в /usr/bin , библиотеки в /usr/lib , остальные компоненты — в /usr/share . В результате ты получаешь проблемы с неудачным обновлением/удалением пакетов (когда могут остаться файлы-сироты), ад зависимостей (когда два приложения требуют разные версии /usr/lib/libjpeg.so , например) и легкий способ уничтожить всю систему, неудачно обновившись.

      Пакетный менеджер Nix размещает все установленные пакеты в собственных подкаталогах внутри каталога /nix/store . К примеру, установленный пакет Git будет располагаться в каталоге /nix/store/nawl092prjblbhvv16kxxbk6j9gkgcqm-git-2.14.1 , где набор цифр — это хеш, образованный от окружения сборки пакета: файлов исходников, дерева зависимостей, флагов компилятора и другого. Поэтому с помощью Nix можно установить одновременно не только две версии одного приложения, но и даже две разные сборки.

      Благодаря возможности устанавливать разные версии и сборки пакетов и тому, что они располагаются отдельно от системных каталогов, NixOS решает почти все проблемы классических пакетных менеджеров — от неконсистентности системы после неудачного обновления до ада зависимостей. Этот же механизм позволяет откатить систему к предыдущему состоянию и создать сразу несколько разных профилей (слепков) системы, переключаться между которыми можно, не перезагружая машину. Хочешь превратить домашний комп в сервер одной командой? В NixOS с этим нет проблем. Ты даже можешь унести конфигурационный файл NixOS на другую машину и развернуть на ней точно такую же систему с абсолютно тем же набором пакетов.

      NixOS позволяет устанавливать софт не только root, но и обычным пользователям (в этом случае пакет будет установлен в домашний каталог), а также имеет встроенный сборщик мусора, который автоматически удалит все пакеты-зависимости, если они больше никому не нужны.

      Устанавливаем

      В NixOS нет инсталлятора, но если ты когда-нибудь устанавливал Arch Linux, то у тебя не должно возникнуть проблем. Для начала скачиваем последнюю версию NixOS с официального сайта и записываем ее на флешку:

      Затем перезагружаем машину и грузимся с флешки. NixOS встретит тебя приветствием командной строки.

      Первое, что мы должны сделать, — подготовить диск для установки. Проще всего сделать это с помощью parted (в данном примере мы создаем один большой раздел ext3 на диске с разметкой в стиле DOS):

      Мы будем ставить систему на зашифрованный диск, поэтому для начала инициализируем шифрование:

      Затем примонтируем диск к каталогу /mnt:

      Теперь обновляем репозитории:

      И генерируем дефолтовые файлы конфигурации:

      Команда сохранит на диск два файла: configuration.nix и hardware-configuration.nix . Первый — это и есть тот самый файл описания состояния системы, с которым мы будем работать в дальнейшем. Содержимое второго изменять не надо — оно создается автоматически на основании железа, на которое устанавливается NixOS.

      Наконец, устанавливаем систему и перезагружаемся:

      Устанавливаем NixOS

      Устанавливаем NixOS

      Configuration.nix

      Файл configuration.nix — основа дистрибутива. В нем пользователь указывает всю желаемую/необходимую конфигурацию (состояние) системы от пользователей и пакетов до шрифтов и в любой момент может ее изменять. Система будет выглядеть ровно так, как ее опишет пользователь в этом файле.

      Продолжение доступно только участникам

      Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

      В мире насчитывается несколько сотен дистрибутивов. Некоторые из них похожи как две капли воды, другие представляют собой всё то же самое, но с другой оболочкой рабочего стола. Однако, среди всего многообразия есть такие операционные системы, которые выбиваются на фоне остальных. В этой статье мы собрали самые интересные дистрибутивы Linux.

      Какие-то дистрибутивы стремятся быть самыми защищёнными, другие делают упор на отказоустойчивости, третьи так и вовсе требуют особый подход к установке и настройке системы. Иными словами, разнообразие дистрибутивов не ограничивается выбором между DEB и RPM, GNOME и KDE.

      Интересные дистрибутивы Linux

      1. Puppy Linux

      wGwybjiemOr2QAAAABJRU5ErkJggg==

      Дистрибутив Puppy Linux предназначен для работы на слабых компьютерах. Для его запуска достаточно иметь 512 МБ оперативной памяти. Конечно, современные ресурсоёмкие приложения вряд ли смогут работать на слабом ПК без подвисаний. Дистрибутиву не под силу поднять производительность компьютера, надо трезво смотреть на вещи. Puppy Linux также можно использовать в качестве переносной ОС, подбирать Flash накопитель особо не придётся. Система будет быстро грузиться даже с USB 2.0, ведь она занимает совсем немного места.

      К сожалению, русский язык в дистрибутиве отсутствует. Но не стоит отчаиваться, ведь есть русскоязычный дистрибутив PuppyRus, основывающийся на тех же принципах, что и оригинал.

      2. Qubes OS

      3I6ikwAAAAASUVORK5CYII=

      Дистрибутив Qubes OS – это необычное решение, позволяющее повысить безопасность системы. Для этих целей используется гипервизор Xen. С его помощью для каждого приложения (или группы приложений) создаётся виртуальная машина. Другие приложения не смогут получить доступ к этой машине. Конечно, такой подход похож на паранойю. Прошли те времена, когда целью атак являлись программы и операционная система, да и вирусов на Linux на порядок меньше, чем на Windows.

      3. NixOS

      VwAAAABJRU5ErkJggg==

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

      Иными словами, систему сложно сломать и легко перенести на другой компьютер. Дистрибутив не очень дружелюбен к новичкам, даже при установке необходимо дополнить конфигурационные файлы необходимыми записями. Да и сама идея того, что при обновлении приложения его старая версия никуда не пропадает, заставляет проводить регулярные чистки от скопившегося мусора. Если же вам интересна такая идея управления системой, то также можете обратить своё внимание на системы управления конфигурацией Ansible и Puppet.

      4. GoboLinux

      wTig82abMIy7AAAAABJRU5ErkJggg==

      Продолжая тему хранения нескольких версий программы, нельзя не упомянуть GoboLinux. Эта операционная система также отошла от привычной иерархии хранения файлов. Например, программы хранятся в папке /Programs/ и у одной программы может быть несколько версий, причём у каждой будут свои настройки. На деле привычные папки никуда не делись, но они скрыты от пользователя и являются символическими ссылками на новую структуру хранения файлов. Это позволяет хранить все связанные файлы в одном месте, а не иметь разбросанные по всей системе файлы одной программы.

      5. Fedora Silverblue

      0dZto6dnVUIAAAAASUVORK5CYII=

      Fedora Silverblue – это неизменяемая операционная система с атомарными обновлениями. Термин неизменяемая означает то, что системные файлы находятся в режиме «только чтение». Но при этом обновить систему можно, для этого используется система обновления версий OSTree. Вы можете установить новую версию, но при этом старая никуда не денется и в случае чего можно будет откатиться обратно. Для установки приложений в основном используется Flatpak с его системой контейнеров. Если кратко, то разработчики постарались создать неубиваемую систему.

      6. Clear Linux

      hsPAeH0OpHEbAAAAABJRU5ErkJggg==

      Интересный дистрибутив Linux - Clear Linux не стоит путать с созвучной серверной системой ClearOS. Главной особенностью Clear Linux является то, что дистрибутив собран полностью с использованием компилятора Intel. Казалось бы, ничего необычного, его используют многие разработчики. Но дело в том, что при сборке были использованы флаги для оптимизации работы кода на системах с процессорами Intel. Конечно, это не поднимет производительность до небывалых значений. В среднем прирост составляет 2-5% по сравнению с другими дистрибутивами. Раньше результаты в некоторых программах были выше, но разработчики отказались от использования инструкций AVX2 в угоду лучшей совместимости.

      7. Batocera.linux

      t3AP50QAAAABJRU5ErkJggg==

      Дистрибутив Batocera.linux интересен в первую очередь тем, что его можно установить на Flash накопитель и туда же записать ваши любимые игры. Он поддерживает эмуляцию практически всех консолей вплоть до PlayStation 2. Также дистрибутив корректно распознаёт USB и Bluetooth контроллеры. В гости пришли дети и не знаете, чем их занять, или же не хотите давать свою основную систему на растерзание, просто имейте под рукой Flash накопитель с Batocera.linux и пару геймпадов. С таким комплектом можно и самому идти в гости. Тем, кому за 30, будут не прочь поностальгировать вместе с вами в играх NES и MegaDrive.

      8. Arch Linux

      3aD6D8OOEyhjgs9JDLKluqLFXxNoWddRWwzIcAg7rbJmhONYI+1FQ8P8AaM4Y9FGLwgwAAAAASUVORK5CYII=

      Ну и куда же без Arch Linux. Этот дистрибутив примечателен в первую очередь тем, что является конструктором (DIY). Изначально в нём нет ничего. И для того, чтобы что-то появилось, необходимо вручную прописывать все команды. По крайней мере до тех пор, пока вы не установите оболочку рабочего стола и менеджер пакетов с графическим интерфейсом. Да, многое из того, что необходимо сделать перед нормальным использованием системы, делается однократно, но всё же позволяет понять структуру операционной системы Linux. К плюсам дистрибутива можно отнести частые обновления.

      Для тех, кто не хочет возиться с установкой, можно порекомендовать ответвление Manjaro, которое гораздо более дружелюбно к новичкам.

      Выводы

      Рассказать про все дистрибутивы невозможно. Например, миниатюрные SliTaz и Tiny Core интересны своим размером, но вряд ли могут стать полноценной заменой «тяжёлых» операционных систем, да и гордиться тем, что дистрибутив занимает десятки мегабайт в то время, когда объёмы накопителей измеряются терабайтами не очень уместно. Тут стоит упомянуть про встраиваемые операционные системы, вроде OpenWRT, но это уже тема отдельного разговора и не затрагивает настольные операционные системы.

      Также можно было бы упомянуть дистрибутивы с нестандартной системой инициализации, вроде PCLinuxOS с SysV Init и Void Linux с runit. Но это те изменения, которые сложно оценить при реальном использовании.

      А какие интересные дистрибутивы знаете вы? Стоит ли использовать что-то отличное от Debian/Ubuntu на домашнем компьютере? Делитесь своим мнением в комментариях.

      Читайте также: