{"guid":"6df243b9-ad58-5d92-9104-54ff6076608d","title":"sixos: a nix os without systemd","subtitle":null,"slug":"38c3-sixos-a-nix-os-without-systemd","link":"https://events.ccc.de/congress/2024/hub/event/sixos-a-nix-os-without-systemd/","description":"This talk announces the first public release of sixos, a two year project to create a nixpkgs-based operating system using skarnet's s6 supervisor instead of systemd.\n\nThe monolithic design of `systemd` is inconsistent with the UNIX userspace philosophy.  Its our-way-or-fork-off policy attracts influence-seekers, and thereby encourages *platform decay* within the free software ecosystem.  Systemd's failure to provide Linux-grade ABI stability („we don't break userspace“) creates a large and tempting attack surface for *enshittification*.\n\nThis talk announces the first public release of [sixos](https://codeberg.org/amjoseph/sixos), a two year project to create a nixpkgs-based operating system using [skarnet](https://skarnet.org/software/)'s [`s6`](https://skarnet.org/software/s6/) instead of `systemd`.\n\nSixos replaces NixOS modules with the simpler [`infuse`](https://codeberg.org/amjoseph/infuse.nix) combinator.  This allows sixos to treat services the same way nixpkgs handles packages:\n- A service (`svcs/by-name/.../service.nix`) in sixos is a Nix expression, just like an uninstantiated package (`pkgs/by-name/.../package.nix`) in nixpkgs.\n- A sixos target is a derivation, just like an instantiated package in nixpkgs.\n- The sixos target set (`targets`) is a scoped fixpoint, just like the nixpkgs instantiated-package set (`pkgs`).\n- The `override`, `callPackage`, and `overrideAttrs` tools work on targets and services, just like they do on instantiated and   uninstantiated packages.\n\nWhenever possible, sixos retains good ideas pioneered by NixOS, like atomically-activated immutable configurations and the layout of `/run`.\n\nSixos is not a fork of NixOS.  It shares no code with `nixpkgs/nixos`, nor is any part of it derived from NixOS.  Sixos and NixOS both depend on `nixpkgs/pkgs`.\n\nOn [ownerboot](https://codeberg.org/amjoseph/ownerboot) hardware all [mutable firmware](https://codeberg.org/amjoseph/ownerboot/src/branch/master/doc/owner-controlled.md#clarifications) -- all the way back to the reset vector -- is versioned, managed, and built as part of the sixos configuration.  This *eliminates the artificial distinction between firmware software and non-firmware software*.  On NixOS, either the initrd „secrets“ or the software that decrypts them ([ESP](https://en.wikipedia.org/wiki/EFI_system_partition), [initrd ssh keys](https://github.com/NixOS/nixpkgs/blob/6b88838224de5b86f449e9d01755eae4efe4a1e4/nixos/modules/system/boot/initrd-ssh.nix#L73-L76)) is stored unencrypted on writable media.  Ownerbooted sixos closes this loophole without any „trusted computing“ voodoo, eliminating all unencrypted storage except for an eeprom whose hardware write-protect pin is connected to ground.\n\nThe speaker runs ownerbooted sixos on his workstations, servers, twelve routers, stockpile of disposable laptops, and on his company's 24-server/768-core buildfarm.  So far all of his attempts to run sixos on his snowboard have failed.\n\nLicensed to the public under http://creativecommons.org/licenses/by/4.0","original_language":"eng","persons":["Adam Joseph"],"tags":["38c3","690","2024","Stage HUFF"],"view_count":12647,"promoted":false,"date":"2024-12-27T12:15:00.000+01:00","release_date":"2024-12-30T00:00:00.000+01:00","updated_at":"2026-03-13T21:45:09.472+01:00","length":3365,"duration":3365,"thumb_url":"https://static.media.ccc.de/media/congress/2024/690-6df243b9-ad58-5d92-9104-54ff6076608d.jpg","poster_url":"https://static.media.ccc.de/media/congress/2024/690-6df243b9-ad58-5d92-9104-54ff6076608d_preview.jpg","timeline_url":"https://static.media.ccc.de/media/congress/2024/690-6df243b9-ad58-5d92-9104-54ff6076608d.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/congress/2024/690-6df243b9-ad58-5d92-9104-54ff6076608d.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/38c3-sixos-a-nix-os-without-systemd","url":"https://api.media.ccc.de/public/events/6df243b9-ad58-5d92-9104-54ff6076608d","conference_title":"38C3: Illegal Instructions","conference_url":"https://api.media.ccc.de/public/conferences/38c3","related":[],"recordings":[{"size":663,"length":3365,"mime_type":"video/webm","language":"eng-deu","filename":"38c3-690-eng-deu-sixos_a_nix_os_without_systemd_webm-hd.webm","state":"new","folder":"webm-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2025-01-28T01:23:27.567+01:00","recording_url":"https://cdn.media.ccc.de/congress/2024/webm-hd/38c3-690-eng-deu-sixos_a_nix_os_without_systemd_webm-hd.webm","url":"https://api.media.ccc.de/public/recordings/84200","event_url":"https://api.media.ccc.de/public/events/6df243b9-ad58-5d92-9104-54ff6076608d","conference_url":"https://api.media.ccc.de/public/conferences/38c3"},{"size":178,"length":3365,"mime_type":"video/webm","language":"eng-deu","filename":"38c3-690-eng-deu-sixos_a_nix_os_without_systemd_webm-sd.webm","state":"new","folder":"webm-sd","high_quality":false,"width":720,"height":576,"updated_at":"2025-01-28T00:43:05.990+01:00","recording_url":"https://cdn.media.ccc.de/congress/2024/webm-sd/38c3-690-eng-deu-sixos_a_nix_os_without_systemd_webm-sd.webm","url":"https://api.media.ccc.de/public/recordings/83791","event_url":"https://api.media.ccc.de/public/events/6df243b9-ad58-5d92-9104-54ff6076608d","conference_url":"https://api.media.ccc.de/public/conferences/38c3"},{"size":51,"length":3365,"mime_type":"audio/mpeg","language":"deu","filename":"38c3-690-deu-sixos_a_nix_os_without_systemd_mp3-2.mp3","state":"new","folder":"mp3-translated","high_quality":false,"width":0,"height":0,"updated_at":"2024-12-30T22:57:58.819+01:00","recording_url":"https://cdn.media.ccc.de/congress/2024/mp3-translated/38c3-690-deu-sixos_a_nix_os_without_systemd_mp3-2.mp3","url":"https://api.media.ccc.de/public/recordings/83692","event_url":"https://api.media.ccc.de/public/events/6df243b9-ad58-5d92-9104-54ff6076608d","conference_url":"https://api.media.ccc.de/public/conferences/38c3"},{"size":51,"length":3365,"mime_type":"audio/mpeg","language":"eng","filename":"38c3-690-eng-sixos_a_nix_os_without_systemd_mp3.mp3","state":"new","folder":"mp3","high_quality":false,"width":0,"height":0,"updated_at":"2025-01-27T23:47:04.281+01:00","recording_url":"https://cdn.media.ccc.de/congress/2024/mp3/38c3-690-eng-sixos_a_nix_os_without_systemd_mp3.mp3","url":"https://api.media.ccc.de/public/recordings/83690","event_url":"https://api.media.ccc.de/public/events/6df243b9-ad58-5d92-9104-54ff6076608d","conference_url":"https://api.media.ccc.de/public/conferences/38c3"},{"size":32,"length":3365,"mime_type":"audio/opus","language":"deu","filename":"38c3-690-deu-sixos_a_nix_os_without_systemd_opus-2.opus","state":"new","folder":"opus-translation","high_quality":false,"width":0,"height":0,"updated_at":"2025-01-27T23:47:08.260+01:00","recording_url":"https://cdn.media.ccc.de/congress/2024/opus-translation/38c3-690-deu-sixos_a_nix_os_without_systemd_opus-2.opus","url":"https://api.media.ccc.de/public/recordings/83689","event_url":"https://api.media.ccc.de/public/events/6df243b9-ad58-5d92-9104-54ff6076608d","conference_url":"https://api.media.ccc.de/public/conferences/38c3"},{"size":34,"length":3365,"mime_type":"audio/opus","language":"eng","filename":"38c3-690-eng-sixos_a_nix_os_without_systemd_opus.opus","state":"new","folder":"opus","high_quality":false,"width":0,"height":0,"updated_at":"2025-01-27T23:41:35.584+01:00","recording_url":"https://cdn.media.ccc.de/congress/2024/opus/38c3-690-eng-sixos_a_nix_os_without_systemd_opus.opus","url":"https://api.media.ccc.de/public/recordings/83688","event_url":"https://api.media.ccc.de/public/events/6df243b9-ad58-5d92-9104-54ff6076608d","conference_url":"https://api.media.ccc.de/public/conferences/38c3"},{"size":331,"length":3365,"mime_type":"video/mp4","language":"eng-deu","filename":"38c3-690-eng-deu-sixos_a_nix_os_without_systemd_sd.mp4","state":"new","folder":"h264-sd","high_quality":false,"width":720,"height":576,"updated_at":"2025-01-28T00:02:45.648+01:00","recording_url":"https://cdn.media.ccc.de/congress/2024/h264-sd/38c3-690-eng-deu-sixos_a_nix_os_without_systemd_sd.mp4","url":"https://api.media.ccc.de/public/recordings/83687","event_url":"https://api.media.ccc.de/public/events/6df243b9-ad58-5d92-9104-54ff6076608d","conference_url":"https://api.media.ccc.de/public/conferences/38c3"},{"size":2091,"length":3365,"mime_type":"video/mp4","language":"eng-deu","filename":"38c3-690-eng-deu-sixos_a_nix_os_without_systemd_hd.mp4","state":"new","folder":"h264-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2025-01-27T23:37:36.936+01:00","recording_url":"https://cdn.media.ccc.de/congress/2024/h264-hd/38c3-690-eng-deu-sixos_a_nix_os_without_systemd_hd.mp4","url":"https://api.media.ccc.de/public/recordings/83360","event_url":"https://api.media.ccc.de/public/events/6df243b9-ad58-5d92-9104-54ff6076608d","conference_url":"https://api.media.ccc.de/public/conferences/38c3"},{"size":754,"length":3365,"mime_type":"video/mp4","language":"deu","filename":"38c3-690-deu-sixos_a_nix_os_without_systemd.mp4","state":"new","folder":"h264-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2024-12-30T11:38:50.503+01:00","recording_url":"https://cdn.media.ccc.de/congress/2024/h264-hd/38c3-690-deu-sixos_a_nix_os_without_systemd.mp4","url":"https://api.media.ccc.de/public/recordings/83359","event_url":"https://api.media.ccc.de/public/events/6df243b9-ad58-5d92-9104-54ff6076608d","conference_url":"https://api.media.ccc.de/public/conferences/38c3"},{"size":755,"length":3365,"mime_type":"video/mp4","language":"eng","filename":"38c3-690-eng-sixos_a_nix_os_without_systemd.mp4","state":"new","folder":"h264-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2025-01-27T23:36:30.390+01:00","recording_url":"https://cdn.media.ccc.de/congress/2024/h264-hd/38c3-690-eng-sixos_a_nix_os_without_systemd.mp4","url":"https://api.media.ccc.de/public/recordings/83358","event_url":"https://api.media.ccc.de/public/events/6df243b9-ad58-5d92-9104-54ff6076608d","conference_url":"https://api.media.ccc.de/public/conferences/38c3"}]}