Accéder au contenu principal

Un hyperviseur Apple avec des capacités supplémentaires uniques

Festival FOSS du vendredi UTM est un hyperviseur pratique pour les Mac et les fondleslabs Apple, mais c’est bien plus que cela. Il possède des compétences très particulières. Nous en sommes assez séduits.

UTM est un hyperviseur de bureau pour le kit Apple – notamment pour les Mac avec macOS 11 ou version ultérieure, mais il prend également en charge certains appareils iOS. (Malheureusement, Le Reg FOSS Desk n’a aucun nouveau ou assez puissant pour essayer cela.) Il prend en charge les Mac x86-64 et Apple Silicon, mais il peut faire plus que la plupart des autres hyperviseurs. À en juger par la citation d’Alan Turing sur sa page Github, nous pensons que le nom signifie Universal Turing Machine.

Entre autres choses, UTM peut servir d’interface à l’hyperviseur intégré d’Apple, une fonctionnalité de macOS 10.10 ou version ultérieure, appelée simplement Hyperviseur. À lui seul, l’hyperviseur Apple offre des fonctionnalités utiles : par exemple, il permet aux machines virtuelles Linux d’appeler Rosetta 2 pour une traduction très rapide de x86-64 vers Arm64. Cependant, UTM prend également en charge d’autres formes de virtualisation.

L'édition Arm64 de Debian fonctionnant sur un iMac basé sur Intel est beaucoup plus facile à réaliser avec UTM qu'avec QEMU sans assistance.

L’édition Arm64 de Debian fonctionnant sur un iMac basé sur Intel est beaucoup plus facile à réaliser avec UTM qu’avec QEMU non assisté (cliquez pour agrandir)

Il existe bien sûr déjà un choix d’hyperviseurs de bureau pour Mac : VMware Fusion, Parallels Desktop et bien sûr le multiplateforme VirtualBox. La plupart sont également disponibles dans des versions natives pour les Mac Apple Silicon, mais comme pour tout hyperviseur standard, ils exécutent des machines virtuelles du même type de processeur que la machine hôte sous-jacente. Ainsi, par exemple, la base de connaissances de Parallels explique soigneusement qu’il ne peut exécuter que Windows pour bras sur les Mac Apple Silicon.

Il s’agit d’un comportement standard pour un hyperviseur : ils virtualisent le matériel sous-jacent, de sorte que les machines virtuelles disposent du même type de processeur que l’hôte. Ainsi, si vous exécutez un hyperviseur x86-64 sur x86-64, il ne peut exécuter que des invités x86-64, et si vous exécutez un hyperviseur Arm sur Arm, il ne peut exécuter que des invités Arm.

C’est là que l’UTM est différent. En plus de l’hyperviseur Apple, il prend également en charge le QEMU open source du spécialiste français de la programmation bas niveau Fabrice Bellard.

QEMU est un outil inhabituel et complexe, capable de fonctionner de plusieurs manières différentes, ce qui signifie qu’il est souvent mal compris. QEMU est capable d’agir comme un émulateur de système complet, exécutant le logiciel d’une famille de processeurs sur un processeur totalement différent. Pour ce faire, il dispose d’outils pour créer et gérer des disques durs émulés, des cartes graphiques et réseau, etc. : tout le matériel virtuel dont le système émulé a besoin pour fonctionner.

Cependant, ce qui prête à confusion, c’est que depuis la version 2.6.20 de 2007, le noyau Linux possède son propre hyperviseur KVM intégré, qui à son tour utilise les fonctionnalités de virtualisation matérielle de toutes les puces Intel et AMD modernes, comme le Rég Bureau FOSS couvert en détail en 2011. Mais tous Ce que KVM peut faire, c’est communiquer avec les fonctionnalités intégrées du processeur qui démarrent et arrêtent les instances virtualisées. KVM à lui seul n’a pas la capacité de définir des lecteurs de disque virtuel, des adaptateurs graphiques, ou quoi que ce soit de ce genre.

