Betriebssysteme > Solaris/x86 und OpenSolaris

Linux application loader

(1/1)

mdjr:
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:

--- Code: ---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);
}

--- Ende Code ---

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

Drusus:
Moin,

gibts schon - nennt sich lxrun. Siehe 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/

Tschau,
  Drusus.

mdjr:

--- Zitat von: Drusus am 01. Juli 2007, 15:57:35 ---Moin,

gibts schon - nennt sich lxrun. Siehe 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/

Tschau,
  Drusus.

--- Ende Zitat ---
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

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln