Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
dd — Noyau Linux en espace utilisateur basé sur JIT qui exécute les conteneurs nativement sur macOS Apple Silicon sans VM. Remplacement de l'API Docker Engine intégré avec isolation des conteneurs, images overlay et publication de ports. | Kitploit
Outils/GitHubGitHub/ricccrd/dd
Sécurité des ConteneursAnalyse Dynamique (Sandboxing)Rétro-ingénierieVirtualisation de SécuritéDevSecOpsAnalyse de Binaires
GitHubricccrd/dd

dd

Noyau Linux en espace utilisateur basé sur JIT qui exécute les conteneurs nativement sur macOS Apple Silicon sans VM. Remplacement de l'API Docker Engine intégré avec isolation des conteneurs, images overlay et publication de ports.

Voir le dépôt
258526il y a 13 joursVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

dd

dd

Exécutez des conteneurs Linux sur macOS — sans machine virtuelle.

Download Platform License Website


Qu'est-ce que dd ?

dd exécute des conteneurs Linux nativement sur macOS Apple Silicon sans machine virtuelle. Il n'y a pas de noyau Linux ni d'hyperviseur en dessous : un JIT traduit le code du conteneur et prend en charge ses appels système Linux dans l'espace utilisateur (filiation gVisor / PRoot). Le JIT est le noyau Linux de l'invité — les espaces de noms, cgroups, couches d'images overlay et le réseau sont maintenus comme un état dans l'espace utilisateur. Il parle l'API Docker Engine, donc le client docker ordinaire le pilote.

Le calcul du conteneur s'exécute comme des instructions natives Apple Silicon ; seuls ses appels système sont interprétés. Pas de VM à démarrer, pas de démon dans une VM, pas de coût de virtualisation.

Site web & docs : https://ricccrd.github.io/dd/

make jit                                          # build.rs compile et signe les JIT
DD_IMAGES=/path/to/images cargo run -p dd-daemon  # démarre le démon
export DOCKER_HOST=unix://$PWD/dd.sock
docker run -p 8080:80 -m 256m alpine sh -c 'echo hi from $(hostname)'

Fonctionnalités

  • Aucune machine virtuelle. Pas d'hyperviseur, pas de noyau Linux, pas de VM à garder en mémoire. Les instructions de l'invité s'exécutent nativement sur arm64 ; seule la limite des appels système est interceptée et traitée dans l'espace utilisateur.
  • Docker en remplacement direct. dd implémente l'API Docker Engine. Pointez DOCKER_HOST vers son socket et vos commandes docker run / ps / images / build existantes fonctionnent sans modification.
  • Le JIT est le noyau. Les espaces de noms, cgroups, couches d'images overlay et le réseau sont un état ordinaire dans l'espace utilisateur — un noyau en espace utilisateur dans la filiation gVisor / PRoot, sans aucun coût de VM.
  • Trois environnements d'exécution invités, un seul moteur. Images arm64 Linux natives ; images x86-64 Linux via un JIT (jit86) qui décode le x86, synthétise ses flags et abaisse SSE/x87 sur NEON (les binaires glibc fonctionnent) ; et invités macOS arm64 (ddcli mac) — aucune VM dans aucun d'eux.
  • Isolation réelle de conteneur. Couches d'images overlay (copy-up / .wh. whiteout, getdents fusionné), un VFS de type jail de chemins sans TOCTOU, espaces de noms PID / UTS / USER, un netns loopback privé avec publication de ports -p, et limites de mémoire + pids via cgroups (OOM à la limite).
  • Application de bureau, sans root. Une application GTK4 native (dd-app) ainsi qu'un CLI dd installent un démon en arrière-plan par utilisateur et un docker context — tout sous $HOME, jamais sudo.

Pourquoi un JIT, pas une VM ?

Toute autre façon d'exécuter des conteneurs Linux sur un Mac — Docker Desktop, Colima, Rancher, OrbStack — démarre une VM Linux sous un hyperviseur et exécute le démon à l'intérieur. Cette VM est un impôt que vous payez toute la journée. dd la supprime : un conteneur est un simple processus macOS dont les appels système sont traités par un noyau Linux dans l'espace utilisateur.

dd — noyau en espace utilisateur (JIT)Basé sur VM (Docker Desktop / Colima / …)
Modèle sous-jacentUn JIT prend en charge les appels système Linux dans l'espace utilisateur (filiation gVisor)Un noyau Linux complet à l'intérieur d'une VM hyperviseur
RAM résidente au reposAucune — par conteneur, libérée à la sortieGigaoctets réservés pour la VM, toujours allumée
DémarrageCréation de processus — pas de VM à démarrerDémarrer une VM Linux + le démon dans la VM d'abord
Montage de volume / I/O fichierSystème de fichiers hôte direct via une jail de cheminsPont virtiofs/gRPC-FUSE à travers la frontière de la VM
Publication de portsDirectement sur les sockets de l'hôteVia la couche NAT/forwarding de la VM
Coût batterie / arrière-planRien qui tourne quand aucun conteneur n'est actifUne VM au ralenti qui vide la batterie
Empreinte à distribuer & corrigerPas de noyau Linux — rien à suivre pour les CVEDistribue, corrige et suit tout un noyau Linux
ObservabilitéUn processus macOS normal — samplez, déboguez, Activity MonitorUne VM opaque ; la charge de travail est invisible pour les outils de l'hôte

Le gain est structurel : le calcul de l'invité s'exécute en instructions natives Apple Silicon (aucune couche de virtualisation matérielle dans le chemin critique), et le célèbre goulot d'étranglement du partage de fichiers de Docker Desktop — le pont virtiofs/FUSE entre macOS et la VM — n'existe tout simplement pas, car le VFS de dd est le système de fichiers hôte derrière une jail de chemins.

Compromis honnête : un noyau dans l'espace utilisateur est seulement aussi complet que les appels système qu'il implémente, et aujourd'hui par défaut l'invité s'exécute dans un seul processus — rapide, et le bon choix pour du code auquel vous faites confiance (votre environnement de développement, CI, vos propres outils). Pour du code non fiable, il existe désormais une séparation sentinelle optionnelle (DDJIT_UNTRUSTED) : l'invité s'exécute dans un sandbox Seatbelt en mode refus-par-défaut ne détenant aucune autorisation hôte fs/réseau, tandis qu'un processus sentinelle de confiance possède les vraies ressources et sert les appels système via un anneau mémoire partagée — la forme gVisor. C'est encore tôt (les appels système fichier de base — read/write/open/close/lseek — sont transférés aujourd'hui ; sockets/exec/fork arrivent), donc pour du code totalement hostile, une VM expose toujours une surface plus restreinte.

Performance

Le même binaire Linux statique, exécuté de deux manières sur un Apple M5 Pro (macOS 26.3) : à l'intérieur de la VM Linux (comment les Docker basés sur VM exécutent les conteneurs) vs. via le JIT de dd sur l'hôte sans VM. Médiane de 7 (make bench). Un temps plus bas est meilleur ; « dd vs VM » > 1× signifie que dd est plus rapide. La voie dd paie même un petit coût de pont inter-processus que la vraie application ne paie pas — ce sont donc des chiffres conservateurs.

Conteneurs x86-64 — dd vs émulation VM (qemu-user ; exécuter x86 sur Apple Silicon signifie traduire de toute façon). Le JIT de dd bat qemu sur 9 des 10 charges de travail, de manière spectaculaire sur les calculs en virgule flottante :

Télécharger l’outil