GNU Guix System (anteriormente GuixSD [6] ) es una distribución de GNU / Linux de lanzamiento continuo construida alrededor del administrador de paquetes GNU Guix . [7] [8] Permite una configuración declarativa del sistema operativo [9] y permite actualizaciones confiables del sistema que pueden revertirse fácilmente. [10] Utiliza el sistema de inicialización GNU Shepherd [11] [12] y el kernel Linux-libre , con soporte para el kernel GNU Hurd en desarrollo. [13] El 3 de febrero de 2015, la distribución se agregó a la Lista de distribuciones gratuitas de GNU / Linux de la Free Software Foundation . [14]
Desarrollador | Proyecto GNU [1] [2] |
---|---|
Familia OS | Tipo Unix |
Estado de trabajo | Actual [3] |
Modelo fuente | Software libre , FSDG |
Último lanzamiento | 1.2.0 [4] / 23 de noviembre de 2020 |
Objetivo de marketing | Escritorio |
Gerente de empaquetación | GNU Guix |
Plataformas | x86_64, i686, armar [5] |
Tipo de grano | Monolítico: Linux-libre (operativo) Microkernel: GNU Hurd (en desarrollo) |
Userland | ÑU |
Licencia | GPL |
Página web oficial | gnu |
Soporte de arquitectura
Se admiten las siguientes arquitecturas de CPU: IA-32 , x64 , AArch32 , AArch64 [15] y en abril de 2019 se estaba trabajando para el soporte de POWER9 . [dieciséis]
Características
Servicios del sistema
Los servicios del sistema son una característica central del Sistema Guix que permiten al usuario componer de forma declarativa la configuración de los demonios y los servicios en segundo plano y especificar fácilmente las configuraciones relevantes.
Esto permite al usuario declarar en un solo archivo de configuración todo el sistema operativo (por ejemplo, tener un proxy tor, un servidor sshd y un servidor web que sirva guix-web a través de nginx en un puerto específico en el arranque).
Los servicios del sistema pueden: [17]
- generar archivos en el sistema de archivos (necesarios para algunas aplicaciones, por ejemplo, archivos en / etc)
- ejecutar cualquier código para configurar demonios
- crear cuentas de usuario y grupo específicas (por ejemplo, un usuario de base de datos para postgresql)
Ricardo Wurmus, uno de los mantenedores, explica la extensibilidad así: [17]
Los servicios se pueden extender entre sí, lo que nos permite definir formas de configurar aplicaciones complejas, por ejemplo, que requieren un servidor web, cuentas de usuario, demonios específicos de la aplicación, una base de datos, reglas udev, etc., todo con un solo tipo de servicio.
Todos los servicios se definen utilizando Guile Scheme. [18] La lista de servicios sigue creciendo y, a partir del 1.0.0, la lista de servicios incluye lo siguiente: [19]
- Servicios básicos: servicios esenciales del sistema.
- Ejecución programada de trabajos: el servicio mcron.
- Rotación de troncos: el servicio rottlog.
- Servicios de red: configuración de red, demonio SSH, etc.
- Ventana X: Visualización gráfica.
- Servicios de impresión: soporte para impresoras locales y remotas.
- Servicios de escritorio: D-Bus y servicios de escritorio.
- Servicios de sonido: servicios ALSA y Pulseaudio.
- Servicios de bases de datos: bases de datos SQL, almacenes de valores clave, etc.
- Servicios de correo: IMAP, POP3, SMTP y todo eso.
- Servicios de mensajería: servicios de mensajería.
- Servicios de telefonía: Servicios de telefonía.
- Servicios de monitorización: Servicios de monitorización.
- Servicios Kerberos: servicios Kerberos.
- Servicios LDAP: servicios LDAP.
- Servicios web: servidores web.
- Servicios de certificados: certificados TLS a través de Let's Encrypt.
- Servicios DNS: demonios DNS.
- Servicios VPN: demonios VPN.
- Sistema de archivos de red: servicios relacionados con NFS.
- Integración continua: El servicio Cuirass.
- Servicios de administración de energía: prolongación de la vida útil de la batería.
- Servicios de audio: MPD.
- Servicios de virtualización: servicios de virtualización.
- Servicios de control de versiones: proporciona acceso remoto a los repositorios de Git.
- Servicios de juego: servidores de juegos.
- Servicios varios: Otros servicios.
Sistema de inicialización GNU Shepherd
Guix System utiliza GNU Daemon Shepherd como su sistema de inicio , que se desarrolla en conjunto con Guix y también está escrito en Guile . Anteriormente se conocía como "dmd", que significaba "Demonios que administran demonios" o "Demonios que administran demonios", pero cambió de nombre para evitar la colisión con el compilador Digital Mars D. [20]
Shepherd proporciona funcionalidad de espacio de usuario de forma asincrónica como servicios, que bajo Shepherd son funciones genéricas y tipos de datos de objeto que se exportan para que Shepherd los utilice para extender el sistema operativo base de alguna manera definida. A diferencia de systemd , un proceso de pastor del espacio de usuario se ejecuta como ese usuario. El núcleo del modelo Shepherd de inicialización del espacio de usuario es el concepto de extensión , una forma de componibilidad en la que los servicios están diseñados para ser superpuestos a otros servicios, aumentándolos con comportamientos más elaborados o especializados según se desee. [21] Esto expresa las relaciones de dependencia basadas en instanciación que se encuentran en muchos sistemas de inicio modernos, [22] haciendo que el sistema sea modular, pero también permite que los servicios interactúen de forma variable con otros servicios de manera arbitraria.
Shepherd también proporciona los denominados servicios virtuales que permiten el envío dinámico sobre una clase de objetos de servicio relacionados, como todos aquellos que crean una instancia de un agente de transferencia de correo (MTA) para el sistema. [23] Un sistema gobernado a través del demonio Shepherd puede representar su espacio de usuario como un gráfico acíclico dirigido , con el "system-service" - responsable de las primeras fases de arranque e init - como su raíz, y todos los servicios inicializados posteriormente como extensiones para la funcionalidad del servicio del sistema, ya sea de forma directa o transitiva sobre otros servicios. [21] [24]
Al estar escrito y configurado en Guile Scheme , GNU Shepherd está diseñado para ser altamente programable por el administrador del sistema, pero también puede usarse para administrar perfiles por usuario de demonios y servicios sin privilegios. [25] Sus servicios y configuración se almacenan uniformemente como código Scheme orientado a objetos , y aunque se proporciona un conjunto básico de servicios con el sistema Guix básico, [26] se pueden declarar de forma flexible nuevos servicios arbitrarios, ya través del sistema de objetos de Guile , GOOPS , los servicios existentes se pueden redefinir a discreción del usuario pidiendo a Shepherd que reescriba dinámicamente los servicios de formas específicas en la instanciación. [27] [28]
GNU Shepherd fue diseñado originalmente para funcionar con GNU Hurd y luego fue adoptado por Guix System. [29]
Liberación y estabilidad
El sistema Guix hasta la fecha solo tiene un repositorio git de desarrollo inestable [30] compartido con Guix, pero permite a los usuarios u organizaciones configurar canales de lanzamiento estables ellos mismos a través de la función de canal. [31]
Actualizaciones
Los paquetes en Guix generalmente están muy actualizados gracias a la falta de un cuello de botella para el mantenedor del paquete: cualquiera puede contribuir con una actualización sujeta a la aprobación de la comunidad y el proceso es asistido por herramientas como la actualización de guix . [32]
Los cambios en el repositorio de git son revisados por pares por miembros de la comunidad y comprometidos por una de las 45 personas con acceso de confirmación. [33] En la práctica, a veces estas compilaciones causan fallas en el sistema a los usuarios debido a un error tipográfico o similar, pero a menudo se resuelven en minutos. La forma en que funciona Guix pull significa que los usuarios conservan un sistema en funcionamiento mientras tanto.
Retroceder
Si una actualización del sistema deja a los usuarios con un sistema roto, los usuarios pueden deshacer fácilmente paquetes individuales así como todo el estado del sistema. [34] Esto significa que un canal estable que es muy común en otras distribuciones de Linux ya no es necesario para los usuarios que están dispuestos a informar de un error y esperar unos minutos cuando intentan actualizar mediante guix pull .
Recepción
Jesse Smith de DistroWatch Weekly revisó GNU Guix System 0.15.0 (en ese momento llamado GuixSD), y dijo, "GuixSD tiene un administrador de paquetes que me gusta", pero criticó el soporte de hardware limitado y su documentación limitada. [35] Desde entonces, la documentación se ha ampliado y mejorado con videos [36] y un libro de cocina [37] en seis idiomas con tutoriales, guías prácticas y ejemplos.
Ver también
- GNU Guix
- Debian GNU / Hurd
- Comparación de distribuciones de Linux
- NixOS : un sistema operativo similar, que inspiró GNU Guix [38]
Referencias
- ^ Colaboradores de GuixSD. "Acerca de - GuixSD" . gnu.org . Archivado desde el original el 12 de abril de 2017 . Consultado el 16 de marzo de 2017 .
- ^ "Preguntas frecuentes sobre GNU / Linux - Proyecto GNU - Free Software Foundation" . Fundación de Software Libre . Archivado desde el original el 7 de septiembre de 2013 . Consultado el 14 de mayo de 2017 .
- ^ "Descargar - GNU Guix" . Archivado desde el original el 1 de agosto de 2020 . Consultado el 3 de noviembre de 2019 .
- ^ Ludovic Courtès (23 de noviembre de 2020). "GNU Guix 1.2.0 lanzado - 2020 - Blog - GNU Guix" . Consultado el 24 de noviembre de 2020 .
- ^ Mathieu Othacehe. "Portando GuixSD a ARMv7" . Archivado desde el original el 25 de diciembre de 2017 . Consultado el 17 de febrero de 2018 .
- ^ "¿Cómo llamar a Guix?" (Lista de correo). gnu-system-discus. 15 de enero de 2015. Archivado desde el original el 7 de agosto de 2020 . Consultado el 3 de agosto de 2020 .
- ^ "Lista de distribuciones libres de GNU / Linux" . Archivado desde el original el 6 de julio de 2020 . Consultado el 3 de febrero de 2015 .
- ^ "Guix: un nuevo administrador de paquetes y distribución GNU" . Phoronix . Archivado desde el original el 2 de febrero de 2015 . Consultado el 3 de febrero de 2015 .
- ^ "Uso del sistema de configuración" . gnu.org . Archivado desde el original el 29 de abril de 2019 . Consultado el 27 de abril de 2019 .
- ^ "Gestión de paquetes" . gnu.org . Archivado desde el original el 21 de mayo de 2019 . Consultado el 27 de abril de 2019 .
- ^ "Interfaz de programación (Manual de referencia de GNU Guix)" . guix.gnu.org . Archivado desde el original el 7 de agosto de 2020 . Consultado el 3 de agosto de 2020 .
- ^ "Guix: un nuevo administrador de paquetes y distribución GNU - Phoronix" . www.phoronix.com . Archivado desde el original el 6 de julio de 2018 . Consultado el 3 de agosto de 2020 .
- ^ "GNU Guix & GuixSD 0.12.0 lanzado" (lista de correo). guix-devel. 21 de diciembre de 2016. Archivado desde el original el 1 de agosto de 2020 . Consultado el 3 de agosto de 2020 .
- ^ "La FSF agrega la distribución del sistema Guix a la lista de distribuciones respaldadas" . Fundación de Software Libre. 3 de febrero de 2015. Archivado desde el original el 3 de febrero de 2015 . Consultado el 3 de febrero de 2015 .
- ^ "Descargar" . gnu.org . Archivado desde el original el 13 de julio de 2019 . Consultado el 27 de abril de 2019 .
- ^ "Parche que agrega soporte de compilación cruzada de POWER9" (Lista de correo). Archivado desde el original el 1 de agosto de 2020 . Consultado el 27 de abril de 2019 .
- ^ a b Wurmus, Ricardo. "Re: Ayuda con la preparación para pasar de Arch Linux a Guix" (lista de correo). Archivado desde el original el 1 de agosto de 2020 . Consultado el 11 de mayo de 2019 .
- ^ "guix.git" . git.savannah.gnu.org . Archivado desde el original el 11 de mayo de 2019 . Consultado el 11 de mayo de 2019 .
- ^ "Servicios" . gnu.org . Archivado desde el original el 1 de agosto de 2020 . Consultado el 11 de mayo de 2019 .
- ^ "listas de distribución de guix-devel" . Archivado desde el original el 19 de septiembre de 2019 . Consultado el 5 de noviembre de 2016 .
- ^ a b "GNU Guix Reference Manual: Service Composition" . Proyecto GNU. Archivado desde el original el 1 de enero de 2019 . Consultado el 5 de noviembre de 2016 .
- ^ "systemd: dependencias de la unidad y orden" . Revista Fedora. Archivado desde el original el 1 de agosto de 2020 . Consultado el 5 de noviembre de 2016 .
- ^ "El Manual de GNU Shepherd: Jump Start" . Proyecto GNU. Archivado desde el original el 1 de agosto de 2020 . Consultado el 5 de noviembre de 2016 .
- ^ "GNU Guix Reference Manual: Shepherd Services" . Proyecto GNU. Archivado desde el original el 1 de enero de 2019 . Consultado el 5 de noviembre de 2016 .
- ^ "El Manual del Pastor GNU" . Proyecto GNU. Archivado desde el original el 1 de agosto de 2020 . Consultado el 5 de noviembre de 2016 .
- ^ "GNU Guix Reference Manual: Services" . Proyecto GNU. Archivado desde el original el 25 de diciembre de 2018 . Consultado el 5 de noviembre de 2016 .
- ^ "Manual de referencia de GNU Guix: tipos de servicio y servicios" . Proyecto GNU. Archivado desde el original el 5 de enero de 2019 . Consultado el 5 de noviembre de 2016 .
- ^ "Manual de referencia de GNU Guix: uso del sistema de configuración" . Proyecto GNU. Archivado desde el original el 29 de abril de 2019 . Consultado el 5 de noviembre de 2016 .
- ^ "Pastor GNU" . Proyecto GNU. Archivado desde el original el 12 de febrero de 2016 . Consultado el 12 de febrero de 2016 .
- ^ "Re: Necesitamos un procedimiento RFC" (lista de correo). Archivado desde el original el 1 de agosto de 2020 . Consultado el 27 de abril de 2019 .
- ^ "Canales" . gnu.org . Archivado desde el original el 7 de mayo de 2019 . Consultado el 27 de abril de 2019 .
- ^ "Invocación de actualización de guix" . gnu.org . Archivado desde el original el 26 de diciembre de 2018 . Consultado el 16 de mayo de 2019 .
- ^ "GNU Guix - Resumen: Lista de miembros del proyecto" . gnu.org . Archivado desde el original el 1 de agosto de 2020 . Consultado el 27 de abril de 2019 .
- ^ "Invocación del sistema guix" . gnu.org . Archivado desde el original el 26 de mayo de 2019 . Consultado el 27 de abril de 2019 .
- ^ Smith, Jesse. "Distribución del sistema Guix 0.15.0 y ReactOS 0.4.9" . distrowatch.com (778). Archivado desde el original el 30 de julio de 2019 . Consultado el 30 de agosto de 2018 .
- ^ "Videos" . Archivado desde el original el 1 de agosto de 2020 . Consultado el 3 de marzo de 2020 .
- ^ "Libro de cocina" . Archivado desde el original el 1 de agosto de 2020 . Consultado el 3 de marzo de 2020 .
- ^ "Acerca de - GuixSD" . www.gnu.org . Archivado desde el original el 27 de diciembre de 2015 . Consultado el 3 de mayo de 2018 .
enlaces externos
- Página web oficial
- Sistema Guix en DistroWatch
- Lista de paquetes de Guix