Система GNU Guix - GNU Guix System

Система Guix
Guix logo.svg
Guixsd-xfce-icecat-emacs.png
Система Guix работает Xfce, GNU IceCat и GNU Emacs
РазработчикПроект GNU[1][2]
Семейство ОСUnix-подобный
Рабочее состояниеТекущий[3]
Исходная модельБесплатно программное обеспечение, ФСДГ
Последний релиз1.2.0[4] / 23 ноября 2020; 8 дней назад (2020-11-23)
Маркетинговая цельРабочий стол
Менеджер пакетовGNU Guix
Платформыx86_64, i686, рука[5]
Ядро типМонолитный: Linux-libre (рабочий) Микроядро: GNU Hurd (в разработке)
UserlandGNU
ЛицензияGPL
Официальный веб-сайтGNU.org/программного обеспечения/ guix

Система GNU Guix (ранее GuixSD[6]) это скользящий выпуск Дистрибутив GNU / Linux построен на основе диспетчера пакетов GNU Guix.[7][8] Он позволяет декларативную конфигурацию операционной системы[9] и позволяет выполнять надежные обновления системы, которые можно легко откатить.[10] Он использует GNU Shepherd в этом система[11][12] и Linux-libre ядро, с поддержкой GNU Hurd ядро в стадии разработки.[13] 3 февраля 2015 года дистрибутив был добавлен в Фонд свободного программного обеспечения Список бесплатных дистрибутивов Linux.[14]

Поддержка архитектуры

Поддерживаются следующие архитектуры ЦП: IA-32, x64, AArch32, AArch64[15] а в апреле 2019 года велась работа по МОЩНОСТЬ9 поддерживать.[16]

Функции

Системные услуги

Системные службы - это основная функция Guix System, которая позволяет пользователю декларативно составлять конфигурацию демонов и фоновых служб и легко указывать соответствующие конфигурации.

Это позволяет пользователю в одном файле конфигурации объявлять всю ОС (например, иметь прокси tor, сервер sshd и веб-сервер, обслуживающий guix-web через nginx на определенном порту при загрузке).

Системные службы могут:[17]

  • генерировать файлы в файловой системе (требуется некоторым приложениям, например, файлы в / etc)
  • запустить любой код для настройки демонов
  • создать определенные учетные записи пользователей и групп (например, пользователя базы данных для postgresql)

Рикардо Вурмус, один из сопровождающих, объясняет расширяемость следующим образом:[17]

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

Все службы определены с использованием схемы Guile.[18] Список услуг продолжает расти, и по состоянию на 1.0.0 в список услуг входят:[19]

  • Базовые услуги: основные системные услуги.
  • Выполнение заданий по расписанию: служба mcron.
  • Ротация журналов: служба rottlog.
  • Сетевые службы: настройка сети, демон SSH и т. Д.
  • X Window: графический дисплей.
  • Услуги печати: поддержка локальных и удаленных принтеров.
  • Настольные службы: D-Bus и настольные службы.
  • Звуковые службы: службы ALSA и Pulseaudio.
  • Службы баз данных: базы данных SQL, хранилища значений ключей и т. Д.
  • Почтовые службы: IMAP, POP3, SMTP и все такое.
  • Службы обмена сообщениями: службы обмена сообщениями.
  • Услуги телефонии: Услуги телефонии.
  • Услуги мониторинга: Услуги мониторинга.
  • Службы Kerberos: Службы Kerberos.
  • Службы LDAP: службы LDAP.
  • Веб-службы: веб-серверы.
  • Службы сертификации: сертификаты TLS через Let's Encrypt.
  • Службы DNS: демоны DNS.
  • Службы VPN: демоны VPN.
  • Сетевая файловая система: службы, связанные с NFS.
  • Непрерывная интеграция: сервис Cuirass.
  • Услуги по управлению питанием: продление срока службы батареи.
  • Аудиоуслуги: MPD.
  • Услуги виртуализации: Услуги виртуализации.
  • Службы контроля версий: предоставление удаленного доступа к репозиториям Git.
  • Игровые сервисы: Игровые серверы.
  • Разные услуги: Прочие услуги.

Система инициализации GNU Shepherd

Guix System использует GNU Daemon Shepherd в качестве в этом система, разработанная совместно с Guix и написанная на Хитрость также. Ранее он был известен как «dmd», что расшифровывалось как «Демон, управляющий демонами» или «Демон, управляющий демонами», но изменил имена, чтобы избежать столкновение с Цифровой Марс D компилятор.[20]

Shepherd предоставляет функции пользовательского пространства асинхронно как службы, которые в Shepherd общие функции и объект типы данных которые экспортируются для использования Shepherd для расширения базовой операционной системы определенным образом. В отличие от systemd от имени этого пользователя запускается процесс пастыря пользовательского пространства. Ядро модели Shepherd пространство пользователя инициализация - это концепция расширение, форма возможность компоновки где службы предназначены для наложения на другие службы, дополняя их более сложными или специализированными поведениями по желанию.[21] Это выражает отношения зависимости на основе создания экземпляров, обнаруженные во многих современных системах инициализации,[22] делает систему модульной, но также позволяет сервисам взаимодействовать переменно с другими сервисами произвольным образом.

