Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
dd — JIT-basierter Userspace-Linux-Kernel, der Container nativ auf Apple Silicon macOS ohne VM ausführt. Drop-in Docker Engine API-Ersatz mit Container-Isolation, Overlay-Images und Portveröffentlichung. | Kitploit
Tools/GitHubGitHub/ricccrd/dd
Container-SicherheitDynamische Analyse (Sandboxing)Reverse EngineeringSicherheitsvirtualisierungDevSecOpsBinäranalyse
GitHubricccrd/dd

dd

JIT-basierter Userspace-Linux-Kernel, der Container nativ auf Apple Silicon macOS ohne VM ausführt. Drop-in Docker Engine API-Ersatz mit Container-Isolation, Overlay-Images und Portveröffentlichung.

Repository anzeigen
258526vor 13 TagenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

dd

dd

Linux-Container auf macOS ausführen – ohne VM.

Download Plattform Lizenz Website


Was ist dd?

dd führt Linux-Container nativ auf Apple-Silicon macOS ohne virtuelle Maschine aus. Es gibt keinen Linux-Kernel und keinen Hypervisor darunter: Ein JIT übersetzt den Code des Containers und bedient seine Linux-Systemaufrufe im Userspace (die gVisor-/PRoot-Linie). Der JIT ist der Linux-Kernel des Gasts – Namespaces, Cgroups, Overlay-Image-Layer und Netzwerk werden als Userspace-Zustand verwaltet. Er spricht die Docker Engine API, sodass die normale docker-CLI ihn steuert.

Die Berechnung des Containers läuft als native Apple-Silicon-Instruktionen; nur seine Systemaufrufe werden interpretiert. Keine VM zum Booten, kein Daemon-in-einer-VM, keine Virtualisierungskosten.

Website & Dokumentation: https://ricccrd.github.io/dd/

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

Funktionen

  • Keine virtuelle Maschine. Kein Hypervisor, kein Linux-Kernel, keine VM, die im Speicher bleiben muss. Die Instruktionen des Gasts laufen nativ auf arm64; nur die Systemaufrufgrenze wird abgefangen und im Userspace bedient.
  • Drop-in Docker. dd implementiert die Docker Engine API. Setze DOCKER_HOST auf seinen Socket und deine vorhandenen docker run / ps / images / build-Befehle funktionieren unverändert.
  • Der JIT ist der Kernel. Namespaces, Cgroups, Overlay-Image-Layer und Netzwerk sind gewöhnlicher Userspace-Zustand – ein Userspace-Kernel in der gVisor-/PRoot-Linie, ohne die Kosten einer VM.
  • Drei Gast-Laufzeitumgebungen, eine Engine. Native arm64 Linux-Images; x86-64 Linux-Images via JIT (jit86), der x86 dekodiert, seine Flags synthetisiert und SSE/x87 auf NEON herunterbricht (glibc-Binaries laufen); und macOS arm64-Gäste (ddcli mac) – in keinem davon eine VM.
  • Echte Container-Isolation. Overlay-Image-Layer (Copy-up / .wh.-Whiteout, gemergte getdents), ein TOCTOU-freies Path-Jail-VFS, PID-/UTS-/USER-Namespaces, ein privates Loopback-Netns mit -p-Port- Veröffentlichung und Cgroup-Speicher- + PIDs-Begrenzungen (OOM an der Grenze).
  • Desktop-App, kein Root. Eine native GTK4-App (dd-app) plus eine dd-CLI installieren einen benutzerbezogenen Hintergrund-Daemon und einen docker context – alles unter $HOME, niemals sudo.

Warum ein JIT, warum keine VM?

Jede andere Methode, Linux-Container auf einem Mac auszuführen – Docker Desktop, Colima, Rancher, OrbStack – bootet eine Linux-VM unter einem Hypervisor und betreibt den Daemon innerhalb dieser VM. Diese VM ist eine Steuer, die du den ganzen Tag bezahlst. dd entfernt sie: Ein Container ist ein normaler macOS-Prozess, dessen Systemaufrufe zufällig von einem Userspace-Linux-Kernel bedient werden.

