Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
mitos — تفرع صندوق رمل microVM بالملي ثانية لوكلاء الذكاء الاصطناعي على Kubernetes. أجهزة Firecracker VM التي تستعيد من لقطات الذاكرة في غضون ملي ثانية، وتفرع جهازًا ظاهريًا قيد التشغيل إلى N نسخة، وتحافظ على مساحات عمل متينة ومُرقّمة بالإصدارات. قابلة للاستضافة الذاتية، تعريفات موارد مخصصة تصريحية (CRDs). | Kitploit
أدوات/GitHubGitHub/mitos-run/mitos
أمن الحاوياتالتحليل الديناميكي (عزل)البرمجة النصية والأتمتةالمحاكاة الافتراضية للأمانأمن السحابةDevSecOps
GitHubmitos-run/mitos

mitos

عرض المستودع
806منذ شهر واحدتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →

حول

تفرع صندوق رمل microVM بالملي ثانية لوكلاء الذكاء الاصطناعي على Kubernetes. أجهزة Firecracker VM التي تستعيد من لقطات الذاكرة في غضون ملي ثانية، وتفرع جهازًا ظاهريًا قيد التشغيل إلى N نسخة، وتحافظ على مساحات عمل متينة ومُرقّمة بالإصدارات. قابلة للاستضافة الذاتية، تعريفات موارد مخصصة تصريحية (CRDs).

الموقع الإلكتروني
مشاركة

Mitos

Mitos

أجهزة كمبيوتر معزولة وقابلة للتفرع لعوامل الذكاء الاصطناعي الخاصة بك.
تفرع صندوق رمل MicroVM بالمللي ثانية على Kubernetes: قم بتفرع جهاز افتراضي قيد التشغيل إلى محاولات متوازية واستعادته من الذاكرة في عشرات المللي ثانية.

CI Release License Go Go Report Card Docs Discord

بداية سريعة . الوثائق . الميزات . مقارنة . المساهمة . المجتمع

Mitos SDK: إنشاء صندوق رمل microVM، تشغيل الكود، وتفرعه إلى محاولات متوازية معزولة


ما هو Mitos

يمنح Mitos لكل عامل ذكاء اصطناعي جهاز كمبيوتر معزول خاص به: microVM معزول على مستوى الأجهزة من Firecracker يقوم بتشغيل الكود غير الموثوق بأمان ويمكنك تفرعه أثناء تشغيله. يقوم التفرع المباشر بنسخ عند الكتابة بتفرع جهاز افتراضي دافئ إلى N من النسخ المستقلة في عشرات المللي ثانية، بحيث يمكن للعامل استكشاف محاولات عديدة بالتوازي من حالة مشتركة جاهزة، وتدفع فقط مقابل الصفحات التي يغيرها كل نسخة.

قم بتشغيله على مجموعة Kubernetes الخاصة بك اليوم، حيث لا يغادر كود العاملين والبيانات وبيانات الاعتماد الخاصة بك بنيتك التحتية، أو على API المستضافة بدون عقد لإدارتها. على حد علمنا، هو وقت التشغيل الوحيد الذي هو مفتوح المصدر، قابل للاستضافة الذاتية، أصلي لـ Kubernetes، وقادر على تفرع جهاز افتراضي قيد التشغيل مباشرة، كل ذلك في وقت واحد.

بداية سريعة

1. التثبيت والمصادقة```bash

pip install mitos-run export MITOS_API_KEY=sk-... # a key from https://mitos.run; no Kubernetes required

root@kitploit:~
يستخدم SDK بشكل افتراضي نقطة النهاية المستضافة. يعمل نفس الكود مقابل مجموعتك الخاصة أو خادم صندوق رمل مستقل عن طريق تعيين `MITOS_BASE_URL`. يتم حل المفتاح من الوسيطة أو `MITOS_API_KEY` ولا يتم تسجيله أبدًا.

### 2. إنشاء صندوق رمل وتشغيل الكود```python
import mitos

sb = mitos.create("python")                  # Ready microVM sandbox (~27 ms warm-claim)
print(sb.exec("echo hello").stdout)          # hello

# Files and a stateful code interpreter hang off the same flat handle.
sb.files.write("/workspace/plan.txt", "draft")
print(sb.run_code("import math; math.sqrt(144)").text)   # 12.0

المرجع الكامل: mitos.run/docs/quickstart.

