ساموئل کارپ، مهندس آمازون که توزیع لینوکس Bottlerocket و فناوریهای جداسازی کانتینر را برای AWS توسعه میدهد، در حال توسعه یک runtime جدید مبتنی بر محیطهای زندان FreeBSD برای ارائه راهاندازی مجزای کانتینرهایی است که مطابق با ابتکار مشخصات OCI (کانتینر باز) طراحی شدهاند. . این پروژه به عنوان آزمایشی است، در زمان آزاد از کار اصلی توسعه یافته است و هنوز در مرحله نمونه اولیه است. کد در Go نوشته شده و تحت مجوز BSD توزیع می شود.
پس از رساندن توسعه به سطح مناسب، پروژه به طور بالقوه می تواند به سطحی برسد که به شما امکان می دهد از runj برای جایگزینی زمان اجرا معمولی در سیستم های Docker و Kubernetes استفاده کنید و از FreeBSD به جای لینوکس برای اجرای کانتینرها استفاده کنید. از زمان اجرا OCI، دستورات در حال حاضر برای ایجاد، حذف، شروع، خاتمه اجباری و ارزیابی وضعیت کانتینرها اجرا می شوند. پر کردن کانتینر بر اساس محیط FreeBSD استاندارد یا حذف شده ایجاد می شود.
از آنجایی که مشخصات OCI هنوز از FreeBSD پشتیبانی نمی کند، این پروژه تعدادی پارامتر اضافی مرتبط با پیکربندی زندان و FreeBSD ایجاد کرده است که قرار است برای گنجاندن در مشخصات OCI اصلی ارسال شوند. برای مدیریت زندان، از ابزارهای jail، jls، jexec، kill و ps از FreeBSD بدون دسترسی مستقیم به تماسهای سیستم استفاده میشود. برنامه های آینده شامل افزودن پشتیبانی برای مدیریت محدودیت منابع از طریق رابط RCTL هسته است.
علاوه بر زمان اجرا خود، یک لایه آزمایشی نیز در مخزن پروژه برای استفاده با کانتینر زمان اجرا (مورد استفاده در Docker) در حال توسعه است که برای پشتیبانی از FreeBSD اصلاح شده است. یک ابزار ویژه برای تبدیل rootfs های FreeBSD به یک تصویر ظرف سازگار با OCI ارائه شده است. تصویر ایجاد شده را می توان بعداً به کانتینر وارد کرد.
منبع: opennet.ru