{"guid":"4fe641e8-e843-5760-9815-4ee0f5ed5929","title":"Bootstrapping Nix and Linux from TinyCC","subtitle":null,"slug":"nixcon-2023-34402-bootstrapping-nix-and-linux-from-tinycc","link":"https://talks.nixcon.org/nixcon-2023/talk/DDQRWQ/","description":"Building every operating system starts from something. I'm not as hardcore as the stage0 project folks going from assembly to Guix, but a shorter path from a ~320 KB TinyCC binary to Nix to a proof-of-concept Linux distribution also proved to be a story worth telling.\n\nWe'll begin our journey by executing a -nostdlib C program with TinyCC, compile our way out towards a libc and a shell, work through older compilers to modern compilers and build Nix. Then we'll walk the same path again once over, but this time, we'll use Nix. Finally, in a different flake, we'll reimplement some of the founding nixpkgs patterns, work our way from toolchain to Linux and arrive at a bootable .iso. Corners will be cut, hacks will run amock, Nix will be both praised and complained about, reproducibility will be earned hard, and some patches will get upstreamed.\n\nLinks: https://github.com/ZilchOS/bootstrap-from-tcc, https://github.com/ZilchOS/core, http://bootstrappable.org","original_language":"eng","persons":["Alexander Sosedkin"],"tags":["nixcon2023","34402","2023","darmstadt","nixcon2023","nixos"],"view_count":497,"promoted":false,"date":"2023-09-09T15:10:00.000+02:00","release_date":"2023-09-09T00:00:00.000+02:00","updated_at":"2026-03-12T11:45:09.016+01:00","length":1490,"duration":1490,"thumb_url":"https://static.media.ccc.de/media/events/nixcon/2023/34402-4fe641e8-e843-5760-9815-4ee0f5ed5929.jpg","poster_url":"https://static.media.ccc.de/media/events/nixcon/2023/34402-4fe641e8-e843-5760-9815-4ee0f5ed5929_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/nixcon/2023/34402-4fe641e8-e843-5760-9815-4ee0f5ed5929.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/nixcon/2023/34402-4fe641e8-e843-5760-9815-4ee0f5ed5929.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/nixcon-2023-34402-bootstrapping-nix-and-linux-from-tinycc","url":"https://api.media.ccc.de/public/events/4fe641e8-e843-5760-9815-4ee0f5ed5929","conference_title":"NixCon 2023","conference_url":"https://api.media.ccc.de/public/conferences/nixcon2023","related":[],"recordings":[{"size":258,"length":1490,"mime_type":"video/webm","language":"eng","filename":"nixcon-2023-34402-eng-Bootstrapping_Nix_and_Linux_from_TinyCC_webm-hd.webm","state":"new","folder":"webm-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2023-09-09T20:57:05.579+02:00","recording_url":"https://cdn.media.ccc.de/events/nixcon/2023/webm-hd/nixcon-2023-34402-eng-Bootstrapping_Nix_and_Linux_from_TinyCC_webm-hd.webm","url":"https://api.media.ccc.de/public/recordings/70213","event_url":"https://api.media.ccc.de/public/events/4fe641e8-e843-5760-9815-4ee0f5ed5929","conference_url":"https://api.media.ccc.de/public/conferences/nixcon2023"},{"size":85,"length":1490,"mime_type":"video/webm","language":"eng","filename":"nixcon-2023-34402-eng-Bootstrapping_Nix_and_Linux_from_TinyCC_webm-sd.webm","state":"new","folder":"webm-sd","high_quality":false,"width":720,"height":576,"updated_at":"2023-09-09T19:52:54.314+02:00","recording_url":"https://cdn.media.ccc.de/events/nixcon/2023/webm-sd/nixcon-2023-34402-eng-Bootstrapping_Nix_and_Linux_from_TinyCC_webm-sd.webm","url":"https://api.media.ccc.de/public/recordings/70211","event_url":"https://api.media.ccc.de/public/events/4fe641e8-e843-5760-9815-4ee0f5ed5929","conference_url":"https://api.media.ccc.de/public/conferences/nixcon2023"},{"size":71,"length":1490,"mime_type":"video/mp4","language":"eng","filename":"nixcon-2023-34402-eng-Bootstrapping_Nix_and_Linux_from_TinyCC_sd.mp4","state":"new","folder":"h264-sd","high_quality":false,"width":720,"height":576,"updated_at":"2023-09-09T17:37:04.043+02:00","recording_url":"https://cdn.media.ccc.de/events/nixcon/2023/h264-sd/nixcon-2023-34402-eng-Bootstrapping_Nix_and_Linux_from_TinyCC_sd.mp4","url":"https://api.media.ccc.de/public/recordings/70188","event_url":"https://api.media.ccc.de/public/events/4fe641e8-e843-5760-9815-4ee0f5ed5929","conference_url":"https://api.media.ccc.de/public/conferences/nixcon2023"},{"size":60,"length":1490,"mime_type":"video/mp4","language":"eng","filename":"nixcon-2023-34402-eng-Bootstrapping_Nix_and_Linux_from_TinyCC_hd-slides.mp4","state":"new","folder":"slides-h264-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2023-09-09T17:33:03.208+02:00","recording_url":"https://cdn.media.ccc.de/events/nixcon/2023/slides-h264-hd/nixcon-2023-34402-eng-Bootstrapping_Nix_and_Linux_from_TinyCC_hd-slides.mp4","url":"https://api.media.ccc.de/public/recordings/70185","event_url":"https://api.media.ccc.de/public/events/4fe641e8-e843-5760-9815-4ee0f5ed5929","conference_url":"https://api.media.ccc.de/public/conferences/nixcon2023"},{"size":233,"length":1490,"mime_type":"video/mp4","language":"eng","filename":"nixcon-2023-34402-eng-Bootstrapping_Nix_and_Linux_from_TinyCC_hd.mp4","state":"new","folder":"h264-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2023-09-09T16:36:57.391+02:00","recording_url":"https://cdn.media.ccc.de/events/nixcon/2023/h264-hd/nixcon-2023-34402-eng-Bootstrapping_Nix_and_Linux_from_TinyCC_hd.mp4","url":"https://api.media.ccc.de/public/recordings/70183","event_url":"https://api.media.ccc.de/public/events/4fe641e8-e843-5760-9815-4ee0f5ed5929","conference_url":"https://api.media.ccc.de/public/conferences/nixcon2023"}]}