Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
dd — Kernel Linux in userspace basato su JIT che esegue contenitori nativamente su macOS con Apple Silicon senza una VM. Sostituto drop-in dell'API di Docker Engine con isolamento dei contenitori, immagini overlay e pubblicazione delle porte. | Kitploit
Strumenti/GitHubGitHub/ricccrd/dd
Sicurezza dei ContenitoriAnalisi Dinamica (Sandboxing)Reverse EngineeringVirtualizzazione per la SicurezzaDevSecOpsAnalisi di Binari
GitHubricccrd/dd

dd

Kernel Linux in userspace basato su JIT che esegue contenitori nativamente su macOS con Apple Silicon senza una VM. Sostituto drop-in dell'API di Docker Engine con isolamento dei contenitori, immagini overlay e pubblicazione delle porte.

Vedi Repository
25852714 giorni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

dd

dd

Esegui container Linux su macOS — senza VM.

Download Platform License Website


Cos'è dd?

dd esegue container Linux in modo nativo su macOS con Apple Silicon senza una macchina virtuale. Non c'è kernel Linux né hypervisor sottostante: un JIT traduce il codice del container e gestisce le sue chiamate di sistema Linux nello spazio utente (la discendenza gVisor / PRoot). Il JIT è il kernel Linux dell'ospite — namespace, cgroups, layer di immagini overlay e rete sono mantenuti come stato dello spazio utente. Parla l'API Docker Engine, quindi la normale CLI docker lo comanda.

Il calcolo del container viene eseguito come istruzioni native Apple Silicon; solo le sue chiamate di sistema vengono interpretate. Nessuna VM da avviare, nessun demone in una VM, nessun costo di virtualizzazione.

Sito web e documentazione: https://ricccrd.github.io/dd/

make jit                                          # build.rs compiles + codesigns the JITs
DD_IMAGES=/path/to/images cargo run -p dd-daemon  # start the daemon
export DOCKER_HOST=unix://$PWD/dd.sock
docker run -p 8080:80 -m 256m alpine sh -c 'echo hi from $(hostname)'

Funzionalità

  • Nessuna macchina virtuale. Nessun hypervisor, nessun kernel Linux, nessuna VM da tenere residente. Le istruzioni dell'ospite vengono eseguite nativamente su arm64; solo il confine delle chiamate di sistema viene intercettato e gestito nello spazio utente.
  • Docker sostitutivo. dd implementa l'API Docker Engine. Punta DOCKER_HOST al suo socket e i tuoi comandi docker run / ps / images / build esistenti funzionano invariati.
  • Il JIT è il kernel. Namespace, cgroup, layer di immagini overlay e rete sono normale stato dello spazio utente — un kernel in spazio utente della discendenza gVisor/PRoot, senza alcun costo di una VM.
  • Tre runtime ospite, un solo motore. Immagini arm64 Linux native; immagini x86-64 Linux tramite un JIT (jit86) che decodifica x86, sintetizza i suoi flag e abbassa SSE/x87 su NEON (i binari glibc funzionano); e ospiti macOS arm64 (ddcli mac) — nessuna VM in nessuno di essi.
  • Isolamento reale dei container. Layer di immagini overlay (copy-up / .wh. whiteout, getdents uniti), un VFS path-jail senza TOCTOU, namespace PID / UTS / USER, una netns di loopback privata con pubblicazione della porta -p, e limiti cgroup di memoria + pids (OOM al limite).
  • App desktop, senza root. Un'app nativa GTK4 (dd-app) più una CLI dd installano un demone in background per utente e un docker context — tutto sotto $HOME, mai sudo.

Perché un JIT, non una VM?

Ogni altro modo per eseguire container Linux su un Mac — Docker Desktop, Colima, Rancher, OrbStack — avvia una VM Linux sotto un hypervisor e fa funzionare il demone al suo interno. Quella VM è una tassa che paghi tutto il giorno. dd la elimina: un container è un normale processo macOS le cui chiamate di sistema vengono servite da un kernel Linux in spazio utente.

