- Emulating Linux binaries under Mac OS X
- 7 Answers 7
- Запуск linux приложений на mac os
- Запустите виртуальную машину MacOS (все приложения)
- Использование Darling Translation Layer (только CLI)
- Сборка и установка дорогой Darling
- Запускаем Linux приложения на Mac
- Запуск Mac OS X софта в linux
- Re: Запуск Mac OS X софта в linux
- Re: Запуск Mac OS X софта в linux
- Re: Запуск Mac OS X софта в linux
- Re: Запуск Mac OS X софта в linux
- Re: Запуск Mac OS X софта в linux
- Re: Запуск Mac OS X софта в linux
- Re: Запуск Mac OS X софта в linux
- Re: Запуск Mac OS X софта в linux
- Re: Запуск Mac OS X софта в linux
- Re: Запуск Mac OS X софта в linux
- Re: Запуск Mac OS X софта в linux
- Re: Запуск Mac OS X софта в linux
- Re: Запуск Mac OS X софта в linux
- Re: Запуск Mac OS X софта в linux
- Re: Запуск Mac OS X софта в linux
- Re: Запуск Mac OS X софта в linux
- Re: Запуск Mac OS X софта в linux
Emulating Linux binaries under Mac OS X
How do I run Linux binaries under Mac OS X? Googling around I found a couple of emulators but none for running Linux binaries on a Mac. There are quite a few posts about running Mac OS X on Linux and that kind of stuff — but that’s the opposite of what I want to do. Update: Thanks for all the answers! I am fully aware of MacPorts and Fink or any of the other things; and no, I do not want any of these utilities, and I do not want any of the package managers, I prefer to compile things myself. I also have Parallels and could set up virtual machines and all that jazz. The only thing I want to do is to find a way to run a binary that I do not have the source code for and has been compiled for Linux, but I do not want to run it under Linux but under Mac OS X. Therefore my question about emulators.
If your just looking to run software from the *nix/POSIX world it will probably compile provided it doesn’t depend on OS specific libraries. Fink or MacPorts can help with this somewhat.
I can’t think of any software that’s available for Linux, but not for Mac (sadly, since I’m a Linux guy). Why are you looking for such a thing?
Great question! I too, have a piece of enterprise software that runs in Linux, but my development machine is a Mac. Hopefully someone comes up with a solution — emulation layer for Linux binaries on Mac.
7 Answers 7
Well there is a project introducing something like Linux’s binfmt_misc to OS X so now what you need is an ELF loader, a dynamic linker that can load both Mach-O and ELF, and some mechanism to translate Linux calls to OS X ones.
Just for inspiration, you can implement the dynamic linker in the fashion that it ignores filename extension — both libfoo.so.1 (as an Linux ELF) and libfoo.1.dylib (as an Mach-O) can be loaded so that OS X versions of system libraries can be reused so that you do not need to write a «hosted on OS X» libc.so and syscalls can be handled by an kext that translates Linux calls to OS X ones in kernel.
Or, in an more elegant way, implement a stripped down Linux kernel as a kext that makes the OS X kernel a dual-purpose. However that will require you to use two sets of libraries. (Binaries do not clash so it is largely okay)
Запуск linux приложений на mac os
macOS и Linux имеют общее наследие. К сожалению, это не означает, что приложения могут плавно переходить между операционными системами. Для запуска приложений Mac в Linux вам понадобится виртуальная машина или слой перехода.
Запустите виртуальную машину MacOS (все приложения)
С помощью бесплатного гипервизора с открытым исходным кодом, такого как VirtualBox, вы можете запускать macOS на виртуальном устройстве на вашем компьютере с Linux. Правильно установленная виртуализированная среда MacOS без проблем запустит все приложения MacOS. Подобная виртуализация рабочего стола требует значительного объема оперативной памяти, поэтому она может работать некорректно на устройствах с ограниченными ресурсами. Для машин с техническими характеристиками наилучшим вариантом является виртуализация операционных систем через виртуальную машину VirtualBox.
Использование Darling Translation Layer (только CLI)
Вы также можете запустить слой перехода под названием Darling. Он работает как WINE, которая создает среду перевода с Windows на Linux, которая позволяет вам запускать некоторые приложения Windows в системах Linux.
Darling пытается достичь той же цели между macOS и Linux. Поскольку macOS и Linux совместно используют одну и ту же базу в стиле UNIX, Darling менее ресурсоемок, чем WINE, и в большинстве случаев дает лучшие результаты. В настоящее время Darling может работать только с очень простыми приложениями с графическим интерфейсом и несколькими приложениями командной строки. Хотя поддержка приложений с графическим интерфейсом является целью проекта, эта функция еще не реализована. По сути, вы можете надежно запускать оболочку macOS в Терминале и, возможно, не сможете эффективно запускать другие приложения. Он также содержит огромное количество кода, требующего около 12 гигабайт дискового пространства после сборки. По сути, это дублирует функциональность операционной системы MacOS.
Поэтому, если вы беспокоитесь о том, что удаленные исполняемые файлы могут повредить вашу систему, вы можете избегать пакетов такого размера.
Сборка и установка дорогой Darling
1. Следуйте инструкциям по установке, чтобы загрузить правильные зависимости для вашего дистрибутива Linux со страницы установки Darling. В зависимости от вашего дистрибутива вам может потребоваться выполнить длинную команду. Например, для Ubuntu выполните следующую команду терминала, чтобы загрузить зависимости Darling: Источник
Запускаем Linux приложения на Mac
Запускаем Linux приложения на Mac Linux обожают многие пользователи во всем мире ввиду его простоты и шикарным способностям индивидуальной настройки благодаря открытому исходному коду. Кроме того, все это абсолютно бесплатно! Многие пользователи Mac предпочитают запускать его в качестве виртуальной машины на VMWare , Parallels , или даже Virtual Box . Однако, иногда вам может понадобиться запустить Linux -приложения без необходимости постоянной смены системы. Используя SSH инструмент под названием X11 через SSH2, можно удаленно загрузить графическое Linux -приложение и юзать его прямо на вашем Mac .
Что вам понадобится: >> Linux компьютер или виртуальная машина на Mac
>> Apple X11 ( скачать здесь ) Примечание: Вы можете использовать любой дистрибутив Linux , который вам нравится, но инструкции могут незначительно отличаться в зависимости от выбранного вами дистрибутива. Мы будем использовать Ubuntu , установленный на виртуальную машину. Первым делом в установке приложения X11 является реализация Apple X Window System . Перед загрузкой и установкой X11 по ссылке выше, убедитесь, что приложение еще не было установлено ранее. Собственно процесс установки программного обеспечения мало отличается от обычной установки программ на МАС OS X . 2. Установка SSH в Ubuntu
Прежде чем мы начнем подключения к нашей машине Ubuntu , мы должны сначала установить SSH. SSH (или Secure Shell) — это способ, благодаря которому можно безопасно удаленно подключаться к вашему компьютеру через командную строку при помощи терминала на вашем Маке. По умолчанию эта функция не установлена. Чтобы установить SSH в Ubuntu , откройте терминал (находится по пути Приложения> Стандартные ). После открытия терминала, введите команды, которые можно найти ниже, одну за другой, а затем нажмите клавишу ввода. Вам будет предложено ввести пароль после первого ввода команды. sudo apt-get update sudo apt-get install ssh После успешного завершения установки, и пока мы все еще в терминале, введите следующую команду, чтобы получить IP-адрес вашей Linux машины: После ввода этой команды на экран поочередно будет выводиться несколько строк текста. IP-адрес под eth0 в поле “inet addr” и будет являться IP-адресом этого компьютера в вашей локальной сети. Именно его мы будем использовать для подключения через SSH в следующем шаге. 3. Подключение через SSH на вашем Mac
После успешного завершения двух предыдущих шагов, теперь вы можете, наконец, подключиться к Linux машине через SSH. Чтобы сделать это, откройте терминал на вашем Mac (находится в папке / Applications / Utilities ) и введите следующую команду: ssh Username@IPAddress -X Замените «Username» вашим именем пользователя на вашей Linux -машине, и замените «IPAddress» на адрес, который вы получили выполняя предыдущий шаг. После ввода этой команды нажмите клавишу «ввод» , подключение будет открыто, и вы заметите, что приложение X11 также автоматически откроется. Это произошло потому, что мы добавили аргумент «-X» в команду, которая дает «сигнализирует» SSH о том, что мы собираемся использовать систему X Window удаленно. Источник
Запуск Mac OS X софта в linux
Re: Запуск Mac OS X софта в linux
Re: Запуск Mac OS X софта в linux
Re: Запуск Mac OS X софта в linux
Обсуждалось не так давно.. Вроде бы, нашли всего штук пять программ, которые есть ТОЛЬКО под Мак. Все остальные — и под Винду имеются.
Re: Запуск Mac OS X софта в linux
Re: Запуск Mac OS X софта в linux
Re: Запуск Mac OS X софта в linux
просто мак в этом смысле еще хуже винды. там вроде бы три полноценных независимых API эта игра не стоит свеч
Re: Запуск Mac OS X софта в linux
Не такие они и независимые (X-ы не считаем, они на маке не используются по факту). Cocoa — это суть очень навороченная обертка вокруг Carbon, так что если на ляликсе проэмулировать Carbon, то Cocoa заведется сама. Но «ничего у вас не выйдет», Apple-овские фреймворки изобилуют недокументированными API, которые очевидно тем-же Cocoa используются, а что они из себя должны представлять — никто кроме Apple не знает достоверно.
Re: Запуск Mac OS X софта в linux
>Cocoa — это суть очень навороченная обертка вокруг Carbon
Re: Запуск Mac OS X софта в linux
Вообще там QT(QuickTime)+Quartz+Cocoa. Эмуляции это пока не поддается.
Re: Запуск Mac OS X софта в linux
> Cocoa — это суть очень навороченная обертка вокруг Carbon Откуда дровишки? А то очень похоже на 4.2.
Re: Запуск Mac OS X софта в linux
cocoa и carbon это разные оперы 🙂
Re: Запуск Mac OS X софта в linux
Re: Запуск Mac OS X софта в linux
А как насчет хакинтоша в vmware?
Re: Запуск Mac OS X софта в linux
Cocoa — тулкит от OSX, а карбон — это обертка для совместимости и запуска старых os9 тулз.
Re: Запуск Mac OS X софта в linux
Re: Запуск Mac OS X софта в linux
Вообще говоря, по слухам в 10.6 уже Carbon не будет — равно как и поддержки PPC: http://www.appleinsider.com/articles/08/06/04/apples_mac_os_x_10_6_code_named.
Adobe еще должны свой софт переделать — и в путь. Но, я думаю, это еще не меньше года. > И спрашивается, если Cocoa не обертка вокруг Carbon, то какого тогда [NSApplication run] спускается в чисто карбоновский CFRunLoopRun* ? Если глянуть на http://developer.apple.com/documentation/CoreFoundation/Reference/CFRunLoopRe. видно, что CFRunLoopRun — это Core Foundation (на что как бы намекает префикс CF 😉 ), а вовсе не Carbon. Слышали, что с окончательным переходом Apple с Carbon на Cocoa, компания Corbina переименуется в Cocoina? 😉
Re: Запуск Mac OS X софта в linux
> Cocoa — тулкит от OSX, а карбон — это обертка для совместимости и запуска старых os9 тулз. Еще раз повторюсь: не зная, не суйте свое рыло, ыы в том числе.
Вокруг чего простите Carbon обертка, вокруг Mach и BSD API? Carbon это нижний уровень архитектуры OS X, и все вышележащее его использует. А то, что «а карбон — это обертка для совместимости и запуска старых os9 тулз.» — это да, Apple такими красивыми словами пишет в документации по Cocoa для чайником, дабы расхвалить последнюю. Однако по факту Cocoa целиком и полностью базируется на карбоне, и карбон является такой-же неотемлемой частью OS X, как WinAPI уровень в винде (имеются в виду XP / 2k, про свисту я ничего не знаю): какие-то библиотеки возможно и используют NT Native API, но большая часть всего базируется на WinAPI, при этом можно сколько угодно обзывать WinAPI устаревшим фреймворком, оставленным только для совместимости, умалчивая тот факт что 99% кода системного используют WinAPI. Так и Carbon можно обозвать устаревшим фреймворком, но для этого надо сначала переписать весь код Cocoa, так что-бы Cocoa напрямую использовала BSD и Mach интерфейсы, а до тех пор, пока Cocoa будет использовать Carbon, ни о какой «обертки для совместимости и запуска старых os 9 тулз» речи быть не может. Если вам мои слова не кажутся убедительными, присмотритесь еще раз к backtrace, вас он не убеждает? Ну тогда вы полный ФГМ, что с вами спорить. Кстати говоря, чтоб вы знали, Carbon не позволяет напрямую запускать OS 9 тулзы, он лишь облегчает перенос этих приложений на OS X, на уровне исходных кодов. А для запуска OS 9 приложений на PowerPC маках был эмулятор классики, который, что-бы знали, упразднили в Intel версии OS X, так что на новых маках запускать OS 9 тулзы уже никак не получится. Ну и последний гвоздь в твой гроб: вот у меня стоит iPhone SDK beta5, я иду в каталог /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.0.sdk/System/Li brary Захожу в каталог Frameworks, и вижу: Carbon.framework отсутствует, вы могли бы радоватся, однако другие составляющие карбона: CoreFoundation, CoreGraphics, CFNetwork — все это и тут есть, ну и для проверки сделаем:
$ grep -r CFRunLoopRun * 2>/dev/null Binary file AudioToolbox.framework/AudioCodecs matches Binary file AudioToolbox.framework/AudioToolbox matches Спрашивается, зачем на iPhone элементы Carbon-а, что-бы запускать старые OS 9 приложения? Источник