From 606fb91faa7ea3a7949529a63c67086a01321c4d Mon Sep 17 00:00:00 2001 From: Tyler Murphy Date: Fri, 29 Sep 2023 00:54:41 -0400 Subject: [PATCH] store and profile --- image.png | Bin 0 -> 22499 bytes presentation.md | 115 +++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 114 insertions(+), 1 deletion(-) create mode 100644 image.png diff --git a/image.png b/image.png new file mode 100644 index 0000000000000000000000000000000000000000..809fce4451f001d9d1f3d3319e668d4ef55f1c4c GIT binary patch literal 22499 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 literal 0 HcmV?d00001 diff --git a/presentation.md b/presentation.md index 2c09fcd..3341e59 100644 --- a/presentation.md +++ b/presentation.md @@ -39,6 +39,7 @@ While we will try to talk about generalities of declarative operating system par - Systems have a given configuration - Configuration can duplicate systems +- Everything is isolated --- @@ -46,4 +47,116 @@ While we will try to talk about generalities of declarative operating system par ![w:25em](diagram.png) ---- \ No newline at end of file +--- + +# Isolation + +- Packages are built in isolated packages +- No random spare files in file system +- All state is containted + - Preserves state-less root + +--- + +# Stability + +- Reproducibility and Isolation ensure the ability to rollback +- Always have some working system state + +--- + +# NixOS + +- Released Jun 2003 + - Eelco Dolstra +- Nix package manager (nix) +- Nix language +- Systemd + +![bg left 40%](nix.png) + +--- + +# Guix + +- Released 2012 + - Forked from Nix +- Guix package manager (guix) +- GNU Guile (scheme/lisp) +- GNU Shepherd + - Not GNU/Herd + +![bg left 40%](guix.png) + +--- + +# Declarative Package Management + +## `nix` and `guix` commands + +--- + +### Declarative Package Management + +- Update system repositories +- Build and/or install packages +- Manage `the store` + +--- + +### Distro Store + +- Guix `/gnu/store` +- Nix `/nix/store` +- Stores all package and system files +- Partially based off of configuration + +--- + +### Distro Profile + +- Guix `~/.guix-profile` +- Nix `~/.nix-profile` +- Symlink Read only system + - Links store to current profile + - Based off configuration + +--- + +- Store hold system and package files +- Profile links to those files + +--- + +### Multidirection + +```bash +$ which gcc +/home/tylerm/.guix-home/profile/bin/gcc # profile + +$ readlink /home/tylerm/.guix-home/profile/bin/gcc +/gnu/store/spxcaq8gnmckhzz9a1wm3qc9dmz5bvsd-gcc-toolchain-12.3.0/bin/gcc # store +``` + +--- + +## Multiple Profiles + +- System Profile (All users) + - Good to contain system needed pacakges + - Graphics drivers + - Zsh +- User Profile (Specific user) + - Good to contain all user data + - Browser + - Applications + - DE/WM + +--- + +## To Build The System + +- Package manager takes in user and system configuration +- Downloads needed data into store +- Build any needed packages +- Symlinks the user and system profiles \ No newline at end of file