Guix System Distribution
GNU Guix System | |
---|---|
![]() | |
![]() Guix System с Xfce, и с включёнными GNU IceCat и GNU Emacs | |
Разработчик | GNU Project[1][2] |
Семейство ОС | Unix-подобные ОС |
Исходный код | открытый |
Последняя версия | 1.4.0[3] (19 декабря 2022; 20 месяцев назад (2022-12-19)) |
Менеджеры пакетов | GNU Guix |
Поддерживаемые платформы | x86_64, i686, arm[4] |
Тип ядра | Монолитное: Linux-libre (оперативный) Микроядро: GNU Hurd (в разработке) |
Интерфейс | GNOME[5], Xfce[5], Enlightenment[5] и LXDE[5] |
Лицензия | GNU GPL |
Состояние | в разработке |
Веб-сайт | guix.gnu.org |
![]() |
GNU Guix System — дистрибутив Linux, созданный с менеджером пакетов GNU Guix[6][7]. Он использует ядро Linux-libre с поддержкой элементов GNU Hurd[8]. 3 февраля 2015 года дистрибутив был добавлен в список свободных дистрибутивов GNU/Linux Фонда свободного программного обеспечения[9].
Возможности
GNU Guix
GuixSD использует GNU Guix, функциональный пакетный менеджер, и диспетчер конфигурации системы, основанный на Nix package manager, с использованием GNU Guile, являющийся реализацией языка программирования Scheme. Все определения пакетов, а также вся конфигурация системы, написаны на предметно-ориентированном языке Guile Scheme[10].
GNU Shepherd
GuixSD использует GNU Daemon Shepherd в качестве своей системы init, который разрабатывается в тандеме с Guix и также написан на Guile. Ранее он назывался «dmd», что означало «Daemon management Daemons» или «Daemons-management Daemon», но имя было изменено, чтобы избежать конфликта с компилятором Digital Mars D[11].
Shepherd предоставляет функциональные возможности пользовательского пространства асинхронно в виде сервисов, которые для Shepherd являются универсальными функциями и объектными типами данных. Их экспорт используется Shepherd для расширения базовой операционной системы определённым образом. В противоположность systemd, процесс пользовательского пространства shepherd запускается от имени пользователя. Ядром модели инициализации пользовательского пространства Shepherd является концепция расширения, формы компонуемости, при которой сервисы предназначены для наложения на другие сервисы, дополняя их более сложными или специализированными поведениями по желанию[12]. Это выражает основанные на создании экземпляров отношения зависимости, обнаруженные во многих современных системах инициализации[13], делая систему модульной, также позволяя сервисам вариативно взаимодействовать друг с другом произвольными способами.
Shepherd также предоставляет так называемые виртуальные службы, которые позволяют динамическую отправку по классу связанных объектов службы, таких как все те объекты, которые создают реализацию почтового сервера для системы[14]. Система, управляемая через демон Shepherd, может представлять своё пользовательское пространство, как направленный ациклический граф, а «системный сервис» — ответственный за ранние фазы загрузки и init — как его корень, так и все последующие инициализированные службы в качестве расширений для функциональности системного сервиса, либо напрямую, либо через другие сервисы[12][15].
GNU Shepherd написан и сконфигурирован с использованием Guile Scheme и предназначен для обеспечения высокой степени программирования системным администратором, но его также можно использовать для управления профилями отдельных пользователей непривилегированных демонов и служб[16]. Его службы и конфигурация сохраняются единообразно, как объектно-ориентированный код Scheme, и хотя основной набор сервисов предоставляется с помощью базовой системы GuixSD[17], произвольные новые сервисы могут быть гибко объявлены. А через объектную систему Guile (GOOPS) существующие сервисы могут быть переопределены по усмотрению пользователя, запросив Shepherd динамически изменить службы указанными способами при создании экземпляра[18][19].
GNU Shepherd изначально был разработан для работы с GNU Hurd, а позднее стал использоваться в GuixSD[20].
См. также
Примечания
- ↑ About — Guix System (неопр.). Дата обращения: 27 апреля 2022. Архивировано 27 апреля 2022 года.
- ↑ Вопросы о GNU/Linux - Проект GNU - Фонд свободного программного обеспечения (неопр.). Дата обращения: 7 июля 2018. Архивировано 7 сентября 2013 года.
- ↑ GNU Guix 1.4.0 released (неопр.). Дата обращения: 13 мая 2021. Архивировано 13 мая 2021 года.
- ↑ Porting GuixSD to ARMv7 — 2017 — Blog — GuixSD (неопр.). Дата обращения: 7 июля 2018. Архивировано 25 декабря 2017 года.
- ↑ 1 2 3 4 https://guix.gnu.org/ru/manual/devel/en/guix.html#Limitations
- ↑ Свободные дистрибутивы GNU/Linux — Проект GNU — Фонд свободного программного обеспечения (неопр.). Дата обращения: 7 июля 2018. Архивировано 16 декабря 2014 года.
- ↑ Guix: A New Package Manager & GNU Distribution — Phoronix (неопр.). Дата обращения: 7 июля 2018. Архивировано 2 февраля 2015 года.
- ↑ GNU Guix & GuixSD 0.12.0 released (неопр.). Дата обращения: 7 июля 2018. Архивировано 1 августа 2020 года.
- ↑ FSF adds Guix System Distribution to list of endorsed distributions — Free Software Foundation — working together for free software (неопр.). Дата обращения: 7 июля 2018. Архивировано 3 февраля 2015 года.
- ↑ Programming Interface (GNU Guix Reference Manual) (неопр.). Дата обращения: 7 июля 2018. Архивировано 2 июня 2019 года.
- ↑ dmd’s new name (неопр.). Дата обращения: 7 июля 2018. Архивировано 19 сентября 2019 года.
- ↑ 1 2 Service Composition (GNU Guix Reference Manual) (неопр.). Дата обращения: 7 июля 2018. Архивировано 7 июля 2018 года.
- ↑ systemd: Unit dependencies and order — Fedora Magazine (неопр.). Дата обращения: 7 июля 2018. Архивировано 1 августа 2020 года.
- ↑ Jump Start (The GNU Shepherd Manual) (неопр.). Дата обращения: 7 июля 2018. Архивировано 1 августа 2020 года.
- ↑ Shepherd Services (GNU Guix Reference Manual) (неопр.). Дата обращения: 7 июля 2018. Архивировано 7 июля 2018 года.
- ↑ Introduction (The GNU Shepherd Manual) (неопр.). Дата обращения: 7 июля 2018. Архивировано 1 августа 2020 года.
- ↑ Services (GNU Guix Reference Manual) (неопр.). Дата обращения: 7 июля 2018. Архивировано 7 июля 2018 года.
- ↑ Service Types and Services (GNU Guix Reference Manual) (неопр.). Дата обращения: 7 июля 2018. Архивировано 7 июля 2018 года.
- ↑ Using the Configuration System (GNU Guix Reference Manual) (неопр.). Дата обращения: 7 июля 2018. Архивировано 7 июля 2018 года.
- ↑ The Shepherd — GNU Project — Free Software Foundation (неопр.). Дата обращения: 7 июля 2018. Архивировано 12 февраля 2016 года.
Ссылки
- gnu.org/software/guix/ — официальный сайт Guix System Distribution
- Guix System Distribution на сайте DistroWatch
- Список пакетов GuixSD