dd – Userspace-Kernel (JIT)VM-basiertes Docker (Desktop / Colima / …)
Zugrundeliegendes ModellEin JIT bedient Linux-Systemaufrufe im Userspace (gVisor-Linie)Ein vollständiger Linux-Kernel in einer Hypervisor-VM
Resident RAM im LeerlaufKein – pro Container, beim Beenden freigegebenGigabytes für die VM reserviert, immer aktiv
StartzeitProzess starten – keine VM zum BootenErst eine Linux-VM + den Daemon in der VM booten
Bind-Mount / Datei-I/ODirektes Host-Dateisystem durch ein Path-Jailvirtiofs/gRPC-FUSE-Brücke über die VM-Grenze
Port-VeröffentlichungDirekt zu Host-SocketsÜber die NAT-/Forwarding-Schicht der VM
Akku-/HintergrundkostenNichts läuft, wenn kein Container aktiv istEine VM, die im Leerlauf läuft und den Akku leert
Größe zum Ausliefern & PatchenKein Linux-Kernel – nichts zu CVE-verfolgenLiefert, patcht und verfolgt einen ganzen Linux-Kernel
BeobachtbarkeitEin normaler macOS-Prozess – sample, debugge, AktivitätsüberwachungEine undurchsichtige VM; die Arbeitslast ist für Host-Tools unsichtbar

Der Gewinn ist strukturell: Die Berechnung des Gasts läuft als native Apple-Silicon-Instruktionen (keine Hardwarevirtualisierungsschicht im heißen Pfad), und der berüchtigte Docker-Desktop-Dateifreigabe-Engpass – die virtiofs/FUSE-Brücke zwischen macOS und der VM – existiert einfach nicht, weil das VFS von dd das Host-Dateisystem hinter einem Path-Jail ist.

Ehrlicher Kompromiss: Ein Userspace-Kernel ist nur so vollständig wie die Systemaufrufe, die er implementiert, und heute läuft der Gast standardmäßig in einem Prozess – schnell und die richtige Wahl für Code, dem du vertraust (deine Entwicklungs- umgebung, CI, deine eigenen Tools). Für nicht vertrauenswürdigen Code gibt es jetzt eine optionale Sentry-Aufteilung (DDJIT_UNTRUSTED): Der Gast läuft in einer Deny-Default-Seatbelt-Sandbox ohne Host-FS-/Netzberechtigung, während ein vertrauenswürdiger Sentry-Prozess die echten Ressourcen besitzt und Systemaufrufe über einen Shared-Memory- Ring bedient – die gVisor-Form. Es ist früh (die Kern-Dateisystemaufrufe – read/write/open/close/lseek – werden heute weitergeleitet; Sockets/exec/fork kommen), daher legt eine VM für vollständig feindlichen Code immer noch eine schmalere Oberfläche frei.

Leistung

Das gleiche statische Linux-Binary, zweimal ausgeführt auf einem Apple M5 Pro (macOS 26.3): innerhalb der Linux-VM (wie VM-basiertes Docker Container ausführt) vs. durch dd's JIT auf dem Host ohne VM. Median von 7 (make bench). Niedrigere Zeit ist besser; „dd vs VM“ > 1× bedeutet, dd ist schneller. Die dd-Spur bezahlt sogar eine kleine Cross-Prozess-Brückensteuer, die die echte Anwendung nicht hat – also sind diese konservativ.

x86-64-Container – dd vs. VM-Emulation (qemu-user; x86 auf Apple Silicon ausführen bedeutet Übersetzung in beiden Fällen). dd's JIT schlägt qemu in 9 von 10 Workloads, dramatisch bei Fließkomma:

WorkloadVM (qemu)dd (keine VM)dd vs VM
float n-body5,39 s0,23 s24× schneller
Mandelbrot7,81 s0,83 s9,4× schneller
Matmul8,21 s1,37 s6,0× schneller
SQLite (600k Zeilen)2,99 s1,01 s3,0× schneller
Qsort3,91 s1,68 s2,3× schneller
Memcpy2,40 s1,10 s2,2× schneller
Text-Scan (wc/grep)1,42 s1,11 s1,3× schneller
int sieve1,31 s1,04 s1,25× schneller
SHA-2562,72 s2,44 s1,1× schneller
Base644,28 s5,39 s0,79× (1,26× langsamer)

aarch64-Container – dd vs. native VM (die VM läuft arm64 mit voller nativer Geschwindigkeit – die härteste Hürde):

Tool herunterladen