مایکروسافت اولین بروزرسانی پایدار شاخه توزیع جدید CBL-Mariner 2.0 (Common Base Linux Mariner) را منتشر کرده است که به عنوان یک پلتفرم پایه جهانی برای محیط های لینوکس مورد استفاده در زیرساخت های ابری، سیستم های لبه و سرویس های مختلف مایکروسافت در حال توسعه است. این پروژه با هدف یکسان سازی راه حل های لینوکس مورد استفاده در مایکروسافت و ساده سازی نگهداری سیستم های لینوکس برای اهداف مختلف به روز است. توسعه های این پروژه تحت مجوز MIT توزیع می شود. بستهسازیها برای معماریهای aarch64 و x86_64 تولید میشوند.
نسخه جدید به دلیل به روز رسانی قابل توجه نسخه های برنامه قابل توجه است. از جمله نسخه های به روز شده هسته لینوکس 5.15 (در شاخه 1.0 از هسته 5.4 استفاده شد)، systemd 250، glibc 2.35، GCC 11.2، clang 12، Python 3.9، ruby 3.1.2، rpm 4.17، qemul 6.1، qemul . , ostree 5.34. مخزن هسته شامل اجزای رابط کاربری گرافیکی مانند Wayland 2022.1، Mesa 1.20، GTK 21.0 و X.Org Server 3.24 است که قبلا در یک مخزن coreui جداگانه ارسال شده بودند. بیلدهای هسته با وصله های PREEMPT_RT برای استفاده در سیستم های بلادرنگ اضافه شد.
توزیع CBL-Mariner مجموعه استاندارد کوچکی از بستههای پایه را ارائه میکند که به عنوان پایهای جهانی برای ایجاد محتویات کانتینرها، محیطهای میزبان و سرویسهای در حال اجرا در زیرساختهای ابری و دستگاههای لبه عمل میکنند. راهحلهای پیچیدهتر و تخصصیتر را میتوان با افزودن بستههای اضافی در بالای CBL-Mariner ایجاد کرد، اما اساس همه این سیستمها یکسان است و تعمیر و نگهداری و بهروزرسانی را آسانتر میکند. به عنوان مثال، CBL-Mariner به عنوان پایه ای برای توزیع کوچک WSLg استفاده می شود که اجزای پشته گرافیکی را برای اجرای برنامه های رابط کاربری گرافیکی لینوکس در محیط های مبتنی بر زیرسیستم WSL2 (زیر سیستم ویندوز برای لینوکس) فراهم می کند. عملکرد گسترده در WSLg از طریق گنجاندن بسته های اضافی با Weston Composite Server، XWayland، PulseAudio و FreeRDP تحقق می یابد.
سیستم ساخت CBL-Mariner به شما این امکان را میدهد که هم بستههای RPM مجزا را بر اساس فایلهای SPEC و کد منبع، و هم تصاویر سیستم یکپارچه تولید شده با استفاده از جعبه ابزار rpm-ostree و بهروزرسانی اتمی بدون تقسیم به بستههای جداگانه تولید کنید. بر این اساس، دو مدل تحویل بهروزرسانی پشتیبانی میشود: از طریق بهروزرسانی بستههای فردی و از طریق بازسازی و بهروزرسانی کل تصویر سیستم. یک مخزن تقریباً 3000 بسته RPM از پیش ساخته شده در دسترس است که می توانید از آن برای ساخت تصاویر خود بر اساس یک فایل پیکربندی استفاده کنید.
توزیع تنها شامل ضروری ترین اجزا است و برای حداقل مصرف حافظه و فضای دیسک و همچنین سرعت بارگذاری بالا بهینه شده است. این توزیع همچنین به دلیل گنجاندن مکانیسم های مختلف اضافی برای افزایش امنیت قابل توجه است. این پروژه از رویکرد "حداکثر امنیت به طور پیش فرض" استفاده می کند. فیلتر کردن تماس های سیستم با استفاده از مکانیزم seccomp، رمزگذاری پارتیشن های دیسک و تأیید بسته ها با استفاده از امضای دیجیتال امکان پذیر است.
حالتهای تصادفیسازی فضای آدرس که در هسته لینوکس پشتیبانی میشوند، و همچنین مکانیسمهای حفاظتی در برابر حملات symlink، mmap، /dev/mem و /dev/kmem فعال میشوند. نواحی حافظه که حاوی بخش هایی با داده های هسته و ماژول هستند روی حالت فقط خواندنی تنظیم شده و اجرای کد ممنوع است. یک گزینه اختیاری غیرفعال کردن بارگیری ماژول های هسته پس از مقداردهی اولیه سیستم است. جعبه ابزار iptables برای فیلتر کردن بسته های شبکه استفاده می شود. در مرحله ساخت، محافظت در برابر سرریزهای پشته، سرریز بافر و مشکلات قالب بندی رشته به طور پیش فرض فعال است (_FORTIFY_SOURCE، -fstack-protector، -Wformat-security، relro).
سیستم مدیر systemd برای مدیریت خدمات و بوت استفاده می شود. مدیران بسته RPM و DNF برای مدیریت بسته ارائه شده اند. سرور SSH به طور پیش فرض فعال نیست. برای نصب توزیع، نصب کننده ای ارائه شده است که می تواند در دو حالت متنی و گرافیکی کار کند. نصب کننده گزینه نصب با مجموعه کامل یا اولیه بسته ها را فراهم می کند و یک رابط برای انتخاب پارتیشن دیسک، انتخاب نام میزبان و ایجاد کاربران ارائه می دهد.
منبع: opennet.ru