Firma Apple zaprezentowała narzędzie do tworzenia, uruchamiania i działania kontenerów Linux w macOS. Działanie kontenerów w macOS zapewniane jest dzięki zastosowaniu lekkich maszyn wirtualnych z jądrem Linux, uruchamianych za pomocą hypervisora Virtualization.framework. Do pracy z kontenerami Linux zaproponowano dwa pakiety — containerization i container, napisane w języku Swift i udostępnione na licencji Apache 2.0.
Pakiet Containerization zapewnia niskopoziomowe API do zarządzania obrazami kontenerów w formacie OCI, pobierania kontenerów z zewnętrznych repozytoriów, tworzenia systemu plików Ext4, zapewniania komunikacji sieciowej, budowy szybkich wersji jądra Linux, tworzenia maszyn wirtualnych i uruchamiania w nich odrębnych kontenerów. Kontenery można łączyć z poszczególnymi adresami IP. Aby zorganizować działanie wirtualnego stosu sieciowego przypisanego do każdego kontenera, wykorzystano framework vmnet.
Uruchomienie maszyny wirtualnej zajmuje mniej niż sekundę, dzięki zastosowaniu zoptymalizowanej konfiguracji jądra Linux i uproszczonego środowiska systemowego z lekkim procesem init vminitd. Interakcja z procesem inicjalizacji w maszynie wirtualnej jest realizowana za pomocą API GRPC na vsock. To API pozwala konfigurować parametry środowiska roboczego i uruchamiać nad maszyną wirtualną kontenery z wybraną przez użytkownika zawartością lub odrębnymi, izolowanymi procesami.
Pakiet Container jest rozszerzeniem API Containerization, które implementuje zaawansowane narzędzia w stylu Dockera do tworzenia, ładowania, uruchamiania i zatrzymywania obrazów kontenerów Linux w formacie OCI. Zarządzanie usługami podczas uruchamiania kontenerów odbywa się za pomocą menedżera systemowego Launchd.
Narzędzie może być używane w macOS 15, ale dla pełnej funkcjonalności i zapobieganiu problemom zaleca się korzystanie z wersji macOS 26 Beta 1. Na przykład, w macOS 15 nie działa bezpośrednia komunikacja sieciowa między kontenerami, a przypisanie poszczególnych IP do kontenerów jest ograniczone. Możliwe jest działanie na systemach ARM Apple Silicon Mac (M1/M2/M3/M4); komputery z procesorami Intel nie są obsługiwane. Do uruchamiania kontenerów zaadaptowanych do architektury x86_64 używany jest translator instrukcji procesora Rosetta 2.

Źródło: opennet.ru