Que C’est là que QEMU entre en jeu. Il est largement utilisé dans la plupart des distributions Linux pour fournir cet échafaudage frontal supplémentaire : pour créer, fournir et gérer tout le matériel supplémentaire pour les machines virtuelles. Essentiellement, le noyau Linux fournit le processeur et QEMU s’occupe du reste. Dans ce mode, QEMU n’émule pas du tout le processeur : le système d’exploitation le fournit, ce qui signifie que le code invité s’exécute à une vitesse proche de la vitesse native sur le processeur sous-jacent réel. Ce que l’on sait moins, c’est qu’il peut faire la même chose sur macOS.

C’est de là que vient l’incompréhension de QEMU. Ça peut marcher les deux en tant qu’émulateur de système complet et en tant qu’hyperviseur de type 2 à l’aide d’un noyau et d’un processeur qui fournissent les fonctionnalités pertinentes.

UTM entoure une interface graphique conviviale autour de deux hyperviseurs différents, l’un d’eux étant capable de fonctionner dans deux modes différents. Il peut utiliser directement l’hyperviseur Apple, virtualisant votre processeur Intel ou Apple Silicon sous-jacent, mais en plus de cela, il peut également utiliser QEMU, soit comme hyperviseur pour une virtualisation à vitesse native, mais aussi en mode émulation.

UTM exécutant à la fois MacOS classique et Solaris sur un MacBook Air M1 sous Sonoma.

UTM exécutant à la fois MacOS classique et Solaris sur un MacBook Air M1 sous Sonoma (cliquez pour agrandir)

Cela signifie que UTM peut exécuter un invité x86 sur Apple Silicon ou un invité Arm64 sur un Mac Intel. Et il ne se limite pas aux Mac Arm et x86 : il peut également exécuter une machine virtuelle PowerPC ou SPARC sur les Mac Intel et Arm64.

Pour tester cela, nous avons téléchargé un fichier ISO d’installation universelle MacOS 9.2.2 à partir de MacOS9Lives, choisi une machine virtuelle PowerPC et quelques minutes plus tard, nous avons été profondément impressionnés d’exécuter Classic sous macOS Ventura. Nous avons également installé l’édition Arm64 de Debian 12 sur un iMac Core i7.

Si vous ne souhaitez pas configurer votre propre VM, UTM propose une galerie d’images d’invités prédéfinies et, lors des tests, nous avons exécuté avec succès le Classic MacOS 9.2.1 natif PowerPC sur les Mac M1 et Core i7. Nous avons également installé la version SPARC de Sun Solaris 9 sur les deux machines.

L’émulation est loin d’être aussi rapide que la véritable virtualisation : la VM SPARC n’était pas vraiment rapide, mais elle est utilisable. Cependant, même un Core i7 vieux de huit ans est nettement plus rapide que les Mac les plus rapides capables de démarrer MacOS 9 de manière native, et MacOS 9 ne nécessite que 40 Mo de RAM et fonctionne bien sur les Mac G3 à 233 MHz : ce n’est pas un système d’exploitation exigeant selon les normes du 21e siècle. .

Ce n’est pas la même chose que le mode classique sous Mac OS X 10.0 à 10.4 : il y a peu d’intégration entre le système d’exploitation hôte et invité, et vous devez déterminer par vous-même comment déplacer des fichiers entre eux. Malgré cela, nous avons été très impressionnés par la facilité avec laquelle UTM permet de réaliser cet exploit d’émulation.

Nous avons également testé la version bêta de Fedora 39 en UTM, et elle a fonctionné plus facilement que sous VirtualBox – sans doute parce que l’hyperviseur natif de Fedora, GNOME Boxes, utilise les mêmes outils QEMU sous-jacents.

Même si vous ne voulez pas de tous les éléments d'émulation, il s'agit d'un hyperviseur x86 sur x86 parfaitement utilisable, exécutant ici la dernière version bêta de Fedora.

Même si vous ne voulez pas de tous les éléments d’émulation, il s’agit d’un hyperviseur x86 sur x86 parfaitement utilisable, exécutant ici la dernière version bêta de Fedora (cliquez pour agrandir)

L’exécution de systèmes d’exploitation x86-64 entiers sur notre MacBook Air M1 était moins impressionnante : Rosetta 2 effectue la traduction application par application et ne peut pas aider à l’émulation complète du système. Les performances du système d’exploitation invité étaient un peu lentes, mais supportables : on pouvait le tolérer pour une utilisation modeste.

