Компания Apple представи инструменти за създаване, зареждане и изпълнение на Linux контейнери в macOS. Работата с контейнерите в macOS се осигурява чрез използване на леки виртуални машини с Linux ядро, стартирани с помощта на хипервизора Virtualization.framework. За работа с Linux контейнери са предложени два пакета — containerization и container, написани на Swift и налични с лицензия Apache 2.0.
Пакетът Containerization предоставя нискоуровневен API за управление на контейнерни образи във формат OCI, зареждане на контейнери от външни репозитории, създаване на коренова файлова система Ext4, осигуряване на мрежова комуникация и сборка на бързо зареждащи се варианти на Linux ядрото, създаване на виртуални машини и стартиране на отделни контейнери в тях. Контейнерите могат да бъдат свързвани с отделни IP адреси. За организиране на работата на виртуалния мрежови стек, свързан с всеки контейнер, е използвана рамката vmnet.
Стартирането на виртуална машина отнема по-малко от секунда, благодарение на оптимизирана конфигурация на Linux ядрото и намалена системна среда с лек init процес vminitd. Взаимодействието с процеса на инициализация в виртуална машина се осъществява чрез API GRPC върху vsock. Този API позволява настройване на параметрите на работната среда и стартиране на контейнери с избрано от потребителя съдържание или отделни изолирани процеси върху виртуалната машина.
Пакетът Container представлява надстройка над API Containerization, реализираща високопоставен инструментариум в стил Docker за създаване, зареждане, стартиране и спиране на образи на Linux контейнери във формат OCI. Управлението на услугите при стартиране на контейнерите се осъществява с помощта на системния мениджър Launchd.
Инструментариумът може да се използва в macOS 15, но за пълноценно функциониране и избягване на проблеми се препоръчва използването на версия macOS 26 Beta 1. Например, в macOS 15 не работи директната мрежова комуникация между контейнерите и е ограничено привързването на отделни IP адреси към контейнерите. Възможна е работа на ARM системи Apple Silicon Mac (M1/M2/M3/M4), компютри на база Intel процесори не се поддържат. За стартиране на контейнери, събрани за архитектура x86_64, се използва транслатор на процессорни инструкции Rosetta 2.

Източник: opennet.ru
