https://en.wikipedia.org/wiki/GNU_Guix_System GNU Guix System From Wikipedia, the free encyclopedia Jump to navigation Jump to search Not to be confused with GNU Guix. Rolling release distribution of the GNU operating system built around the GNU Guix package manager This article contains content that is written like an advertisement. Please help improve it by removing promotional [40px] content and inappropriate external links, and by adding encyclopedic content written from a neutral point of view. ( May 2022) (Learn how and when to remove this template message) Guix System Guix logo.svg Guixsd-xfce-icecat-emacs.png Guix System running Xfce, GNU IceCat and GNU Emacs Developer GNU Project^[1]^[2] OS family Linux (Unix-like) Working Current^[3] state Source model Free software, FSDG Latest 1.3.0^[4] Edit this on Wikidata / 11 May 2021 release Marketing Desktop target Package GNU Guix manager Platforms x86_64, i686, aarch64, arm7, powerpc64le Kernel type Monolithic: Linux-libre (operational) Microkernel: GNU Hurd (under development) Userland GNU License GPL Official guix.gnu.org website GNU Guix System or Guix System^[5]^[6] (previously GuixSD^[7]) is a rolling release, free and open source Linux distribution built around the GNU Guix package manager.^[8]^[9] It enables a declarative operating system configuration^[10] and allows reliable system upgrades that can easily be rolled back.^[11] It uses the GNU Shepherd init system^[12]^[13] and the Linux-libre kernel, with support for the GNU Hurd kernel under development.^[14] On February 3, 2015, the distribution was added to the Free Software Foundation's list of free Linux distributions.^[15] The Guix package manager and the Guix System drew inspiration from the Nix package manager and NixOS respectively. ^[16] [ ] Contents * 1 Architecture support * 2 Features + 2.1 System services + 2.2 GNU Shepherd init system * 3 Release and stability + 3.1 Updates + 3.2 Roll-back * 4 Reception * 5 See also * 6 References * 7 External links Architecture support[edit] The following CPU architectures are supported: IA-32, x86-64, ARM7, AArch64, POWER9.^[17]^[18]^[19] Features[edit] System services[edit] System services are a core feature in Guix System that enable the user to declaratively compose the configuration of daemons and background services and easily specify the relevant configurations. This enables the user to within a single configuration file declare the whole OS (e.g., to have a tor proxy, an sshd server, and a webserver serving guix-web via nginx on a specific port at bootup). System services can:^[20] * generate files in the filesystem (needed by some applications e.g. files in /etc) * run any code for setting up daemons * create specific user and group accounts (e.g. a database user for postgresql) Ricardo Wurmus, one of the maintainers, explains the extendability like this:^[20] Services can extend one another, which allows us to define ways to set up complex applications, for example, that require a web server, user accounts, application-specific daemons, a database, udev rules, etc -- all with just one service type. All the services are defined using Guile Scheme.^[21] The list of services continue to grow and as of 1.0.0 the list of services includes the following:^[22] * Base Services: Essential system services. * Scheduled Job Execution: The mcron service. * Log Rotation: The rottlog service. * Networking Services: Network setup, SSH daemon, etc. * X Window: Graphical display. * Printing Services: Local and remote printer support. * Desktop Services: D-Bus and desktop services. * Sound Services: ALSA and Pulseaudio services. * Database Services: SQL databases, key-value stores, etc. * Mail Services: IMAP, POP3, SMTP, and all that. * Messaging Services: Messaging services. * Telephony Services: Telephony services. * Monitoring Services: Monitoring services. * Kerberos Services: Kerberos services. * LDAP Services: LDAP services. * Web Services: Web servers. * Certificate Services: TLS certificates via Let's Encrypt. * DNS Services: DNS daemons. * VPN Services: VPN daemons. * Network File System: NFS related services. * Continuous Integration: The Cuirass service. * Power Management Services: Extending battery life. * Audio Services: The MPD. * Virtualization Services: Virtualization services. * Version Control Services: Providing remote access to Git repositories. * Game Services: Game servers. * Miscellaneous Services: Other services. GNU Shepherd init system[edit] Guix System uses the GNU Daemon Shepherd as its init system, which is developed in tandem with Guix and is written in Guile as well. It was previously known as "dmd", which stood for "Daemon managing Daemons" or "Daemons-managing Daemon", but changed names to avoid collision with the Digital Mars D compiler.^[23] Shepherd supplies user-space functionality asynchronously as services, which under Shepherd are generic functions and object data types that are exported for use by the Shepherd to extend the base operating system in some defined way. In contrast to systemd, a userspace shepherd process runs as that user. Core to the Shepherd model of user space initialisation is the concept of the extension, a form of composability where services are designed to be layered onto other services, augmenting them with more elaborate or specialised behaviours as desired.^[24] This expresses the instantiation-based dependency relationships found in many modern init systems,^[25] making the system modular, but also allows services to interact variadically with other services in arbitrary ways. Shepherd also provides so-called virtual services which allow dynamic dispatch over a class of related service objects, such as all those which instantiate a mail transfer agent (MTA) for the system.^[26] A system governed via the Shepherd daemon can represent its user space as a directed acyclic graph, with the "system-service" - responsible for early phases of boot and init - as its root, and all subsequently initialised services as extensions to system-service's functionality, either directly or transitively over other services.^[24]^[27] Being both written and configured in Guile Scheme, GNU Shepherd is intended to be highly programmable by the system administrator, but it can also be used to manage per-user profiles of unprivileged daemons and services.^[28] Its services and configuration are stored uniformly as object-oriented Scheme code, and while a core set of services are provided with the basic Guix System,^[29] arbitrary new services can be flexibly declared, and through Guile's object system, GOOPS, existing services can be redefined at the user's discretion by asking the Shepherd to dynamically rewrite services in specified ways on instantiation.^[30]^[31] GNU Shepherd was originally designed to work with GNU Hurd, and was later adopted by Guix System.^[32] Release and stability[edit] Guix System to date has only an unstable development git repository^ [33] shared with Guix but enables users or organizations to set up stable release channels themselves via the channel-feature.^[34] Updates[edit] Packages in Guix are generally very up-to-date thanks to the lack of a package maintainer bottleneck: anyone can contribute an update subject to community approval and the process is assisted by tools such as guix refresh.^[35] Changes to the git repository are peer-reviewed by community members and committed by one of the 45 people with commit access.^[36] In practice sometimes these builds cause system breakages for users because of a typo or similar error, but these are often solved within minutes. The way Guix pull operates means users retain a working system in the meantime. Roll-back[edit] If a system update should leave users with a broken system, users can easily roll back individual packages as well as the whole system state.^[37] This means that a stable channel which is very common in other Linux distributions is no longer needed for users who are willing to report a bug and wait a few minutes, when trying to update via guix pull. Reception[edit] Jesse Smith from DistroWatch Weekly reviewed GNU Guix System 0.15.0 (at the time named GuixSD), and said, "GuixSD has a package manager that I like", but criticized the limited hardware support and its limited documentation.^[38] The documentation has since then been expanded and improved with videos^[39] and a cookbook^[40] in six languages with tutorials, how-to guides and examples. See also[edit] * #Free and open-source software portal * GNU Guix * Debian GNU/Hurd * Comparison of Linux distributions * NixOS - A similar operating system, which inspired GNU Guix^[41] References[edit] 1. ^ GuixSD Contributors. "About -- GuixSD". gnu.org. Archived from the original on April 12, 2017. Retrieved March 16, 2017. {{cite web}}: |author= has generic name (help) 2. ^ "GNU/Linux FAQ - GNU Project - Free Software Foundation". Free Software Foundation. Archived from the original on September 7, 2013. Retrieved May 14, 2017. 3. ^ "Download -- GNU Guix". Archived from the original on August 1, 2020. Retrieved November 3, 2019. 4. ^ Ludovic Courtes; "GNU Guix 1.3.0 released"; author name string: Maxim Cournoyer; publication date: 11 May 2021; retrieved: 27 August 2021. 5. ^ "About -- GNU Guix". guix.gnu.org. Retrieved December 11, 2021. 6. ^ "Free GNU/Linux distributions".{{cite web}}: CS1 maint: url-status (link) 7. ^ "What to call Guix?" (Mailing list). gnu-system-discuss. January 15, 2015. Archived from the original on August 7, 2020. Retrieved August 3, 2020. 8. ^ "List of Free GNU/Linux Distributions". Archived from the original on July 6, 2020. Retrieved February 3, 2015. 9. ^ "Guix: A New Package Manager & GNU Distribution". Phoronix. Archived from the original on February 2, 2015. Retrieved February 3, 2015. 10. ^ "Using the Configuration System". gnu.org. Archived from the original on April 29, 2019. Retrieved April 27, 2019. 11. ^ "Package Management". gnu.org. Archived from the original on May 21, 2019. Retrieved April 27, 2019. 12. ^ "Programming Interface (GNU Guix Reference Manual)". guix.gnu.org. Archived from the original on August 7, 2020. Retrieved August 3, 2020. 13. ^ "Guix: A New Package Manager & GNU Distribution - Phoronix". www.phoronix.com. Archived from the original on July 6, 2018. Retrieved August 3, 2020. 14. ^ "GNU Guix & GuixSD 0.12.0 released" (Mailing list). guix-devel. December 21, 2016. Archived from the original on August 1, 2020. Retrieved August 3, 2020. 15. ^ "FSF adds Guix System Distribution to list of endorsed distributions". Free Software Foundation. February 3, 2015. Archived from the original on February 3, 2015. Retrieved February 3, 2015. 16. ^ "GNU Guix Reference Manual - Acknowledgments".{{cite web}}: CS1 maint: url-status (link) 17. ^ "Download". gnu.org. Archived from the original on October 6, 2021. Retrieved October 6, 2021. 18. ^ Mathieu Othacehe. "Porting GuixSD to ARMv7". Archived from the original on December 25, 2017. Retrieved February 17, 2018. 19. ^ Marusich, Chris; Le Bouter, Leo (April 12, 2021). "New Supported Platform: powerpc64le-linux". Archived from the original on May 16, 2021. Retrieved October 6, 2021. 20. ^ ^a ^b Wurmus, Ricardo. "Re: Help with preparing to move from Arch Linux to Guix" (Mailing list). Archived from the original on August 1, 2020. Retrieved May 11, 2019. 21. ^ "guix.git". git.savannah.gnu.org. Archived from the original on May 11, 2019. Retrieved May 11, 2019. 22. ^ "Services". gnu.org. Archived from the original on August 1, 2020. Retrieved May 11, 2019. 23. ^ "guix-devel mailing lists". Archived from the original on September 19, 2019. Retrieved November 5, 2016. 24. ^ ^a ^b "GNU Guix Reference Manual: Service Composition". GNU Project. Archived from the original on January 1, 2019. Retrieved November 5, 2016. 25. ^ "systemd: Unit Dependencies and Order". Fedora Magazine. Archived from the original on August 1, 2020. Retrieved November 5, 2016. 26. ^ "The GNU Shepherd Manual: Jump Start". GNU Project. Archived from the original on August 1, 2020. Retrieved November 5, 2016. 27. ^ "GNU Guix Reference Manual: Shepherd Services". GNU Project. Archived from the original on January 1, 2019. Retrieved November 5, 2016. 28. ^ "The GNU Shepherd Manual". GNU Project. Archived from the original on August 1, 2020. Retrieved November 5, 2016. 29. ^ "GNU Guix Reference Manual: Services". GNU Project. Archived from the original on December 25, 2018. Retrieved November 5, 2016. 30. ^ "GNU Guix Reference Manual: Service Types and Services". GNU Project. Archived from the original on January 5, 2019. Retrieved November 5, 2016. 31. ^ "GNU Guix Reference Manual: Using the Configuration System". GNU Project. Archived from the original on April 29, 2019. Retrieved November 5, 2016. 32. ^ "GNU Shepherd". GNU project. Archived from the original on February 12, 2016. Retrieved February 12, 2016. 33. ^ "Re: We need an RFC procedure" (Mailing list). Archived from the original on August 1, 2020. Retrieved April 27, 2019. 34. ^ "Channels". gnu.org. Archived from the original on May 7, 2019. Retrieved April 27, 2019. 35. ^ "Invoking guix refresh". gnu.org. Archived from the original on December 26, 2018. Retrieved May 16, 2019. 36. ^ "GNU Guix - Summary: Project Memberlist". gnu.org. Archived from the original on August 1, 2020. Retrieved April 27, 2019. 37. ^ "Invoking guix system". gnu.org. Archived from the original on May 26, 2019. Retrieved April 27, 2019. 38. ^ Smith, Jesse. "Guix System Distribution 0.15.0 and ReactOS 0.4.9". distrowatch.com (778). Archived from the original on July 30, 2019. Retrieved August 30, 2018. 39. ^ "Videos". Archived from the original on August 1, 2020. Retrieved March 3, 2020. 40. ^ "Cookbook". Archived from the original on August 1, 2020. Retrieved March 3, 2020. 41. ^ "About -- GuixSD". www.gnu.org. Archived from the original on December 27, 2015. Retrieved May 3, 2018. External links[edit] GNU Guixat Wikipedia's sister projects * #Media from Commons * #Texts from Wikisource * #Data from Wikidata * Official website * Guix System at DistroWatch * List of Guix packages * v * t * e GNU Project * GNU Manifesto * Free Software Foundation + Europe History + India + Latin America * History of free software * GNU General Public License + linking exception + font exception Licenses * GNU Lesser General Public License * GNU Affero General Public License * GNU Free Documentation License * GNU (variants) * Hurd * Linux-libre * glibc * Bash * coreutils * findutils * Build System * GCC * binutils * GDB * GRUB * GNUstep * GIMP * Jami * GNU Emacs * GNU TeXmacs Software * GNU Octave * GNU Taler * GNU R * GSL * GMP * GNU Electric * GNU Archimedes * GNUnet * GNU Privacy Guard * Gnuzilla (IceCat) * GNU Health * GNUmed * GNU LilyPond * GNU Go * GNU Chess * Gnash * Guix * more... * Alexandre Oliva * Benjamin Mako Hill * Bradley M. Kuhn * Brian Fox * Federico Heinz Contributors * Georg C. F. Greve * John Sullivan * Loic Dachary * Nagarjuna G. * Richard M. Stallman * GNU/Linux naming controversy Other topics * Revolution OS * Free Software Foundation anti-Windows campaigns * Defective by Design * v * t * e Package managers (format) Compiled * Allmyapps * Cygwin * Microsoft Store * Npackd * NSIS Windows * NuGet + Chocolatey * ProGet * Windows Package Manager * wpkg * Mac App Store macOS * pkgsrc * APT * aptitude dpkg * dselect * Ubuntu Software Center * YUM * DNF * APT-RPM RPM * up2date * urpmi * ZYpp * slapt-get * slackpkg tarball * netpkg Linux * swaret Unix-like * Nix Purely functional * Guix * AppImage * Autopackage * Flatpak * PackageKit * pacman Other * PBI * PETget * PISI * Portage * Snap * Upkg * pkgsrc * IPS Solaris * illumos * OpenCSW * pkgsrc z/OS * SMP/E * ipkg Embedded OS * opkg * Amazon Appstore * App Store * Aptoide * Cafe Bazaar * Cydia * F-Droid Mobile OS * GetJar * Google Play * Huawei AppGallery * Microsoft Store * RPM * SlideME * Windows Phone Store * DSi Shop * Nintendo eShop Gaming console * PlayStation Store * Wii Shop Channel * Xbox Games Store * OpenPKG Multi-platform * pkgsrc * Zero Install Web browsers * Chrome Web Store * Mozilla Add-ons Uncompiled * ABS * apt-build * Compile * Portage Linux * Sorcery * BitBake * Homebrew * pkgsrc * Fink * MacPorts macOS * Homebrew * pkgsrc * ports collection BSD * FreeBSD Ports * pkgsrc * Gradle C++ * vcpkg * Maven Java * Ivy * Gradle * PyPI * pip * easyinstall Python * PyPM * Anaconda * Enthought Canopy JavaScript * NPM .NET * NuGet Perl * CPAN Ruby * RubyGems PHP * PEAR * Composer * # List * # Category * # Commons * v * t * e Linux distributions * /e/ * Android-IA * Android-x86 * CalyxOS * ColorOS * EMUI * Fire OS * GrapheneOS Android * HarmonyOS * LineageOS + CyanogenMod * MIUI * One UI * Remix OS * Replicant * Resurrection Remix OS * OmniROM * ArchBang * ArchLabs * Artix * Asahi * BlackArch * EndeavourOS * Frugalware Arch * Garuda * Hyperbola GNU * LinHES * Manjaro * Parabola GNU * SteamOS * SystemRescue * Official: Kubuntu * Lubuntu * Ubuntu Budgie * Ubuntu Kylin * Ubuntu MATE * Ubuntu Studio * Xubuntu * Derivatives: Asturix * Bodhi Linux * elementary OS * Emmabuntus Ubuntu * KDE neon * Linux Lite * Linux Mint * LXLE Linux * Peppermint OS * Pinguy OS * Pop! OS * Trisquel * Ubuntu Touch * Ubuntu Unity Debian * Uruk * Zorin OS * antiX * Astra * Bharat Operating System Solutions * deepin * Devuan * Endless OS * gNewSense * HandyLinux * Kali Other * Knoppix * MX Linux * Parrot OS * PureOS * Raspberry Pi OS * Q4OS * Slax * SparkyLinux * SolydXK * Tails * UOS * AlmaLinux * BLAG Linux and GNU * CentOS Stream * ClearOS * EulerOS * Korora * Linpus Linux * MIRACLE LINUX Fedora * Oracle Linux * Qubes OS * Red Hat Enterprise Linux * Rocks Cluster Distribution * Rocky Linux * Sailfish OS * Scientific Linux * Tizen * Calculate Linux * Chromium OS Gentoo + Chrome OS * Nova OS * Austrumi Linux * DNALinux * Kongoni * NimbleX Slackware * Porteus * Salix OS * TopologiLinux * VectorLinux * Zenwalk * ALT Linux * Mageia Mandriva * OpenMandriva Lx * PCLinuxOS * ROSA Linux * 4MLinux * Alpine * CHAOS * Clear Linux OS * CRUX * Firefox OS + B2G OS + KaiOS + H5OS + My Home Screen * GoboLinux * Guix SD Other * KaOS * Kwort * Mobilinux * NixOS * openSUSE + SUSE Linux Enterprise + GeckoLinux * Puppy * Source Mage * Solus * T2 SDE * Tiny Core Linux * Void * CentOS * Chakra * Damn Small Linux Discontinued * Familiar Linux * Platypux * Sabayon Linux * # List * NewTux.svg Linux portal * # Comparison * # Category * Retrieved from "https://en.wikipedia.org/w/index.php?title= GNU_Guix_System&oldid=1090151761" Categories: * 2013 software * Free software only Linux distributions * GNU Project * Free package management systems * Free software programmed in Lisp * Functional programming * GNU Project software * Linux package management-related software * Linux distributions without systemd * Rolling Release Linux distributions * Linux distributions * Independent Linux distributions Hidden categories: * CS1 errors: generic name * CS1 maint: url-status * Articles with short description * Short description is different from Wikidata * Use mdy dates from February 2015 * Articles with a promotional tone from May 2022 * All articles with a promotional tone * Pages using Sister project links with wikidata mismatch Navigation menu Personal tools * Not logged in * Talk * Contributions * Create account * Log in Namespaces * Article * Talk [ ] English Views * Read * Edit * View history [ ] More Search [ ] [Search] [Go] Navigation * Main page * Contents * Current events * Random article * About Wikipedia * Contact us * Donate Contribute * Help * Learn to edit * Community portal * Recent changes * Upload file Tools * What links here * Related changes * Upload file * Special pages * Permanent link * Page information * Cite this page * Wikidata item Print/export * Download as PDF * Printable version In other projects * Wikimedia Commons Languages * Catala * Cestina * Deutsch * frsy * Francais * Norsk bokmal * Portugues * Russkii * Turkce Edit links * This page was last edited on 27 May 2022, at 18:58 (UTC). * Text is available under the Creative Commons Attribution-ShareAlike License 3.0 ; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia(r) is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization. * Privacy policy * About Wikipedia * Disclaimers * Contact Wikipedia * Mobile view * Developers * Statistics * Cookie statement * Wikimedia Foundation * Powered by MediaWiki