operating-system Reference (GNU Guix Reference Manual)
Next:
File Systems
, Previous:
Using the Configuration System
, Up:
System Configuration
Contents
][
Index
11.3
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
use
27
hurd
(default:
#f
The package object of the Hurd to be started by the kernel. When this
field is set, produce a GNU/Hurd operating system. In that case,
kernel
must also be set to the
gnumach
package—the
microkernel the Hurd runs on.
Warning:
This feature is experimental and only supported for disk images.
kernel-loadable-modules
(default: ’())
A list of objects (usually packages) to collect loadable kernel modules
from–e.g.
(list ddcci-driver-linux)
kernel-arguments
(default:
%default-kernel-arguments
List of strings or gexps representing additional arguments to pass on
the command-line of the kernel—e.g.,
("console=ttyS0")
bootloader
The system bootloader configuration object. See
Bootloader Configuration
label
This is the label (a string) as it appears in the bootloader’s menu entry.
The default label includes the kernel name and version.
keyboard-layout
(default:
#f
This field specifies the keyboard layout to use in the console. It can be
either
#f
, in which case the default keyboard layout is used (usually
US English), or a

record. See
Keyboard Layout
for more information.
This keyboard layout is in effect as soon as the kernel has booted. For
instance, it is the keyboard layout in effect when you type a passphrase if
your root file system is on a
luks-device-mapping
mapped device
(see
Mapped Devices
).
Note:
This does
not
specify the keyboard layout used by the bootloader, nor
that used by the graphical display server. See
Bootloader Configuration
for information on how to specify the bootloader’s keyboard layout. See
X Window
, for information on how to specify the keyboard layout used by the X
Window System.
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 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.
host-name
The host name.
mapped-devices
(default:
'()
A list of mapped devices. See
Mapped Devices
file-systems
A list of file systems. See
File Systems
swap-devices
(default:
'()
A list of swap spaces. See
Swap Space
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 of 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))
(activate-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
A list of packages to be installed in the global profile, which is accessible
at
/run/current-system/profile
. Each element is either a package
variable or a package/output tuple. Here’s a simple example of both:
cons*
git
; the default "out" output
list
git
"send-email"
; another output of git
%base-packages
; the default set
The default set includes core utilities and it is good practice to
install non-core utilities in user profiles (see
Invoking
guix package
).
timezone
(default:
"Etc/UTC"
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

object. See
Name Service Switch
, for
details.
services
(default:
%base-services
A list of service objects denoting system services. See
Services
essential-services
(default: ...)
The list of “essential services”—i.e., things like instances of
system-service-type
(see
Service Reference
) and
host-name-service-type
, which are derived from the operating
system definition itself. As a user you should
never
need to
touch this field.
pam-services
(default:
(base-pam-services)
Linux
pluggable authentication module
(PAM) services.
privileged-programs
(default:
%default-privileged-programs
List of

. See
Privileged Programs
, for
more information.
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
Macro:
this-operating-system
When used in the
lexical scope
of an operating system field definition,
this identifier resolves to the operating system being defined.
The example below shows how to refer to the operating system being defined in
the definition of the
label
field:
use-modules
gnu
guix
operating-system
;; ...
label
package-full-name
operating-system-kernel
this-operating-system
It is an error to refer to
this-operating-system
outside an operating
system definition.
Footnotes
(27)
Currently only the Linux-libre kernel is fully supported.
Using GNU mach with the GNU Hurd is experimental and only
available when building a virtual machine disk image.
Next:
File Systems
, Previous:
Using the Configuration System
, Up:
System Configuration
Contents
][
Index