Apple a (enfin) ajouté une fonction des Mac Apple Silicon au noyau de macOS Ventura, qui va permettre d'améliorer les performances dans le cadre de la virtualisation. Mais elle n'est pas encore utilisable malheureusement.
Une fonction déjà employée avec Asahi Linux
C'est Longhorn qui l'indique sur Twitter : macOS prend enfin en charge le vGIC des Mac. Vous n'avez pas compris ? C'est probablement normal. Le vGIC (pour Virtual Generic Interrupt Controller) est une fonction matérielle qui améliore la gestion des périphériques dans une machine virtuelle.
De façon très schématique, une interruption est un signal émis par le matériel qui va autoriser l'arrêt du programme en cours pour exécuter une tâche importante. Actuellement, les frameworks d'Apple effectuent cette tâche de façon logicielle : les interruptions sont traitées par l'hôte puis transférées à la machine virtuelle. Avec le vGIC, les interruptions sont envoyées directement à la machine virtuelle avec de meilleures performances à la clé. Nous avons déjà évoqué cette fonction dans un article au sujet d'Asahi Linux : il s'agit d'une des fonctions prises en charge par les puces d'Apple que macOS n'utilise pas.
Certaines fonctions des Apple M1 et M2 marchent sous Linux… et pas sous macOS
Selon Longhorn, les puces M1 (et M2 logiquement) disposent bien de la fonction, et le noyau de macOS a été mis à jour pour en profiter, probablement avec la dernière mise à jour en date. Mais pour le moment, elle n'est pas encore utilisée : le framework Hypervisor d'Apple — un ensemble d'API dédiées à la virtualisation — n'en tire pas encore parti. Nous ne savons pas si cette fonction apparaîtra dans une mise à jour mineure de macOS Ventura (13.4 par exemple) ou s'il faudra attendre la sortie du successeur de l'OS actuel pour en profiter.