Shepherd также предоставляет так называемые виртуальные услуги которые позволяют динамическая отправка над классом связанных служебных объектов, таких как все те, которые создают экземпляр агент по пересылке почты (MTA) для системы.[23] Система, управляемая с помощью демона Shepherd, может представлять свое пользовательское пространство как ориентированный ациклический граф, с «системной службой», отвечающей за ранние фазы загрузки и инициализации, в качестве ее корня, а также со всеми впоследствии инициализированными службами как расширениями функциональности системных служб, напрямую или транзитивно по сравнению с другими службами.[21][24]

Написан и настроен в Схема хитрости GNU Shepherd предназначен для программирования системным администратором, но он также может использоваться для управления профилями отдельных пользователей непривилегированных демонов и служб.[25] Его службы и конфигурация хранятся единообразно как объектно-ориентированные. Схема кода, и хотя основной набор сервисов предоставляется вместе с базовой системой Guix,[26] произвольные новые службы могут быть гибко объявлены, и через Guile's объектная система, GOOPS, существующие службы могут быть переопределены по усмотрению пользователя, попросив Shepherd динамически переписать службы определенными способами при создании экземпляра.[27][28]

GNU Shepherd изначально был разработан для работы с GNU Hurd, а позже был принят Guix System.[29]

Релиз и стабильность

На сегодняшний день в Guix System есть только нестабильный репозиторий разработки.[30] совместно с Guix, но позволяет пользователям или организациям самостоятельно настраивать каналы стабильных выпусков с помощью функции канала.[31]

Обновления

Пакеты в Guix, как правило, очень актуальны из-за отсутствия узких мест у сопровождающего их: любой может внести обновление при условии одобрения сообщества, и этот процесс поддерживается такими инструментами, как обновление guix.[32]

Изменения в репозитории git рецензируются членами сообщества и принимаются одним из 45 человек с доступом к фиксации.[33] На практике иногда эти сборки вызывают сбои системы у пользователей из-за опечатки или аналогичной ошибки, но часто они решаются в течение нескольких минут. То, как работает Guix pull, означает, что пользователи тем временем сохраняют работающую систему.

Откат

Если в результате обновления системы пользователи останутся с неработающей системой, пользователи могут легко откатить отдельные пакеты, а также состояние всей системы.[34] Это означает, что стабильный канал, который очень распространен в других дистрибутивах Linux, больше не нужен для пользователей, которые хотят сообщить об ошибке и подождать несколько минут при попытке обновления через Guix pull.

Прием

Джесси Смит из DistroWatch Weekly сделал обзор GNU Guix System 0.15.0 (в то время называемый GuixSD) и сказал: «У GuixSD есть менеджер пакетов, который мне нравится», но подверг критике ограниченную поддержку оборудования и ограниченную документацию.[35] С тех пор документация была расширена и улучшена видео.[36] и поваренная книга[37] на шести языках с учебными пособиями, практическими руководствами и примерами.

Смотрите также

