La grammaire mémoire du xerboxion face à l'état de l'art (2024-2026)
Revue : allocateurs mathématiques, compression-comme-jump, kernels Rust — croisée avec l'Adressage Génératif, le kion et le cubion
Résumé
Où la grammaire bion(64o)/cubion(8 bions)/ploxion(≤64 bions) du kernel v0.22 se situe dans la recherche récente : un size-class allocator radicalisé (cousins : TCMalloc, SLUB sheaves, buddy). Le principe comprimer=sauter est VALIDÉ (TierScape, zswap Meta, IAA) mais corrigé (SOAR/ALTO : le critère est le coût amorti de re-décompression, pas la froideur). 5 briques concrètes pour le kernel. Brouillon rs-3, à vérifier par José (?).
§1Synthèse
Synthèse — la grammaire mémoire du xerboxion face à l'état de l'art (2024-2026)
1. Où on se situe : cousins directs, pas orphelins
Notre grammaire 64→512→4096 n'est pas une excentricité : c'est un size-class allocator radicalisé à 3 classes. L'étude TCMalloc à l'échelle de Google (ASPLOS 2024) montre que tous les allocateurs gagnants partagent la même ossature : classes de tailles figées + caches étagés + transferts par lots. Les « sheaves » de SLUB (Linux 6.18, LWN 1016001) sont littéralement des cubions : paquets de N objets identiques manipulés comme une unité. Côté buddy : notre hiérarchie facteur-8 en puissances de 2, où le ploxion = exactement une page, est un buddy parfait — et arXiv 2401.03523 quantifie que le seul poison du buddy est le petit objet immobile éparpillé qui bloque les fusions, précisément ce que les arènes par-ploxion avec refus interdisent par construction. SeaK (USENIX Sec'24) ajoute l'argument sécurité : une région dédiée par type, élastique, rendue quand vide, à coût nul — notre « respiration ». Posé : nous sommes dans le courant dominant, en version plus stricte. Spéculatif : que 3 classes suffisent à tout — personne n'a testé aussi peu.
2. « Comprimer = sauter » : le principe est validé, le QUOI et le QUAND sont corrigés
Validé. TierScape (EuroSys 2026) industrialise l'idée : quand ça déborde, on descend d'un cran de compression — le quota est une bascule de tier, pas un mur. Le zswap de Meta (Linux 6.8, LWN 950463) donne le modèle par-entité : cgroup ≈ ploxion, chacun sa politique « comprime, n'expulse pas », avec shrinker proactif = respiration. Le batching IAA (LWN 1039687) rend le coût du jump quasi nul : comprimé devient l'état normal, déplié l'exception. Et ZipCXL/OCP valide la granularité : on comprime à 1-4 Ko (cubion/ploxion), jamais à 64 o — l'emboîtement EST l'unité de compression.
Corrigé. SOAR/ALTO (OSDI 2025) démonte le critère naïf « comprimer le plus froid » : le bon critère est le coût amorti de re-décompression (AOL). Notre machine à jump n'a aucune métrique de jump aujourd'hui — c'est un trou identifié.
3. Ce que nos papiers disaient — et ce que v0.22 fait vraiment
L'Adressage Génératif §11 posait « la RAM est la seule vraie mémoire, le reste est politique de cache ». Le kernel v0.22 le réalise à moitié : la grammaire est opposable (quotas réglables, refus + événement bus — posé, ça tourne), et elle respecte au bit près l'invariant du paper kion §10 (tout en puissances de 2 multiples du bion : 2⁶ o / 2³ / 2⁶). Mais la régénération depuis l'adresse — « jeter sans risque puisque tout est régénérable » — n'est pas câblée : chez nous un refus est encore un mur, pas un jump. Contradiction à avouer franchement : nos papiers font de la compression la primitive même du système (triplet générateur/coordonnées/résidu, jump geofractale de xerboxion-v08 §7.4) ; v0.22 ne comprime rien. Le paper v08 était déjà honnête là-dessus (mandala dessiné, recorder 1D construit) — le kernel est au même palier.
4. Prochaines briques
- Refill/flush par lots entre niveaux — jamais bion par bion : on recharge/vide un cubion entier, comme les sheaves SLUB (LWN 1016001) et le batching IAA (LWN 1039687). Petite brique, gros gain.
- Bion-allocator acteur unique — alloc/free = messages vers un seul propriétaire des métadonnées (SpeedMalloc, arXiv 2508.20253 ; modèle snmalloc, ASPLOS 2024) :
mem.free= tsoin routé au ploxion propriétaire, zéro verrou. L'acteur xion mono-thread existe déjà. - Le refus devient bascule — quota dépassé → repli compressé du ploxion (politique par-entité façon cgroup zswap Linux 6.8 ; étages façon TierScape). C'est la brique qui réconcilie v0.22 avec §11.
- Métrique de jump déterministe — un AOL-like (OSDI 2025) pour choisir QUOI replier ; variante : perceptron figé dont les poids tiennent dans un bion de 64 o (LearnedCache, arXiv 2605.26168) — compatible « autonomie sans LLM ».
- Quota = type affine (spéculatif, le plus xerboxion) — une capacité de N slots ni duplicable ni fuitable, vérifiée à la compilation (Theseus intralingual ; Rex ATC'25 pour des bions natifs bornés) ; et copier la métrique d'Asterinas : % de lignes unsafe du core.
§2Sources
Les 28 sources de la revue (4 agents de recherche parallèles, 2026-07-11) :
- SLUB « sheaves » et « barns » : la nouvelle couche de cache par-CPU du slab Linux (mergée dans Linux 6.18) — https://lwn.net/Articles/1016001/ (voir aussi https://lwn.net/Articles/1035257/, https://lwn.net/Articles/974138/ et les slides FOSDEM 2026 de Vlastimil Babka : https://fosdem.org/2026/events/attachments/DPXVYJ-slub-sheaves-update/slides/267397/fosdem-sh_pvi6fpf.pdf)
- SeaK : Rethinking the Design of a Secure Allocator for OS Kernel (USENIX Security 2024) — https://www.usenix.org/conference/usenixsecurity24/presentation/wang-zicheng (code : https://github.com/a85tract/SeaK)
- Characterizing Physical Memory Fragmentation (arXiv 2401.03523) — https://arxiv.org/abs/2401.03523
- Characterizing a Memory Allocator at Warehouse Scale (ASPLOS 2024, Google/TCMalloc) — https://people.csail.mit.edu/delimitrou/papers/2024.asplos.memory.pdf
- SpeedMalloc : un cœur léger dédié à l'allocation mémoire (arXiv 2508.20253) — https://arxiv.org/abs/2508.20253
- TikTag : casser ARM MTE par exécution spéculative (arXiv 2406.08719) + déploiement réel du memory tagging (Pixel 8 2023, Apple MIE/A19 2025) — https://arxiv.org/abs/2406.08719 (contexte déploiement : https://www.jamf.com/blog/arm-mte-apple-mie-memory-safety-ios-kernel-vulnerability-research/ et https://source.android.com/docs/security/test/memory-safety/arm-mte)
- BUDAlloc : one-time-allocator en découplant la gestion d'adresses virtuelles du noyau (USENIX Security 2024) — https://www.usenix.org/conference/usenixsecurity24/presentation/ahn (code : https://github.com/casys-kaist/BUDAlloc)
- TierScape : plusieurs tiers mémoire compressés software-defined (Intel Labs) — https://arxiv.org/abs/2404.13886 (préprint) + version conférence EuroSys 2026 : https://dl.acm.org/doi/10.1145/3767295.3769321
- zswap nouvelle génération dans Linux : shrinker piloté par la pression mémoire + writeback contrôlé par cgroup (Meta, kernel 6.8+) — https://lwn.net/Articles/950463/ et https://lwn.net/Articles/954098/ (patches Nhat Pham / Meta, mergés Linux 6.8, mars 2024) ; doc officielle https://docs.kernel.org/admin-guide/mm/zswap.html
- « Tiered Memory Management Beyond Hotness » — SOAR/ALTO, OSDI 2025 (Virginia Tech) — https://www.usenix.org/conference/osdi25/presentation/liu (PDF : https://www.usenix.org/system/files/osdi25-liu.pdf ; code : https://github.com/MoatLab/SoarAlto)
- ZipCXL + spec OCP « compressed CXL memory » : la compression mémoire passe dans le matériel — ZipCXL: CXL-based Main Memory Compression at Low Performance Penalty, MEMSYS 2025, https://dl.acm.org/doi/10.1145/3767110.3767125 (contexte : spec OCP 2023 pour devices CXL à compression, premier contrôleur CXL compressif Marvell annoncé 2024)
- LearnedCache : éviction du page cache Linux par perceptron, injecté via eBPF — https://arxiv.org/abs/2605.26168 (LearnedCache: An eBPF-Integrated Perceptron-Based Eviction Policy for the Linux Page Cache)
- Intel Flat Memory Mode + Memstrata : tiering CXL géré par le matériel en multi-tenant (OSDI 2024, Columbia/Microsoft/Intel) — https://www.usenix.org/conference/osdi24/presentation/zhong-yuhong (PDF Microsoft Research : https://www.microsoft.com/en-us/research/wp-content/uploads/2024/03/2024-FlatMemoryMode-Memstrata-OSDI2024.pdf)
- Compression batching zswap sur accélérateur Intel IAA : le coût du jump tend vers zéro — https://lwn.net/Articles/1039687/ (série de patches « zswap compression batching with optimized iaa_crypto driver », 2025)
- Redox OS — priorités 2025/26 : self-hosting, variantes Server/Hosted/Desktop, ring buffers I/O — https://www.redox-os.org/news/development-priorities-2025-09/ (+ suivi mensuel https://www.redox-os.org/news/this-month-260630/ et Phoronix https://www.phoronix.com/news/Redox-OS-2026-Plans)
- Asterinas (USENIX ATC 2025) — le « framekernel » : séparation de privilèges par le langage, TCB de 14% — https://arxiv.org/abs/2506.03876 et https://www.usenix.org/conference/atc25/presentation/peng-yuke
- Theseus OS — design intralingual : la gestion de ressources déplacée dans le compilateur (état 2024-2026) — https://github.com/theseus-os/Theseus (papier fondateur OSDI'20 : https://www.usenix.org/system/files/osdi20-boos.pdf ; synthèse récente https://www.emergentmind.com/topics/theseus-operating-system)
- Hermit OS — unikernel Rust pur : v0.10.0 (janv. 2026) + extensions sandboxées Wasm (PLOS '25) — https://github.com/hermit-os/kernel/releases (v0.10.0, 2026-01-18) ; papier « From Browser to Kernel: Exploring a Lightweight Sandboxed Approach for Unikernel Extensions », PLOS '25, pp. 127-135 ; https://hermit-os.org/
- rust-vmm — l'écosystème de briques de virtualisation Rust : retour à KVM Forum 2025, plan monorepo, RISC-V — https://pretalx.com/kvm-forum-2025/talk/TDPA3T/ et https://github.com/rust-vmm/community
- Rust-in-Linux — fin de l'« expérience » : Rust devient composant central du noyau (déc. 2025) — https://www.phoronix.com/news/Rust-To-Stay-Linux-Kernel (+ https://rust-for-linux.com/ et roadmap officielle https://rust-lang.github.io/rust-project-goals/2026/roadmap-rust-for-linux.html)
- Rex (USENIX ATC 2025) — extensions noyau en safe Rust : remplacer le vérifieur eBPF par le langage — https://www.usenix.org/system/files/atc25-jia.pdf (« Rex: Closing the language-verifier gap with safe and usable kernel extensions ») et https://github.com/rex-rs/rex
- L'Adressage Génératif — le triplet (générateur, coordonnées, résidu) et l'identification tsoin = résidu — https://labo.j0bot.ch/wiki/paper/adressage-generatif (§2.2, §3.2, §3.3) — note : /wiki/papers → 404, la liste des papers vit à https://labo.j0bot.ch/wiki/papiers ; terme : https://labo.j0bot.ch/wiki/tsoin
- La MÉMOIRE (§11) : la RAM comme seule vraie mémoire + le système qui compresse son propre passé (consolidation mnésique) — https://labo.j0bot.ch/wiki/paper/adressage-generatif — §11 « Limites et problèmes ouverts » (Le coût de la régénération ; L'asymétrie de l'écriture)
- Machine à souvenirs — la face mémoire de la machine à tsoins (et le cerveau comme générateur) — https://labo.j0bot.ch/wiki/machine-a-souvenirs + https://labo.j0bot.ch/wiki/souvenir ; parallèle XERAX : https://labo.j0bot.ch/wiki/paper/adressage-generatif §7.6
- Jump geofractale — comprimer = zoomer/sauter dans le mandala (compression-comme-jump attestée au canon) — https://labo.j0bot.ch/wiki/paper/xerboxion-v08 — §7.4 « Honnêteté réel-vs-vision » (page 35 du cahier, 20.04.2026) + §2 (tsoin réflexif) et section mesures
- La chaîne matérielle bion → cubion → ploxion → boxion → xerboxion et ses tailles (8 / 27 / 64 slots) — https://labo.j0bot.ch/wiki/paper/cubion (§3) + termes https://labo.j0bot.ch/wiki/bion, https://labo.j0bot.ch/wiki/boxion, https://labo.j0bot.ch/wiki/xerboxion
- Le cubion fractal : on ne stocke pas le cube, on stocke la règle (D = ln N / ln 3) — https://labo.j0bot.ch/wiki/paper/cubion (§1-2 « Le cubion fractal » / « La dimension comme signature »)
- Les maths du kion : ℓ = c√3 − r, seuils ρ ∈ {1, √2, √3}, sigmoïde ρ(v), et puissances de 2 en multiples du bion — https://labo.j0bot.ch/wiki/paper/le-kion (§3-§5, §7, §10) + terme https://labo.j0bot.ch/wiki/kion
Statut : draft · Licence : CC-BY-SA
· 11.07.2026 · etat-art-memoire-2026