
NixOS là một hệ điều hành Linux độc đáo, sử dụng phương pháp khai báo (declarative) để cấu hình toàn bộ hệ thống. Thay vì cài đặt từng gói phần mềm thủ công như các bản phân phối Linux truyền thống, bạn mô tả toàn bộ trạng thái mong muốn của hệ thống trong một tệp cấu hình duy nhất. Mọi thay đổi đều có thể hoàn tác, tạo nên một môi trường phát triển cực kỳ ổn định và tái tạo.

Tại Sao Developer Cần NixOS?
Developer hiện đại đối mặt với vấn đề “works on my machine” — phần mềm chạy trên máy cá nhân nhưng thất bại ở môi trường khác. NixOS giải quyết triệt để vấn đề này bằng cách:
- Reproducibility (tái tạo): Cùng một tệp cấu hình cho ra cùng một hệ thống, từ laptop đến server. Điều này đặc biệt hữu ích khi làm việc với nhiều môi trường khác nhau trong dự án lớn. Team có thể chia sẻ file cấu hình qua Git và mọi người đều có cùng môi trường.
- Atomic upgrades: Cập nhật theo gói, không bao giờ làm hỏng hệ thống. Muốn quay lại? Chỉ cần reboot phiên bản cũ. Đây là tính năng không có trên hầu hết các distro khác. Khi update thất bại, rollback tự động trong vài giây.
- Package management vượt trội: hơn 100.000 gói phần mềm trong Nixpkgs, luôn cập nhật phiên bản mới nhất. Các phiên bản cũ vẫn tồn tại song song, không bị ghi đè. Bạn có thể chạy đồng thời nhiều phiên bản của cùng một phần mềm.
Cách Thức Hoạt Động
Hệ thống tập tin của NixOS được quản lý bởi trình quản lý gói Nix. Mỗi gói phần mềm được lưu trong thư mục /nix/store/ với hash duy nhất, đảm bảo không có xung đột phiên bản. Các gói không bao giờ bị ghi đè — nhiều phiên bản cùng tồn tại song song. Điều này cho phép bạn chạy đồng thời nhiều phiên bản của cùng một phần mềm mà không gặp lỗi xung đột thư viện.
Cấu hình hệ thống nằm trong tệp /etc/nixos/configuration.nix. Đây là một chương trình Nix thuần túy, mô tả mọi thứ từ người dùng, dịch vụ, firewall cho đến kernel. Ví dụ cụ thể, để bật SSH và cài đặt git, nodejs, python3, bạn thêm các dòng sau vào file cấu hình:
{ config, pkgs, ... }:
{
services.openssh.enable = true;
environment.systemPackages = with pkgs; [
git nodejs python3
];
networking.firewall.enable = true;
}

So Sánh NixOS Với Các Bản Phân Phối Khác
| Tính năng | NixOS | Ubuntu | Arch |
|---|---|---|---|
| Cấu hình khai báo | ✓ Có | ✗ Không | ✗ Không |
| Rollback hệ thống | ✓ Tự động | ✗ Thủ công | ✗ Không |
| Đa phiên bản gói | ✓ Không giới hạn | ✗ 1 phiên bản | ✗ 1 phiên bản |
| Độ dốc học tập | Dốc | Dễ | Trung bình |
| Reproducibility | ✓ Hoàn hảo | ⚠ Phụ thuộc | ✗ Không |
| Community hỗ trợ | ✓ Tốt | ✓ Rất tốt | ✓ Tốt |
| Package count | ✓ 100K+ | ✓ 60K+ | ✓ 80K+ |
Bắt Đầu Với NixOS
Để thử NixOS trên máy cá nhân, bạn có thể dùng image ISO chính thức. Quá trình cài đặt tương tự các distro khác — chọn USB boot, cài đặt, cấu hình. Sau khi cài đặt, chỉnh sửa /etc/nixos/configuration.nix rồi chạy sudo nixos-rebuild switch để áp dụng thay đổi. Quá trình này thường mất 2-5 phút tùy phần cứng.
Bạn cũng có thể thử NixOS Container để trải nghiệm mà không cần cài đặt toàn bộ. Docker và Podman đều có thể chạy NixOS container chỉ trong vài giây. Cách này nhanh hơn nhiều cho việc test và prototyping.
Đối với developer muốn dùng NixOS mà không thay đổi hệ điều hành, Devenv và devshell cho phép tạo môi trường phát triển khai báo ngay trên bất kỳ bản phân phối nào. Bạn có thể dùng Nix flakes để định nghĩa toàn bộ dependencies cho dự án mà không ảnh hưởng đến hệ thống chính. Đây là cách tuyệt vời để đảm bảo đồng team có cùng môi trường dev.
Việc chuyển sang NixOS đòi hỏi thời gian làm quen, đặc biệt nếu bạn quen thuộc với apt hoặc pacman. Nhưng lợi ích về độ ổn định và khả năng tái tạo hệ thống là xứng đáng. Các cộng đồng lớn như Discourse NixOS và r/NixOS sẵn sàng hỗ trợ người mới bắt đầu với tài liệu chi tiết và hướng dẫn từng bước.
