Apple ha introdotto un toolkit per la creazione, il caricamento e l'esecuzione di container Linux su macOS. I container su macOS sono basati su macchine virtuali leggere con kernel Linux, avviate tramite l'hypervisor Virtualization.framework. Per lavorare con i container Linux, vengono offerti due pacchetti: containerization e container, scritti in Swift e open source con licenza Apache 2.0.
Il pacchetto Containerization fornisce un'API di basso livello per la gestione delle immagini dei contenitori OCI, il caricamento dei contenitori da repository esterni, la creazione di un file system root Ext4, la fornitura di reti, la creazione di varianti del kernel Linux ad avvio rapido e la creazione macchine virtuali e avviare singoli container al loro interno. I container possono essere associati a singoli indirizzi IP. Il framework vmnet viene utilizzato per organizzare lo stack di rete virtuale associato a ciascun container.
La macchina virtuale impiega meno di un secondo per avviarsi grazie a una configurazione ottimizzata del kernel Linux e a un ambiente di sistema ridotto all'essenziale con il processo di inizializzazione leggero vminitd. L'interazione con il processo di inizializzazione in macchina virtuale Implementato tramite l'API GRPC su vsock. Questa API consente di configurare l'ambiente operativo e avviare container con payload selezionati dall'utente o processi separati e isolati sulla macchina virtuale.
Il pacchetto Container è una sovrastruttura basata sulla Containerization API, che implementa strumenti di alto livello in stile Docker per la creazione, il caricamento, l'avvio e l'arresto di immagini di container Linux in formato OCI. I servizi vengono gestiti all'avvio dei container tramite il gestore di sistema Launchd.
Il toolkit può essere utilizzato in macOS 15, ma per la piena funzionalità e per evitare problemi, si consiglia di utilizzare macOS 26 Beta 1. Ad esempio, in macOS 15, l'interazione di rete diretta tra i container non funziona e l'associazione dei singoli IP ai container è limitata. È possibile lavorare su sistemi Mac Apple Silicon basati su ARM (M1/M2/M3/M4), mentre i computer basati su processori Intel non sono supportati. Per eseguire container creati per l'architettura x86_64, viene utilizzato il traduttore di istruzioni del processore Rosetta 2.

Fonte: opennet.ru
