Next: File Systems, Previous: Using the Configuration System, Up: System Configuration [Contents][Index]
operating-system
ReferenceThis section summarizes all the options available in
operating-system
declarations (see Using the Configuration 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 use28.
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 <keyboard-layout>
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
<name-service-switch>
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 <privileged-program>
. 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
.
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.
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]