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_rosetta_translation_environment

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.

avatar Marcos Ickx | 

@ech1965

Mais oui, je sais bien que c’est impossible, puisque j’ai répondu moi-même à @marc_os, lui demandant s’il était au moins d’accord avec moi pour dire que la virtualisation d’un os x86 sous Mac M1, c’était mort.

Je n’aurais pas écrit cela si je n’étais pas conscient que la virtualisation x86 sous Mac ARM soit impossible.

Après, oui, on aura d’autres solutions comme l’émulation d’api Windows (wine) ou des émulateurs x86, mais ce ne sera plus de la virtualisation x86, ce qui est un problème pour les utilisateurs qui utilisaient cela chaque jours.

Je leur conseille actuellement de rester à l’écart des Mac M1, car aujourd’hui je n’ai pas encore vu un émulateur x86 permettant de faire tourner Linux x86 ou Windows x86 sur un Mac M1, et cela à des vitesses acceptables.

Et vu la limitation de la mémoire à 16Go, c’est de toute façon amha trop juste pour émuler un os x86 dans de bonnes conditions.

Mieux vaut attendre les prochaines générations qui permettront très certainement de passer le cap des 16Go et qui gagneront peut être en puissance permettant de faire tourner les émulateurs x86 dans de bonnes conditions.

Bref, pour tous ceux qui utilisent les logiciels de virtualisation sous Mac Intel, ma recommandation est de rester actuellement sur des Mac Intel.

avatar morpheusz63 | 

@Marcos Ickx

L'idéal que vous souhaiter est une régression.. Apple propose une autre voie, pourquoi pas s'engouffrer, le changement ça du bon, est-ce que Armes ne serait pas meilleure que le x86?

avatar Marcos Ickx | 

@morpheusz63

Personnellement, je ne souhaite rien. Je suis très content au quotidien avec mon iPad, qui ne permet pas de virtualiser Windows ou Android, et je m’en moque que cela ne soit pas possible et ne le demande même pas.
Et ça ne m’intéresse même pas de faire tourner macOS sur un iPad.

Par contre, au travail, on serait très content de pouvoir, pour une question de finances, virtualiser Catalina et High Sierra à côté de Big Sur sur les nouveaux Mac M1, question de pouvoir revendre au plus vite les anciens Mac pour récupérer de l’argent au plus vite pour le réinvestir ailleurs.

Quand on achetait les Mac Intel de l’année X, on installait macOS de l’année X, et on avait accès à macOS de l’année X-1 et X-2 en virtualisation. Ça permet de revendre rapidement les Mac quinte de l’année X-1, pour réinvestir l’argent dans des projets.

Cette année, on ne pourra pas le faire, et ce sera encore plus compliqué que les années précédentes.

avatar morpheusz63 | 

@Marcos Ickx
OK je comprend ta démarche, mains avec l'arrivé du M1, cela à bouleverser le marché de l'occasion au niveau des mac. Je vois des opportunités de faire du dev vintage peur ceux qu'ils veulent rester sur du Intel, leursOs non évoluer. Et vu le nombres de commentaires de ceux attachés à leurs vieux apps x86 ça va être compliquer, de faire évoluer les habitudes .

avatar reborn | 

@morpheusz63

mains avec l'arrivé du M1, cela à bouleverser le marché de l'occasion au niveau des mac.

C’est à dire ?

avatar fredsoo | 

Aujourd’hui rien n’est impossible.... il suffit juste d’être patient. Nul doute que les limitations imposées par Apple finiront par voler en éclats. Ça a toujours été le cas et ça continuera. Je parle pour Apple mais c’est pareil pour tous les autres de la tech.
Geohot et l’iphone, il y aura bien quelqu’un pour Apple Silicon.

avatar lmouillart | 

Exact !

Message envoyé depuis Android pour iPhone (ou pas).

avatar heu | 

Un mac sans docker, ça le fait moyen :/

avatar ech1965 | 

et vu que pour docker, il faut un kernel linux ... c'est râpé en natif sur macos ( intel ou arm)

avatar mdiam | 

@heu Justement ce n'est pas l'intérêt d'Apple de priver le mac de Docker. Microsoft a intégrer en standard dans Windows 10 de quoi faire tourner Linux. Ce qui rattrape le retard de Windows sur MacOS X qui intègre un BSD depuis le début.
À une époque, j'utilisais mkLinux en dual boot avec MacOS9 (merci Martin Costabel ;-). J'avais acheté la béta publique de osX pour décider si je devais continuer avec Macos ou bien switcher sur Linux. J'ai alors conservé osX.

Microsoft s'est vraiment amélioré avec sa nouvelle position vis-à-vis de l'opensource (hum, j'espère que personne ne me reconnaitra, sinon je vais en chier au boulot ;-).

Ce serait une telle erreur de la part d'Apple que de ne pas faciliter l'utilisation de la virtualisation ou des conteneurs sous MacOS que j'ai confiance dans le fait que ça se fasse bientôt !

-- Maurice

Pages

CONNEXION UTILISATEUR