Рекомендации

  1. ^ Авторы GuixSD. "О компании - GuixSD". gnu.org. В архиве с оригинала 12 апреля 2017 г.. Получено 16 марта, 2017.
  2. ^ «Вопросы и ответы по GNU / Linux - Проект GNU - Фонд свободного программного обеспечения». Фонд свободного программного обеспечения. В архиве из оригинала 7 сентября 2013 г.. Получено 14 мая, 2017.
  3. ^ "Скачать - GNU Guix". В архиве с оригинала 1 августа 2020 г.. Получено 3 ноября, 2019.
  4. ^ Людовик Куртес (23 ноября 2020 г.). «Выпущен GNU Guix 1.2.0 - 2020 - Блог - GNU Guix». Получено 24 ноября, 2020.
  5. ^ Матье Отхаче. "Перенос GuixSD на ARMv7". В архиве с оригинала 25 декабря 2017 г.. Получено 17 февраля, 2018.
  6. ^ "Как назвать Гикс?" (Список рассылки). gnu-system-обсудить. 15 января 2015 г. Архивировано с оригинал 7 августа 2020 г.. Получено 3 августа, 2020.
  7. ^ «Список бесплатных дистрибутивов GNU / Linux». В архиве с оригинала 6 июля 2020 г.. Получено 3 февраля, 2015.
  8. ^ «Guix: новый менеджер пакетов и распространение GNU». Фороникс. В архиве из оригинала 2 февраля 2015 г.. Получено 3 февраля, 2015.
  9. ^ «Использование системы конфигурации». gnu.org. В архиве с оригинала 29 апреля 2019 г.. Получено 27 апреля, 2019.
  10. ^ «Управление пакетами». gnu.org. В архиве с оригинала 21 мая 2019 г.. Получено 27 апреля, 2019.
  11. ^ "Программный интерфейс (Справочное руководство GNU Guix)". guix.gnu.org. В архиве с оригинала 7 августа 2020 г.. Получено 3 августа, 2020.
  12. ^ "Guix: новый диспетчер пакетов и распространение GNU - Phoronix". www.phoronix.com. В архиве из оригинала от 6 июля 2018 г.. Получено 3 августа, 2020.
  13. ^ "Выпущен GNU Guix & GuixSD 0.12.0" (Список рассылки). guix-devel. 21 декабря, 2016. Архивировано с оригинал 1 августа 2020 г.. Получено 3 августа, 2020.
  14. ^ «FSF добавляет Guix System Distribution в список одобренных дистрибутивов». Фонд свободного программного обеспечения. 3 февраля 2015 г. Архивировано с оригинал 3 февраля 2015 г.. Получено 3 февраля, 2015.
  15. ^ "Скачать". gnu.org. В архиве с оригинала 13 июля 2019 г.. Получено 27 апреля, 2019.
  16. ^ «Патч, добавляющий поддержку кросс-компиляции POWER9» (Список рассылки). В архиве с оригинала 1 августа 2020 г.. Получено 27 апреля, 2019.
  17. ^ а б Вурмус, Рикардо. "Re: Помощь в подготовке к переходу с Arch Linux на Guix" (Список рассылки). В архиве с оригинала 1 августа 2020 г.. Получено 11 мая, 2019.
  18. ^ "guix.git". git.savannah.gnu.org. В архиве с оригинала 11 мая 2019 г.. Получено 11 мая, 2019.
  19. ^ "Услуги". gnu.org. В архиве с оригинала 1 августа 2020 г.. Получено 11 мая, 2019.
  20. ^ "списки рассылки guix-devel". В архиве с оригинала 19 сентября 2019 г.. Получено 5 ноября, 2016.
  21. ^ а б "Справочное руководство GNU Guix: состав служб". Проект GNU. В архиве с оригинала на 1 января 2019 г.. Получено 5 ноября, 2016.
  22. ^ "systemd: зависимости и порядок модулей". Журнал Fedora. В архиве с оригинала 1 августа 2020 г.. Получено 5 ноября, 2016.
  23. ^ "Руководство GNU Shepherd: быстрый старт". Проект GNU. В архиве с оригинала 1 августа 2020 г.. Получено 5 ноября, 2016.
  24. ^ "Справочное руководство GNU Guix: Службы пастыря". Проект GNU. В архиве с оригинала на 1 января 2019 г.. Получено 5 ноября, 2016.
  25. ^ "Руководство GNU Shepherd". Проект GNU. В архиве с оригинала 1 августа 2020 г.. Получено 5 ноября, 2016.
  26. ^ "Справочное руководство GNU Guix: Услуги". Проект GNU. В архиве с оригинала 25 декабря 2018 г.. Получено 5 ноября, 2016.
  27. ^ "Справочное руководство GNU Guix: Типы сервисов и сервисы". Проект GNU. В архиве с оригинала 5 января 2019 г.. Получено 5 ноября, 2016.
  28. ^ "Справочное руководство GNU Guix: Использование системы конфигурации". Проект GNU. В архиве с оригинала 29 апреля 2019 г.. Получено 5 ноября, 2016.
  29. ^ "GNU Shepherd". Проект GNU. В архиве с оригинала 12 февраля 2016 г.. Получено 12 февраля, 2016.
  30. ^ «Re: Нам нужна RFC процедура» (Список рассылки). В архиве с оригинала 1 августа 2020 г.. Получено 27 апреля, 2019.
  31. ^ "Каналы". gnu.org. В архиве с оригинала 7 мая 2019 г.. Получено 27 апреля, 2019.
  32. ^ "Вызов обновления guix". gnu.org. В архиве с оригинала 26 декабря 2018 г.. Получено 16 мая, 2019.
  33. ^ "GNU Guix - Резюме: список участников проекта". gnu.org. В архиве с оригинала 1 августа 2020 г.. Получено 27 апреля, 2019.
  34. ^ "Вызов системы guix". gnu.org. В архиве с оригинала 26 мая 2019 г.. Получено 27 апреля, 2019.
  35. ^ Смит, Джесси. "Guix System Distribution 0.15.0 и ReactOS 0.4.9". distrowatch.com (778). В архиве с оригинала 30 июля 2019 г.. Получено 30 августа, 2018.
  36. ^ "Ролики". В архиве с оригинала 1 августа 2020 г.. Получено 3 марта, 2020.
  37. ^ "Поваренная книга". В архиве с оригинала 1 августа 2020 г.. Получено 3 марта, 2020.
  38. ^ "О компании - GuixSD". www.gnu.org. В архиве с оригинала 27 декабря 2015 г.. Получено 3 мая, 2018.

внешняя ссылка