پرش به محتوای اصلی
پرش به محتوای مقاله

چرا اپل برای اجرای کانتینرهای لینوکس از ماشین‌های مجازی سبک استفاده کرد؟

·۵ تیر ۱۴۰۵۵ دقیقه مطالعه
ابزار متن‌باز اپل برای اجرای کانتینرهای لینوکس به‌صورت ماشین‌های مجازی سبک در پردازنده‌های اپل سیلیکون
ابزار متن‌باز اپل برای اجرای کانتینرهای لینوکس به‌صورت ماشین‌های مجازی سبک در پردازنده‌های اپل سیلیکون
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

جایگزینی مدل «هسته مشترک» داکر با مدل «یک ماشین مجازی برای هر کانتینر» در محیط مک، که منجر به جداسازی کامل امنیتی و آزادسازی واقعی حافظه پس از توقف هر نمونه می‌شود.

اگر از داکر دسکتوپ خسته شده‌اید و می‌خواهید هر سرویس را در محیطی کاملاً ایزوله اجرا کنید، ابزار جدید اپل دقیقاً برای شماست. تصور کنید به جای یک آپارتمنت بزرگ که همه در آن مشترک‌اند، برای هر مهمان یک ویلای کوچک و مجزا می‌سازید تا امنیت به حداکثر برسد.

طبق مستندات منتشر شده در marktechpost.com، تیم پژوهشی اپل ابزاری متن‌باز به نام container را معرفی کرده است که با زبان سویفت (Swift) نوشته شده و به جای تکیه بر معماری‌های سنتی، برای هر کانتینر یک ماشین مجازی سبک (Lightweight VM) ایجاد می‌کند. در معماری‌های سنتی کانتینرها از یک هسته مشترک استفاده می‌کنند، اما در مدل اپل، هر محیط جداسازی کامل یک ماشین مجازی را دارد که سطح حملات امنیتی را به‌شدت کاهش می‌دهد.

همان‌طور که در تحلیل‌های پیشین ما درباره امنیت محیط‌های توسعه اشاره کردیم، جداسازی سخت‌افزاری همیشه امن‌تر از جداسازی نرم‌افزاری است. برای سال‌ها، توسعه‌دهندگان مک به ابزارهایی مثل داکر دسکتوپ (Docker Desktop) متکی بودند که معمولاً یک ماشین مجازی سنگین و همیشه فعال را برای میزبانی از تمام کانتینرها اجرا می‌کرد. اما ابزار جدید اپل این بار اضافیات (Overhead) را حذف کرده است؛ به طوری که سیستمی ایجاد شده که در آن هزینه حافظه در حالت بیکاری تقریباً صفر است، زیرا کانتینرهای متوقف شده، اثر (Footprint) خود را به‌طور کامل آزاد می‌کنند.

این ابزار به‌طور اختصاصی برای اپل سیلیکون (Apple Silicon) ساخته شده و از مک‌های اینتل پشتیبانی نمی‌کند. container تحت لایسنس Apache 2.0 منتشر شده است. اگرچه این ابزار روی macOS 15 اجرا می‌شود، اما برای بهره‌مندی از تمام قابلیت‌های مجازی‌سازی و بهبودهای شبکه، نیاز به macOS 26 دارد. این ابزار با چارچوب‌های اصلی macOS ادغام شده است و برای مدیریت ماشین‌های مجازی از Virtualization framework و برای شبکه از vmnet framework استفاده می‌کند.

زمینه و معماری

موتور زمان اجرا (The Runtime Engine)

این ابزار برای مدیریت سطح پایین کانتینرها، تصاویر و فرآیندها از بسته متن‌باز Containerization Swift استفاده می‌کند. بر اساس مستندات فنی، برای ارتباط بین پردازش‌ها (IPC) از XPC و برای مدیریت سرویس‌ها از launchd بهره می‌برد. همچنین اعتبارنامه‌های ریجستری توسط خدمات Keychain مدیریت می‌شوند تا امنیت دسترسی‌ها حفظ شود.

لایه کنترل (The Control Plane)

