Re: binäre Aliens unter FreeBSD nutzen

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Tue, 13 Dec 2011 18:37:34 +0100 (CET)

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.

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.

> 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.

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.

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
Handelsregister: Registergericht Muenchen, HRA 74606,  Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün-
chen, HRB 125758,  Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart
FreeBSD-Dienstleistungen, -Produkte und mehr:  http://www.secnetix.de/bsd
"Life is short (You need Python)"
        -- Bruce Eckel, ANSI C++ Comitee member, author
           of "Thinking in C++" and "Thinking in Java"
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Tue 13 Dec 2011 - 18:37:54 CET

search this site