← Blog
0.6.0 · REMOTE DESKTOP

SRDX: The Capability-Secured Remote Desktop Native to sigilOS — Parity-or-Better Versus RDP and VNC

June 22, 2026 · sigil-os · Sigil-Docs
srdx remote-desktop security networking 0.6.0

sigilOS ships two remote desktop layers. SRDX (sigilOS Remote Desktop eXchange) is the primary protocol — kernel-native, capability-secured, pixel-perfect, low-latency, mesh-capable (2 to 16 nodes), and also the transport for RetroPie game streaming. RDP and VNC are the interop fallback layer, allowing a sigilOS host to serve any Windows/Mac/Linux client that doesn't speak SRDX. Auto-negotiate: SRDX is offered first; non-sigilOS peers fall back to RDP or VNC automatically. A sigilOS-to-sigilOS session always speaks SRDX. This document positions SRDX's capabilities, compares it to the industry alternatives, and explains why the "fallback" framing matters: sigilOS achieves RDP/VNC parity by supporting them directly — and then beats them on every dimension that matters. (sigil-os, syscalls 109–112 wired; SRDX RFC in sigil-os#21)

SRDX remote desktop session on Pi 3b
SRDX remote desktop session: sigilOS → Pi 3b QEMU target, Lumen desktop streaming over SRDX

What SRDX Is

SRDX is a kernel-native remote desktop protocol implemented directly as four syscalls. There is no application-layer broker, no userspace daemon managing connections, and no separate codec process. The kernel handles framing, compression, and capability enforcement from start to finish.

The syscall surface (109–112)

srdx_connect (109)
Initiates an SRDX session to a remote peer. Requires HP_NET_TOKEN (host-proxy network capability). Returns a session handle. An EL0 process without HP_NET_TOKEN cannot call this — the kernel rejects at cap-check.
srdx_send (110)
Transmits a ZSTD-compressed framebuffer delta to the remote peer. Requires the session's display capability. The kernel takes the encoded buffer directly from the caller's address space — no intermediate copy.
srdx_listen (111)
Opens an SRDX listen socket on the local node. Used by the server side of a session. Requires HP_NET_TOKEN. Blocks until a peer connects, returning a session handle for the accepted connection.
srdx_recv (112)
Receives a framebuffer delta from the remote peer into a caller-supplied buffer. Requires the session's display capability. The caller then ZSTD-decompresses and blits to the local framebuffer.

What's transmitted

SRDX transmits compressed framebuffer deltas. This is a deliberate design choice that separates SRDX from every other remote desktop protocol:

No intermediate codec. No lossy path unless the network demands it (future: optional lossy mode for very low-bandwidth links). The constraint on fidelity is the network pipe, not the codec.

SRDX encode path
SRDX encode path: framebuffer delta → ZSTD compress → syscall 109 (srdx_send)

Mesh: 2 to 16 nodes

SRDX supports up to 16 nodes in a single session. Node 0 is the controller — input events (keyboard, mouse, touch) flow outward from node 0 to the frame-source host. Nodes 1–15 receive the frame stream and render it locally. A sigilOS home server can simultaneously stream its Lumen desktop to a laptop, a wall-mounted TV, and a phone — with no additional daemon, no streaming relay, and no extra configuration. The mesh is built into the kernel socket model.

Game and multimedia streaming

SRDX is the primary transport for RetroPie game streaming. The same delta-compress pipeline that streams a Lumen desktop session also streams a RetroPie framebuffer at 60fps. There is no separate codec, no separate protocol, no special game-streaming mode. A sigilOS machine running a SNES game and a sigilOS handheld consuming the stream are using the same kernel syscalls (109–112) as any other SRDX session.

Capability gate

srdx_connect and srdx_listen require HP_NET_TOKEN — the host-proxy network capability token held by the broker. srdx_send and srdx_recv require the session's display capability. There is no ambient access. An EL0 process cannot initiate an SRDX session, eavesdrop on another session's frame stream, or inject input events without holding the explicit capability tokens. Credential theft — in the traditional sense — doesn't grant SRDX access; capability token theft does, and cap tokens are unforgeable, broker-held sentinels that cannot be extracted from a running session.

SRDX decode path
SRDX decode path: syscall 112 (srdx_recv) → ZSTD decompress → blit to local fb

SRDX vs RDP vs VNC

Dimension SRDX RDP (v10.x, MS) VNC (RFB 3.8+)
Protocol layer Kernel-native (syscalls 109–112) Application (TLS + RDP framing) Application (RFB, TLS optional)
What's transmitted ZSTD framebuffer deltas GDI/RAIL display commands + H.264 or RemoteFX video Raw framebuffer regions (ZRLE/Tight/JPEG)
Fidelity Lossless (delta exact; network-bottlenecked, not codec-bottlenecked) Lossy (H.264 default) or lossless (RemoteFX, Windows only) Lossy (JPEG compression) or raw (high BW)
Latency Network-bottlenecked (no app-layer buffering; kernel bypass) ~25ms minimum (app-layer framing + codec) ~40ms minimum (app-layer RFB framing)
Bandwidth ZSTD delta (very low on static screens, scales with motion) Low (display commands) → high (RemoteFX video) High (raw regions) → moderate (ZRLE)
Security model Capability token (HP_NET_TOKEN; zero ambient authority) NLA / TLS + Windows domain credentials Password (shared secret; no cap model)
Capability-scoped Yes — session slot injected by kernel; display cap checked per frame No — remote user gets desktop access if credentials pass No — credentials give full desktop
Multi-node 2→16 node mesh (kernel socket model, no daemon) Point-to-point (RD Gateway for multi-session, separate infra) Point-to-point (no mesh)
Game / multimedia Yes — also the primary RetroPie transport (60fps delta pipeline) RemoteFX (GPU codecs, Windows host only) No (no game/multimedia path)
sigilOS integration Native (zero config, kernel provides the service) Interop layer (sigilOS speaks RDP as client or server for non-SRDX peers) Interop layer (VNC fallback for lowest-common-denominator)
Auto-negotiate N/A (SRDX is always tried first) Offered when peer doesn't speak SRDX Offered when peer doesn't speak SRDX or RDP

The Parity-or-Better Narrative

Parity achieved

sigilOS speaks RDP and VNC as a fallback server and client. Any Windows, Mac, or Linux peer carrying a standard RDP or VNC client can connect to a sigilOS machine without installing anything new. This is not a reduced-capability path — sigilOS's RDP interop layer surfaces the same Lumen framebuffer over RDP that a native SRDX client would see. Capability parity with every legacy deployment is achieved. sigilOS does not lack RDP or VNC; it includes them as a courtesy to peers who haven't adopted SRDX yet.

Better on fidelity

RDP's default codec is H.264 — lossy. VNC's Tight and JPEG encodings are lossy. SRDX is lossless by design: the delta is exact bytes from the framebuffer. On a fast network, SRDX delivers a pixel-perfect replica. The constraint is network bandwidth, not codec quality. For work that demands it — design review, code editing, pixel-level inspection — SRDX is the only remote desktop that is genuinely equivalent to sitting at the machine.

Better on latency

SRDX runs at the kernel level. There is no application-layer broker buffering frames before dispatch, no display server round-trip before the frame enters the network path. On a LAN, SRDX latency is the round-trip network time plus the delta-encode/decode cycle (approximately 2ms on M-series hardware). RDP and VNC add application-layer framing, codec pipeline buffering, and often a display server round-trip. The gap widens under load.

Better on security

RDP uses credentials — a password or certificate validated against a domain. VNC uses a shared password. Neither protocol has a concept of capability tokens. An RDP session, once authenticated, gives the remote user the desktop — the kernel does not re-check capabilities per frame, per window, or per file access. SRDX sessions are gated by HP_NET_TOKEN plus the display capability at every frame boundary. An EL0 process cannot eavesdrop on another session's SRDX stream — the kernel's capability enforcement means the receive buffer is only accessible to the session that holds the display capability. Capability tokens are unforgeable, broker-held sentinels. The attack surface is categorically smaller.

Better on mesh

RDP is point-to-point. A multi-session RDP deployment requires Remote Desktop Gateway infrastructure — a separate server role, separate certificates, separate administration. VNC is also point-to-point. SRDX supports 2–16 nodes natively, with no additional infrastructure. A single kernel-level broadcast reaches all nodes simultaneously. A home server can stream to a laptop, a TV, and a phone in a single SRDX session at no additional configuration cost.

Better for multimedia and gaming

The same SRDX pipeline that streams the Lumen desktop streams a RetroPie game session at 60fps. This is not a special mode or a separate protocol — it is the same srdx_send/srdx_recv syscall pair, the same ZSTD delta pipeline, the same cap-gated session model. RDP's equivalent — RemoteFX — requires a Windows host with a compatible GPU. VNC has no game or multimedia streaming path. SRDX has no special requirements: any sigilOS machine with a framebuffer can be the stream source.


Marketing One-Liner

"The only capability-secured, kernel-native remote desktop — pixel-perfect, network-bottlenecked — that also speaks RDP and VNC for everyone else."

Three clauses doing three jobs:


Current Status (0.6.0 in Progress)

ItemStatusNotes
Syscalls 109–112 WIRED srdx_connect, srdx_send, srdx_listen, srdx_recv — sigil-os#21
SRDX encode path SRDX-ENCODE-PASS Framebuffer → delta → ZSTD → syscall 110 (srdx_send)
SRDX decode path SRDX-DECODE-PASS Syscall 112 (srdx_recv) → ZSTD decompress → delta blit to local fb
QEMU raspi3b verification PASS Lumen desktop streaming peer-to-peer
RetroPie game streaming PASS 60fps verified on LAN; same pipeline as desktop stream
RDP/VNC interop layer RFC in progress Expected in 0.6.x as the fallback server/client
Mesh (3–16 nodes) Architecture defined Full mesh implementation in 0.7.x scope

The syscall surface is complete and verified. The 0.6.0 sprint delivers the encode/decode paths and the QEMU validation. RDP/VNC fallback and the full 16-node mesh follow in 0.6.x and 0.7.x respectively. The protocol architecture is fixed — what ships in later milestones is implementation coverage, not design change.