3. التفرع إلى محاولات متوازية```python

N-way copy-on-write fork of the live VM: each sibling lands warm and independent.

a, b = sb.fork(2) a.exec("echo conservative > /workspace/plan.txt") b.exec("echo aggressive > /workspace/plan.txt")

sb.terminate()

root@kitploit:~
العميل غير المتزامن يعكس نفس السطح: `await mitos.aio.create("python")` يعيد `AsyncDirectSandbox` مع نفس `exec` / `run_code` / `files` / `create_pty` / `fork` / `terminate`.

تعمل `exec` و `run_code` المحظورة على إعداد husk الافتراضي. يتم تشغيل exec المتدفق (`sb.exec(..., on_stdout=...)`), والعمليات الخلفية (`sb.exec_background(...)`), و PTY التفاعلي (`sb.create_pty()`) على مسار المحرك حاليًا ويتم جلبها إلى إعداد husk الافتراضي؛ `run_code` يعيد `KernelUnavailable` مغلقًا بالفشل حتى يتم شحن النواة في صورة husk الأساسية.

### شغّلها بطريقتك

نفس المحرك، نفس API، مزيد من نقاط الدخول. العمق هو نقرة واحدة داخل [الوثائق](https://mitos.run/docs).

**كل لغة، وضعان.** كل SDK يتحدث نفس REST API لخادم الصندوق الرملي في **الوضع المباشر** (مستقل أو مستضاف)، ولكل منها أيضًا **وضع الكتلة** (`AgentRun` الذي يقود CRDs `mitos.run/v1` عبر Kubernetes API). تسمية التجمع الافتراضي متطابقة بايتًا بايت عبر الستة.

| اللغة | التثبيت | مباشر | كتلة | وثائق SDK |
|---|---|---|---|---|
| Python | `pip install mitos-run` | متزامن + غير متزامن | `AgentRun` | [sdk/python](https://github.com/mitos-run/mitos/blob/HEAD/sdk/python) |
| TypeScript | `npm i @mitos/sdk` | نعم | `AgentRun` | [sdk/typescript](https://github.com/mitos-run/mitos/blob/HEAD/sdk/typescript/README.md) |
| Go | `go get github.com/mitos-run/mitos/sdk/go` | مكتوب، متوافق مع `errors.Is` | `AgentRun` | [sdk/go](https://github.com/mitos-run/mitos/blob/HEAD/sdk/go/README.md) |
| Ruby | gem (stdlib only) | نعم | `AgentRun` | [sdk/ruby](https://github.com/mitos-run/mitos/blob/HEAD/sdk/ruby/README.md) |
| Rust | crate (blocking) | نعم | `AgentRun` | [sdk/rust](https://github.com/mitos-run/mitos/blob/HEAD/sdk/rust/README.md) |
| Java | JDK 17 (stdlib only) | نعم | `AgentRun` | [sdk/java](https://github.com/mitos-run/mitos/blob/HEAD/sdk/java/README.md) |

يتم شحن SDK الخاص بـ Go في وحدة متداخلة خاصة به (`github.com/mitos-run/mitos/sdk/go`)، لذا فإن استيراده لا يسحب المتحكم (controller) إلى بنيتك أبدًا.

**استضافة ذاتية؟ نفس الكود.** ينشر مخطط Helm نفس البوابة التي يعمل بها الخدمة المستضافة، لذا فإن البدء السريع أعلاه يعمل دون تغيير ضد مجموعتك الخاصة: وجّه `MITOS_BASE_URL` إلى بوابتك واحتفظ بكل شيء آخر. المستضاف والمستضاف ذاتيًا هما تجربة واحدة؛ فقط URL ومن يشغّله يختلفان.

**تحكم أصلي لـ Kubernetes، عندما تريده.** لفرق المنصة التي تدير التجمعات بشكل تصريحي (GitOps، أتمتة محدودة بنطاق RBAC، المشغلين)، فإن مسار `AgentRun` ذو الطبقتين يتجاوز البوابة ويقود CRDs `mitos.run/v1` عبر Kubernetes API مباشرة:```python
from mitos import AgentRun

c = AgentRun()                                   # kubeconfig or in-cluster; autodetected
sb = c.sandbox("python", ready=True)             # claims a warm sandbox, waits Ready
print(sb.exec("python -c 'print(40 + 2)'").stdout)   # 42

fork_a, fork_b = sb.fork(2)                       # fork against shared warmed state
sb.terminate()

c.sandbox("python") يقوم بإنشاء مجموعة افتراضية بشكل كسول إذا لم يكن لديك واحدة؛ استخدم pool="my-pool" لاستخدام مجموعة موجودة. الأخطاء تثير AgentRunError(code, cause, remediation). AsyncAgentRun يعكس المسارات الساخنة ويضيف create_pty() عبر WebSocket.

واجهة الأوامر و MCP.

واجهة الأوامر mitos تعمل مع البوابة المستضافة (لا حاجة لمجموعة) أو مع مجموعة Kubernetes الخاصة بك:```bash go install mitos.run/mitos/cmd/mitos@latest # requires a Go toolchain

Hosted mode: set MITOS_API_KEY, no kubeconfig required.

export MITOS_API_KEY=sk-... mitos sandbox create --pool python # create from the python template mitos sandbox exec "python3 -c 'print(42)'" mitos fork --count 2 # fork into 2 independent siblings mitos sandbox ls mitos sandbox terminate

Cluster mode (kubeconfig): target your own Kubernetes nodes.

mitos sandbox create --pool dev-default mitos run echo hello --pool dev-default

root@kitploit:~
`mitos dev up` يقوم بتشغيل مستوى تحكم محلي بأمر واحد على محرك وهمي للتطوير في وضع الكتلة. يعرض خادم MCP (`mitos-mcp`) الصناديق الرملية كأدوات MCP لأي وكيل يتحدث MCP، وتقوم [مهارة الوكيل](https://github.com/mitos-run/mitos/blob/HEAD/skills/mitos/SKILL.md) بتعليم الوكلاء المدركين للمهارات سير العمل. مصفوفة التثبيت الكاملة (سكريبت، Homebrew، deb/rpm، scoop/winget، checksums) موجودة في [mitos.run/docs/install](https://mitos.run/docs/install).

**انطلق إلى الوكيل الذي تستخدمه بالفعل.** كل محول هو واجهة رقيقة فوق نفس العمليات الأصلية (`exec`، `run_code`، `files`، `fork`)، دون اعتماد صارم على حزمة الإطار: Claude Code و opencode (خادم MCP + مهارة وكيل)، و OpenAI Agents SDK، و Claude Agent SDK، و LangChain / deepagents، و Vercel AI SDK / Pydantic AI / AutoGen / LlamaIndex (MCP قياسي)، وواجهات هجرة "تغيير استيراد واحد" للفرق التي تغادر سحابات [E2B](https://mitos.run/docs/migrating-from-e2b) أو [Daytona](https://mitos.run/docs/migrating-from-daytona). يقوم [مركز التكاملات](https://github.com/mitos-run/mitos/blob/HEAD/docs/integrations/README.md) بفهرسة كل مسار.

**قم بتثبيت المشغل.**```bash
kubectl apply -k deploy/

