Mac os emulator on linux

Mac OS X в эмуляторе QEMU под Linux

Здравствуйте хабровчане. Недавно понадобилось писать на Objective C под Mac OS X. Железо у меня не самое подходящее для всяких сборок, да и сидеть полностью в этой ОС религия не позволяет. Решил поставить Mac OS X в на виртуальную машину Qemu в Linux.

Вот список всего, что я использовал:

Gentoo Linux 64 bit
Qemu 0.10.5
KVM (Kernel-based Virtual Machine) 88-r1
Поддержка KVM в ядре Linux
Процессор с поддержкой Intel Virtualization Technology (в моем случае это Core2Duo E6400)
Linux kernel>=2.6.20
-Сборка Mac OS X iATKOS v7 (Leopard 10.5.7)

Переходим к настройке, в ядре необходимо добавить KVM. Качаем исходники, распаковываем, запускаем make menuconfig:
Processor type and features->Paravirtualized guest support
Отмечаем:
KVM paravirtualized clock
KVM Guest support
Paravirtualization layer for spinlocks

Далее в корне настройки ядра появляется новая опция Virtualization
Переходим туда и отмечаем:
Kernel-based Virtual Machine (KVM) support
KVM for Intel processors support
KVM trace support
PCI driver for virtio devices
Virtio balloon driver

Собираем, устанавливаем, и перезагружаемся с новым ядром.
Теперь устанавливаем Qemu с поддержкой KVM, и сам KVM
USE=«kvm» emerge qemu
emerge kvm

Теперь переходим к шаманствам с виртуальной машиной.
Создаем виртуальный жесткий диск:
qemu-img create -f raw macos.disk 30G

Если собираемся запускать Qemu не от рута, необходимо дать прав другим пользователям на чтение/запись на устройство /dev/kvm:
chmod 0666 /dev/kvm

Запускаем:
kvm -boot d -hda macos.disk -m 900 -net nic,model=rtl8139 -net tap -usb -no-reboot -no-shutdown -vga std -cpu core2duo -cdrom 10.5.7.iso
-hda путь к нашему виртуальному жесткому диску
-cdrom пусть к образу
-no-shutdown -no-reboot необходимы для того чтобы в случае ошибки окно эмулятора «замораживалось» и можно было прочитать ошибку
-net nic,model=rtl8139 эмулируем сетевую карту Realtek 8139
-net tap чтобы гостевая система видела по сети хостящую необходим TAP девайс

Читайте также:  Linux как работает vmware

-m 900 количество памяти отдаваемое гостевой системе
-boot d грузимся с сидирома
-usb поддержка USB
-cpu core2duo эмуляция процессора Core2Duo

Грузим диск. Размечаем жесктий диск при помощи Disk Utility (выбираем из меню сверху).

Настройка драйверов.
Перед тем как нажать кнопку Install обратите вниманине на кнопку Customize

Вещи которые нам необходимо выбрать:
x86 ACPI
Disabler
OHR
Remove TyMCE
CardBus
USB
Intel SATA/IDE
Kernels
Apple PS/2

Можно устанавливать. Ждем примерно 30 минут.
Mac OS X установлена, настраиваем.
Теперь в строке для запуска меняем -boot d на -boot c чтобы грузится с жесткого диска.
Загружаемся. Теперь надо придумать чтонибудь с сетью.
Ищем в интернете PCGenRTL8139Ethernet.kext, устанавливаем его, очень легко установить с помощью программы kextinstaller. Пока нету сети необходимые файлы передавать в систему можно через флешку например, добавляем -hdb /dev/sdb (путь к устройству флешки)
Перезагржаем гостевую ОС.
Теперь чтобы сеть в Mac OS X заработала необходимо зайти в управление сетью, выбрать Ethernet девайс, выключить его (Off), а затем включить и настроить нужный IP (например 192.168.1.1), а в хостящей системе настроить девайс tap0:
ifconfig tap0 192.168.1.2

image

UPD. Автор поста появился на хабре vinnishtein

Источник

How to Run Mac Apps on Linux

Run Macos Program Linux Shero

macOS and Linux share a common heritage. Unfortunately, that does not mean applications can smoothly transition between the operating systems. To run Mac apps on Linux, you’ll need some sort of virtual machine or translation layer.

Run a macOS Virtual Machine (All Apps)

