Skip to content

Commit 8f8622b

Browse files
committed
New post, from LinkedIn
Signed-off-by: Joachim Wiberg <[email protected]>
1 parent d76d69f commit 8f8622b

File tree

1 file changed

+108
-0
lines changed

1 file changed

+108
-0
lines changed
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
---
2+
title: Immutable by Design
3+
author: troglobit
4+
date: 2025-11-06 09:00:00 +0100
5+
categories: [architecture]
6+
tags: [immutable, embedded, linux, security, buildroot, containers]
7+
---
8+
9+
We've talked before about how Infix OS focuses on being friendly, secure,
10+
and immutable. But what does immutability actually mean to us?
11+
12+
It's not about locking things down for the sake of it. It's about
13+
**predictability**. Every Infix release is a fully rebuilt, self-contained
14+
OS image — not a patchwork of upgrades. We don't `apt upgrade` one package;
15+
we rebuild everything from source with [Buildroot][1]. The result is a root
16+
filesystem that's read-only, shipped as a squashfs.
17+
18+
Your configuration lives separately in `/cfg/startup-config.cfg`, and
19+
anything you add — like Docker containers — goes into `/var`, which stays
20+
writable. To us, immutability means you always know exactly what's running
21+
— no drift, no surprises.
22+
23+
### What This Means in Practice
24+
25+
When you deploy an Infix device, you get:
26+
27+
**Consistent behavior across devices**: Every device running Infix v25.10
28+
is running the exact same bits. No variations from incremental updates or
29+
package conflicts.
30+
31+
**Atomic updates**: System upgrades replace the entire OS image. Either
32+
the update succeeds completely, or it doesn't happen at all. No half-broken
33+
systems from interrupted package installations.
34+
35+
**Easy rollback**: Because each release is a complete image, rolling back
36+
to a previous version is straightforward. Your data and configuration in
37+
`/var` and `/cfg` persist across updates.
38+
39+
**Reduced attack surface**: A read-only root filesystem means attackers
40+
can't modify system binaries or inject persistent malware into core system
41+
files.
42+
43+
### The Separation of Concerns
44+
45+
Infix maintains a clear separation between three types of data:
46+
47+
```
48+
/ Read-only root filesystem (squashfs)
49+
/cfg Configuration data
50+
/var Variable data (logs, containers, etc.)
51+
```
52+
53+
This separation ensures that:
54+
55+
- System binaries and libraries are protected from tampering
56+
- Your network configuration persists across OS updates
57+
- User data and containers remain independent of the OS version
58+
59+
### Building from Source
60+
61+
Every Infix release starts from a clean slate. [Buildroot][1] downloads,
62+
compiles, and assembles every component — from the kernel to userspace
63+
utilities. This approach has several advantages:
64+
65+
- Full control over what goes into the image
66+
- Reproducible builds with known component versions
67+
- Optimized for embedded targets
68+
- No hidden dependencies or unexpected packages
69+
70+
### Updates Without Surprises
71+
72+
Traditional Linux systems often accumulate state over time. Package updates
73+
can leave behind old configuration files, orphaned dependencies, and
74+
conflicting libraries. Over months or years, systems drift from their
75+
initial state.
76+
77+
With Infix, each update is a fresh start. The OS image is replaced entirely,
78+
while your configuration and data remain untouched in their dedicated
79+
partitions. What you test in development is what runs in production — no
80+
hidden variables.
81+
82+
### Writable Where You Need It
83+
84+
Immutability doesn't mean inflexibility. The `/var` directory provides
85+
persistent storage for:
86+
87+
- Container images and volumes
88+
- Log files
89+
- Dynamic application data
90+
- Package caches
91+
92+
For containers, Infix uses standard OCI-compatible container runtimes. Pull
93+
your images, run your services, and manage your applications as you would
94+
on any container platform — all while the underlying OS remains protected.
95+
96+
### Conclusion
97+
98+
Immutability in Infix isn't a constraint; it's a foundation for reliability.
99+
By separating the OS from configuration and data, and by rebuilding from
100+
source for every release, we ensure that your network infrastructure behaves
101+
predictably — today, tomorrow, and after the next update.
102+
103+
For more details about the Infix architecture, visit the [Infix documentation][2]
104+
or explore the [source code on GitHub][3].
105+
106+
[1]: https://buildroot.org/
107+
[2]: https://kernelkit.org/infix/
108+
[3]: https://github.com/kernelkit/infix/

0 commit comments

Comments
 (0)