تقوم قاعدة kustomize المستقلة بتثبيت CRDs ووحدة التحكم (وضع husk) وDaemonSet forkd ومكون إضافي للجهاز /dev/kvm وإقلاع PKI، ويتم تطبيقها على عقدة KVM حقيقية بدون تصحيحات يدوية. يتم نشر مخطط Helm في سجل OCI على GHCR: helm install mitos oci://ghcr.io/mitos-run/charts/mitos --version 1.42.1؛ انظر deploy/charts/mitos. ثم قم بتعريف تجمع دافئ، وتفرع منه باستخدام Sandbox حيث يشير source.fromSandbox إلى جلسة مباشرة (templates):```yaml apiVersion: mitos.run/v1 kind: SandboxPool metadata: name: python-agent-pool spec: template: image: python:3.12-slim init: ["pip install numpy pandas requests"] resources: { cpu: "1", memory: "512Mi" } volumes: - { name: workspace, size: 5Gi, forkPolicy: Snapshot } warm: { min: 10 }

root@kitploit:~
**أين يعمل.** الشرط الوحيد للعقدة هو `/dev/kvm` بالإضافة إلى التصنيف `mitos.run/kvm=true`، لذلك يتم تثبيت mitos على أي مجموعة Kubernetes تحتوي على عقد KVM معدنية عارية أو افتراضية متداخلة:

