Premiers pas timides pour la virtualisation de Linux sur Apple Silicon

Nicolas Furno |

La virtualisation est peut-être le domaine qui pose le plus de problème aux Mac Apple Silicon. Grâce à Rosetta, la plupart des apps macOS peuvent fonctionner sans encombre même si elles n’ont pas été mises à jour, mais les apps qui permettent de faire tourner un système d’exploitation complet virtualisé ne fonctionnent pas du tout à ce jour sur les nouveaux Mac :

On sait que Parallels Desktop, cité par Apple pendant la WWDC, travaille avec Apple pour adapter son app aux Mac Apple Silicon. En attendant son arrivée, d’autres solutions existent déjà pour virtualiser des distributions Linux sur les nouveaux Mac. Elles fonctionnent, mais nécessitent encore de mettre les mains dans le cambouis et elles sont encore très limitées.

Ubuntu 20.04 virtualisé sur un Mac mini M1 grâce à Simple VM.

Simple VM est une app taillée pour la virtualisation sur Apple Silicon. Elle dispose bien d’une interface (à gauche sur la capture ci-dessus), mais elle est minimale et implique des manipulations dans le terminal. Vous trouverez des explications dans ce sujet publié sur les forums de MacRumors, mais vous verrez vite qu’il faut bricoler pour obtenir un système virtuel en ligne de commandes, et encore avec des performances souvent moyennes.

Comme Simple VM est un projet open-source, des forks existent pour améliorer les performances ou simplifier la procédure d’installation. Si vous ne voulez pas vous embêter, vous pouvez tester un paquet clé en mains proposé à cette adresse. Vous aurez une distribution Ubuntu 20.04.1 et l’app Simple VM déjà compilée, ce qui vous permettra de démarrer en quelques minutes (identifiant et mot de passe à utiliser dans le fichier README). J’ai pu tester, cela fonctionne, mais on est vite limité par les performances, et puis il n’est pas question d’utiliser une distribution graphique.

Sur ces mêmes forums toutefois, quelqu’un a réussi à bénéficier d’une interface graphique en combinant XQuartz et le SSH en mode X forwarding. Cela fonctionne, mais ce n’est pas encore une solution accessible au grand public. On imagine que Parallels Desktop a une meilleure réponse, Apple l’avait utilisée pour évoquer Linux sur les Mac Apple Silicon, mais les plus pressés et bricoleurs peuvent tester dès maintenant.

La version Linux de Firefox, gérée par une distribution virtualisée sur un Mac Apple Silicon (image forums MacRumors).

Ces avancées ne devraient pas suffire à Linus Torvald, le créateur du noyau Linux. Lui qui se disait fan du MacBook Air en 2012 et réclamait un ordinateur portable ARM pour 2016 a obtenu gain de cause avec quelques années de retard. Sans surprise, il adorerait utiliser un nouveau MacBook Air, comme il l’explique sur cette liste de diffusion. Ce serait l’ordinateur parfait pour ses besoins… s’il pouvait installer Linux dessus.

Pour le moment, c’est ce point qui pose problème. Certes, les distributions GNU/Linux tournent sur l’architecture ARM depuis des années maintenant, donc ce n’est pas cela qui gêne contrairement à Windows. Il faudrait sans doute quelques adaptations pour gérer correctement le matériel, mais rien de rédhibitoire a priori. En revanche, les nouvelles sécurités mises en place par Apple depuis quelques années empêchent par défaut d’installer autre chose que macOS, même si c’est toujours possible.

Installer Linux sur un Mac Apple Silicon à la place de macOS devrait être possible. Mais Linus Torvald ne veut pas bricoler une solution qu’Apple ne propose pas officiellement et il préfère passer son tour. Qui sait, maintenant que la firme de Cupertino a montré l’exemple, peut-être que les ordinateurs portables ARM vont se généraliser. Contrairement aux Mac, ceux-là permettront sans aucun doute d’installer facilement Linux, mais reste à savoir si les performances seront au rendez-vous…


avatar cecemf | 

Un boot camp Linux serait bien :)

