aboutsummaryrefslogtreecommitdiff
path: root/blog
diff options
context:
space:
mode:
authorPreston Pan <preston@nullring.xyz>2024-03-14 12:00:32 -0700
committerPreston Pan <preston@nullring.xyz>2024-03-14 12:00:32 -0700
commit7197cd031e6fe12a3efcc98a1ec0c3eb9c986e89 (patch)
treece5171b05557c462dfaf4a5e30f71c053b711f49 /blog
parent6131810bb69bcb7b221cb332391cd3482920b22b (diff)
add stuff
Diffstat (limited to 'blog')
-rw-r--r--blog/nixos.org33
1 files changed, 33 insertions, 0 deletions
diff --git a/blog/nixos.org b/blog/nixos.org
new file mode 100644
index 0000000..ca26fcd
--- /dev/null
+++ b/blog/nixos.org
@@ -0,0 +1,33 @@
+* Introduction
+NixOS is a reproducible, scalable operating system that is used in server
+infrastructure. This month, I decided to torture myself and run it on a
+personal computing machine.
+
+Just kidding, it's really good, and currently the only operating system
+that can do what NixOS does is GNU Guix. What's particularly interesting
+is that when GNU and Linux people say, "Look! Finally something that only Linux
+can do well!", there's usually some tool out there that can get most of the
+behavior out of MacOS and Windows, or maybe there's even a "better" version
+of it on those two operating systems. However, NixOS and Guix are truly
+unique and their usage truly cannot be replicated on either of the two systems.
+I will talk about NixOS in particular because that is the operating system I
+currently use.
+
+** So What's the Pitch?
+When you write a configuration for NixOS, it works forever until the packages
+stop being hosted, meaning as long as the NixOS team exists, your particular
+version of NixOS, running your particular configuration, will /always/ work
+in the same way. It will even work the same way across multiple computers, given
+you don't put in too much hardware-specific configuration into your /configuration.nix/
+file. Interestingly enough, it is possible to /make sure/ that network copying
+errors don't happen, and make the system almost completely deterministic. Essentially,
+you can /define your operating system as a function that takes in inputs and outputs/,
+and then /specify those inputs in a specific way/, which then allows you to
+/ensure the reproducibility of your environment/.
+
+On top of that, it is possible to /roll back/ your configuration. That is,
+
+You can see why this might be used in industry for mass deploying servers, and you might
+even understand why one might use this type of system for docker containers, but /why on earth/
+would someone run it as a personal machine? Well, there are a couple of good reasons to do so:
+1. You like how your computer operates.