Guix System Distribution

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая Renamed user 4ab9747a7456d4192175d5aface571c0 (обсуждение | вклад) в 17:15, 7 июля 2018 ( Новая страница: «{{Infobox OS | name = Guix System Distribution | logo = Guix System Distribution logo.svg | screenshot…»). Она может серьёзно отличаться от текущей версии.
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску
Guix System Distribution
Изображение логотипа
GuixSD с Xfce, и с включёнными GNU IceCat и GNU Emacs
GuixSD с Xfce, и с включёнными GNU IceCat и GNU Emacs
Разработчик GNU Project[1][2]
Семейство ОС Unix-подобные ОС
Основана на GNU/Linux и GNU/Hurd[вд]
Исходный код открытый
Последняя версия 0.15.0[3] (6 июля 2018 года)
Последняя тестовая версия 0.14.0 (beta)[4] (7 декабря 2017 года)
Менеджеры пакетов GNU Guix
Поддерживаемые платформы x86_64, i686, arm[5]
Тип ядра Монолитное: Linux-libre (оперативный)
Микроядро: GNU Hurd (в разработке)
Интерфейс GNOME[6], Xfce[6], Enlightenment[6] и LXDE[6]
Лицензия GPL
Состояние в разработке
Веб-сайт gnu.org/software/guix
Логотип Викисклада Медиафайлы на Викискладе

Guix System Distribution (сокращенно GuixSD[7]) — дистрибутив Linux, созданный с менеджером пакетов GNU Guix[8][9]. Он использует ядро Linux-libre с поддержкой элементов GNU Hurd[10]. 3 февраля 2015 года, дистрибутив был добавлен в список бесплатных дистрибутивов Linux Фонда свободного программного обеспечения[11].

Возможности

GNU Guix

GuixSD использует GNU Guix, функциональный пакетный менеджер, и диспетчер конфигурации системы, основанный на Nix package manager, с использованием GNU Guile, написанный на языке программирования Scheme. Все пакеты, а также вся конфигурация системы, написаны на предметно-ориентированным языке в Guile Scheme[12].

GNU Shepherd

GuixSD использует GNU Daemon Shepherd в качестве своей init, который разрабатывается в тандеме с Guix, и также написана на Guile. Ранее он назывался «dmd», который означал «Daemon management Daemons» или «Daemons-management Daemon», но сменил имя, чтобы избежать конфликтов с другим проектом[13].

Shepherd немного вдохновляет недавнюю систему инициализации systemd, на то, что она обеспечивает асинхронное распределение пользовательских пространств как сервисов, которые для Shepherd являются универсальными функциями, и объектными типами данных, которые экспортируются для Shepherd для расширения базовой операционной системы определённым образом. Ядро для пассивной модели инициализации пользовательского пространства — концепция расширения, и форма компоновки, которые предназначены для применения на другие сервисы, при необходимости, делая их более сложными, или специализированными[14]. Это делает отношения с зависимостями, найденные во многих современных системах init[15], делая систему модульной, также позволяя сервисам взаимодействовать с другими службами произвольными способами.

Shepherd также предоставляет так называемые виртуальные службы, которые позволяют динамическую отправку по классу связанных объектов службы, таких как все те объекты, которые создают реализацию почтового сервера для системы[16]. Система, управляемая через демон Shepherd, может представлять своё пользовательское пространство, как направленный ациклический граф, а «системный сервис» — ответственный за ранние фазы загрузки и init — как его корень, так и все последующие инициализированные службы в качестве расширений для функциональности системного сервиса, либо напрямую, либо через другие сервисы[14][17].

Будучи, как написанным на базе Guile Scheme, GNU Shepherd предназначен для высокопрограммируемого системного администратора, но его также можно использовать для управления профилями пользователей для непривилегированных демонов, и сервисов[18]. Его службы, и конфигурация сохраняются равномерно, как объектно-ориентированный код схемы, и хотя основной набор сервисов предоставляется с базовой версией GuixSD[19], произвольные новые службы могут быть написаны и через объектную систему Guile, GOOPS. Существующие сервисы могут быть переопределены по усмотрению пользователя, попросив Shepherd динамически переписать службы указанными способами при создании реализации[20][21].

GNU Shepherd изначально был разработан для работы с GNU Hurd, и позднее стал использоваться в GuixSD[22].

См. также

Примечания

Ссылки