ich stoße zunehmend auf Projekte (hauptsächlich im Bereich C++) die zwar auf Linux laufen, doch einen gewissen Aufwand benötigen um sie auch auf OSX erfolgreich zum kompilieren zu zwingen... [...] Sozusagen Code auf dem Mac editieren, auf Linux kompilieren und ausführen (sind nur Konsolenanwendungen).
Geht es dir eigentlich lediglich darum, dir den Anpassungsaufwand für Mac OS X zu ersparen, d.h. du bist bereits zufrieden, wenn du die Programme einfach nur unter virtualisiertem oder nativ gebootetem Linux nutzen kannst?
Habe nun auch schon gehört man könne das Linux auch einfach nur virtualisieren, da es recht genügsam sei.
Wenn du einen iMac mit Intel-Prozessor besitzt und unter Mac OS X virtualisieren willst, dann lade dir doch die aktuelle
VirtualBox-Version von den Oracle-Seiten in der Mac OS X-Version herunter.
Linux wird so genügsam sein, wie du es dir einrichtest; das hängt auch von der Distro ab. Je mehr RAM und Geschwindigkeit (Cores und GHz) dein iMac vorzuweisen hat, desto flüssiger wird ein umfangreich eingerichtetes Linux-Betriebssystem auch virtualisiert unter Mac OS X laufen; die Grafikkarte spielt natürlich - je nachdem, was du damit machst - auch eine Rolle. Verhält sich das virtualisierte Linuxsystem zäh, wähle am besten nicht KDE oder Gnome als Desktop-Umgebung für Linux, sondern etwas Genügsameres wie XFCE oder Fluxbox, wenn überhaupt: Je nach Anforderung deiner Konsolenanwendungen benötigst du zum Compilieren und Ausführen deiner Programme möglicherweise gar keine Desktopumgebung.
Solltest du eine Linuxdistribution neben dein Mac OS X richtig installieren wollen auf einer eigenen Partition, bist du natürlich nicht so stark eingeschränkt und probiere dann eine Desktopumgebung nach eigenem Geschmack aus; ein iMac mit Intelprozessor ist dafür leistungsfähig genug.
Nur wie funktioniert das dann mit den gemeinsam genutzten Daten
Im Falle eines in einer Virtuellen Maschine installierten Linux richtest du am besten einen Ordner ein auf den sowohl Mac OS X als auch das virtualisierte Linux zugreifen können.
(bzw. wie wäre es bei zwei getrennten Partitionen?) - speziell bei verschiedenen Dateisystemen? Oder gibt es ein Linux das hfs+ beherrscht?
Ja, bei Debian GNU/Linux ist mir bekannt, dass es HFS(+) beherrscht, aber wahrscheinlich unterstützen die meisten aktuellen Linux-Distributionen heutzutage HFS(+) in dem Sinne, dass man damit formatierte Partitionen als Arbeitsmedien zur Datenverarbeitung unter Linux verwenden kann; anderenfalls lässt sich HFS-Unterstützung normalerweise auch über ein Paket nachinstallieren. Mir wäre aber nicht bekannt, dass Linux auch von HFS-Dateisystemen booten könnte; dafür brauchst du üblicherweise ext2, ext3 oder ext4. Austausch von Arbeitsdateien kann genausogut auch über FAT32-formatierte Arbeitsvolumes geschehen, aber wenn du schon Mac OS X einsetzt, kannst du eigentlich auch bei HFS(+) bleiben. (Irgendwo gab es auch mal ein Tool, das es erlaubte, unter Mac OS X auf ext2/3-Partitionen zuzugreifen.)
Man kann sein auf Linux basiertes Betriebssystem (wenn es auf einer extra eingerichteten Festplattenpartition installiert ist) über die Einrichtung der Datei /etc/fstab so konfigurieren, dass zusätzliche Partitionen (neben denen mit den /root und /home Verzeichnissen) automatisch nach jedem Systemstart eingebunden werden, das Linuxsystem also sofort darauf zugreifen kann. Dann hat man nur einmal bei der Systemeinrichtung die Arbeit, die Partition ins System einzubinden.
Im Prinzip dachte ich mir das eben so... Daten editieren auf OSX (weil alles bereits bequem eingerichtet), kompilieren und ausführen auf Linux.
Es kommt wahrscheinlich darauf an, was genau du vorhast. Es gibt auch eine Menge guter Editoren unter Linux, da ist eigentlich für jeden etwas dabei: Schau dich mal um. Es wird vermutlich nicht einfach sein, es so einzurichten, dass du den Compiliervorgang für dein virtualisiertes Linux direkt aus dem Mac OS X-Editor heraus startest wie es manche integrierte Entwicklungsumgebungen anbieten, sondern du wirst vermutlich zwischenspeichern müssen, um dann unter Linux mit einem anderen Programm weiterzumachen bzw. von der dortigen Shell aus direkt die Quelltextdatei mit gcc weiterbearbeiten müssen. Falls das auch einfacher klappt, schreib doch dann mal genauer, wie du dir das eingerichtet hast. Achte auf einander entsprechende Zeichenkodierungen der Dateien, die du zwischen den Systemen austauschen willst.
oneOeight will wahrscheinlich darauf hinaus, dass er dir vorschlägt, den bei Linux-Betriebssystemen üblichen Auslagerungsspeicher auf der Festplatte, der "Swap" genannt wird, statt wie gewöhnlich in einer eigenen als "Swap" initialisierten Partition als Datei anzulegen. Keine Ahnung, wie man das anstellt oder wie man sein Linuxsystem so einrichtet, dass ein und dieselbe Installation sowohl direkt von der Partition bootet (statt Mac OS X) als auch virtualisiert unter Mac OS X. Wenn du es herausfindest, schreibe doch mal, wie das geht. Ich habe mich noch nicht mit der allerneusten Virtual Box-Version beschäftigt, aber es mag sein, dass dieses oder andererseits auch andere rein kommerzielle Virtualisierungsprodukte in diese Richtung noch weitergehende Funktionen anbieten.