Cela a fortement rappelé à ce vautour l’utilisation de !PCEm d’Acorn [PDF] Logiciel d’émulateur PC sur l’ordinateur de bureau ARM d’origine, l’Acorn Archimedes, sous RISC OS à la fin des années 1980. Bien que vous préfériez toujours utiliser un logiciel natif s’il est disponible, il était très impressionnant qu’un ARM2 à 8 MHz ait la puissance brute nécessaire pour émuler complètement un PC x86 à une vitesse utilisable. Il était impressionnant qu’un ordinateur ARM puisse émuler un IBM de classe XT inférieur à 5 MHz compatible avec 640 Ko de RAM il y a 35 ans, et il est tout aussi impressionnant qu’il puisse émuler un PC multicœur 64 bits avec 4 Go de RAM aujourd’hui.

UTM est téléchargeable gratuitement sur Github, mais si vous l’obtenez sur le macOS App Store d’Apple, il coûte 9,99 $, ce qui contribue à financer le développement du programme. ®

Source

Commentaires

Posts les plus consultés de ce blog

Tenerife, joyau des Canaries : Un poème écrit par la nature

Tenerife vous appelle : sentiers sinueux, plages de sable blanc et culture vibrante. Un paradis accessible où chaque voyageur trouve son bonheur. Tenerife, joyau de l'imaginaire collectif, se dresse tel un tableau vivant dans l'azur de l'Atlantique. Imaginez-vous déambuler le long de sentiers sinueux, caressés par la brise marine, où chaque tournant dévoile mille merveilles insulaires. Les ruelles étroites des villages ancestraux murmurent des secrets séculaires, tandis que la chaleur des sourires locaux réchauffe l'âme du voyageur égaré. Reine incontestée de l'archipel des Canaries, Tenerife est un kaléidoscope d'expériences enivrantes. Ses plages de sable blanc, telles des colliers de perles nacrées, s'étirent langoureusement le long des côtes dentelées. Les vagues cristallines chuchotent des promesses d'aventures sous-marines, invitant les plongeurs à explorer un monde silencieux aux couleurs chatoyantes. Pour ceux qui préfèrent la terre ferme, l'

Comment faire des kababs ? (boulettes de viande hachée à l'indo-malgache)

Les kabas sont des boulettes de viande hachée qu’on va faire frire dans de l’huile très chaude pour que l’extérieur doit totalement caramélisé, même carbonisé, mais que l’intérieur reste gouteux et moelleux. Vous pouvez avoir des recettes de kababs très simples ou avec des tonnes d’ingrédients. C’est ce qui fait sa force. J’ai affiné cette recette de kabab au fil des années et si vous utilisez les ingrédients comme moi, alors je vous garantis que le résultat sera délicieux. Pour 25 à 30 kababs : Les ingrédients 500 grammes de viande hachée Une poignée de coriandre et de ciboulette 3 oeufs Une baguette de pain ( que vous trempez dans de l’eau et que vous essorez ) De la purée d’ail et de gingembre Du sel et du poivre De la purée de piment 5 cuillères à soupe de farine tous usages 3 cuillères à soupe de farine de riz (ou de maizena) Pour les épices Une cuillère à café de coriande en poudre Une cuillère à café de cumin Une cuillère à café de curcuma Une demi-cuillère à café de canelle Une

Recette de shami kakab (boulettes panées de poulet et de pommes de terre)

Le principe de la Shami kabab est similaire à celui de la catless . On va prendre des morceaux de blancs de poulet coupés en morceaux, des pommes de terre ou des lentilles . On va faire cuire le tout avec des épices et former une pâte pour former des boulettes ou des galettes qu’on va frire avec de la panure. Les ingrédients 500 grammes de blancs de poulet 5 à 6 pommes de terre De la purée d’ail et de gingembre De la purée de piment Une cuillère à café de cumin Une cuillère à café de curcumin Une cuillère à café de coriandre en poudre Du sel et du poivre Deux oeufs battus De la farine Préparation Coupez le blanc de poulet en morceau, épluchez les pommes de terre et coupez-les aussi en morceaux. Ne les lavez pas après l’épluchage, car on veut l’amidon pour la liaison. Dans une casserole, mettez tous les ingrédients et faire cuire à feu doux pendant 30 à 40 minutes avec la casserole couverte. Pour le mouillement, remplissez la casserole de moitié. On veut que cela cuise et que tous les é