01 / DISTROPROOF → OMNISCIENT
Un outil du noyau éprouvé sur 33 cibles.
Les versions installées d’Omniscient ont tourné sur 17 images de distributions avec leurs propres noyaux, 5 variantes, 3 images arm64 et 8 conteneurs sans root. distroproof a trouvé 27 défauts : 13 dans l’outil, 14 dans ses tests. Lors de la première exécution, le noyau a refusé au démarrage 158 exécutions de sources qu’Omniscient disait utilisables ; après les corrections, plus aucune. La dernière exécution a réussi sur les 25 cibles (33 cellules), et chaque raison de refus concordait avec la lecture d’envprobe sur la même machine.
$ distroproof up --no-tui --jobs 4 --json target/matrix/distroproof.json
$ cargo test --test portability # the judges, over every cell
02 / OMNISCIENT → DISTROPROOF
L’outil testé a amélioré le testeur.
La campagne a profité aux deux. distroproof a gagné 3 images (Gentoo, Debian sid, Fedora 43), 2 corrections de démarrage et 3 options [run], dont file_caps et collect. envprobe a gagné 2 faits, les limites memlock et la configuration du traceur de fonctions, parce que deux échecs d’Omniscient en avaient besoin pour être expliqués.
[run]
file_caps = { "/opt/omn/bin/omn" = ["bpf", "perfmon", "net_raw"] }
collect = ["cross-tools.json", "witnesses.json"]
03 / DISTROPROOF → XPAC
Un gestionnaire de paquets testé sur 16 images.
xpac suit la matrice des versions installées d’Omniscient. Ses versions GNU et musl sont installées sur 16 images de distributions, plus des variantes root et lockdown. Chaque machine renvoie un cell.json que la machine hôte vérifie. Les vraies installations et suppressions ne tournent que dans de nouvelles copies jetables.
$ distroproof up --no-tui --jobs 4 --json dist/matrix/inspection.json
$ python3 scripts/distroproof/check.py dist/matrix/inspection.json
04 / XPAC → OMNISCIENT
xpac installe les outils de référence.
Omniscient compare ses chiffres à ceux de perf, bpftrace, bcc, strace, sysstat et valgrind. Dans chaque machine de la chaîne, xpac installe ces outils de référence avec le propre gestionnaire de paquets de la distribution : APT, DNF, Pacman, apk ou Portage. Chaque installation est consignée dans xpac-history.json.
05 / OMNISCIENT → VMANYWARE
Un vrai serveur, mesuré en direct.
La chaîne démarre le serveur de VMAnyware, enregistre une définition, reçoit un refus 403 pour une écriture venue d’un navigateur, et vérifie qu’un second serveur refuse la base de données verrouillée. Omniscient s’attache au serveur en marche et relève mem.rss toutes les 100 ms, sans droits supplémentaires.
$ omn mem.rss --pid $SERVER -m poll@100ms -e timeline,summary -d 1s --format json
06 / ATFQ ↔ PROCFS · MCP
Une explication confrontée à la machine.
Dans chaque machine, atfq probe mem.summary doit correspondre à /proc/meminfo à l’octet près. La chaîne lance aussi atfq mcp et vérifie que ses cinq outils sont là et déclarent toujours readOnlyHint.
$ atfq probe mem.summary --json
$ atfq mcp # lookup, search, toc, run_probe, list_probes
07 / OMNISCIENT → ATFQ, XPAC, ENVPROBE
Les promesses de lecture seule, confrontées au noyau.
Omniscient lance chaque outil et suit, depuis le noyau, chaque processus qu’il démarre. Les neuf thèmes d’atfq, l’inventaire et le plan de xpac face à Pacman, et envprobe --json n’ont chacun créé, renommé, supprimé ni synchronisé aucun fichier. Aucun n’a ouvert de connexion TCP, et aucun n’a lancé d’autre programme que les siens. atfq n’a ouvert aucune socket IPv4 ou IPv6 : seulement netlink, pour lire les interfaces. Les onze vérifications sont passées le 21 octobre 2026.
$ python3 scripts/devutils/promises.py
atfq PASS no file changed 1464 opens, 8084 reads
atfq PASS no IPv4/IPv6 socket netlink only
xpac PASS only its own programs xpac, pacman, pacman-conf
envprobe PASS no TCP connection 19 ms of cpu
08 / OMNISCIENT → CE SITE
Le site, mesuré avant et après.
La même visite de 28 secondes de la page Design, trois fois sur la version d’avant le travail sur le site et trois fois sur celle d’après, pendant qu’Omniscient comptait le temps processeur du navigateur et l’énergie de la carte graphique. Il a refusé de tracer le temps processeur sur cette machine en disant pourquoi (tracefs demande CAP_SYS_ADMIN) ; l’exécution le compte donc à la place. Les résultats sont juste en dessous.
$ omn -f bench/site.yml --format json --program-stderr visit.err > visit.json