سیستم از چندین بخش متحرک تشکیل شده است. با اجرای دستور container system start ابتدا container-apiserver به عنوان یک Launch Agent فعال می‌شود. سپس این سرور یک کمکی XPC به نام container-core-images را برای مدیریت تصاویر محلی و ذخیره‌سازی محتوا فراخوانی می‌کند. در کنار این‌ها، container-network-vmnet برای مدیریت شبکه مجازی‌سازی فعال می‌گردد. در نهایت، برای هر کانتینر مجزایی که ایجاد شود، یک نمونه از container-runtime-linux اجرا می‌گردد تا محیط اجرای لینوکسی را فراهم کند.

مشخصات فنی و قابلیت‌ها

  • سازگاری تصاویر: این ابزار تصاویر سازگار با استاندارد OCI را مصرف و تولید می‌کند. این بدان معناست که شما می‌توانید مستقیماً از داکر هاب (Docker Hub) یا گیتهاب کانتینر ریجستری (GitHub Container Registry) تصویر دریافت کنید. همچنین می‌توانید تصاویری که به‌صورت محلی ساخته‌اید را به هر ریجستری استانداردی ارسال (Push) کنید.
  • منابع پیش‌فرض: هر نمونه به‌طور پیش‌فرض با ۱ گیگابایت رم و ۴ پردازنده (CPU) شروع می‌شود. با این حال، کاربران می‌توانند این مقادیر را از طریق خط فرمان تغییر دهند؛ برای مثال با دستور container run --rm --cpus 8 --memory 32g big می‌توان منابع را افزایش داد.
  • پشتیبانی معماری: این ابزار هم از تصاویر arm64 و هم x86-64 پشتیبانی می‌کند. تصاویر x86-64 از طریق لایه ترجمه روزیتا (Rosetta) اجرا می‌شوند. این قابلیت اجازه می‌دهد تا یک تصویر واحد را برای هر دو محیط اپل سیلیکون و سرورهای x86-64 بسازید.
  • موتور ساخت: برای ساخت تصاویر از BuildKit استفاده می‌کند که در یک کانتینر سازنده (Builder Utility Container) اختصاصی اجرا می‌شود. کاربران می‌توانند اندازه این ماشین مجازی را برای ساخت‌های سنگین با دستور container builder start --cpus 8 --memory 32g تنظیم کنند.

یکی از مهم‌ترین اضافات در نسخه ۱.۰.۰، معرفی «ماشین‌های کانتینری» (Container Machines) است. این‌ها محیط‌های لینوکسی پایداری هستند که از تصاویر OCI ساخته شده‌اند و سیستم‌فایل آن‌ها پس از چرخه‌های توقف و شروع مجدد، حفظ می‌شود (Persistent). در این حالت، پوشه Home کاربر مک به داخل متصل (Mount) شده و کاربر لاگین شده در لینوکس به‌طور خودکار با حساب کاربری مک مطابقت می‌کند. هر تصویری که شامل مسیر /sbin/init باشد، واجد شرایط تبدیل شدن به یک ماشین کانتینری است.

تغییرات نسخه ۱.۰.۰

  • پیکربندی: تنظیمات سیستم به یک فایل TOML در مسیر ~/.config/container/config.toml منتقل شده است.
  • تغییرات CLI: زیردستورهای container system property get و set از ابزار حذف شده‌اند.
  • اتوماسیون: این ابزار اکنون از خروجی‌های ساختاریافته JSON، YAML و TOML برای دستورات list و inspect پشتیبانی می‌کند تا ادغام با سایر ابزارهای اتوماسیون آسان‌تر شود.

مقایسه‌ی Apple container با Docker Desktop

برخلاف مدل هسته مشترک در داکر دسکتوپ، container جداسازی سخت‌گیرانه‌ای فراهم می‌کند. برای مثال، شما می‌توانید کدهای نامطمئن را از یک تصویر ناشناس، بدون اینکه هسته میزبان (Host Kernel) را در معرض خطر قرار دهید، ایزوله کرده و اجرا کنید؛ زیرا هر کانتینر در ماشین مجازی خودش اجرا می‌شود.

اما این مدل هزینه دارد: در حال حاضر هیچ قابلیت داخلی برای داکر کامپوز (Docker Compose) وجود ندارد و برخی کاربران ممکن است با مشکل «تورم حافظه» (Memory Ballooning) مواجه شوند. به دلیل اینکه چارچوب مجازی‌سازی macOS تنها از تورم حافظه جزئی پشتیبانی می‌کند، صفحاتی که در داخل کانتینر آزاد می‌شوند، همیشه به میزبان برنمی‌گردند. این یعنی در بارهای کاری بسیار سنگین، ممکن است نیاز به ری‌استارت‌های گاه‌به‌گاه باشد.

