Apple ha presentato uno strumento per la creazione, il caricamento e l'esecuzione di contenitori Linux su macOS. Il funzionamento dei contenitori su macOS è garantito dall'uso di macchine virtuali leggere con un kernel Linux, avviate tramite l'ipervisore Virtualization.framework. Per lavorare con i contenitori Linux sono stati proposti due pacchetti: containerization e container, scritti in Swift e rilasciati con licenza Apache 2.0.
Il pacchetto Containerization fornisce un'API a basso livello per la gestione delle immagini dei contenitori nel formato OCI, il caricamento dei contenitori da repository esterni, la creazione di un filesystem radice Ext4, la gestione delle comunicazioni di rete, la costruzione di varianti del kernel Linux a caricamento rapido, la creazione di macchine virtuali e l'avvio di singoli contenitori. I contenitori possono essere collegati a singoli indirizzi IP. Per organizzare il funzionamento dello stack di rete virtuale associato a ciascun contenitore, viene utilizzato il framework vmnet.
L'avvio della macchina virtuale richiede meno di un secondo, grazie all'uso di una configurazione ottimizzata del kernel Linux e di un ambiente di sistema ridotto con un processo init leggero chiamato vminitd. L'interazione con il processo di inizializzazione in macchina virtuale avviene tramite l'API GRPC su vsock. Questo API consente di configurare i parametri dell'ambiente di lavoro e di avviare contenitori con il contenuto scelto dall'utente o processi isolati sopra una macchina virtuale.
Il pacchetto Container è un'estensione dell'API Containerization, che implementa uno strumento di alto livello in stile Docker per creare, caricare, avviare e fermare immagini di contenitori Linux nel formato OCI. La gestione dei servizi durante l'avvio dei contenitori avviene tramite il gestore di sistema Launchd.
Lo strumento può essere utilizzato su macOS 15, ma per un funzionamento completo ed escludere problemi, è consigliato utilizzare la versione macOS 26 Beta 1. Ad esempio, su macOS 15 non è consentita l'interazione di rete diretta tra contenitori e la connessione di singoli IP ai contenitori è limitata. È possibile lavorare su sistemi ARM Apple Silicon Mac (M1/M2/M3/M4), mentre i computer basati su processori Intel non sono supportati. Per eseguire contenitori costruiti per l'architettura x86_64, viene utilizzato il traslatore di istruzioni del processore Rosetta 2.

Fonte: opennet.ru