dd — kernel in spazio utente (JIT)Docker basato su VM (Desktop / Colima / …)
Modello sottostanteUn JIT gestisce le chiamate di sistema Linux nello spazio utente (discendenza gVisor)Un kernel Linux completo all'interno di una VM con hypervisor
RAM residente quando inattivoNessuna — per container, liberata all'uscitaGigabyte riservati per la VM, sempre accesa
AvvioCreazione di un processo — nessuna VM da avviareAvviare prima una VM Linux + il demone dentro la VM
Bind-mount / I/O fileFilesystem host diretto attraverso un path jailPonte virtiofs/gRPC-FUSE attraverso il confine della VM
Pubblicazione portaDirettamente ai socket hostAttraverso il layer NAT/forwarding della VM
Costo batteria / backgroundNiente in esecuzione quando nessun container è attivoUna VM inattiva che consuma batteria
Impronta da distribuire e aggiornareNessun kernel Linux — niente da tracciare per CVEDistribuisce, aggiorna e traccia un intero kernel Linux
OsservabilitàUn normale processo macOS — sample, debug, Activity MonitorUna VM opaca; il carico di lavoro è invisibile agli strumenti host

Il vantaggio è strutturale: il calcolo dell'ospite viene eseguito come istruzioni native Apple Silicon (nessun layer di virtualizzazione hardware nel percorso critico), e il famigerato collo di bottiglia della condivisione file di Docker Desktop — il ponte virtiofs/FUSE tra macOS e la VM — semplicemente non esiste, perché il VFS di dd è il filesystem host dietro un path jail.

Compromesso onesto: un kernel in spazio utente è completo solo quanto le chiamate di sistema che implementa, e oggi Per impostazione predefinita, l'ospite viene eseguito in un processo — veloce, e la scelta giusta per codice di cui ti fidi (il tuo ambiente di sviluppo, CI, i tuoi strumenti). Per codice non fidato ora c'è una scissione sentry opzionale (DDJIT_UNTRUSTED): l'ospite viene eseguito in un sandbox Seatbelt con negazione predefinita senza autorità di filesystem/rete, mentre un processo sentry fidato possiede le risorse reali e serve le chiamate di sistema tramite un anello di memoria condivisa — la forma gVisor. È presto (le chiamate di sistema principali per file — read/write/open/close/lseek — vengono inoltrate oggi; socket/exec/fork stanno arrivando), quindi per codice completamente ostile una VM espone ancora una superficie più ristretta.

Prestazioni

Lo stesso binario Linux statico, eseguito in due modi su un Apple M5 Pro (macOS 26.3): dentro la VM Linux (come Docker basato su VM esegue i container) vs. tramite il JIT di dd sull'host con nessuna VM. Mediana di 7 (make bench). Tempo minore è migliore; "dd vs VM" > 1× significa dd è più veloce. La corsia dd paga persino un piccolo costo di ponte cross-process che l'app reale non paga — quindi questi sono conservativi.

Container x86-64 — dd vs emulazione VM (qemu-user; eseguire x86 su Apple Silicon significa tradurlo in ogni caso). Il JIT di dd batte qemu in 9 su 10 carichi di lavoro, in modo drammatico sulla virgola mobile:

Carico di lavoroVM (qemu)dd (no VM)dd vs VM
float n-body5.39s0.23s24× più veloce
mandelbrot7.81s0.83s9.4× più veloce
matmul8.21s1.37s6.0× più veloce
SQLite (600k righe)2.99s1.01s3.0× più veloce
qsort3.91s1.68s2.3× più veloce
memcpy2.40s1.10s2.2× più veloce
text-scan (wc/grep)1.42s1.11s1.3× più veloce
int sieve1.31s1.04s1.25× più veloce
SHA-2562.72s2.44s1.1× più veloce
base644.28s5.39s0.79× (1.26× più lento)
Scarica lo strumento