این تغییر به این معناست که توسعه‌دهندگان اکنون می‌توانند یک سرویس را در ماشین مجازی ایزوله خود اجرا کرده و پورت آن را به یک آدرس لوکال (Loopback) منتقل کنند. برای مثال با دستور ساده: container run -d -p 127.0.0.1:8080:8000 node:latest. همچنین در macOS 26 امکان ایجاد شبکه‌های ایزوله با دستور container network create foo --subnet 192.168.100.0/24 فراهم شده است، تا اطمینان حاصل شود کانتینرهای موجود در شبکه‌های مختلف نمی‌توانند با هم ارتباط برقرار کنند.

برای یک توسعه‌دهنده معمولی، این حرکت تأییدی بر روند حرکت به سمت «میکرو-ماشین‌های مجازی» (micro-VMs) برای ارتقای امنیت است. با پذیرفتن تأخیری اندک در زمان بوت — که اپل ادعا می‌کند اکنون با ماشین‌های مجازی مشترک قابل مقایسه است — جهشی بزرگ در حریم خصوصی و امنیت خواهید داشت. دیگر نیازی نیست کل پوشه Home خود را با یک ماشین مجازی عظیم و یکپارچه به اشتراک بگذارید؛ بلکه می‌توانید فقط داده‌های مورد نیاز هر VM را از طریق پرچم --volume متصل کنید.

این ابزار برای اجرای تک‌کانتینرهایی که نیاز به ایزولاسیون بالا دارند، ایده‌آل است. کسانی که در جریان‌های کاری پیچیده Compose غرق شده‌اند، فعلاً داکر دسکتوپ را به دلیل اکوسیستم بالغ‌ترش کاربردی‌تر می‌بینند، اما مسیر بومی اپل، «دیوار پرداخت» (Commercial Paywall) یا هزینه‌های تجاری مرتبط با ابزارهای سازمانی کانتینر را حذف می‌کند.

گام بعدی شما

  • اگر از مک‌های سری M استفاده می‌کنید و در حال بهینه‌سازی استک توسعه محلی هستید، توانایی این ابزار در اجرای تصاویر چند-معماری (Multi-arch) را برای استقرار در دیتاسنتر تست کنید.
  • برای کارهای حساس امنیتی، به جای داکر، از این ابزار برای اجرای ایمیج‌های ناشناس استفاده کنید تا هسته سیستم‌عامل شما در امان بماند.
  • بررسی کنید که آیا نیاز شما به مدیریت شبکه‌های پیچیده است یا جداسازی کامل هر سرویس برای افزایش حریم خصوصی.

اما نقطه حساس بعدی این است که آیا اپل معادل بومی برای Compose می‌سازد یا این ابزار را صرفاً روی اجرای سبک و ایزوله متمرکز نگه می‌دارد؛ تحولی که می‌تواند جایگاه داکر را در اکوسیستم مک به چالش بکشد.

چرا این موضوع مهم است؟

این ابزار اعتماد توسعه‌دهندگان را با تکیه بر اعتبار چارچوب‌های بومی اپل جلب می‌کند و امنیت اجرای کدهای ناشناس را به سطح سخت‌افزاری می‌برد. این تغییر می‌تواند منجر به کاهش سهم بازار ابزارهای تجاری کانتینری در اکوسیستم macOS شود.

تأثیر برای ایران

این ابزار به دلیل متن‌باز بودن و عدم نیاز به حساب کاربری خاص، برای توسعه‌دهندگان ایرانی که با محدودیت‌های پرداخت در داکر دسکتوپ مواجه‌اند، جایگزینی رایگان و بومی برای مک است.

·نگاه ما
تحریریه دات‌هوش

اپل با این حرکت، مفهوم «کانتینر» را از یک ابزار بهینه‌ساز حافظه به یک ابزار امنیتی تبدیل کرده است. این رویکرد نشان می‌دهد که اپل ترجیح می‌دهد کمی از کارایی (به دلیل هزینه بوت VM) بکاهد تا کنترل کاملی بر ایزولاسیون داشته باشد. در واقع، اپل در حال بازتعریف استانداردهای توسعه محلی است تا توسعه‌دهنده را از وابستگی به لایه‌های میانی نرم‌افزاری مانند داکر رها کند.

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.