finix- a daily-drivable experimental os, featuring finit as pid 1, to explore the NixOS design space
While exploring the NixOS design space I had several topics in mind:
- NixOS evaluation speed regression
- NixOS always imports all modules
- modular services
- decoupling services
- NixNG
- sixos
- nixbsd
Now that finix is running on my laptop I have a working base for experimentation. More to come.
An example of defining a finit service in nix:
{ config, pkgs, lib, ... }:
{
finit.services.network-manager = {
description = "network manager service";
runlevels = "2345";
conditions = "service/syslogd/ready";
command = "${pkgs.networkmanager}/bin/NetworkManager -n";
};
}
finix is currently running on my spare primary laptop:
- with
finitinstead ofsystemdas the init system - with
seatdinstead ofelogindas the seat manager - with
mdevdinstead ofeudevas the device manager - using niri as my
waylandcompositor
finix initially ran:
- in an
incuscontainer - in a
nspawncontainer - on
virtualbox - with
x11
None of the above methods have been attempted in some time.
finix does not yet have a disk image available to download - installation will need to take place from a standard NixOS image, which can be downloaded here. You may download and burn either the minimal image or the graphical image and the steps will remain the same.
For an installation guide, please see one of the following repositories on Codeberg. Credits to @xZecora for writing these.