Compania Apple a lansat un instrument pentru crearea, încărcarea și execuția containerelor Linux în macOS. Funcționarea containerelor în macOS este asigurată prin utilizarea unor mașini virtuale ușoare cu kernel Linux, care sunt pornite prin intermediul hypervisor-ului Virtualization.framework. Pentru lucrul cu containerele Linux, sunt oferite două pachete - containerization și container, scrise în limbajul Swift și deschise sub licența Apache 2.0.
Pachetul Containerization oferă un API de nivel scăzut pentru gestionarea imaginilor containerelor în format OCI, încărcarea containerelor din depozite externe, crearea unui sistem de fișiere root Ext4, asigurarea interacțiunii de rețea, compilarea variantelor rapid încărcabile ale kernel-ului Linux, crearea mașini virtuale și lansarea în acestea a unor containere separate. Containerele pot fi asociate cu adrese IP specifice. Pentru organizarea funcționării stivei de rețea virtuale, legată de fiecare container, este utilizat framework-ul vmnet.
Pornirea unei mașini virtuale durează mai puțin de o secundă, datorită utilizării unei configurații optimizate a kernel-ului Linux și a unui mediu sistemic redus cu un proces init ușor, vminitd. Interacțiunea cu procesul de inițializare în mașina virtuală se realizează prin API GRPC pe vsock. Acest API permite configurarea parametrilor de mediu de lucru și lansarea deasupra mașinii virtuale a containerelor cu conținutul ales de utilizator sau a unor procese izolate separate.
Pachetul Container reprezintă o suprastructură peste API-ul Containerization, implementând un instrumentar de nivel înalt în stil Docker pentru crearea, încărcarea, lansarea și oprirea imaginilor containerelor Linux în format OCI. Gestionarea serviciilor la pornirea containerelor se realizează prin intermediul managerului de sistem Launchd.
Instrumentul poate fi utilizat în macOS 15, dar pentru o funcționare optimă și pentru a evita problemele, se recomandă utilizarea versiunii macOS 26 Beta 1. De exemplu, în macOS 15 nu funcționează interacțiunea de rețea directă între containere și este limitată asocierea IP-urilor specifice cu containerele. Este posibilă utilizarea pe sistemele ARM Apple Silicon Mac (M1/M2/M3/M4), iar computerele cu procesoare Intel nu sunt acceptate. Pentru pornirea containerelor create pentru arhitectura x86_64, se utilizează traductorul de instrucțiuni procesor Rosetta 2.

Sursa: opennet.ro
