اگر برای استقرار عاملهای هوش مصنوعی به ایزولاسیونی فوری و وضعیت امنیتی قابلتأیید نیاز دارید، اکنون میتوانید زمان اجرای ۵۰۰ میلیثانیهای داکر را با یک پرتاب ۱۲ میلیثانیهای جایگزین کنید. این وعده اصلی Nucleus است؛ یک محیط اجرای کانتینری مینیمال برای لینوکس که پیکربندی اعلانگر (Declarative) را بر توزیع سنتی تصاویر ترجیح میدهد.
بیشتر توسعهدهندگان با کانتینرها به عنوان راهی برای بستهبندی نرمافزار از طریق Dockerfileها و مخازن (Registries) آشنا هستند. اما Nucleus در دنیایی وارد میشود که این مدل «تصویر و توزیع» برای بارهای کاری گذرا و سریعِ هوش مصنوعی بیش از حد سنگین است. این ابزار با بهرهگیری از NixOS و توابع هسته لینوکس، تمرکز را از تصاویر تغییرپذیر به بستههای (Closures) تغییرناپذیر و بازتولیدپذیر منتقل میکند.
طبق مستندات پروژه، Nucleus جایگزینی مستقیم (Drop-in) برای داکر نیست. در عوض، این ابزار به عنوان یک محیط اجرای Sandbox سختشده عمل میکند که به runc یا gVisor نزدیکتر است. Nucleus معماری مبتنی بر Daemon را حذف کرده و در مقابل، از یک فایل باینری واحد استفاده میکند که مستقیماً فراخوانیهای fork/exec را اجرا میکند. در واقع، این سیستم بخش «تصویر و توزیع» داکر را حذف کرده تا در exchange، ایزولاسیون عمیقتر، پالیسیهای دقیقتر و بازتولیدپذیری بالاتری ارائه دهد.
عملکرد و بنچمارکها
تکاندهندهترین داده مربوط به تأخیر اجرای سرد (Cold Start Latency) است. در بنچمارکهای رودررو، Nucleus زمان استارتآپ ۱۲ میلیثانیهای را ثبت کرد، در حالی که میانگین داکر حدود ۵۰۰ میلیثانیه بود. این سرعت ۴۰ برابری برای معماریهای عامل هوش مصنوعی که برای هر تکوظیفه یک Sandbox میسازند و سپس آن را تخریب میکنند، حیاتی است.
عملکرد در حالت پایدار (Steady-state) نیز بسیار بالا باقی مانده است. هنگام تست PostgreSQL 18 (با ابزار pgbench، ۸ کلاینت، ۶۰ ثانیه، مقیاس ۵۰) روی لینوکس ۶.۱۸ x86_64، Nucleus سربار بسیار کمی نشان داد. در این بنچمارک از محیط اجرای بومی (Native) با یک دایرکتوری pgdata مونتشده از میزبان و پرچم --network host استفاده شد تا هزینه ایزولاسیون در حالت پایدار اندازهگیری شود، نه سربار شبیهسازی:
- بارهای سنگین خواندن (فقط SELECT): ورکر Nucleus به میانگین ۱۰۵,۹۶۵ تراکنش در ثانیه (TPS) با تأخیر ۰.۰۷۵ میلیثانیه رسید که کمی سریعتر از عملکرد Bare-metal (۱۰۰,۲۲۲ TPS) بود. نسخه io_uring در Nucleus به ۱۰۷,۰۳۹ TPS با تأخیر ۰.۰۷۴ میلیثانیه دست یافت.
- ترکیبی خواندن/نوشتن (TPC-B): ورکر Nucleus به میانگین ۱,۷۵۷ TPS با تأخیر ۴.۵۵ میلیثانیه رسید که از عملکرد Bare-metal (۱,۴۹۰ TPS با تأخیر ۵.۳۸ میلیثانیه) بهتر بود. نسخه io_uring در Nucleus مقدار ۱,۵۸۵ TPS را ثبت کرد.
سه حالت عملیاتی
Nucleus برای ایجاد تعادل بین سرعت و امنیت در سه حالت متمایز عمل میکند:
۱. حالت عامل (Agent Mode): حالت پیشفرض برای بارهای کاری گذرا. از Sandboxهایی با استارت سریع استفاده میکند که فایلهای زمینه (Context) از طریق tmpfs پیشپر شدهاند. این حالت اجازه کاهش سطح امنیت و بازگشت به chroot (از طریق پرچمها) را میدهد و DNS پل (Bridge) را به صورت پیشفرض روی 8.8.8.8 و 8.8.4.4 تنظیم میکند.
۲. حالت عامل سختگیر (Strict Agent Mode): نسخهای با رویکرد «بستن در صورت خطا» (Fail-closed) که با نام مستعار mitos-agent نیز شناخته میشود. این حالت امنیت کاهشیافته و شبکه بومی میزبان را ممنوع میکند. ایجاد موفق cgroup در این حالت الزامی است، استفاده از pivot_root به جای chroot اجباری است و اجرای Landlock برای محیط اجرای بومی الزامی است. با این حال، در این حالت نیازی به rootfs تولیدی Nix، بررسیهای سلامت (Health checks) یا sd_notify نیست.
۳. حالت تولید (Production Mode): سختگیرانهترین سطح برای سرویسهای طولانیمدت. این حالت نیازمند یک سیستم فایل ریشه Nix پیشساخته (Closure)، تأییدیه rootfs (Attestation) و محدودیتهای صریح حافظه است. این حالت شامل یک ناظر mini-init (با PID 1) برای جمعآوری پردازشهای زامبی و انتقال سیگنالها است و از hidepid=2 برای پنهان کردن سایر پردازشها از مسیر /proc استفاده میکند. در این حالت، هرگونه شکست در پالیسی خروجی (Egress) منجر به توقف کامل (Fatal) میشود.
یکپارچگی عمیق با NixOS
برخلاف داکر، Nucleus از اکوسیستم Nix برای تعریف محیط استفاده میکند. برای محیطهای تولید، محیط اجرا یک Closure پینشده و بازتولیدپذیر را مونت میکند. توسعهدهندگان میتوانند با استفاده از nucleus.lib.mkRootfs یک سیستم فایل مینیمال بسازند که فقط شامل بستههای ضروری مانند cacert یا curl باشد. این فرآیند یک مسیر store شامل /bin ،/lib و /etc از بستههای مشخص شده تولید میکند که شامل یک مانیفست .nucleus-rootfs-sha256 برای تأیید اعتبار است.
برای زنجیره ابزارهای تخصصی هوش مصنوعی، پروژه تابع nucleus.lib.mkAgentToolchainRootfs را ارائه میدهد. این قابلیت به لانچرهای ارائهدهنده اجازه میدهد تا بدون وابستگی به دایرکتوریهای /bin یا /usr میزبان، از یک مسیر store پینشده برای ابزارهایی مانند CLIهای Claude، Codex یا Gemini استفاده کنند. این قابلیت مخصوص حالتهای Agent و Strict-Agent است و در حالت Production برای حفظ تأییدیه سختگیرانه rootfs رد میشود.
معماری امنیتی
امنیت در Nucleus با فلسفه «رد پیشفرض» (Deny-by-default) پیاده شده است. این ابزار از چندین مکانیزم هسته لینوکس برای ایزولاسیون استفاده میکند:
- Namespaces و Cgroups v2: ایزولاسیون کامل PID، mount، شبکه، UTS، IPC، کاربر و cgroup. ایزولاسیون زمانی (Time isolation) نیز به صورت اختیاری از طریق
--time-namespaceدر دسترس است. Cgroups v2 برای اعمال محدودیتهای سختگیرانه روی CPU، حافظه، PIDها و I/O به کار میرود. - Landlock LSM: کنترل دسترسی به سیستم فایل بر اساس مسیرها از طریق پالیسیهای TOML (برای لینوکس ۵.۱۳ به بالا). پالیسیها میتوانند با SHA-256 پین شوند و پس از اعمال، غیرقابل بازگشت هستند.
- Seccomp: فیلتر کردن syscallها با استفاده از پروفایلهای JSON. Nucleus دارای یک «حالت ردیابی» (Trace mode) است که syscallهای واقعی را در یک لاگ NDJSON ثبت کرده و سپس با دستور
nucleus seccomp generateیک پروفایل لیست سفید مینیمال تولید میکند. - یکپارچگی با gVisor: برای امنیت ارتقایافته، Nucleus میتواند از gVisor (runsc) به عنوان یک هسته اپلیکیشن اختیاری استفاده کند. در این حالت، یک بسته کامل OCI (
config.json) شامل هویت پردازش، مونتها و سیمکشی مسیر cgroup تولید میشود. کاربران میتوانند پلتفرم را از طریق--gvisor-platform(شامل systrap، kvm یا ptrace) انتخاب کنند. - مدیریت امتیازات: Nucleus برای تنظیمات اولیه به عنوان root شروع به کار میکند، اما میتواند قبل از اجرای بار کاری، از طریق
--userو--groupبه یک uid/gid و گروههای تکمیلی پیکربندی شده تغییر وضعیت دهد. این موضوع برای هر دو محیط اجرای بومی و gVisor صدق میکند.
کنترل شبکه و خروجی
مدیریت شبکه در حالتهای bridge، host یا none انجام میشود. در حالت Production Bridge، یک پالیسی سختگیرانه «رد همه» (Deny-all) برای خروجیها (OUTPUT) نصب میشود. دسترسی فقط از طریق پرچمهای صریح --egress-allow (برای CIDR) یا --egress-domain داده میشود.
برای مثال، کاربر میتواند کانتینر را بهگونهای محدود کند که فقط با api.example.com روی پورت ۴۴۳ ارتباط برقرار کند. محیط اجرا در هنگام استارتآپ، دامنه را به یک آدرس IPv4 تبدیل کرده و قوانین iptables مربوطه را اعمال میکند. ورودیهای دامنه باید نامهای دقیق باشند (بدون Wildcard). پالیسی خروجی در حالت gvisor-host در دسترس نیست زیرا Nucleus در آن پیکربندی، مالک namespace شبکه نیست.
برای محیط اجرای بومی، --network bridge از دو بکاند از طریق --nat-backend پشتیبانی میکند. تنظیم auto در صورت داشتن دسترسی privileged از bridge/veth/iptables هسته و در حالت rootless از slirp4netns (NAT فضای کاربر) استفاده میکند. گزینه userspace صراحتاً slirp4netns را اجبار میکند.
ارکستراسیون و چرخه عمر
اگرچه Nucleus مخزن (Registry) ندارد، اما معادل nucleus compose را ارائه میدهد. کاربران با استفاده از یک فایل TOML میتوانند توپولوژیهای چندکانتینری را با یک گراف جهتدار بدون دور (DAG) تعریف کنند. این امر اجازه میدهد سیستم سرویسها را با ترتیب درست بالا بیاورد (مثلاً اطمینان از سلامت دیتابیس قبل از شروع وبسرور) و آنها را به ترتیب معکوس تخریب کند.
برای کارهای پسزمینه، پرچم --detach کانتینرها را به عنوان سرویسهای گذرا در systemd اجرا میکند. این کار باعث میشود لاگهای کانتینر مستقیماً وارد journald شوند و مدیریت آنها با دستوراتی مثل nucleus stop ،nucleus logs یا nucleus attach ساده شود. این سرویسهای گذرا از KillMode=mixed و TimeoutStopSec=30 برای خاموشی آرام (Graceful shutdown) استفاده میکنند. پرچم --collect تضمین میکند که واحد (Unit) پس از خروج، توسط Garbage-collector جمعآوری شود.
مکانیزمهای فنی پیشرفته
سیستم فایل و اسرار:
- FS مبتنی بر حافظه: دیسکهای کانتینر به tmpfs مپ میشوند. در حالت Agent، اینها با فایلهای زمینه پیشپر میشوند.
- مدیریت فضای کاری: پرچم
--workspaceدرخت پروژههای میزبان را در/workspaceمونت میکند. حالتها شاملbind-rw(پیشفرض)،bind-roوcopy-in-out(که تغییرات را پس از خروج همگامسازی میکند) هستند. Landlock بومی اجرای فایلها از/workspaceرا ممنوع میکند مگر اینکه--workspace-execمشخص شده باشد. - اسرار امن (Secrets): اسرار در حافظه در مسیر
/run/secretsمونت میشوند. حالت Production از صفر کردن (Zeroing) متغیرهای منبع برای امنیت بیشتر استفاده میکند. متغیرهای محیطی حساس را میتوان از طریق--env-fdارسال کرد تا از نمایش آنها درargv(که در/proc/<pid>/environقابل مشاهده است) جلوگیری شود. - پیکربندی ارائهدهنده: پرچمهای اختصاصی مانند
--provider-config-roو--provider-config-rwاجازه مونت کردن اعتبارنامههای ابری خاص (مانند.awsیا.config/gh) را در دایرکتوری home خصوصی میدهند. tmpfs مربوط به home با حالتnosuid,nodev,noexecو مود 0700 مونت میشود.
حسابرسی و تلهمتری:
- بررسی یکپارچگی: پرچم
--verify-context-integrityهش درخت زمینه منبع را قبل از اجرا بررسی میکند تا از تطابق درخت/contextاطمینان حاصل شود. حالت Production همچنین از--verify-rootfs-attestationبرای بررسی مانیفست.nucleus-rootfs-sha256پشتیبانی میکند. - جریان رویدادها: با استفاده از
--events-jsonlیا--events-fd،Nucleus رویدادهای چرخه عمر ماشینخوان شامل PID، مسیر cgroup، وضعیت خروج و آمار منابع را منتشر میکند. - مشاهدهپذیری (Observability): اگر
NUCLEUS_OTLP_ENDPOINTیاOTEL_EXPORTER_OTLP_ENDPOINTتنظیم شده باشد، محیط اجرا Spanهای چرخه عمر را از طریق OpenTelemetry (OTLP) صادر میکند. - سختسازی هسته: پرچم
--require-kernel-lockdownمیتواند از استارتآپ جلوگیری کند مگر اینکه هسته در حالتهایintegrityیاconfidentialityباشد.
مشخصات OCI و Runtime:
- تولید Bundle: برای gVisor، ابزار Nucleus یک
config.jsonاستاندارد OCI تولید میکند که شاملprocess.user،قلابهای چرخه عمر، محدودیتهای منابع و مپینگهای namespace است. این شاملnoNewPrivilegesو rlimits نیز میشود. - مدیریت ترمینال:
--terminalو--console-socketاز کنوانسیونهای OCI پیروی کرده و توصیفگر فایل PTY master را باSCM_RIGHTSبه محیط اجرا میفرستند. تغییر اندازه پنجره از ioctls مربوط به PTY استفاده میکند و SIGWINCH پیشزمینه به پردازش کانتینر منتقل میشود.
سختسازی امنیتی تکمیلی
Nucleus مجموعهای از پرچمهای دانهریز برای قفل کردن بیشتر محیط اجرا ارائه میدهد:
- پین کردن پالیسی:
--seccomp-profile-sha256،--caps-policy-sha256و--landlock-policy-sha256به اپراتورها اجازه میدهد هش فایلهای پالیسی را قبل از بارگذاری تأیید کنند تا از تغییرات غیرمجاز جلوگیری شود. - کنترل Seccomp: کاربران میتوانند بین حالت
trace(ثبت syscallها در NDJSON) و حالتenforceسوئیچ کنند. پرچم--seccomp-log-deniedدرخواست ثبت تصمیمات رد شده در لاگهای هسته را از طریقSECCOMP_FILTER_FLAG_LOGارسال میکند. - کنترل Cgroup: پرچم
--disable-cgroup-namespaceدر صورتی که یک بار کاری بهطور خاص نیاز به مشاهده سلسلهمراتب cgroup میزبان داشته باشد، قابل استفاده است.
ماژول NixOS و استقرار
ماژول NixOS ارائه شده، ایجاد واحدهای nucleus-<name>.service را خودکار میکند. این واحدها پس از network-online.target ترتیب میگیرند و در صورت تنظیم sdNotify = true از Type=notify استفاده میکنند.
ویژگیهای کلیدی این ماژول شامل:
- ایجاد خودکار Volume: وقتی
createHostPath = trueدر تعریف یک volume استفاده شود، ماژول ازsystemd-tmpfilesبرای ایجاد دایرکتوری میزبان قبل از استارتآپ استفاده میکند تا مالکیت آن با کاربر/گروه پیکربندی شده همسو باشد. - خط لوله اعتبارنامه: گزینه
credentialsبا خط لولهLoadCredentialیاLoadCredentialEncryptedدر systemd یکپارچه شده و اسرار را در مسیر اسرار کانتینر مونت میکند. - سرویسهای توپولوژی: کل توپولوژیهای چندکانتینری را میتوان به عنوان یک واحد واحد
nucleus-topology-myapp.service(از نوع oneshot و RemainAfterExit) مدیریت کرد که در هنگام شروعnucleus compose upو در هنگام توقفnucleus compose downرا اجرا میکند.
تحلیل: تغییر به سمت استقرارهای «بدون تصویر» (Zero-Image)
این معماری نشاندهنده یک تغییر قابلتوجه در نحوه تفکر ما درباره ایزولاسیون است. با حذف لایه تصویر OCI و جایگزینی آن با Nix Closures، ابزار Nucleus «پراکندگی تصاویر» (Image Sprawl) و وابستگی به مخازنی که خطوط لوله CI/CD مدرن را فلج میکند، حذف میکند.
برای صنعت عاملهای هوش مصنوعی، این یک تغییر بنیادین (Game-changer) است. توانایی اجرای یک محیط کاملاً ایزوله و سختشده امنیتی در ۱۲ میلیثانیه به این معنی است که میتوان با عاملها به جای سرورهای طولانیمدت، به عنوان توابع یکبارمصرف برخورد کرد. این کار سطح حمله (Attack Surface) را کاهش داده و تأخیر گردشکارهای عاملمحور را بهطور چشمگیری پایین میآورد.
با این حال، بهای این تحول، منحنی یادگیری تندتر است. کاربران باید با Nix و پیکربندی اعلانگر سیستم راحت باشند. این ابزاری برای توسعهدهندگان تفننی نیست، بلکه برای کسانی است که زیرساختهای امن و مقیاسپذیر عاملها را میسازند، جایی که قابلیت حسابرسی (Auditability) و بازتولیدپذیری غیرقابل مذاکره است. تمام ماشینهای وضعیت (State Machines) در Nucleus با استفاده از TLA+ و مدلچکر Apalache بهطور رسمی تأیید شدهاند تا صحت عملکرد در تمامی زیرسیستمها تضمین شود.
اگر شما یک ناوگان از عاملهای هوش مصنوعی را مدیریت میکنید، باید ارزیابی کنید که آیا سربار استارتآپ ۵۰۰ میلیثانیهای فعلی شما، پاسخدهی عاملها را محدود کرده یا هزینههای زیرساختی شما را افزایش داده است. میتوانید با تست پکیج nucleus-container از طریق Cargo یا Nix شروع کنید تا ببینید آیا ایزولاسیون مبتنی بر gVisor نیازهای امنیتی شما را برآورده میکند یا خیر.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو