Next: , Previous: , Up: System Configuration   [Contents][Index]

6.2.2 operating-system Reference

This section summarizes all the options available in operating-system declarations (see Using the Configuration System).

Data Type: operating-system

This is the data type representing an operating system configuration. By that, we mean all the global system configuration, not per-user configuration (see Using the Configuration System).

kernel (default: linux-libre)

The package object of the operating system kernel to use21.

kernel-arguments (default: '())

List of strings or gexps representing additional arguments to pass on the command-line of the kernel—e.g., ("console=ttyS0").


The system bootloader configuration object. See Bootloader Configuration.

initrd-modules (default: %base-initrd-modules)

The list of Linux kernel modules that need to be available in the initial RAM disk. See Initial RAM Disk.

initrd (default: base-initrd)

A monadic procedure that returns an initial RAM disk for the Linux kernel. This field is provided to support low-level customization and should rarely be needed for casual use. See Initial RAM Disk.

firmware (default: %base-firmware)

List of firmware packages loadable by the operating system kernel.

The default includes firmware needed for Atheros- and Broadcom-based WiFi devices (Linux-libre modules ath9k and b43-open, respectively). See Hardware Considerations, for more info on supported hardware.


The host name.


A file-like object (see file-like objects) for use as /etc/hosts (see Host Names in The GNU C Library Reference Manual). The default is a file with entries for localhost and host-name.

mapped-devices (default: '())

A list of mapped devices. See Mapped Devices.


A list of file systems. See File Systems.

swap-devices (default: '())

A list of strings identifying devices or files to be used for “swap space” (see Memory Concepts in The GNU C Library Reference Manual). For example, '("/dev/sda3") or '("/swapfile"). It is possible to specify a swap file in a file system on a mapped device, provided that the necessary device mapping and file system are also specified. See Mapped Devices and File Systems.

users (default: %base-user-accounts)
groups (default: %base-groups)

List of user accounts and groups. See User Accounts.

If the users list lacks a user account with UID 0, a “root” account with UID 0 is automatically added.

skeletons (default: (default-skeletons))

A list target file name/file-like object tuples (see file-like objects). These are the skeleton files that will be added to the home directory of newly-created user accounts.

For instance, a valid value may look like this:

`((".bashrc" ,(plain-file "bashrc" "echo Hello\n"))
  (".guile" ,(plain-file "guile"
                         "(use-modules (ice-9 readline))
issue (default: %default-issue)

A string denoting the contents of the /etc/issue file, which is displayed when users log in on a text console.

packages (default: %base-packages)

The set of packages installed in the global profile, which is accessible at /run/current-system/profile.

The default set includes core utilities and it is good practice to install non-core utilities in user profiles (see Invoking guix package).


A timezone identifying string—e.g., "Europe/Paris".

You can run the tzselect command to find out which timezone string corresponds to your region. Choosing an invalid timezone name causes guix system to fail.

locale (default: "en_US.utf8")

The name of the default locale (see Locale Names in The GNU C Library Reference Manual). See Locales, for more information.

locale-definitions (default: %default-locale-definitions)

The list of locale definitions to be compiled and that may be used at run time. See Locales.

locale-libcs (default: (list glibc))

The list of GNU libc packages whose locale data and tools are used to build the locale definitions. See Locales, for compatibility considerations that justify this option.

name-service-switch (default: %default-nss)

Configuration of the libc name service switch (NSS)—a <name-service-switch> object. See Name Service Switch, for details.

services (default: %base-services)

A list of service objects denoting system services. See Services.

pam-services (default: (base-pam-services))

Linux pluggable authentication module (PAM) services.

setuid-programs (default: %setuid-programs)

List of string-valued G-expressions denoting setuid programs. See Setuid Programs.

sudoers-file (default: %sudoers-specification)

The contents of the /etc/sudoers file as a file-like object (see local-file and plain-file).

This file specifies which users can use the sudo command, what they are allowed to do, and what privileges they may gain. The default is that only root and members of the wheel group may use sudo.



Currently only the Linux-libre kernel is supported. In the future, it will be possible to use the GNU Hurd.

Next: , Previous: , Up: System Configuration   [Contents][Index]