Nous avons du vin , une couche de compatibilité gratuite et open source qui nous aide à installer et à exécuter des applications et des jeux développés pour Windows sur des systèmes d'exploitation de type Linux et Unix. Nous avons également un émulateur nommé Dosbox pour exécuter de bons vieux jeux MS-DOS et d'anciens compilateurs C++ comme Turbo C++ sous Linux. Qu'en est-il du logiciel macOS ? Vous êtes-vous déjà demandé comment exécuter des applications spécifiquement pour Mac sous Linux ? C'est ce que nous allons faire maintenant. Ce guide explique comment exécuter le logiciel macOS sur les systèmes d'exploitation Linux à l'aide de Darling environnement d'exécution.
Qu'est-ce que mon chéri ?
Darling est une couche de traduction qui nous permet d'exécuter des applications macOS sur Linux. Il émule un Darwin complet environnement, y compris Mach, dyld, launchd et tout ce que vous attendez. Il vous permet de basculer instantanément vers un shell Bash et de commencer à exécuter les applications conçues pour macOS sur votre système Linux. Ça a l'air cool, ouais ?
Darling est très similaire à Wine. Wine vous permet d'exécuter des applications Windows sur Linux. Darling vous permet d'exécuter le logiciel macOS Linux.
Heureusement que Darling n'enfreint pas le CLUF d'Apple . Parce qu'il n'utilise que les parties de la version de Darwin qui sont publiées en tant que logiciel entièrement gratuit.
Le nom "Darling" vient de la combinaison de "Darwin" et "Linux". Comme vous le savez probablement, Darwin est le système d'exploitation principal sur lequel macOS et iOS sont basés.
Darling est un logiciel gratuit et open-source publié sous GPLv3.
Installer Darling dans Ubuntu Linux
Actuellement, les développeurs de Darling n'ont fourni que des packages DEB précompilés. Accédez à la page des versions et télécharger les packages DEB sont fournis pour darling
et darling-dkms
(le module du noyau).
$ sudo gdebi darling-dkms_0.1.20200331.testing_amd64.deb
Exemple de résultat :
Reading package lists... Done Building dependency tree Reading state information... Done Reading state information... Done Kernel module for Darling Do you want to install the software package? [y/N]:y /usr/bin/gdebi:113: FutureWarning: Possible nested set at position 1 c = findall("[[(](\S+)/\S+[])]", msg)[0].lower() Selecting previously unselected package darling-dkms. (Reading database ... 269719 files and directories currently installed.) Preparing to unpack darling-dkms_0.1.20200331.testing_amd64.deb ... Unpacking darling-dkms (0.1.20200331~testing) ... Setting up darling-dkms (0.1.20200331~testing) ... >>> DKMS: Module add, build, and install Creating symlink /var/lib/dkms/darling-mach/0.1/source -> /usr/src/darling-mach-0.1 DKMS: add completed. Kernel preparation unnecessary for this kernel. Skipping... Building module: cleaning build area.... 'make' -C lkm/ MIGDIR=/usr/src/darling-mach-0.1/miggen MIGDIR_REL=../miggen KERNELVERSION=5.4.0-48-generic........................................... cleaning build area... DKMS: build completed. darling-mach.ko: Running module version sanity check. - Original module - No original module exists within this kernel - Installation - Installing to /lib/modules/5.4.0-48-generic/updates/dkms/ depmod............ DKMS: install completed.
Après avoir installé le package darling-dkms, installez darling à l'aide de la commande :
$ sudo gdebi darling_0.1.20200331.testing_amd64.deb
Exemple de résultat :
Reading package lists... Done Building dependency tree Reading state information... Done Reading state information... Done Requires the installation of the following packages: libc6-i386 Darling macOS emulation layer for Linux Do you want to install the software package? [y/N]:y /usr/bin/gdebi:113: FutureWarning: Possible nested set at position 1 c = findall("[[(](\S+)/\S+[])]", msg)[0].lower() Get:1 http://ny-mirrors.evowise.com/ubuntu focal-updates/main amd64 libc6-i386 amd64 2.31-0ubuntu9.1 [2721 kB] Fetched 2721 kB in 0s (0 B/s) Selecting previously unselected package libc6-i386. (Reading database ... 274071 files and directories currently installed.) Preparing to unpack .../libc6-i386_2.31-0ubuntu9.1_amd64.deb ... Unpacking libc6-i386 (2.31-0ubuntu9.1) ... Setting up libc6-i386 (2.31-0ubuntu9.1) ... Processing triggers for libc-bin (2.31-0ubuntu9.1) ... Selecting previously unselected package darling. (Reading database ... 274374 files and directories currently installed.) Preparing to unpack darling_0.1.20200331.testing_amd64.deb ... Unpacking darling (0.1.20200331~testing) ... Setting up darling (0.1.20200331~testing) ... >>> Shutting down old instances of Darling Seeing if Darling is currently running No instances running now
La raison pour laquelle je préfère installer .deb
paquets avec Gdebi
est-ce qu'il résoudra automatiquement les dépendances requises et les installera pour moi. Si vous préférez utiliser dpkg
gestionnaire de packages, vous devez d'abord installer les packages Darling DEB, puis installer les dépendances manquantes comme ci-dessous.
$ sudo gdebi darling-dkms_0.1.20200331.testing_amd64.deb
$ sudo gdebi darling_0.1.20200331.testing_amd64.deb
$ sudo apt install -f
Sur d'autres distributions Linux, vous devrez peut-être compiler et installer manuellement Darling à partir de la source comme décrit ici .
Exécutez le logiciel MacOS sur Linux à l'aide de Darling
Les développeurs de Darling prévoient de créer une interface graphique agréable et conviviale pour interagir avec Darling. Mais pour l'instant, nous ne pouvons interagir avec Darling que via la ligne de commande.
Pour entrer dans Darling shell, exécutez simplement la commande suivante en tant qu'utilisateur normal :
$ darling shell Loaded the kernel module Setting up a new Darling prefix at /home/sk/.darling Bootstrapping the container with launchd... Darling [/Volumes/SystemRoot/home/sk/Downloads/darling]$
Cette commande démarrera un répertoire racine virtuel (c'est-à-dire un conteneur) ou se connectera à un conteneur déjà en cours d'exécution et générera le shell à l'intérieur.

Il chargera également automatiquement le module du noyau et initialisera le contenu du préfixe si nécessaire. Les préfixes Darling sont appelés DPREFIXes
, qui sont très similaires aux WINEPREFIXes
. Un préfixe n'est rien d'autre qu'un environnement virtuel "chroot" avec une structure de système de fichiers de type macOS, où nous pouvons installer des logiciels en toute sécurité.
Le shell en cours d'exécution à l'intérieur du conteneur est Bash
et sa version est 3.2.
$ bash --version GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin14) Copyright (C) 2007 Free Software Foundation, Inc.
Maintenant, nous sommes dans l'environnement émulé de type macOS. Étant donné que macOS est une variante Unix, de nombreuses commandes Linux et Unix devraient fonctionner dans le shell Darling.
Par exemple, imprimez le nom du système d'exploitation à l'aide de la commande :
$ uname Darwin
Lister le contenu de root (/)
répertoire :
$ ls -l /
Exemple de résultat :
total 120 drwxr-xr-x 2 sk sk 4096 Oct 5 09:54 Applications drwxr-xr-x 1 sk sk 4096 Oct 5 07:19 Library drwxr-xr-x 1 sk sk 4096 Oct 5 07:19 System drwxrwxr-x 4 sk sk 4096 Oct 5 09:54 Users drwxr-xr-x 1 sk sk 4096 Oct 5 09:54 Volumes drwxr-xr-x 1 sk sk 4096 Oct 5 07:20 bin lrwxrwxrwx 1 sk sk 23 Mar 31 2020 dev -> /Volumes/SystemRoot/dev lrwxrwxrwx 1 sk sk 11 Mar 31 2020 etc -> private/etc drwxr-xr-x 1 sk sk 4096 Oct 5 09:54 private dr-xr-xr-x 292 sk sk 0 Oct 5 09:54 proc drwxr-xr-x 1 sk sk 4096 Oct 5 07:20 sbin lrwxrwxrwx 1 sk sk 11 Mar 31 2020 tmp -> private/tmp drwxr-xr-x 1 sk sk 4096 Oct 5 09:54 usr drwxr-xr-x 5 sk sk 4096 Oct 5 09:54 var
De même, utilisez toutes les commandes spécifiques à macOS pour explorer l'environnement émulé.
Disposition du système de fichiers Darling
Si vous êtes déjà familiarisé avec le système de fichiers macOS, vous remarquerez que la disposition du système de fichiers à l'intérieur du conteneur est similaire à celle de macOS, y compris les répertoires de niveau supérieur tels que /Applications
, /Users
, et /System
etc
Le système de fichiers Linux d'origine est visible en tant que partition distincte montée sur /Volumes/SystemRoot
. Vous pouvez le vérifier en exécutant n'importe quelle commande Linux avec le nom de chemin complet comme ci-dessous :
$ /Volumes/SystemRoot/bin/uname Linux
Comme vous le voyez dans la sortie ci-dessus, il répertorie le nom de mon système hôte réel, pas le nom du conteneur. Si vous ne spécifiez pas le chemin d'extraction (c'est-à-dire /Volumes/SystemRoot/bin/uname
), il listera le nom du conteneur.
Lorsque vous exécutez des programmes macOS sous Darling, vous souhaiterez peut-être qu'ils accèdent aux fichiers de votre dossier de départ. Pour rendre cela pratique, il existe un LinuxHome
lien symbolique dans votre dossier de départ Darling qui pointe vers votre dossier de départ Linux, vu de l'intérieur du conteneur. En outre, les répertoires standards tels que Downloads
dans votre dossier de départ Darling sont liés symboliquement aux dossiers correspondants dans votre dossier de départ Linux.
Liste des choses que vous pouvez actuellement faire avec Darling
Veuillez noter que la plupart des applications GUI ne fonctionneront pas pour le moment . Actuellement, vous ne pouvez exécuter que quelques applications graphiques simples et de nombreux programmes en ligne de commande. Ne soyez pas déçu. Les applications GUI ne fonctionnent pas prêtes à l'emploi pour l'instant . Les développeurs y travaillent pour intégrer pleinement les applications exécutées sous Darling dans le bureau Linux, tout comme les applications natives. Ils prévoient même de prendre en charge les applications iOS à long terme.
Voici la liste des commandes que vous pouvez actuellement exécuter avec Darling.
Imprimez les détails du système d'exploitation Mac OS X à l'aide de la commande :
$ sw_vers
Cette commande affichera le nom Mac OS, la version du produit et la version de compilation :
ProductName: Mac OS X ProductVersion: 10.14 BuildVersion: Darling
Imprimez quelque chose de cool sur la sortie standard en utilisant echo
commande :
$ echo Welcome To OSTechNix Welcome To OSTechNix
Afficher le nom du système d'exploitation :
$ uname Darwin
Explorez le système de fichiers Darling :
$ ls -l /
$ ls -l /Library/ total 56 drwxr-xr-x 1 sk sk 4096 Oct 5 07:19 Developer drwxr-xr-x 1 sk sk 4096 Oct 5 07:20 Documentation drwxr-xr-x 1 sk sk 4096 Mar 31 2020 LaunchAgents drwxr-xr-x 1 sk sk 4096 Mar 31 2020 LaunchDaemons drwxr-xr-x 1 sk sk 4096 Oct 5 07:19 Python
$ ls -l /Volumes/ total 8 lrwxrwxrwx 1 sk sk 1 Mar 31 2020 DarlingEmulatedDrive -> / drwxr-xr-x 25 sk sk 4096 Oct 5 07:19 SystemRoot
$ ls -l /System/Library/ total 120 drwxr-xr-x 1 sk sk 4096 Oct 5 07:19 Components drwxr-xr-x 1 sk sk 4096 Oct 5 07:20 CoreServices drwxr-xr-x 1 sk sk 4096 Oct 5 07:20 Frameworks drwxr-xr-x 1 sk sk 4096 Oct 5 07:20 LaunchDaemons drwxr-xr-x 1 sk sk 4096 Oct 5 07:19 OpenSSL drwxr-xr-x 1 sk sk 4096 Oct 5 07:19 Perl drwxr-xr-x 1 sk sk 4096 Oct 5 07:19 PrivateFrameworks drwxr-xr-x 1 sk sk 4096 Mar 31 2020 Security drwxr-xr-x 1 sk sk 4096 Oct 5 07:19 User Template
Afficher les processus en cours :
$ ps aux USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND sk 127 0.0 0.1 4226308 8760 ?? R 1Jan70 0:00.02 nps aux sk 19 0.0 0.1 4219692 5944 ?? R 1Jan70 0:00.03 o/usr/libexec/shellspawn sk 20 0.0 0.1 4342428 9236 ?? R 1Jan70 0:00.06 s/usr/sbin/syslogd sk 21 0.0 0.1 4224292 8956 ?? R 1Jan70 0:00.03 s/usr/sbin/memberd -x sk 22 0.0 0.2 4355536 15544 ?? R 1Jan70 0:00.06 /usr/sbin/iokitd sk 23 0.0 0.1 4423744 9400 ?? R 1Jan70 0:00.14 //usr/sbin/notifyd sk 33 0.0 0.1 4480688 8576 ?? R 1Jan70 0:00.06 oaslmanager sk 39 0.0 0.0 4227884 3952 ?? RN 1Jan70 0:00.01 s/usr/libexec/shellspawn sk 40 0.0 0.1 4226028 10084 ?? R 1Jan70 0:00.38 e/bin/bash --login sk 1 0.0 0.1 4260676 9536 ?? R 1Jan70 0:01.06 n/sbin/launchd
Vérifiez les supports :
$ column -t /proc/self/mounts
Lire les pages de manuel :
$ man uname
Vous pouvez faire plus. Tout est donné dans la section intitulée "Quoi essayer" dans la documentation officielle liée à la fin.
Mettre fin à ma chérie
Une fois que vous avez fini d'explorer Mac OS, quittez simplement le shell Darling et fermez le conteneur à l'aide des commandes :
$ exit
$ darling shutdown
Vous ne verrez aucune notification lors de l'arrêt du conteneur. Exécutez à nouveau cette commande et vous verrez le résultat suivant :
Darling container is not running
Conclusion
Contrairement à Wine, Darling n'est pas un projet mature. En utilisant Wine, vous pouvez exécuter de nombreuses applications Windows, même certains jeux haut de gamme, sous Linux. Malheureusement, Darling n'aide pas beaucoup. Il ne peut exécuter qu'une poignée de programmes en ligne de commande pour le moment. Il est encore en phase alpha. Vous pouvez l'utiliser à des fins d'apprentissage et de test de base.
Essayez-le et faites-nous savoir comment ça se passerait dans la section des commentaires ci-dessous.