LX-branded zones (Linux on illumos)
illumos zones come in brands — a brand decides which userland and system-call environment a zone presents. The most interesting brand for a mixed shop is the LX brand: an LX-branded zone presents the Linux system- call interface, so unmodified Linux binaries run directly on the illumos kernel — no virtual machine, no emulation of a whole CPU, no second kernel.
On illumos generally LX zones are a real, shipping feature — SmartOS runs Linux workloads this way in production. On solnix LX support is a roadmap item, not yet built (see the solnix plan below). This page describes the feature and the plan honestly; nothing here is a shipped solnix capability.
What an LX-branded zone is
A native zone runs illumos userland on the illumos kernel. An LX zone runs a
Linux userland (a Linux distribution’s files — Debian, Alpine, etc.) on the
same illumos kernel. The trick is a brand: a thin translation layer that
implements the Linux system-call ABI in terms of illumos kernel facilities. When
a Linux binary in the zone calls, say, epoll_create or clone, the LX brand
maps it to the illumos equivalent.
The result:
- Linux ELF binaries run as-is — no recompilation, no
patchelf, no VM. - Only one kernel runs (the illumos kernel), so there is no hypervisor overhead and no second OS to manage. It is a zone, with a zone’s near-native performance.
- The zone still gets full illumos integration underneath — a ZFS dataset, a Crossbow VNIC, resource controls, and observability from the global zone with DTrace.
Compare the alternatives: a Linux VM (bhyve/KVM) runs a whole second kernel and pays for it; QEMU user-mode emulation is slow. The LX brand is neither — it is a syscall-translation shim, so Linux processes are just illumos processes wearing a Linux ABI.
How SmartOS pioneered the modern LX brand
An early lx brand existed in OpenSolaris but bit-rotted. The modern LX
brand — the one that runs contemporary 64-bit Linux distributions — was built
and is maintained by the SmartOS community (Joyent, now MNX). SmartOS’s
whole model is “everything in a zone,” and LX zones let it run the vast catalog
of Linux software (and Linux Docker images, via its Docker-to-zone layer)
alongside native illumos zones on one kernel. That work lives in illumos-gate
and the SmartOS platform, and is the reference implementation of LX today.
The solnix plan (roadmap)
solnix intends to pull LX-zone support in from SmartOS so that a solnix machine can run Linux workloads alongside native illumos ones — without a VM. The intent, stated plainly:
- Bring the SmartOS LX brand into solnix so Linux binaries run in an LX zone on a solnix host.
- Let users run Linux Docker-style workloads / Linux-only binaries that have no illumos build, next to native solnix (illumos + Nix) zones, on the same kernel.
- Eventually wire this into solnix’s declarative model — a Nix-described LX zone,
the same way native zones are a natural target for a
solnix.zones.*module (see Zones).
Why it matters
Not everything has an illumos build. An LX zone means you do not have to choose between “illumos-native” and “the Linux software I need” — you run the Linux thing in an LX zone and the illumos-native things in native zones, one kernel, one machine, full observability across all of it. For a solnix user that is the difference between “illumos for the workloads that have illumos builds only” and “illumos as a general-purpose host that also runs your Linux workloads.”
Honest status
This is not in solnix today. The prerequisites come first: a bootable native solnix system (the bootstrap — see How solnix is built) and the zone tooling generally (Zones is early). Pulling in the SmartOS LX brand is a stated direction, not a shipped feature. Treat LX-on-solnix as “planned, and here is why we plan it,” not “available now.”
Further reading
- Zones — native zones and brands in general; the foundation LX builds on.
- Networking (Crossbow) — the per-zone VNICs an LX zone gets.
- illumos features — zones and the rest of the platform in context.
- SmartOS documentation — the reference LX-brand implementation and Linux-workload guides.