Kami memiliki Anggur , lapisan kompatibilitas sumber terbuka dan gratis yang membantu kami menginstal dan menjalankan aplikasi dan game yang dikembangkan untuk Windows di Linux dan sistem operasi mirip Unix. Kami juga memiliki emulator bernama Dosbox untuk menjalankan game MS-DOS lama dan compiler C++ yang sudah tidak berfungsi seperti Turbo C++ di Linux. Bagaimana dengan perangkat lunak macOS? Pernahkah Anda bertanya-tanya bagaimana menjalankan aplikasi khusus untuk mac di Linux? Itulah yang akan kita lakukan sekarang. Panduan ini menjelaskan cara menjalankan perangkat lunak macOS di sistem operasi Linux menggunakan Sayang lingkungan waktu proses.
Apa itu Sayang?
Darling adalah lapisan terjemahan yang memungkinkan kita menjalankan aplikasi macOS di Linux. Ini mengemulasi Darwin . yang lengkap lingkungan, termasuk Mach, dyld, launchd, dan semua yang Anda harapkan. Ini memungkinkan Anda untuk langsung beralih ke shell Bash dan mulai menjalankan aplikasi yang dibuat untuk macOS di sistem Linux Anda. Kedengarannya keren, ya?
Darling sangat mirip dengan Wine. Wine memungkinkan Anda menjalankan aplikasi Windows di Linux. Sayang memungkinkan Anda menjalankan perangkat lunak macOS Linux.
Untung Sayang tidak melanggar EULA Apple . Karena itu hanya menggunakan bagian dari versi Darwin yang dirilis sebagai perangkat lunak yang sepenuhnya gratis.
Nama "Darling" berasal dari kombinasi "Darwin" dan "Linux". Seperti yang mungkin Anda ketahui, Darwin adalah sistem operasi inti yang menjadi basis macOS dan iOS.
Darling adalah perangkat lunak sumber terbuka dan gratis yang dirilis di bawah GPLv3.
Instal Darling di Ubuntu Linux
Saat ini, para pengembang Darling hanya menyediakan paket DEB yang telah dikompilasi sebelumnya. Buka laman rilis dan unduh paket DEB yang disediakan untuk darling
dan darling-dkms
(modul kernel).
$ sudo gdebi darling-dkms_0.1.20200331.testing_amd64.deb
Contoh keluaran:
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.
Setelah menginstal paket darling-dkms, instal darling menggunakan perintah:
$ sudo gdebi darling_0.1.20200331.testing_amd64.deb
Contoh keluaran:
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
Alasan saya lebih suka menginstal .deb
paket dengan Gdebi
apakah itu akan secara otomatis menyelesaikan dependensi yang diperlukan dan menginstalnya untuk saya. Jika Anda lebih suka menggunakan dpkg
manajer paket, Anda harus terlebih dahulu menginstal paket Darling DEB dan kemudian menginstal dependensi yang hilang seperti di bawah ini.
$ sudo gdebi darling-dkms_0.1.20200331.testing_amd64.deb
$ sudo gdebi darling_0.1.20200331.testing_amd64.deb
$ sudo apt install -f
Pada distribusi Linux lainnya, Anda mungkin perlu mengompilasi dan menginstal Darling secara manual dari sumbernya seperti yang dijelaskan di sini .
Jalankan Perangkat Lunak MacOS Di Linux Menggunakan Darling
Pengembang Darling berencana untuk membangun GUI yang bagus dan ramah pengguna untuk berinteraksi dengan Darling. Tapi untuk saat ini, kita hanya bisa berinteraksi dengan Darling melalui command line.
Untuk masuk ke Darling shell, cukup jalankan perintah berikut sebagai user biasa:
$ 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]$
Perintah ini akan memulai direktori root virtual (yaitu wadah) atau terhubung ke wadah yang sudah berjalan dan menelurkan shell di dalamnya.

