sonnenblen.de - Das unabhängige Sun User Forum
Betriebssysteme => Solaris/x86 und OpenSolaris => Thema gestartet von: mdjr am 01. Juli 2007, 12:00:03
-
Hallo Leute.
Ich habe gerade mit einem Tool angefangen, das (dynamisch gelinkte) Linux-Binaries unter Solaris ausführen können soll. (Auf die Idee hat mich der fehlende AcrobatReader für Solaris/x86 gebracht.)
Die Idee, die ich habe, ist, dass fast alle Solaris-Befehle identisch zu Linux-Befehlen sind, aber lediglich in anderen .so-Dateien definiert sind. Systemaufrufe werden in beiden System i.d.R. nur von libc.so gemacht.
Meine Idee ist daher, "einfach" (ok - nicht ganz so einfach) die Linux-Binary zusammen mit dynamischen Bibliotheken (Linux & Solaris) und Wrapper-Libraries in den Speicher zu laden und das Programm zu starten.
Die Wrapper-Libraries sollen Befehle, die in beiden Systemen unterschiedlich arbeiten aufeinander matchen:
int linux_open(const char *filename, int mode, int access)
{
int solaris_mode;
if((mode&MASK)==LINUX_O_RDONLY) solaris_mode=O_RDONLY;
// ...
return open(filename,solaris_mode,access);
}
In der erste Version müssen alle benötigten Bibliotheken von Hand angegeben werden; es werden wohl nur einfach Applikationen (also kein AcrobatReader :-[) laufen.
1) Was haltet ihr davon - brauchbar / unbrauchbar?
2) Ist das ganze überhaupt machbar ?
Martin
-
Moin,
gibts schon - nennt sich lxrun. Siehe http://www.ugcs.caltech.edu/~steven/lxrun/ (http://www.ugcs.caltech.edu/~steven/lxrun/).
Alternativ gibt es inzwischen BrandZ womit man ein 32Bit Linux (allerdings afaik nur 2.4er Kernel) unter Solaris laufen lassen kann (in einer Zone). Siehe dazu: http://opensolaris.org/os/community/brandz/ (http://opensolaris.org/os/community/brandz/)
Tschau,
Drusus.
-
Moin,
gibts schon - nennt sich lxrun. Siehe http://www.ugcs.caltech.edu/~steven/lxrun/ (http://www.ugcs.caltech.edu/~steven/lxrun/).
Alternativ gibt es inzwischen BrandZ womit man ein 32Bit Linux (allerdings afaik nur 2.4er Kernel) unter Solaris laufen lassen kann (in einer Zone). Siehe dazu: http://opensolaris.org/os/community/brandz/ (http://opensolaris.org/os/community/brandz/)
Tschau,
Drusus.
Hallo.
"lxrun" kannte ich bereits, bevor ich mit dem ganzen begonnen habe. Der Hauptunterschied liegt darin, dass lxrun (wohl auch BrandZ) einen Linux-Kernel emuliert und die ganzen ".so"-Dateien (sowie eine Menge Dateien aus /etc) von Linux auf der Solaris-Partition vorhanden sein müssen.
An dieser Tatsache scheiterte bei mir der Versuch, AcrobatReader 5 für Linux auf Solaris laufen zu lassen.
Martin