avatar marc_os | 

« La virtualisation est peut-être le domaine qui pose le plus de problème aux Mac Apple Silicon »

Pourtant les Mac M1 n'ont aucun problème avec Rosetta à ce que je sache.
Ce ne sont les logiciels de virtualisation qui ont des problèmes, pas les Mac M1 !

avatar minipapy | 

@marc_os

Il n'y a pas de rapport entre Rosetta et la virtualisation.

avatar marc_os | 

@ minipapy
Vu de l'extérieur, si.
Rosetta 2 fonctionne différemment de Rosetta (1), mais au final vu de l'utilisateur ça revient au même. (Sauf que Rosetta 2 est plus efficace à priori.)

avatar minipapy | 

@marc_os

Vous confondez les concepts et les usages.

avatar marc_os | 

@ minipapy
Non, c'est vous qui pinaillez sur un détail alors que mon message était :
Ce ne sont les logiciels de virtualisation [« la virtualisation »] qui ont des problèmes, pas les Mac M1 ! (Et Rosetta n'a aucun problème.)
Et si vous n'êtes pas d'accord, c'est que vous confondez vous aussi causes et conséquences (ce qui ne vous empêche pas de donner des leçons sans voir la poutre dans votre œil).

avatar minipapy | 

@marc_os

C’est la première phrase de votre 1er message, qui est, au mieux, ambiguë, au pire, incorrecte.
Effectivement, les Macs M1 peuvent gérer la virtualisation et les logiciels de virtualisation actuels ont des problèmes.
En revanche, le parallèle avec Rosetta n’a pas de pertinence pour démontrer que les Macs M1 n’ont pas de problèmes avec la virtualisation... puisque ce n’en est tout simplement pas.

J’ai compris là où vous vouliez en venir, mais bon...

Et pour rebondir sur le fait que « Rosetta n’a aucun problème », le fait qu’il n’assure pas la compatibilité avec les instructions de virtualisation x86 démontre le contraire. Cette technologie est très performante et fiable, mais pas complète pour autant.

avatar marc_os | 

Votre dernière phrase « Cette technologie est [...] pas complète pour autant » contredit la phrase précédente !
Rosetta n'a aucun "problème", mais Rosetta a des limitations.
Ne pas confondre !

avatar minipapy | 

@marc_os

Ok.

avatar Gwynpl@ine | 

@marc_os

Attention, Rosetta n'est pas de la virtualisation. Mais, effectivement pour un néophyte cela peut sembler pareil. Mme Michu sait de quoi elle parle, d'ailleurs je pense que beaucoup d'utilisateurs de Mac, n'en ont rien à faire, du moment que ça fonctionne.

avatar marc_os | 

@ Gwynpl@ine
Vous arrivez après la bataille, minipapy a déjà pinaillé à ce sujet.
Pourtant, ce n'est pas moi au départ qui ait parlé de « la virtualisation » de manière générique. Je n'ai fait que remplacer l'expression "la virtualisation" par "logiciels de virtualisation" pour une question grammaticale. C'était une simplification certes, mais ce n'était pas le fond du message.

avatar Marcos Ickx | 

@marc_os

Ils n’ont pas de soucis avec Rosetta, mais Rosetta a des soucis, entre autre, avec les logiciels de virtualisation.

« Rosetta doesn’t translate the following executables:
- Kernel extensions
- Virtual Machine apps that virtualize x86_64 computer platforms »

Édit: ajout lien https://developer.apple.com/documentation/apple_silicon/about_the_rosett...

avatar marc_os | 

@ Marcos Ickx
Non : Rosetta n'a aucun soucis avec quelque logiciel que ce soit !
Ce sont ces logiciels qui ont des problèmes* et qui doivent être soit adaptés soit abandonnés, par exemple si leur développeur n'a pas remplacé ses kexts par les techno imposées par Apple depuis Big Sur (ES, etc.).
Aucun logiciel natif ou compilé pour Intel ne peut utiliser de kext depuis Big Sur, et qq. soit le Mac !

(*) Si je vais avec ma Ferrari sur un chemin de terre boueux, ce n'est pas le chemin de terre qui aura un problème, mais moi avec ma Ferrari une fois que je me serais embourbé ! (Faut pas confondre cause et effet.)

avatar minipapy | 

@marc_os

Ce n’est pas la ligne sur les Kernel Extensions qui importe, mais la seconde : les instructions de virtualisation x86_64 NE fonctionnent PAS avec Rosetta. Il n’est donc pas possible de virtualiser un OS x86 sur les Macs M1 par le biais de Rosetta.

Il y a un hyperviseur macOS, qui permet... de virtualiser de l’arm64.

Bref, ce n’est pas parce que vous répètez que les problèmes sont uniquement dûs aux logiciels que ça en devient la vérité.

avatar marc_os | 

@minipapy
« Ce n’est pas la ligne sur les Kernel Extensions qui importe, mais la seconde [../] »

N'ai-je pas écrit « par exemple si leur développeur n'a pas remplacé ses kexts » ?
On dirait que votre désir de me contredire vous aveugle quelque peu...

avatar Marcos Ickx | 

@marc_os

Vous êtes quand même d’accord que la virtualisation x86 est morte sous Mac M1 et qu’on ne pourra que virtualiser des OS ARM et non plus des OS x86.

avatar marc_os | 

@Marcos Ickx
Non, pas nécessairement.
Pour « virtualiser un OS x86 », il faut juste renoncer à Rosetta et trouver autre chose, par exemple un émulateur d'instructions x86 sur ARM ou sa variante M1. Et s'il n'existe pas, il faut l'écrire. Ce que faisaient les premiers logiciels faisant tourner Windows sur Mac PPC.

avatar Marcos Ickx | 

@marc_os

Alors émulation, c’est tout de même fort différent que virtualisation.

avatar ech1965 | 

Je suis d'accord:
Virtualiser ne modifie PAS les instructions; on ne peut pas faire tourner dans une VM du code prévu pour un autre CPU. la virtualisation ne se passe que pour les devices et pour quelques instructions privilégiées qui sont interceptées et dont le fonctionnement est simulé. ( eg: virtualbox
Emuler constiste à interpréter le code machine d'un CPU x ( depuis n'importe quel cpu) cf QEMU

avatar Adodane | 

@marc_os

Si les applications fonctionnent parfaitement sur Mac Intel ( donc sans Rosetta ) c’est que le soucis vient bien de Rosetta. 💁‍♀️

avatar marc_os | 

@ Adodane
Quel soucis ?

avatar Adodane | 

@marc_os

J’appelle soucis le fait qu’une application Intel ne fonctionne pas avec Rosetta.

avatar marc_os | 

@ Adodane
Quelle application ?
Si vous voulez exécuter une application qui utilise des choses non supportée par Rosetta, ce n'est pas un « problème « de Rosetta, mais une « limitation » de Rosetta◊!

Rosetta n'a aucu problème, ce qui sous-entendrait que Rosetta serait bogué. Or Rosetta fonctionne parfaitement - avec ses limitations faisant partie de ses spécifications.
C'est si difficile à comprendre, que tout le monde confond « problème » avec « limitation » ?
Je le répète, si vous vous embourbez avec votre logiciel dans un chemin boueux (Rosetta), ce n'est pas le chemin qui a un problème, mais vous qui êtes embourbé ! Et fallait pas ignorer le panneau "risque d'embourbage" et prendre ce chemin quand même avec votre Ferrari.

avatar Adodane | 

@marc_os

On va appeler ça limitation alors 😁😅🤦‍♂️

avatar ech1965 | 

C'est pas un problème c'est une limitation
Hypothétiquement, vu que Rosetta fabrique en une fois ( avant la première exécution), pour TOUT le code de l'application x64, un code ARM ayant le même effet, il faudrait donc que Rosetta "fabrique" du code arm pour TOUT le code X86 de l'os invité ( Windows par ex) ainsi que TOUS les programmes qui seront lancés dans cet OS invité..
Vous comprenez bien que c'est impossible.

Pages

CONNEXION UTILISATEUR