3 ms·
The upcoming GNU Guix is a shaping up to be an interesting alternative to more normal Linux distributions. It uses dmd [1], an init system written and scripted
by networked 12y ago
The upcoming GNU Guix is a shaping up to be an interesting alternative to more normal Linux distributions. It uses dmd [1], an init system written and scripted in Scheme (GNU Guile), and Scheme for system configuration in general. It is a fork of NixOS [2], which uses systemd. What's interesting about NixOS and GNU Guix is that they implement declarative configuration management and a purely functional package manager, meaning that you should be able to reproduce your system configuration from a single configuration file like the following:
;; This is an operating system configuration template.
(use-modules (gnu))
(operating-system
(host-name "antelope")
(timezone "Europe/Paris")
(locale "en_US.UTF-8")
;; Assuming /dev/sdX is the target hard disk, and "root" is
;; the label of the target root file system.
(bootloader (grub-configuration (device "/dev/sdX")))
(file-systems (cons (file-system
(device "root")
(title 'label)
(mount-point "/")
(type "ext4"))
%base-file-systems))
;; This is where user accounts are specified. The "root"
;; account is implicit, and is initially created with the
;; empty password.
(users (list (user-account
(name "alice")
(comment "Bob's sister")
(group "users")
;; Adding the account to the "wheel" group
;; makes it a sudoer. Adding it to "audio"
;; and "video" allows the user to play sound
;; and access the webcam.
(supplementary-groups '("wheel"
"audio" "video"))
(home-directory "/home/alice")))))
This approach pretty much removes the need for external configuration management tools like CFEngine, Puppet or Ansible.
I don't really mind systemd myself but I am looking forward to Guix as a more Lisp-flavored Unix. Should it succeed perhaps it could eventually become a kind of a Lisp Machine-light if enough of its userland got rewritten in Scheme.
Guix does not meet your requirement of being mature and reliable yet but you may want to keep an eye out for its stable release.
[1] https://www.gnu.org/software/dmd/ https://www.gnu.org/software/dmd/
[2] http://nixos.org/ http://nixos.org/