2009-12-23 66 views
21

如何在Mac OS X下運行Linux二進制文件?在Mac OS X下仿真Linux二進制文件

谷歌搜索我發現了幾個模擬器,但沒有一個在Mac上運行Linux二進制文件。有很多關於在Linux上運行Mac OS X的文章和類似的東西 - 但這與我想做的事情相反。

更新:

感謝您的所有答案!我完全瞭解MacPorts和Fink或任何其他的東西;不,我不想要這些工具中的任何一個,我也不想要任何包管理者,我更願意自己編寫一些東西。我也有Parallels,可以設置虛擬機和所有爵士樂......

我想要做的唯一事情就是找到一種方法來運行一個二進制文件,我沒有源代碼並且已經編譯對於Linux,但我不想在Linux下運行它,但在Mac OS X下運行。因此,我對模擬器有疑問。

+2

如果你只是想從* nix/POSIX世界運行軟件,它可能會編譯,只要它不依賴於操作系統特定的庫。芬克或MacPorts可以幫助這一點。 – Matt 2009-12-23 17:40:32

+0

我想不出任何可用於Linux的軟件,但不適用於Mac(不幸的是,因爲我是一名Linux員工)。你爲什麼要找這樣的東西? – Davide 2009-12-23 18:12:43

+0

Team Fortress 2專用服務器是一個僅適用於Windows和Linux的示例: -/ – Tommy 2011-10-10 14:47:49

回答

7

設置一個虛擬機(我親自使用VMWare Fusion),然後在虛擬機上安裝任何你想要的Linux發行版。或者,如果你有Linux程序的源代碼,你可以在Mac上重新編譯它,然後本地運行它。如果您安裝了FinkMacPorts,則可以安裝許多開源程序,而不會有太多麻煩。

+0

我添加了Fink和DarwinPorts的鏈接,因爲它們通常比下載源代碼更容易,並試圖編譯它,意識到你需要首先安裝其他東西,然後下載它並嘗試編譯它等等。 – 2009-12-23 17:44:35

+0

很酷。順便說一句,現在它實際上是MacPorts。 ;) – mipadi 2009-12-23 17:46:50

2

如果您決定走虛擬化路線,請考慮VirtualBox

另外,如果您只需要UNIX這樣的命令行工具,就有MacPorts項目。這基本上是我如何在我的Mac上設置git:安裝MacPorts之後,您只需運行sudo port install git命令在您的系統上安裝git

7

以及有一個項目引入類似的Linux的binfmt_misc到OS X所以現在你需要的是一個ELF裝載機,動態鏈接在Mac OS X上運行Linux的可執行文件可以同時加載Mach-O和ELF,以及一些將Linux調用轉換爲OS X的機制。

只是爲了獲得靈感,您可以以忽略文件擴展名的方式實現動態鏈接器 - libfoo.so.1(作爲Linux ELF)和libfoo.1.dylib(作爲Mach-O)都可以因此可以重新使用系統庫的OS X版本,這樣就無需編寫「託管在OS X上」libc.so,系統調用可以由將Linux調用轉換爲內核中的OS X的kext來處理。

或者,在一個更優雅的方式,實現一個精簡的Linux內核的內核擴展,使OS X內核雙重目的。但是,這將需要您使用兩套庫。 (二進制文件不衝突,因此在很大程度上是好的)

+1

你有這個鏈接嗎? – 2014-07-14 14:34:26

1

我最近發現​​,你可以用它來在MacOS運行Linux二進制文件。您可以通過自制軟件(brew install linux-noah/noah/noah)安裝諾亞。然後,你應該能夠做到這一點:

noah linux_binary 

以我的經驗二進制的行爲相匹配我看到我的Ubuntu的機器上。