Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
dd — Пользовательское ядро Linux на основе JIT, которое запускает контейнеры нативно на macOS с Apple Silicon без виртуальной машины. Замена Docker Engine API с возможностью прямой подстановки, обеспечивающая изоляцию контейнеров, оверлейные образы и публикацию портов. | Kitploit
Инструменты/GitHubGitHub/ricccrd/dd
Безопасность контейнеровДинамический анализ (песочница)Обратная инженерияВиртуализация для безопасностиDevSecOpsАнализ Бинарных Файлов
GitHubricccrd/dd

dd

Пользовательское ядро Linux на основе JIT, которое запускает контейнеры нативно на macOS с Apple Silicon без виртуальной машины. Замена Docker Engine API с возможностью прямой подстановки, обеспечивающая изоляцию контейнеров, оверлейные образы и публикацию портов.

Репозиторий
25852714 дней назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

dd

dd

Запуск контейнеров Linux на macOS без виртуальной машины.

Скачать Платформа Лицензия Сайт


Что такое dd?

dd запускает контейнеры Linux нативно на macOS с Apple Silicon без виртуальной машины. Нет ядра Linux и нет гипервизора под капотом: JIT транслирует код контейнера и обрабатывает его системные вызовы Linux в пользовательском пространстве (линия gVisor / PRoot). JIT является ядром Linux для гостя — пространства имён, cgroups, слои оверлейных образов и сеть поддерживаются как состояние пользовательского пространства. Он говорит на Docker Engine API, так что обычный CLI docker управляет им.

Вычисления контейнера выполняются как нативные инструкции Apple Silicon; только его системные вызовы интерпретируются. Нет VM для загрузки, нет демона-в-VM, нет затрат на виртуализацию.

Сайт и документация: https://ricccrd.github.io/dd/

make jit                                          # build.rs компилирует и подписывает JIT
DD_IMAGES=/path/to/images cargo run -p dd-daemon  # запуск демона
export DOCKER_HOST=unix://$PWD/dd.sock
docker run -p 8080:80 -m 256m alpine sh -c 'echo hi from $(hostname)'

Возможности

  • Нет виртуальной машины. Нет гипервизора, нет ядра Linux, нет VM, которая постоянно занимает память. Инструкции гостя выполняются нативно на arm64; только граница системных вызовов перехватывается и обслуживается в пользовательском пространстве.
  • Docker «из коробки». dd реализует Docker Engine API. Укажите DOCKER_HOST на его сокет, и ваши существующие команды docker run / ps / images / build будут работать без изменений.
  • JIT — это ядро. Пространства имён, cgroups, слои оверлейных образов и сеть — обычное состояние пользовательского пространства — ядро в пользовательском пространстве в духе gVisor / PRoot, без затрат VM.
  • Три рантайма гостя, один движок. Нативные образы Linux arm64; образы Linux x86-64 через JIT (jit86), который декодирует x86, синтезирует флаги и снижает SSE/x87 на NEON (бинарники glibc работают); и гости macOS arm64 (ddcli mac) — ни в одном из них нет VM.
  • Реальная изоляция контейнеров. Оверлейные слои образов (copy-up / .wh. whiteout, объединённые getdents), VFS с изоляцией путей без TOCTOU, пространства имён PID / UTS / USER, частная loopback netns с публикацией портов -p и ограничения памяти + процессов через cgroups (OOM при достижении лимита).
  • Десктопное приложение, без прав root. Нативное приложение GTK4 (dd-app) и CLI dd устанавливают фоновый демон для каждого пользователя и docker context — всё работает из $HOME, никогда не требуется sudo.

Почему JIT, а не VM?

Любой другой способ запуска контейнеров Linux на Mac — Docker Desktop, Colima, Rancher, OrbStack — загружает Linux VM под гипервизором и запускает демон внутри неё. Эту VM вы оплачиваете весь день. dd избавляется от неё: контейнер — обычный процесс macOS, чьи системные вызовы обслуживаются ядром Linux в пользовательском пространстве.

