Talk
Beginner

NixOS and What it Fixed.

Approved

Most Linux distros let you install packages. NixOS lets you version control your entire system, from the bootloader to your shell aliases—declaratively and reproducibly. That's not just a feature; it's a total shift in how we think about system state.

The talk will be about how NixOS challenges the traditional model of Linux distributions and builds an ecosystem where:

  • Reproducibility is Goal.

  • Imperative state is dead. It is replaced by a purely functional deployment model. Everything is just the way you wrote it.

  • Your OS is code—not just scripts slapped onto bash like many people do with their lives.

how this works under the hood:

The Core

  • The Nix Language: A lazily evaluated, pure, functional DSL designed to describe build processes. We'll explore its purity model and how it guarantees referential transparency for packages and configurations.

  • The Nix Store: A content-addressed filesystem at /nix/store where every derivation gets a unique hash based on all inputs (dependencies, flags, source, env). This enables perfect caching, rollback, and reproducibility.

  • Derivations and Builders: How packages are built in hermetic sandboxes (with buildInputs, nativeBuildInputs, etc.) and why this avoids impurity compared to traditional package systems.

  • The Nixpkgs Repository: A monorepo with 120,000+ packages maintained by thousands of contributors.

  • Flakes: A new interface for reproducible inputs and outputs. Git-based, locked dependencies with flake.lock, and built-in support for multi-target outputs like nixosConfigurations, devShells, apps, and checks.

  • Module System: How NixOS turns system configuration into composable and customisable modules with inheritance and option merging (including the magical lib.mk* functions).

Real-World Use Cases

  • Immutable Infra: Using NixOS in CI/CD pipelines and infrastructure as code, with tools like deploy-rs, nixops, and morph. Push new environments with confidence, knowing they're byte-for-byte identical to dev.

  • Ephemeral Dev Environments: With Nix develop, you can boot up consistent dev shells with every dependency (tooling, SDKs, linters, etc.) defined once and shared by your entire team. Especially needed with Prisma ORM.

  • Cloud-native NixOS: Spinning up reproducible VMs and containers with NixOS on Hetzner, AWS, or your own infra using declarative Terraform-like syntax.

  • Dotfile Management: Using home-manager to declaratively manage your personal environment across machines, from shell configs to fonts and cron jobs.

The FOSS Angle and Tools:

What makes NixOS truly radical is it's not backed by a FAANG company or a VC-fueled SaaS—it's community-built and FOSS to the core. We'll look at:

  • Home Manager: The dotfile problem, solved with Nix-style purity

  • Disko: Declarative disk partitioning and encryption

  • NixOS anywhere: pre-configure the whole remote installation process.

And the Challenges

I will discuss its steep learning curve, weird edge cases (especially around flakes and pinning), and a very different mental model than traditional Linux. But that's precisely why it's exciting.

I'll end with a brief conclusion of everything I covered.

The community members would get to know about a whole new world of declarative Linux configuration and reproducibility.

Introducing a FOSS project or a new version of a popular project

Lakshay Choudhary
student
https://www.linkedin.com/in/unlux/
Speaker Image

100 %
Approvability
1
Approvals
0
Rejections
0
Not Sure

This looks to be a great intro to NixOS. Seems many CS students love it 😁. Not sure if the Delhi FOSS community is already familiar with NixOS. If so, maybe try focusing on more specific parts of the NixOS ecosystem

Reviewer #1
Approved