The grid above is per operating system. This is where the agent goes: each distribution or appliance, whether the agent runs there, and whether it should be installed there at all. Where it should not, the platform is covered without an agent. Most rows are graded declared: a statement about what an operating system is.
Distribution · Linux (glibc, systemd, dpkg)
AgentRuns nativelyInstallNo install restriction
● Supported
the ordinary Linux agent; dpkg inventory, OSV Debian/Ubuntu vulnerability definitions, os-release fingerprint
What it collects: the Linux column above.
Note · The Linux automated test runs on Ubuntu, so this is the distribution every Linux cell marked proven in the capability matrix was proven on.
RHEL / Rocky / AlmaLinux
compiled
Distribution · Linux (glibc, systemd, rpm)
AgentRuns nativelyInstallNo install restriction
● Supported
the ordinary Linux agent; rpm inventory via the BDB and sqlite container readers, OSV Red Hat/Rocky/AlmaLinux definitions
What it collects: the Linux column above.
Note · The rpm readers were proven against real package databases; what is missing for proven status is a Red Hat–family automated test run, not a reader.
Amazon Linux 2023
declared
Distribution · Linux (glibc, systemd, rpm/dnf)
AgentRuns nativelyInstallNo install restriction
◐ Not yet
The agent runs and identifies the host correctly. What is missing is a vulnerability feed: Amazon Linux has no advisory source yet, so every package would be assessed against nothing and still reported as assessed.
What it collects: the Linux column above.
What is left- an ALAS advisory source mapped to the rpm comparator
- a CIS/hardening profile or an explicit declaration that none exists
VMware Photon OS (standalone)
declared
Distribution · Linux (glibc, systemd, rpm via tdnf)
AgentRuns nativelyInstallNo install restriction
◐ Not yet
Nothing blocks the agent: it reads the distribution from os-release without an allowlist, so a Photon host already registers with the correct kernel, libc and init, and the release build is fully static. What is missing is everything around the agent: no Photon advisory feed, no hardening profile, and no run on a real Photon machine.
What it collects: the Linux column above.
What is left- Prove the rpm reader against an rpm database written by tdnf — a reader proven on one producer's database has proven nothing about another's
- A Photon security advisory source with the rpm version comparator
- A hardening profile, or an explicit statement that Photon has no CIS benchmark
Note · Standalone Photon OS only. Photon is also the base of the vCenter Server Appliance, NSX Manager and the Aria appliances, which are a different row with the opposite answer — see the vCenter appliance row.
Azure Linux (CBL-Mariner)
declared
Distribution · Linux (glibc, systemd, rpm/tdnf)
AgentRuns nativelyInstallNo install restriction
◐ Not yet
same shape as Photon — the agent runs and fingerprints; no vulnerability feed row and no hardening profile exist for it
What it collects: the Linux column above.
What is left- a Microsoft advisory source mapped to the rpm comparator
- shares Photon's tdnf-written rpmdb question
Distribution · Linux (musl, OpenRC, apk)
AgentRuns nativelyInstallNo install restriction
◐ Not yet
The two pieces that usually block a musl distribution are already built — musl is identified by its dynamic loader path, and the apk database is read — but Alpine has no advisory source yet, so vulnerability assessment would refuse the host.
What it collects: the Linux column above.
What is left- An Alpine secdb source with an apk version comparator (apk's ordering is not close enough to rpm's, and guessing it would buy coverage with false positives)
SUSE Linux Enterprise / openSUSE
declared
Distribution · Linux (glibc, systemd, rpm with the ndb container)
AgentRuns nativelyInstallNo install restriction
◐ Not yet
The only distribution here blocked on a missing reader rather than missing data: SUSE stores its rpm database in the ndb format, which the agent recognises but cannot yet read, so package inventory — and with it vulnerability assessment — is not available on SUSE hosts.
What it collects: the Linux column above.
What is left- An rpm ndb reader, proven against a real SUSE package database
- A SUSE advisory source
FreeBSD / OpenBSD (pfSense, OPNsense, TrueNAS)
declared
Distribution · BSD Unix — a supported Go target, with no backend files in this tree
AgentRuns nativelyInstallNo install restriction
◐ Not yet
The Go toolchain targets FreeBSD and OpenBSD, so the agent builds and runs — but every collection falls back to a placeholder that refuses by naming the missing mechanism, so the agent would register and then collect almost nothing.
What is left- A BSD implementation of each collection family — which would also add BSD as a column in the capability matrix, the one item in this table that widens the platform axis
Note · The most valuable real port in this table: it is the only row blocked on code rather than data, and it reaches the open-source firewall and NAS estate.
Immutable OS · Linux, read-only root, NO shell and no package manager — an API and Kubernetes only
AgentRuns in a hosted containerInstallInstall through the platform's own route
◐ Not yet
the binary runs, and there is no filesystem location to install it into and no shell to install it from. Talos is reached as a privileged DaemonSet or as a system extension baked into the image; neither packaging exists yet
What it collects: the Linux column above.
What is left- A privileged DaemonSet manifest with the host mounts the collections need
- A state folder that survives an image upgrade, since the usual guarantees for /var/lib/eventlake-sensor do not hold on an immutable root
Note · The agent's fallback to /usr/lib/os-release was written for stateless and read-only-root hosts like this one, so host identification already works here.
Bottlerocket / Flatcar / Fedora CoreOS / RHCOS
declared
Immutable OS · Linux, read-only root, ostree or dm-verity images
AgentRuns in a hosted containerInstallInstall through the platform's own route
◐ Not yet
same blocker as Talos and the same fix — these are reached through host-containers (Bottlerocket), systemd-sysext images (Flatcar) or a layered ostree commit (CoreOS/RHCOS), never through a package install
What it collects: the Linux column above.
What is left- one container packaging shared with the Talos row — this is a single piece of work that unlocks the whole class
vCenter Server Appliance / NSX Manager / Aria
declared
Appliance · Photon OS — technically IDENTICAL to the `photon` row above
AgentRuns nativelyInstallNot an install target
◈ Agentless
vCenter's own event and task stream, appliance syslog forwarded to the agent's -syslog-addr receiver, and SNMP; the platform assesses the result without an agent.
Note · The platform already detects abuse of this estate from outside it: its hypervisor guest-execution detection (ATT&CK T1675) and its VIB signature-bypass detection rest on guest and log evidence, never on an agent living on the appliance.
Other platform · vmkernel — not Linux, and not a Go target
AgentCannot run hereInstallNot an install target
◈ Agentless
ESXi syslog to the -syslog-addr receiver, SNMP traps to -snmp-trap-addr, and the vSphere API; agentless assessment deliberately refuses to treat an ESXi host as Linux.
PAN-OS / FortiOS / F5 TMOS / NetApp ONTAP
declared
Appliance · vendor-sealed Linux or BSD derivatives with read-only or verified root filesystems
AgentCannot run hereInstallNot an install target
◈ Agentless
Each vendor's own management API, plus syslog or CEF to -syslog-addr, SNMP to -snmp-trap-addr and flow records to -netflow-addr — the agent's three built-in receivers.
Appliance · Fedora Linux, genuinely — with a supported RPM install path
AgentRuns nativelyInstallInstall through the platform's own route
◐ Not yet
The instructive counter-example to the row above: EOS runs a full Linux underneath and accepts RPM extension packages, so installing an agent is possible in principle. What stops it is that nobody has built or tested the extension packaging.
What it collects: the Linux column above.
What is left- An EOS extension (RPM) package
- A decision on which collections are meaningful on a switch, since most host-centric ones are not
Cisco IOS-XE / NX-OS (app-hosting, Guest Shell)
declared
Appliance · vendor Linux with an officially sanctioned container runtime
AgentRuns in a hosted containerInstallInstall through the platform's own route
◐ Not yet
The platform provides an on-box container runtime for hosted applications, so an agent is possible in principle; the resources on a switch supervisor are far below this agent's footprint budget, and what a reduced build would need has not been measured.
What it collects: the Linux column above.
What is left- Measure what the agent needs against the platform's app-hosting limits before promising anything — a switch is not a server
z/OS · IBM i · HP-UX
declared
Other platform · non-Linux enterprise operating systems with no Go port
AgentCannot run hereInstallNo install restriction
◈ Agentless
SMF and syslog forwarding to -syslog-addr, and the application's own OTel SDK where one exists — which never needed our agent
AIX · Solaris / illumos
declared
Other platform · supported Go targets (aix/ppc64, solaris/amd64, illumos/amd64) with no backend files in this tree
AgentRuns nativelyInstallNo install restriction
◐ Not yet
These are not below the toolchain floor: Go targets all three, so the agent builds and runs. Every collection falls back to a placeholder, so the agent would register honestly and collect almost nothing — a more tractable problem than having no compiler.
What is left- per-family backends, as for the BSD row
- a prior demand signal — this is the row most likely to be answered agentlessly forever, and saying so is cheaper than a port nobody asked for
QNX · VxWorks · bare-metal RTOS · OT controllers
declared
Other platform · real-time and embedded operating systems; PLCs and field devices
AgentCannot run hereInstallNot an install target
◈ Agentless
Passive industrial-protocol observation, NetFlow to -netflow-addr, and the cell or line controller's own historian.