dd — ядро в пользовательском пространстве (JIT)VM-based Docker (Desktop / Colima / …)
Базовая модельJIT обслуживает системные вызовы Linux в пользовательском пространстве (линия gVisor)Полноценное ядро Linux внутри гипервизора VM
Потребление RAM в простоеНет — освобождается при выходе из контейнераГигабайты зарезервированы для VM, всегда включены
ЗапускЗапуск процесса — не нужно загружать VMСначала загрузить Linux VM + демон внутри
Bind-mount / файловый ввод-выводПрямая работа с файловой системой хоста через изоляцию путейМост virtiofs/gRPC-FUSE через границу VM
Публикация портовНапрямую к сокетам хостаЧерез слой NAT/форвардинга VM
Потребление батареи / в фонеНичего не выполняется, когда нет контейнераVM работает вхолостую и расходует батарею
Размер для распространения и обновленияНет ядра Linux — не нужно отслеживать CVEВключает, обновляет и отслеживает целое ядро Linux
НаблюдаемостьОбычный процесс macOS — sample, debug, Activity MonitorНепрозрачная VM; нагрузка невидима для инструментов хоста

Выигрыш структурный: вычисления гостя выполняются как нативные инструкции Apple Silicon (нет слоя аппаратной виртуализации на горячем пути), а пресловутое узкое место общего доступа к файлам Docker Desktop — мост virtiofs/FUSE между macOS и VM — просто не существует, потому что VFS dd является файловой системой хоста за изоляцией путей.

Честный компромисс: ядро в пользовательском пространстве настолько полно, насколько реализованы системные вызовы, и сегодня по умолчанию гость работает в одном процессе — это быстро и правильно для кода, которому вы доверяете (ваше окружение разработки, CI, ваши собственные инструменты). Для недоверенного кода теперь существует опциональный разделённый sentry (DDJIT_UNTRUSTED): гость работает в песочнице Seatbelt с запретами по умолчанию, не имея полномочий на файловую систему/сеть хоста, а доверенный процесс sentry владеет реальными ресурсами и обслуживает системные вызовы через кольцо разделяемой памяти — форма gVisor. Это рано (основные системные вызовы для файлов — read/write/open/close/lseek — уже работают; сокеты/exec/fork внедряются), так что для полностью враждебного кода VM всё ещё предоставляет меньшую поверхность атаки.

Производительность

Один и тот же статический бинарник Linux, запущенный двумя способами на Apple M5 Pro (macOS 26.3): внутри Linux VM (как VM-основанные Docker запускают контейнеры) и через JIT dd на хосте без VM. Медиана из 7 замеров (make bench). Меньшее время лучше; «dd vs VM» > 1× означает, что dd быстрее. Замеры dd дополнительно платят небольшой налог на межпроцессное взаимодействие, которого нет у реального приложения — так что эти цифры консервативны.

Контейнеры x86-64 — dd vs эмуляция VM (qemu-user; запуск x86 на Apple Silicon означает трансляцию в любом случае). JIT dd побеждает qemu на 9 из 10 нагрузок, особенно в вычислениях с плавающей точкой:

НагрузкаVM (qemu)dd (без VM)dd vs VM
float n-body5.39s0.23sбыстрее в 24×
mandelbrot7.81s0.83sбыстрее в 9.4×
matmul8.21s1.37sбыстрее в 6.0×
SQLite (600k строк)2.99s1.01sбыстрее в 3.0×
qsort3.91s1.68sбыстрее в 2.3×
memcpy2.40s1.10sбыстрее в 2.2×
text-scan (wc/grep)1.42s1.11sбыстрее в 1.3×
int sieve1.31s1.04sбыстрее в 1.25×
SHA-2562.72s2.44sбыстрее в 1.1×
base644.28s5.39s0.79× (в 1.26× медленнее)
Скачать инструмент