Re: binäre Aliens unter FreeBSD nutzen

From: Marc Santhoff <M.Santhoff(at)web.de>
Date: Wed, 14 Dec 2011 12:42:24 +0100

Am Dienstag, den 13.12.2011, 18:37 +0100 schrieb Oliver Fromme:
> Marc Santhoff wrote:
> > Oliver Fromme wrote:
> > > - Falls es wenigstens eine Library für Linux (*.so) gibt:
> > > Diese unter FreeBSD zu verwenden, ist in der Regel
> > > deutlich einfacher als bei einer Windows-DLL. Im Notfall
> > > kann man zumindest die Software als Linux-Binary ent-
> > > wickeln (auch das geht unter FreeBSD, am einfachsten
> > > mit einem linux_dist*-Port) und dann im Linuxulator
> > > laufen lassen.
> >
> > Kannst Du dazu bitte noch etwas ins Detail gehen? Ich habe noch nicht
> > geguckt, aber im Prinzip würde das doch heißen, alle eingebundenen
> > Bibliotheken bereitzustellen und außerdem benutze System Calls
> > umzuleiten, ähnlich, wie der Linuxolator das tut?
>
> In solchen Fällen ist es häufig das Einfachste und Sauberste,
> ein kleines Linux-Binary als Wrapper zu schreiben. Das Linux-
> Binary bindet die fragliche Library ein und übersetzt alle
> benötigten Funktionsaufrufe in eine externe API, die z.B.
> über Sockets oder Pipes kommuniziert. Also im Prinzip sowas
> ähnliches wie RPC.

Ah ja, das ist wirklich ein gangbarer Weg mit relativ begrenztem
Aufwand, sehr gut.

> Dein FreeBSD-Binary, das die eigentliche Arbeit macht, startet
> das Linux-Binary (das dann ganz normal unter dem Linuxulator
> läuft). Immer, wenn das FreeBSD-Programm einen Funktions-
> aufruf in die Library machen würde, benutzt es stattdessen
> einen API-Aufruf via Socket oder Pipe (oder was auch immer)
> zum Linux-Wrapper.

Klar.

> > Interessant wäre natürlich auch die Frage, wie kompliziert eine echte
> > Portierung auf FreeBSD wäre, mit Linux habe ich sonst wenig zu tun.
>
> Du meinst, wenn Du den Source-Code der Library hast?
> Sollte eigentlich nicht schwer sein, sofern die Library die
> libusb für die USB-Zugriffe verwendet (was üblich ist).
> Die libusb von FreeBSD und Linux sind weitgehend kompatibel.

Ja, so meinte ich das. Und zwei Kandidaten, die ich genauer untersucht
habe, benutzen libusb. Wäre auch merkwürdig, wenn nicht, wer würde
schon das Rad neu erfinden wollen.

> Aber es kommt natürlich drauf an, was die Library sonst noch
> so macht, und wie schlimm sie mit "Linuxismen" verseucht
> ist. Wenn die Autoren den Code von Anfang an nur für Linux
> geschrieben haben, haben sie sich vermutlich nicht besonders
> viel Mühe gegeben, ihn portabel zu machen. Das kommt leider
> häufig vor; so mancher Port-Maintainer kann ein Lied davon
> singen.

Das kann wohl der Anbieter selbst bewerten, gibt es irgendwo ein Art
Liste dieser Linux-Spezialitäten oder existiert die nur in den Köpfen
der Befroffenen? Oder kann man alle Abweichungen von POSIX als Leitlinie
benutzen?

Im Inhaltsverzeichnis des Porters Handbook bin ich nicht fündig
geworden.

-- 
Marc Santhoff <M.Santhoff(at)web.de>
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Wed 14 Dec 2011 - 12:40:39 CET

search this site