The most reliable way to run Mac apps on Linux is through a virtual machine. With a free, open-source hypervisor application like VirtualBox, you can run macOS on a virtual device on your Linux machine. A properly-installed virtualized macOS environment will run all macOS apps without issue.

Virtualizing a desktop like this does require significant RAM, so it may not run smoothly on low-resource devices. For machines with the technical specs, virtualizing an operating systems through a VirtualBox virtual machine is the best option.

Читайте также:  Ip address in linux shell

Using the Darling Translation Layer (CLI Only)

You can also run a translation layer called Darling. This works like WINE, which creates a Windows-to-Linux translation environment that allows you to run some Windows applications on Linux systems. Darling tries to accomplish the same goal between macOS and Linux. Because macOS and Linux both share the same UNIX-style base, Darling is less resource-intensive than WINE, producing better results in more circumstances.

For the time being, Darling can only work with very simple GUI apps and several command-line apps. While GUI app support is a goal for the project, the feature hasn’t yet been implemented. Basically, you can run a macOS shell in Terminal reliably and may or may not be able to run other apps effectively.

It also contains an enormous amount of code, requiring about 12 gigabytes of disk space after building. It’s essentially duplicating the functionality of the macOS operating system. So, if you worry about remote executables corrupting your system, you might want to avoid a package of this size.

Building and Installing Darling

1. Follow the installation instructions to download the correct dependencies for your Linux distro from the Darling Install page. Depending on your distro, you may need to run a lengthy command.

For example, for Ubuntu, run the following Terminal command to download Darling’s dependencies:

sudo apt-get install cmake clang bison flex xz-utils libfuse-dev libudev-dev pkg-config libc6-dev:i386 linux-headers-generic gcc-multilib libcap2-bin libcairo2-dev libgl1-mesa-dev libtiff5-dev libfreetype6-dev libfreetype6-dev:i386 git libelf-dev libxml2-dev libegl1-mesa-dev libfontconfig1-dev libbsd-dev

2. Clone Darling’s git depository to your local machine:

git clone --recursive https://github.com/darlinghq/darling.git

Run Macos Program Linux Git Clone Darling

3. Change the directory into the Darling clone:

4. Make and build the darling directory:

5. Configure the build with cmake:

The build process may take longer than one hour, depending on your machine’s resources.

8. Build Darling’s kernal module darling_mach:

Running macOS Applications on Linux with Darling

To access the darling subsystem, run darling shell . This uses the darling command prefix to launch a macOS shell environment:

Читайте также:  Восстановить забытый пароль линукс минт

Run Macos Program Linux Load Darling Shell

Once inside the darling shell, you can run commands as if you were on a macOS system. All program installation happens within the darling shell. Running the commands without connecting to Darling won’t work.

To attempt to run a macOS program, first download the appropriate files. You’ll want to obtain a .dmg or .pkg on your Linux machine. If you want to run an app from the Mac App Store, copy the .app file to “/Applications/” on your Linux machine then launching it through Darling’s shell commands.

Install from DMG

To install a program from a .dmg, mount it with hdiutil within Darling:

hdiutil attach AppName.dmg

Copy the application to your local storage:

cp -r /Volumes/AppName/AppName.app /Applications/

Install from PKG

To install a program from pkg, use installer within Darling:

installer -pkg foo.pkg -target /

Uniquely to Darling, .pkgs can be uninstalled using the uninstaller companion command.

Once installed, run through Darling:

Conclusion

Darling works well with command line programs, but will hopefully eventually support GUI applications.

Alexander Fox is a tech and science writer based in Philadelphia, PA with one cat, three Macs and more USB cables than he could ever use.

Our latest tutorials delivered straight to your inbox

Productivity Tips

How to Use the COUNT Functions in Microsoft Excel

12 Free Notion Templates for Students

12 Free Project Management Templates for Microsoft and Google

How to Fix Ethernet Speed Capped at 100 Mbps on Windows

How to Export Telegram Chat History

How to Fix ‘No SIM Card Detected’ Error on Android and iPhone

How to Fix «Windows Modules Installer Worker» High CPU Usage

20 Awesome Screensavers for Windows

Affiliate Disclosure: Make Tech Easier may earn commission on products purchased through our links, which supports the work we do for our readers.

Источник

Оцените статью
Adblock
detector