Gibt es eine Möglichkeit, eine Linux-Binärdatei unter macOS auszuführen?

15

Gibt es eine Möglichkeit, eine Linux-Binärdatei unter macOS auszuführen? Ich habe versucht, eine Binärdatei auszuführen, aber es wurde angegeben, dass sie nicht ausführbar ist.

sudomakeinstall2
quelle
Das wird nicht funktionieren. Der OSX-Kernel unterscheidet sich etwas von einem Linux-Kernel.
ott--
Nun, OS X verwendet keine elf-Binärdateien. Es ist also ein bisschen so, als würde man versuchen, Windows .exe auszuführen. Eine kurze Suche ergibt jedoch Folgendes : osxbook.com/software/xbinary Wenn Sie Ihren Code neu kompilieren können, ist dies kein Problem.
Orion
Für XBinary ist ein Programm erforderlich, das weiß, wie Ihre Binärdatei ausgeführt wird. es an und für sich läuft nichts.
Saagarjha

Antworten:

8

Diese Antworten sind zur Hälfte richtig, da die Virtualisierung eine Wahl ist, es jedoch eine andere gibt. Darf ich vorstellen ...

Geschichte

  1. Zuerst gab es UNIX, circa 1972
  2. Dann wird die Timeline geteilt
    • 1977 kompilierten / bauten Bob Fabry und andere für 90 USD die ersten Versionen von BSD, kurz für Berkeley Systems Distribution.
    • 1991 schrieb Linus Torvalds in einer Newsgroup über Software, die er von Richard Stallman verwendete, der 1983 GNU gründete, und Linus 'UNIX war geboren.
    • Apple erwarb 1996 NeXT Software wieder, nachdem Steve Jobs 1984 von Apple entlassen worden war, und verwendete die Software und die Leute dort, um OS X zu erstellen. OS X ist das Darwin OS + die NeXT Desktop Environment. Und jetzt sind wir wieder bei Bullet # 1, da Darwin ein Closed Source Fork von BSD ist. Informationen zum Open Source-Projekt finden Sie unter PureDarwin . Die offizielle Apple Developer Page finden Sie unter Apple Open Source .

Wie können wir das nutzen?

BSDs verwenden traditionell das Ports-System für das Paketmanagement. Am weitesten verbreitet sind die FreeBSD-Ports . Ports sind Pakete, die direkt von der Quelle installiert werden. Da dieselben Linux-Anwendungen aus denselben Quellen stammen , können Sie eine Linux-Anwendung ausführen, wenn ihr Port vorhanden ist. Verwenden Sie diese Ports nicht auf einem Mac, weil ...


Da alle grafischen Benutzeroberflächen von Apple mit der Cocoa API - WikiEntry geschrieben wurden , die mit XCode - OS X for Developers gebündelt ist , können die Ports so angepasst werden, dass sie diese Vorteile nutzen:

  1. Installieren Sie XCode für Ihre Version von OS X.
  2. In XCode ist die Apple-Version des GCC-Compilers und aller anderen zugehörigen Tools enthalten. Informationen zum Aktualisieren der Tools finden Sie in diesem Beitrag zu StackOverflow . Die Tools sind betriebssystemversionsabhängig, dh nicht abwärtskompatibel meines Wissens (kurz gesagt, installieren Sie nicht XCode für 10.8 auf 10.6 usw.).
  3. Nachdem Sie XCode installiert haben, verfügen Sie nun über einen Compiler. Nach der Installation des MacPorts .pkg-Installationsprogramms können Sie auf der MacPorts- Seite nach dem zu installierenden Port suchen

Vorbehalt

Das Ports-System führt nicht unbedingt eine Abhängigkeitsprüfung durch, es sei denn, der Port wurde ordnungsgemäß geschrieben. Ich habe das Problem leicht angesprochen. Was bedeutet elibc_FreeBSD in Gentoo Portage Overlays?

eyoung100
quelle
17

Ich habe vor kurzem begonnen, Noah zu verwenden, um Linux-Binärdateien unter macOS auszuführen. Sie können mit homebrew ( brew install linux-noah/noah/noah) installieren . Dann solltest du dazu in der Lage sein:

noah linux_binary

Meiner Erfahrung nach entspricht das Verhalten der Binärdatei dem, was ich auf meinem Ubuntu-Rechner sehe.

Scott Dean
quelle
Obwohl der Befehl funktioniert hat und keine Fehler
aufgetreten sind
2

Nur so weiß ich, dass dies durch eine Art Virtualisierung möglich ist . Beispielsweise könnten Sie vagrant verwenden , eine Art Wrapper für die VBox von Oracle oder den vmplayer von VMware. Das andere, was manchmal gemacht wird, ist, dies in einen Container wie Docker zu legen .

felsig
quelle
2

Hardware-Emulation

Nicht direkt! Ja, wie gesagt, Sie müssen es mit VirtualBox , VMWare Fusion , virtualisieren , , das Ihrem CPU-Typ entspricht.

Es gibt auch Qemu , das verschiedene CPU-Typen virtualisiert, z. B. Intel oder Power usw.

Software-Emulation

Es gibt auch eine Emulation der Softwareschicht mit Programmen wie WiNE und meinem eigenen Emulationsprogramm (WiP). Beide emulieren teilweise das Windows-Betriebssystem, indem sie die Systemaufrufe in POSIX konvertieren.

Die meisten Linux-Anwendungen werden unter OSX mit einer Neukompilierung der Quelle ausgeführt.

Bobbyjo
quelle
Ich habe deine Links für dich repariert. Willkommen bei U & L.SE.
eyoung100