Ini juga akan secara otomatis memuat modul kernel dan menginisialisasi konten awalan jika diperlukan. Awalan Darling disebut DPREFIXes
, yang sangat mirip dengan WINEPREFIXes
. Awalan tidak lain adalah lingkungan "chroot" virtual dengan struktur sistem file mirip macOS, tempat kita dapat menginstal perangkat lunak dengan aman.
Shell saat ini berjalan di dalam wadah adalah Bash
dan versinya adalah 3.2.
$ bash --version GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin14) Copyright (C) 2007 Free Software Foundation, Inc.
Sekarang, kita berada di dalam lingkungan seperti macOS yang ditiru. Karena macOS adalah varian Unix, banyak perintah Linux dan Unix harus bekerja di shell Darling.
Misalnya, cetak nama sistem operasi menggunakan perintah:
$ uname Darwin
Buat daftar isi root (/)
direktori:
$ ls -l /
Contoh keluaran:
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
Demikian pula, gunakan perintah khusus macOS apa pun untuk menjelajahi lingkungan yang ditiru.
Tata letak sistem file yang terhormat
Jika Anda sudah terbiasa dengan sistem file macOS, Anda akan melihat bahwa tata letak sistem file di dalam wadah mirip dengan macOS, termasuk direktori tingkat atas seperti /Applications
, /Users
, dan /System
dll.
Sistem file Linux asli terlihat sebagai partisi terpisah yang dipasang di /Volumes/SystemRoot
. Anda dapat memverifikasinya dengan menjalankan perintah Linux apa pun dengan nama path lengkap seperti di bawah ini:
$ /Volumes/SystemRoot/bin/uname Linux
Seperti yang Anda lihat pada output di atas, Ini mencantumkan nama sistem Host saya yang sebenarnya, bukan nama wadahnya. Jika Anda tidak menentukan jalur tarik (yaitu /Volumes/SystemRoot/bin/uname
), itu akan mencantumkan nama penampung.
Saat menjalankan program macOS di bawah Darling, Anda mungkin ingin mereka mengakses file di folder rumah Anda. Untuk membuatnya nyaman, ada LinuxHome
symlink di folder beranda Darling Anda yang mengarah ke folder beranda Linux Anda, seperti yang terlihat dari dalam wadah. Selain itu, direktori standar seperti Downloads
di folder beranda Darling Anda disinkronkan ke folder yang sesuai di folder beranda Linux Anda.
Daftar hal-hal yang saat ini dapat Anda lakukan dengan Sayang
Harap perhatikan bahwa sebagian besar aplikasi GUI tidak akan berfungsi saat ini . Saat ini, Anda hanya dapat menjalankan beberapa aplikasi grafis sederhana dan banyak program baris perintah. Jangan kecewa. Aplikasi GUI tidak bekerja di luar kotak dulu . Pengembang sedang mengerjakan ini untuk sepenuhnya mengintegrasikan aplikasi yang berjalan di bawah Darling ke desktop Linux seperti aplikasi asli. Mereka bahkan memiliki rencana untuk mendukung aplikasi iOS dalam jangka panjang.
Berikut adalah daftar perintah yang saat ini dapat Anda jalankan dengan Darling.
Cetak detail sistem operasi Mac OS X menggunakan perintah:
$ sw_vers
Perintah ini akan menampilkan nama Mac OS, versi produk dan versi build:
ProductName: Mac OS X ProductVersion: 10.14 BuildVersion: Darling
Cetak sesuatu yang keren pada keluaran standar menggunakan echo
perintah:
$ echo Welcome To OSTechNix Welcome To OSTechNix
Menampilkan nama sistem operasi:
$ uname Darwin
Jelajahi sistem file 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
Tampilkan proses yang sedang berjalan:
$ 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
Periksa tunggangannya:
$ column -t /proc/self/mounts
Baca halaman manual:
$ man uname
Anda dapat melakukan lebih banyak. Semuanya diberikan di bawah bagian berjudul "Apa yang harus dicoba" dalam dokumentasi resmi yang ditautkan di bagian akhir.
Hentikan Sayang
Setelah Anda selesai menjelajahi Mac OS, cukup keluar dari Darling shell dan matikan wadah menggunakan perintah:
$ exit
$ darling shutdown
Anda tidak akan melihat pemberitahuan apa pun saat penampung sedang dimatikan. Jalankan perintah itu lagi dan Anda akan melihat output berikut:
Darling container is not running
Kesimpulan
Tidak seperti Wine, Darling bukanlah proyek yang matang. Dengan menggunakan Wine, Anda dapat menjalankan begitu banyak aplikasi windows, bahkan beberapa game kelas atas, di Linux. Sayangnya, Darling tak banyak membantu. Itu hanya dapat menjalankan beberapa program baris perintah saat ini. Masih dalam tahap alpha. Anda dapat menggunakannya untuk tujuan pembelajaran dan pengujian dasar.
Cobalah dan beri tahu kami bagaimana hasilnya di bagian komentar di bawah.