Společnost Apple představila nástroje pro vytváření, nahrávání a provozování Linux kontejnerů na macOS. Provoz kontejnerů na macOS je zajištěn pomocí lehkých virtuálních strojů s linuxovým jádrem, které jsou spouštěny pomocí hypervizoru Virtualization.framework. Pro práci s Linux kontejnery jsou k dispozici dva balíčky – containerization a container, napsané v jazyce Swift a vydané pod licencí Apache 2.0.
Balíček Containerization poskytuje nízkoúrovňové API pro správu obrazů kontejnerů ve formátu OCI, nahrávání kontejnerů z externích repozitářů, vytváření kořenového FS Ext4, zajištění síťové interakce a sestavování rychlejších variant linuxového jádra. virtuálních strojů a spuštění v nich jednotlivých kontejnerů. K jednotlivým IP adresám lze přiřazovat kontejnery. Pro organizaci práce virtuálního síťového zásobníku, který je připojen k každému kontejneru, je využit rámec vmnet.
Spuštění virtuálního stroje trvá méně než sekundu díky použití optimalizované konfigurace linuxového jádra a zjednodušeného systémového prostředí s lehkým init procesem vminitd. Interakce s procesem inicializace se virtuálním stroji provádí prostřednictvím API GRPC přes vsock. Toto API umožňuje nastavování parametrů pracovního prostředí a spuštění kontejnerů s uživatelem zvoleným obsahem nebo jednotlivými izolovanými procesy nad virtuálním strojem.
Balíček Container představuje nadstavbu nad API Containerization, která implementuje vysoceúrovňové nástroje ve stylu Docker pro vytváření, nahrávání, spuštění a zastavení obrazů Linux kontejnerů ve formátu OCI. Správa služeb při spuštění kontejnerů je realizována pomocí systémového správce Launchd.
Nástroje lze používat v macOS 15, ale pro plnou funkčnost a prevenci problémů se doporučuje používat verzi macOS 26 Beta 1. Například v macOS 15 nefunguje přímá síťová interakce mezi kontejnery a je omezena možnost přiřadit jednotlivé IP k kontejnerům. Je možná práce na ARM systémech Apple Silicon Mac (M1/M2/M3/M4), počítače založené na procesorech Intel nejsou podporovány. Pro spuštění kontejnerů sestavených pro architekturu x86_64 se používá překladač procesorových instrukcí Rosetta 2.

Zdroj: opennet.ru