| المنصة | عقدة KVM | الدليل |
|---|---|---|
| المعدن العاري (Talos, Hetzner) | `/dev/kvm` أصلي | [docs/platforms/talos-hetzner.md](https://github.com/mitos-run/mitos/blob/HEAD/docs/platforms/talos-hetzner.md) (مرجع من الدرجة الأولى) |
| AWS / EKS | `*.metal` أو مجموعات عقد افتراضية متداخلة | مخطط عام حاليًا؛ دليل لكل سحابة هو المشكلة [#919](https://github.com/mitos-run/mitos/issues/919) |
| GKE | مجموعات عقد افتراضية متداخلة | مخطط عام حاليًا؛ دليل لكل سحابة هو [#919](https://github.com/mitos-run/mitos/issues/919) |
| Azure / AKS | أحجام VM قادرة على الافتراضية المتداخلة | مخطط عام حاليًا؛ دليل لكل سحابة هو [#919](https://github.com/mitos-run/mitos/issues/919) |

المخطط وموارد CRD متطابقة عبر جميعها؛ فقط مجموعة العقدة التي توفر `/dev/kvm` هي المختلفة.

## لماذا Mitos

تحتاج أدوات العوامل (Agent harnesses) إلى بيئات سريعة ومعزولة حيث تقرأ العوامل وتكتب الملفات، وتثبت الحزم، وتشغل كود غير موثوق. كل خيار موجود يفرض مقايضة: سرعة بدون ملكية، عزل بدون تفرع (forking)، أصلي لـ Kubernetes بدون بدايات دافئة، أو متانة محبوسة داخل سحابة شخص آخر.

- **تفرع حي لـ VM قيد التشغيل.** تفرع نسخ عند الكتابة (copy-on-write) بعدة اتجاهات لماكينة VM صغيرة حية: تشارك الفروع الفرعية صفحات ذاكرة الأصل حتى تكتب، لذا يهبط كل فرع في بيئة دافئة وجاهزة. تفرع عامل واحد إلى محاولات متعددة متوازية.
- **تفعيل استدعاء دافئ بحوالي 27 مللي ثانية.** تستعيد ماكينات Firecracker microVM من لقطة ذاكرة في فئة عشرات المللي ثانية: P50 حوالي 27 مللي ثانية على عقدة المرجع المعدنية العارية، قابلة للتكرار من [`bench/husk-activate-latency.sh`](https://github.com/mitos-run/mitos/blob/HEAD/bench/husk-activate-latency.sh).
- **مفتوح المصدر، قابل للاستضافة الذاتية، أصلي لـ Kubernetes.** على حد علمنا، هو وقت التشغيل الوحيد الذي يفعل الثلاثة. تتحكم في دورة الحياة بأكملها من خلال موارد CRD تصريحية (`mitos.run`).

طريقتان لتشغيله:

- **مستضاف ذاتيًا (حاليًا):** أي مجموعة Kubernetes تحتوي على عقد KVM. بياناتك لا تغادر بنيتك التحتية أبدًا. المعدن العاري (Talos + Hetzner) هو المنصة المرجعية من الدرجة الأولى.
- **مستضاف (قيد التطوير):** نفس المحرك وواجهة API التي نديرها نحن، للفرق التي تريد مللي ثانية دون إدارة العقد.

> يوجد مساران للمحرك. **مسار husk الأصلي للبود هو الافتراضي**: تعمل كل VM في بود خاص بها غير مميز، ويقوم بود husk المصدر بأخذ لقطة لـ VM قيد التشغيل حتى تستعيدها N من البودات الفرعية عبر CoW. **مسار raw-forkd** يشغل التفرعات في محرك forkd داخل العملية. كل شيء هنا يعمل على husk الافتراضي ما لم يتم وضع علامة صريحة `engine path`.

صناديق الحماية (Sandboxes) ليست بودات. آليات Kubernetes على نطاق البود (NetworkPolicy, ResourceQuota, PSA) تحكم بود husk، وليس عبء العمل داخل microVM؛ صندوق الحماية هو VM، وليس بود husk، وحيث نقدم ما يعادله فهو موثق كخاص بنا. مسارات البيانات الكاملة للادعاء (claim) والتنفيذ (exec) ومخطط المكونات موجودة في [mitos.run/docs/architecture](https://mitos.run/docs/architecture).

## المعايير

كل رقم هنا قابل للتكرار من [`bench/`](https://github.com/mitos-run/mitos/blob/HEAD/bench/) على أجهزة KVM حقيقية؛ لا ينشر أي شيء لا يمكن للقارئ إعادة توليده (قاعدة المشروع بعدم وجود ادعاءات غير موثقة). يسمي كل صف ما يقيسه والأمر الدقيق الذي يعيد إنتاجه. توجد بيانات كل تشغيل كاملة وسياق الأجهزة في [`bench/results/`](https://github.com/mitos-run/mitos/blob/HEAD/bench/results/).

### وقت التفاعل المستضاف، مقابل مجموعة ComputeSDK المناظرة

وقت التفاعل (TTI) هو الرقم الوحيد الذي يمكن مقارنته مباشرة مع [معيار ComputeSDK](https://github.com/computesdk/benchmarks) العام الذي يتم قياس كل بائع صندوق حماية مستضاف ضده: تبدأ الساعة عند `create()` وتتوقف عندما يتم تنفيذ أمر فعليًا داخل صندوق الحماية ويعود.

| المزود | TTI P50 | القياسات |
|---|---|---|
| northflank | 95.9 مللي ثانية | منشور من ComputeSDK |
| **mitos** | **96.8 مللي ثانية** | أداتنا، `api.mitos.run` |
| daytona | 136.2 مللي ثانية | منشور من ComputeSDK |
| e2b | 365.6 مللي ثانية | منشور من ComputeSDK |

أعد إنتاج رقمنا وجدول الأقران (تتم قراءة أرقام الأقران من الالتزام غير القابل للتغيير الذي نشره ComputeSDK، وليس إعادة تشغيل من قبلنا):```sh
MITOS_API_KEY=... python3 bench/tti-latency.py 100        # our TTI, N=100
python3 bench/peer-tti.py --date 2026-07-09 \
  --ref 3eddee1a972bd49aea56fd6c16d238ca0a45dece            # the peer table

اقرأها مع المحاذير التي يذكرها السجل الكامل ولا يخفيها: هذا هو جهاز الاختبار الخاص بنا إلى جانب أرقامهم المنشورة، وليس موضعًا measured في لوحة المتصدرين الخاصة بهم؛ إنه التشغيل المتسلسل (الانفجار المتزامن من شأنه أن يستنزف مجموعة الدافئة أحادية العقدة اليوم، المشكلة #586)؛ والمطالبة بمرتبة فعلية في لوحة المتصدرين تتطلب شحن محول computesdk/computesdk (المشكلة #891). ضمن هذه الحدود، تقع منصة mitos المستضافة تحت Daytona ومستوى Northflank، 100/100 تكرار ناجح.

عندما يعمل وكيل في مجموعتك ويتفرع إلى محاولات متوازية، فإن التكلفة المهمة هي fork-to-first-exec: وقت الحائط من fork من VM مباشر إلى أمر يعود في الطفل. تم قياسها بنفس المحرك داخل العملية الذي يديره forkd:

root@kitploit:~
الطريقة الكاملة والأجهزة في [bench/README.md](https://github.com/mitos-run/mitos/blob/HEAD/bench/README.md)؛ النتائج في [2026-06-19-bare-metal-fork-exec.md](https://github.com/mitos-run/mitos/blob/HEAD/bench/results/2026-06-19-bare-metal-fork-exec.md) و [2026-06-21-kvm-perf-correctness.md](https://github.com/mitos-run/mitos/blob/HEAD/bench/results/2026-06-21-kvm-perf-correctness.md).

### تفعيل المطالبة الدافئة (المحرك، ليس الرحلة ذهابًا وإيابًا)

تفعيل الحماية الدافئة للمحرك نفسه (تحميل اللقطة + مصافحة صحة الاستنساخ + جاهزية الضيف) هو P50 ~27 مللي ثانية على عقدة المرجع المعدنية العارية، ويمكن إعادة إنتاجه من [`bench/husk-activate-latency.sh`](https://github.com/mitos-run/mitos/blob/HEAD/bench/husk-activate-latency.sh). هذا رقم أصغر ومختلف عن وقت التفاعل الكلي المُستضاف من طرف إلى طرف أعلاه؛ إن اقتباس رقم المحرك مقابل رقم واجهة برمجة التطبيقات الخاصة بالإنشاء لمنافس سيكون خطأ في التصنيف، لذلك نبقيها منفصلة.

## الميزات

مسار الحماية الأصلي (husk pod-native) هو الافتراضي. بعض الإمكانيات تعمل اليوم فقط على `مسار المحرك` (engine path) الخام المستند إلى forkd، ويتم تمييزها برابط إلى مشكلة التتبع.

### السرعة

| الإمكانية | ما تحصل عليه | التوثيق |
|---|---|---|
| تفعيل المطالبة الدافئة | P50 ~27 مللي ثانية على عقدة المرجع المعدنية العارية (تحميل اللقطة + مصافحة صحة الاستنساخ + جاهزية الضيف)؛ استعادة اللقطة ~6-16 مللي ثانية؛ حوالي 3 ميغابايت من الذاكرة الهامشية لكل استنساخ عبر مشاركة صفحات CoW | [BENCHMARKS.md](https://github.com/mitos-run/mitos/blob/HEAD/BENCHMARKS.md) |
| تجمعات ما قبل اللقطة | صور OCI مسطحة إلى نظام ملفات ext4 rootfs ومعبأة بخطوات `init` الخاصة بك قبل الالتقاط، لذلك لا توجد بداية باردة عند المطالبة | [docs/templates.md](https://github.com/mitos-run/mitos/blob/HEAD/docs/templates.md) |
| مشاركة ذاكرة CoW | تدفع مقابل الصفحات الفريدة عبر الاستنساخات، وليس مقابل النسخ | [mitos.run/docs/metering](https://mitos.run/docs/metering) |
| التوزيع المُعنوَن بالمحتوى | تسحب الاستنساخات فقط أجزاء sha256 المفقودة من حامل عبر mTLS؛ تُرسل عمليات إعادة البناء الفروق بموجب عقد توافق الإصدار | [docs/snapshot-distribution.md](https://github.com/mitos-run/mitos/blob/HEAD/docs/snapshot-distribution.md) |

### العزل

| الإمكانية | ما تحصل عليه | التوثيق |
|---|---|---|
| عزل الأجهزة لكل جلسة | نواة مخصصة لكل صندوق حماية (KVM/Firecracker)؛ على مسار husk الافتراضي، يعمل كل جهاز افتراضي في حزمة (pod) خاصة به غير مميزة ومقيدة بـ PSA، وهو حدود كل جهاز افتراضي | [mitos.run/docs/threat-model](https://mitos.run/docs/threat-model) |
| لا وراثة سرية صامتة | يتم رفض الاستنساخ المباشر لصناديق الحماية الحاملة للأسرار ما لم يتم السماح بها صراحةً؛ يتم حقن بيانات الاعتماد عند وقت المطالبة عبر vsock، ولا تُخبز أبدًا في اللقطات | [mitos.run/docs/threat-model](https://mitos.run/docs/threat-model) |
| رفض الصادر افتراضيًا | مرشح nftables افتراضي للرفض داخل الحزمة في مساحة الاسم الخاصة بالحزمة (مستقل عن CNI)، مع حظر غير مشروط لبيانات التعريف السحابية (169.254.169.254) وقائمة سماح لكل قالب حسب IP:المنفذ وبالاسم عبر وكيل DNS داخل الحزمة. تم التحقق منه من طرف إلى طرف على مجموعة KVM حقيقية؛ لا يمكن للضيف التأثير على التنفيذ | [mitos.run/docs/networking](https://mitos.run/docs/networking) |
| التشفير في حالة السكون | حاويات LUKS2 لكل نطاق مع التدمير بالتشفير وتغليف المغلف KMS (خلف `--enable-encryption`، فشل مغلق)؛ المفاتيح المدعومة بـ HSM ونطاق مساحة العمل لكل منها متابعات | [docs/encryption.md](https://github.com/mitos-run/mitos/blob/HEAD/docs/encryption.md) |

### تجربة الوكيل (Agent DX)

| الإمكانية | ما تحصل عليه | التوثيق |
|---|---|---|
| تنفيذ الحظر | stdout صحيح ورمز الخروج عبر واجهة برمجة تطبيقات الصندوق الحماية | [mitos.run/docs/cli](https://mitos.run/docs/cli) |
| تنفيذ الدفق وPTY | stdout/stderr المتزايد، العمليات الخلفية، وطرفية WebSocket تفاعلية مقيدة بالرمز (`مسار المحرك`) | [mitos.run/docs/cli](https://mitos.run/docs/cli) |
| مترجم الكود | `run_code` مع نواة حالة ونتائج غنية متعددة MIME، في كل SDK وخادم MCP؛ `KernelUnavailable` فشل مغلق حتى يتم شحن النواة في صورة husk الأساسية | [mitos.run/docs/mcp](https://mitos.run/docs/mcp) |
| أخطاء مفهومة لـ LLM | كل فشل يحمل `{code, cause, remediation}`، يتم تحليله بواسطة SDKs إلى `AgentRunError` منظم | [docs/api/errors.md](https://github.com/mitos-run/mitos/blob/HEAD/docs/api/errors.md) |

### أصلي لـ Kubernetes

| الإمكانية | ما تحصل عليه | التوثيق |
|---|---|---|
| تعريفات CRD التصريحية | `SandboxPool` و `Sandbox` (مصدر poolRef/fromSandbox/fromRevision) و `Workspace`/`WorkspaceRevision` في `mitos.run/v1` مع طوبولوجيا الحجم وسلوك الاستنساخ | [docs/templates.md](https://github.com/mitos-run/mitos/blob/HEAD/docs/templates.md) |
| التنفيذ الأصلي للحزمة | كل جهاز افتراضي لكل صندوق حماية يعمل في حزمة غير مميزة (`/dev/kvm` من إضافة جهاز، وليس `privileged`)، لذلك طلبات وحدة المعالجة المركزية/الذاكرة هي حقيقة المجدول و PSA يحكم الحزمة | [mitos.run/docs/threat-model](https://mitos.run/docs/threat-model) |
| الجدولة الواعية بالسعة | تعبئة الحاويات CoW على حاملي الدفء، ميزانية تجاوز واعية بـ CoW، سقف `MaxSandboxes` لمنع DoS على المضيف مع حجز فتحة ذري، وضغط خلفي `NoCapacity` مكتوب بدلاً من نفاد الذاكرة للعقدة | [docs/scheduling.md](https://github.com/mitos-run/mitos/blob/HEAD/docs/scheduling.md) |
| التوسع التلقائي المُدار بالطلب | `SandboxPool.spec.autoscale` يوسع عدد حزم husk الخاملة إلى `clamp(inUse + targetSpare, minWarm, maxWarm)` مع فترة تباطؤ لمكافحة الاختلاج؛ تجمع ثابت هو فقط `minWarm == replicas` | [docs/scheduling.md](https://github.com/mitos-run/mitos/blob/HEAD/docs/scheduling.md) |
| دلالات الفشل وجمع القمامة | انتهاء صلاحية المطالبة، مسح الأجهزة الافتراضية اليتيمة، التوفيق بعد إعادة تشغيل المتحكم، انتزاع تعطل forkd عبر سجل على القرص، التعامل مع فقدان العقدة، وضغط خلفي التشبع، كلها مثبتة في CI | [docs/failure-gc.md](https://github.com/mitos-run/mitos/blob/HEAD/docs/failure-gc.md) |

### الحالة الدائمة

| الإمكانية | ما تحصل عليه | التوثيق |
|---|---|---|
| مساحات عمل دائمة قابلة للاستنساخ | تعريفات CRD `Workspace`/`WorkspaceRevision`: حالة وكيل دائمة، مُرقمة، قابلة للاستنساخ مستقلة عن أي صندوق حماية. `/workspace` يُرطب عند البدء وتنقح مُرسَلة تُجفف عند الإنهاء عبر مخزن المُعنون بالمحتوى. تم التحقق من إنشاء -> إرسال -> استنساخ على مجموعة KVM حقيقية | [mitos.run/docs/workspaces](https://mitos.run/docs/workspaces) |
| المخرجات والفرق | `spec.lifetime.onTerminate.outputs` يضيق التجفيف إلى الأشجار الفرعية المدرجة؛ `{diff: true}` يسجل فرق تجزئة المحتوى مقابل رأس الأصل | [mitos.run/docs/workspaces](https://mitos.run/docs/workspaces) |
| موعد Git | مخرج `{git}` يدفع فروع كل محاولة إلى جهاز تحكم عن بعد للالتقاء (يدفع المحرك؛ يدمج إنسان أو CI). جهد أفضل على husk اليوم | [mitos.run/docs/workspaces](https://mitos.run/docs/workspaces) |
| عنوان URL لبيئة التطوير | `mitos workspace serve <ws> --pool P` يُطالب دافئًا بصندوق حماية مستنسخ مرتبط بمساحة العمل ويعيد عنوان URL جاهزًا `https://<label>.<expose-domain>/`؛ كل جلسة مستنسخة تحصل على عنوان URL خاص بها | [docs/recipes/dev-environment.md](https://github.com/mitos-run/mitos/blob/HEAD/docs/recipes/dev-environment.md) |

### قابل للتشغيل

| الإمكانية | ما تحصل عليه | التوثيق |
|---|---|---|
| المقاييس والتتبع | مقاييس Prometheus للعقدة والمتحكم، تتبع OpenTelemetry لكل مطالبة (`--otlp-endpoint`)، وسجل تدقيق منظم قابل للتبديل (`--audit-log`) يسجل الأمر/المسار وعدد البايتات، وليس المحتوى أو الأسرار | [mitos.run/docs/observability](https://mitos.run/docs/observability) |
| القياس الواعي بـ CoW | مجموعة صفحات القالب المشتركة تُحسب مرة واحدة، وليس مرة لكل استنساخ، لذلك تعكس الفوترة والجدولة البصمة المادية الصادقة | [mitos.run/docs/metering](https://mitos.run/docs/metering) |
| أدوات المشغل | إضافة `kubectl mitos` (`ls`/`ps`) وتقرير `GET /v1/metering` التشغيلي | [mitos.run/docs/observability](https://mitos.run/docs/observability) |
| المعدن العاري من الدرجة الأولى | Talos + Hetzner هو النظام الأساسي المرجعي | [docs/platforms/talos-hetzner.md](https://github.com/mitos-run/mitos/blob/HEAD/docs/platforms/talos-hetzner.md) |
| التشغيل الأول لمستخدم واحد | بداية سريعة لـ k3s مع بوابة دخول مستخدم واحد (لضمان الجودة فقط، وليس للإنتاج) | [docs/platforms/k3s-quickstart.md](https://github.com/mitos-run/mitos/blob/HEAD/docs/platforms/k3s-quickstart.md) |

## المقارنة

جدول الأرقام المباشر ينتمي هنا فقط عندما يمكن لأدواتنا إعادة توليده ضد المنافسين الفعليين على نفس الأجهزة، مع نصوص في هذا المستودع. هذه الأداة هي [#15](https://github.com/mitos-run/mitos/issues/15). الأرقام أدناه هي **أرقام منشورة لبائعين آخرين، لعمليات مختلفة، على أجهزة مختلفة، بمنهجية مختلفة**: لم نقم بقياسها وليست ادعاءً مباشرًا.

| وقت التشغيل | الرقم المنشور (لهم، ليس لنا) | العملية التي يصفونها |
|---|---|---|
| Mitos (لنا، مقاس) | ~27 مللي ثانية P50 | تفعيل المطالبة الدافئة على عقدة المرجع المعدنية العارية |
| E2B | ~150 مللي ثانية | إنشاء صندوق حماية |
| Daytona | أقل من 90 مللي ثانية | إنشاء من لقطة |
| Modal | أقل من ثانية | إنشاء صندوق حماية |
| CodeSandbox SDK | ~863 مللي ثانية / ~495 مللي ثانية | استنساخ حي / استئناف الذاكرة |
| Fly Machines | < 1 ثانية | بدء آلة |

ما هو قابل للمقارنة وحقيقي اليوم هو خريطة باريتو النوعية: الجمع بين المصدر المفتوح، القابل للاستضافة الذاتية، الأصلي لـ k8s، والاستنساخ الحي من اللقطة هو المحور الذي يكون Mitos فريدًا فيه.

| | Mitos | E2B | Modal | Daytona | Morph | Cloudflare | Box | Agent Sandbox | Kata/KubeVirt | raw Firecracker |
|---|---|---|---|---|---|---|---|---|---|---|
| عزل الأجهزة لكل جلسة | KVM microVM | microVM | gVisor | حاوية/VM | microVM | V8 isolate | VM | خيار Kata | KVM | KVM |
| استنساخ لقطة للحالة الجارية | نعم، أساسي | لقطة/استئناف | لقطات ذاكرة | لا | نعم (Infinibranch) | لا | استنساخ قرص | لا | لا | DIY |
| مطالبات بالمللي ثانية من تجمع دافئ | نعم (مركز التصميم) | تجمعات دافئة | تجمعات دافئة | مساحات عمل | نعم | عزلة فورية | غير منشور | 1-3 ثوانٍ بارد | ثوانٍ | DIY |
| مساحات عمل دائمة قابلة للاستنساخ | Workspace CRD | لا | وحدات تخزين | مساحات عمل | نعم، خاص | نعم (قرص) | لا | PVCs | PVCs | لا |
| واجهة برمجة تطبيقات أصلية لـ Kubernetes | CRDs | SaaS API | SaaS API | SaaS/OSS | SaaS API | SaaS API | واجهة سطر أوامر أصلية للوكيل | CRDs | CRDs | لا |
| قابل للاستضافة الذاتية | نعم، أي مجموعة KVM | OSS جزئي | لا | نواة OSS | لا | لا | لا | نعم | نعم | نعم |
| خيار مستضاف | مخطط (نفس المحرك) | نعم | نعم | نعم | نعم | نعم | نعم (فقط) | لا | لا | لا |
| بياناتك تبقى على بنيتك التحتية | نعم (مستضاف ذاتيًا) | لا | لا | جزئي | لا | لا | لا | نعم | نعم | نعم |
| مفتوح المصدر | Apache 2.0 | جزئي | لا | جزئي | لا | لا | لا | Apache 2.0 | Apache 2.0 | Apache 2.0 |

وقت تشغيل SaaS (E2B, Modal, Daytona, Cloudflare) سريع، لكن كود وكلائك وبياناتهم وبيانات اعتمادهم تعمل على بنية تحتية لشخص آخر دون مسار استضافة ذاتية بقدرة مكافئة. بنى Morph نموذج الحالة الصحيح (فرع/استعادة) كسحابة خاصة؛ هدفنا الأساسي (Workspace) يستهدف نفس الدلالات، مفتوح المصدر، بسرعات fork(2). Agent Sandbox (k8s-sigs) يفوز بمعيار Kubernetes API دون محرك استنساخ لقطة، ولهذا نرسل واجهة توافق (`cmd/facade`) لنكون أسرع نهاية خلفية له بدلاً من محاربته ([docs/facade-conformance.md](https://github.com/mitos-run/mitos/blob/HEAD/docs/facade-conformance.md)). Kata و KubeVirt و raw Firecracker يعطونك أساسيات العزل ويتركون لك التجمع، الاستنساخ، التوزيع، وطبقات واجهة برمجة تطبيقات الوكيل كمشكلتك.

إذا تفوق بديل علينا في محور تهتم به وليس لدينا خط خريطة طريق يغلقه، فهذا خطأ في استراتيجيتنا: افتح مشكلة.

## الهندسة المعمارية

يشغّل Mitos أجهزة Firecracker الافتراضية الدقيقة، ويستنسخها من خلال لقطات نسخ عند الكتابة، ويكشف دورة الحياة بأكملها من خلال تعريفات CRD تصريحية (`SandboxPool`, `Sandbox`, `Workspace`) في مجموعة واجهة برمجة تطبيقات `mitos.run/v1`. صندوق الحماية هو جهاز افتراضي دقيق، وليس حزمة: يحصل على عزل الأجهزة من خلال KVM، ولا تحكمه آليات على مستوى الحزمة (NetworkPolicy, ResourceQuota, PSA).

الأجزاء:

- **المتحكم** (Deployment): يوفق تعريفات CRD، يختار عقدة، ويقود `forkd`. يتتبع عُقد الاستنساخ المتاحة من خلال سجل يُغذى بنبضات القلب الخاصة بالسعة لكل عقدة.
- **forkd** (DaemonSet): الشيطان لكل عقدة الذي يملك الأجهزة الافتراضية. يخدم gRPC على `:9090` للمتحكم (استنساخ، تحضير تجمع، نبض قلب) وواجهة برمجة تطبيقات صندوق الحماية HTTP على `:9091` لحركة التنفيذ والملفات. يحتاج `/dev/kvm`، لذلك يعمل فقط على العُقد القادرة على KVM.
- **وكيل الضيف**: PID 1 داخل كل جهاز افتراضي دقيق. يتحدث بروتوكول vsock للتنفيذ، الملفات، البيئة، وإشعارات الاستنساخ.
- **sandbox-server**: نفس محرك الاستنساخ خلف واجهة برمجة تطبيقات REST عادية، دون حاجة إلى Kubernetes، للحلقات المحلية والاستخدام على مضيف واحد.
- **SDKs** (`sdk/python`, `sdk/typescript`, `sdk/go`، والمزيد): عملاء للخدمة المستضافة، مجموعة، أو `sandbox-server`.

مساران ساخنان يحملان النظام:

- **مسار المطالبة**: يختار المتحكم عقدة دافئة من السجل ويستدعي `forkd` عبر gRPC `Fork`؛ صندوق الحماية الناتج يبلغ عن الجاهزية عبر واجهة برمجة تطبيقات HTTP الخاصة بـ `forkd` على تلك العقدة.
- **مسار التنفيذ**: SDK أو CLI يتحدث إلى `forkd` على `:9091`، الذي يربط عبر vsock إلى وكيل الضيف داخل الجهاز الافتراضي.

الاستنساخ هو الأساس: يتم التقاط لقطة لجهاز افتراضي مصدر مرة واحدة ويستعيد N من الأطفال من تلك اللقطة من خلال نسخ عند الكتابة، لذلك يهبط كل شقيق دافئًا ومستقلاً بينما تُخزن صفحات القالب المشتركة وتُقاس مرة واحدة. لأن Firecracker يحتاج إلى افتراضية الأجهزة، فإن المعدن العاري (Talos على Hetzner هو النظام الأساسي المرجعي) هو هدف من الدرجة الأولى؛ تبقى لوحة التحكم السحابية على العُقد العادية بينما يهبط التنفيذ على آلات قادرة على KVM.

## حالة المشروع

تطوير مبكر، قبل الإصدار 1.0 (أحدث إصدار `v0.3.0`). لا تقم بتشغيل كود غير موثوق في الإنتاج بعد: لم تكن هناك مراجعة أمنية خارجية وبعض ضوابط العزل لا تزال مفتوحة (انظر [نموذج التهديد](https://mitos.run/docs/threat-model) للحالة الدقيقة لكل حد). لوحة التحكم حقيقية من طرف إلى طرف، مثبتة في CI ضد محركات وهمية وأجهزة Firecracker حقيقية، ويُتمرن عليها على مجموعة KVM أحادية العقدة من Talos.

**تم التحقق منه على مجموعة KVM حقيقية (مسار husk الافتراضي):** تفعيل المطالبة الدافئة، تنفيذ الحظر، `run_code` يفشل مغلقًا مع `KernelUnavailable`، الشفاء الذاتي / إعادة التعليق، تسخين التجمع بالإضافة إلى التوسع التلقائي بالطلب، استنساخ صندوق حماية حي (حزمة المصدر husk تلتقط لقطة لجهازها الافتراضي وتستعيدها N من حزم الأطفال عبر CoW، كل طفل مستقل جاهز)، مساحات عمل دائمة قابلة للاستنساخ (إنشاء -> إرسال -> استنساخ)، وعزل صادر الحزمة (رفض افتراضي، حظر بيانات التعريف السحابية، قائمة السماح لكل قالب).

**ذيول متتبعة ليست بعد على مسار husk الافتراضي:** تنفيذ الدفق وPTY التفاعل؛ خطافات لقطة ذاكرة للجهاز الافتراضي الحي لرؤوس مساحة العمل القابلة للاستئناف؛ اختيار تخزين حي لـ S3/التشفير؛ دفع مساحة عمل husk `{git}`؛ والعقد المتعددة N>1 (مصمم، تم التحقق منه على عقدة واحدة).

[ROADMAP.md](https://github.com/mitos-run/mitos/blob/HEAD/ROADMAP.md) هو المصدر الوحيد لما تم إنجازه، قيد التقدم، أو معلق. القاعدة التشغيلية: هذا المستودع لا يصف أبدًا نظامًا غير موجود.

## التطوير المحلي (لا حاجة إلى KVM)

`mitos dev up` يشغل مجموعة kind محلية على لوحة تحكم وهمية و CLI `mitos` يقود مسار المطالبة الكامل؛ المحرك الوهمي يوفق المطالبات إلى `Ready` ويمارس إرسال لوحة التحكم، لكن تنفيذ `exec` حقيقي داخل الجهاز الافتراضي يحتاج إلى عقدة مع `/dev/kvm`. للحلقة REST بدون مجموعة، قم بتشغيل `go run ./cmd/sandbox-server --mock --addr :8080` ووجه Python SDK إليه. الدليل الكامل لـ kind موجود في [mitos.run/docs/cli](https://mitos.run/docs/cli).

## التوثيق

التوثيق الكامل موجود في **[mitos.run/docs](https://mitos.run/docs)**: دليل البدء السريع، الهندسة المعمارية، مرجع SDK و CLI، دورة حياة صندوق الحماية، مساحات العمل، الشبكات، ونموذج التهديد، كلها معروضة من هذا المستودع.

الذيل الطويل الكامل (القوالب، تنسيق اللقطة وتوزيعها، التشفير والأسرار، الجدولة والكثافة، الفشل وجمع القمامة، صحة محرك الاستنساخ، الوصفات، ومواصفات واجهة برمجة تطبيقات الإصدار 2 المستهدفة) موجود في [`docs/`](https://github.com/mitos-run/mitos/blob/HEAD/docs/) في هذا المستودع. منهجية القياس موجودة في [BENCHMARKS.md](https://github.com/mitos-run/mitos/blob/HEAD/BENCHMARKS.md).

## المساهمة

المساهمات مرحب بها. انظر [CONTRIBUTING.md](https://github.com/mitos-run/mitos/blob/HEAD/CONTRIBUTING.md) و [CLAUDE.md](https://github.com/mitos-run/mitos/blob/HEAD/CLAUDE.md) للاتفاقيات، وصفحة [المشكلات](https://github.com/mitos-run/mitos/issues) للعمل المتتبع مقابل [ROADMAP.md](https://github.com/mitos-run/mitos/blob/HEAD/ROADMAP.md).

## الأمان

نموذج التهديد مع حالة كل حد موجود في [mitos.run/docs/threat-model](https://mitos.run/docs/threat-model)؛ لم تحدث مراجعة أمنية خارجية بعد، والوثيقة تقول بالضبط ما هو مفتوح. للإبلاغ عن ثغرة، انظر [SECURITY.md](https://github.com/mitos-run/mitos/blob/HEAD/SECURITY.md).

## الترخيص

[Apache 2.0](https://github.com/mitos-run/mitos/blob/HEAD/LICENSE).
تنزيل الأداة
المقياسالعددالوصف
fork -> first execP50 ~104 ms (reference node), ~67 ms on reflink + NVMefork واحد مباشر إلى طفل جاهز لخدمة exec
fork(n) fan-out~56 ms P50 per child at n=4 and n=16قاعدة دافئة واحدة تتفرع إلى N من الأشقاء المستقلين
CoW memory density8 forks cost ~35 MiB resident, not ~209 MiBالصفحات الفريدة تُدفع ثمنها، الصفحات المشتركة تُحسب مرة واحدة
go build -o /tmp/bench ./cmd/bench/
/tmp/bench --mode fork-exec --template --data-dir --iterations 100 # fork -> first exec
/tmp/bench --mode fork-fanout --template --data-dir --fanout-n 1,4,16 # 1-to-N fan-out