Spoločnosť Apple predstavila nástroj na vytváranie, nahrávanie a spúšťanie Linuxových kontajnerov v macOS. Prevádzka kontajnerov v macOS je zabezpečená pomocou ľahkých virtuálnych strojov s jadrom Linux, spustených pomocou hypervízora Virtualization.framework. Pre prácu s Linuxovými kontajnermi sú k dispozícii dva balíky - containerization a container, napísané v jazyku Swift a otvorené pod licenciou Apache 2.0.
Balík Containerization poskytuje nízkoúrovňové API na správu obrazov kontajnerov vo formáte OCI, nahrávanie kontajnerov z externých repozitárov, tvorbu koreňového súborového systému Ext4, zabezpečenie sieťovej interakcie, zostavovanie rýchlo spustiteľných variantov jadra Linux, vytváranie virtuálních strojů a spúšťanie v nich jednotlivých kontajnerov. Kontajnery je možné pripájať k jednotlivým IP adresám. Na organizáciu práce virtuálnej sieťovej stohy, pripojenej k každému kontajneru, je použitý rámec vmnet.
Na spustenie virtuálneho stroja sa minie menej ako sekunda, vďaka použitiu optimalizovanej konfigurácie jadra Linux a orezaného systémového prostredia s ľahkým init procesom vminitd. Interakcia s procesom inicializácie v virtuálnom stroji sa realizuje cez API GRPC nad vsock. Toto API umožňuje nastaviť parametre pracovného prostredia a spustiť nad virtuálnym strojom kontajnery s výberom používateľa alebo jednotlivými izolovanými procesmi.
Balík Container predstavuje nadstavbu nad API Containerization, realizujúcu vysokú úroveň nástroja v štýle Docker na vytváranie, nahrávanie, spúšťanie a zastavenie obrazov Linuxových kontajnerov vo formáte OCI. Správa služieb pri spustení kontajnerov sa vykonáva pomocou systémového správcu Launchd.
Nástroj je možné používať v macOS 15, avšak pre plnohodnotnú prácu a vylúčenie výskytu problémov sa odporúča používať verziu macOS 26 Beta 1. Napríklad v macOS 15 nefunguje priamy sieťový prenos medzi kontajnermi a obmedzené je aj pripájanie jednotlivých IP k kontajnerom. Možná je práca na ARM systémoch Apple Silicon Mac (M1/M2/M3/M4), počítače na báze procesorov Intel nie sú podporované. Na spustenie kontajnerov zostavených pre architektúru x86_64 sa používa prekladač procesorových inštrukcií Rosetta 2.

Zdroj: opennet.ru
