- Nix 88.8%
- Tcl 4.7%
- Python 3.3%
- Shell 1.2%
- C 1.1%
- Other 0.9%
| docs | ||
| extra | ||
| LICENSES | ||
| modules | ||
| nixpkgs | ||
| overlays | ||
| pkgs | ||
| portable | ||
| tests | ||
| utils | ||
| .gitignore | ||
| default.nix | ||
| flake.nix | ||
| lon.lock | ||
| lon.nix | ||
| README.md | ||
Service Layer Abstraction Modules
The Service Layer Abstraction Modules (SLAM) are Nix expressions for building NixOS-like operating systems. SLAM borrows code from NixOS and has some compatible options. It differs in an explicitly open design when interfacing with the system-layer, where system-layer is defined as the confluence of service-managers, messaging buses, configuration management, and monitoring.
SLAM is a derivative of finix which is upstream in regards to support for the finit supervisor.
See the Synit wiki for more information.
Portability
SLAM supports NixOS modular-services which are referred to here as "portable-services". SLAM allows a choice of primary service-manager and provides the ability to run secondary service-managers as portable-services.
| finit Host |
s6 Host |
Synit Host |
NixOS Host |
|
|---|---|---|---|---|
| Finit Guest |
unknown | unknown | unknown | unknown |
| s6 Guest |
unknown | planned | supported | supported |
| Synit Guest |
unknown | supported | supported | supported |
| NixOS Guest |
nope | nope | nope | nope |
| Abstract Services |
supported | supported | supported | supported |
Running a tertiary service-manager as a portable service in a portable service is not supported.
Installation and Booting
The modules are currently provided as-is without documented procedures for installation or managing bootloaders.
A system.topLevel attribute is provided within the option tree that roughly corresponds to NixOS
and contains a bootspec file that is compatible with NixOS tooling.
Timeline
- 2003 Nix project started by Eelco Dolstra.
- 2006-01-18 The Purely Functional Software Deployment Model published by Eelco Dolstra.
- 2006-08-24 NixOS: the Nix based operating system published by Armijn Hemel. Uses System V init.
- 2006-11-19 NixOS migrates to Upstart.
- 2012-04-18 Guix first commit from Ludovic Courtès.
- 2013-01-21 NixOS migrates to systemd.
- 2016-06-03 not-os first commit from Michael Bishop.
- 2017-11-03 vpsadminos forked from not-os by Richard Marko.
- 2018-05-13 NixWRT announced by Daniel Barlow.
- 2019-07-30 Sigil first commit.
- 2020-01-28 nix-processmgmt framework first commit from Sander van der Burg.
- 2021-03-13 NixOS Init Freedom first commit from Guido Witmond.
- 2021-03-23 NixNG first commit from Richard Brežák.
- 2021-08-18 Spectrum first commit from Alyssa Ross.
- 2022-01-17 ZilchOS first commit from Alexander Sosedkin.
- 2022-09-19 Liminix first commit from Daniel Barlow.
- 2023-10-05 Portable Service Layer RFC submitted by Sander van der Burg.
- 2023-12-24 NixBSD first commit from Audrey Dutcher.
- 2024-12-28 SixOS first demo commit from Adam Joseph.
- 2025-01-08 Modular Services PR submitted by Robert Hensing.
- 2025-03-29 Finix first commit from Aaron Andersen.
- 2025-11-11 SLAM forked from Finix.
License
Some modules are available only under the terms of the Peer Production License. Modules not explicitly licensed are under the same terms as Nixpkgs.