libc für FreeBSD und Linux

Deever

bofh und Luser
Hey Amigos, wie geht's?

Ich frage hier, weil Google nur Schrott lieferte:
Gibt es eine C Library, die mindestens auf FreeBSD und Linux läuft? Ich möchte nämlich zwar Binärkompatibilität zwischen meinen Systemen erreichen, aber weder was am Kernel frickeln noch GNU Bloatware installiern.

Vielen Dank für eure Antworten!
Gruß,
/dev
 
Der FreeBSD Linux Kompatibilitätslayer verwendet eine GNU Libc. Diese läuft damit unter Linux (wo sie eh zur Standardinstallation gehört) und auch unter FreeBSD (wo sie immer vorhanden ist, wenn die Linux Kompatibilität eingerichtet ist). Binärkompatibilität zwischen FreeBSD und Linux erreichst Du also, indem Du für Linux programmierst und das ganze unter FreeBSD über den Kompatibilitätslayer laufen läßt. GNU Bloatware wirst Du damit nicht installieren, weil sie wie gesagt bereits installiert ist.
 
Na, dies ist mir mal eine schnelle Antwort! Danke! :)

undo schrieb:
Der FreeBSD Linux Kompatibilitätslayer verwendet eine GNU Libc.
Diesen Kompatibiltätslayer will ich aber eben wegen dem Gefrickel¹ am Systemkern nicht. Deshalb die Frage nach einer speziellen C Library.

GNU Bloatware wirst Du damit nicht installieren, weil sie wie gesagt bereits installiert ist.
Das will ich natürlich ebenfalls nicht. ;)

¹[size=-2]"Gefrickel" sei hier nicht abschätzig gemeint. Jedoch unterstützen die meisten UNIX-Kerne (FreeBSD, Linux, SunOS, The HURD, ...) ELF und steuern damit ihren Beitrag zur Binärkompatiblität bereits bei, was eine weitere "Operation" am Kern überflüssig[tm] macht. Kurz: Unter diesen Systemen ist Binärkompatibilität nicht (mehr) Kernelsache.[/size]
 
Was fuern Gefrickel am Systemkern? Wenn du das kompatibilitaetslayer installierst brauchste nix am kernel frickeln. musst die kompatibilitaet nur einschalten was du akaik einfach per config file machst. Ausser der GNU C Lib hast du keine alternativen.
 
Und es geht ja um Binärkompatibilität, nicht Bibliothekskompatibilität, also wird der Kernel wohl zwangsläufig involviert sein müssen.
Aber wie MuffiXXL schon gesagt hat, du musst keinen neuen Kernel bauen, und sogar das Kernelmodul wird meist automatisch geladen.
 
Was Du willst ist also eine Bibliothek, die für Dich als Anwendungsprogrammierer unter Linux und FreeBSD dasselbe Binärinterface zur Verfügung stellt. Im Hintergrund aber auf den jeweiligen Kernel und das jeweilige Betriebssystem zugeschnitten ist. Das klingt machbar, aber außer der Gnu Libc fällt mir da für C halt auch nichts ein.
Wie wäre es denn mit einer anderen Programmiersprache? FreePascal oder so? Das erzeugt auch ELF Dateien und hat seine eigenen Runtime Bibliotheken. Vielleicht tun die ja genau das, was Du willst? Ich muß allerdings zugeben, daß ich aus dem Kopf nicht weiß, ob FreePascal eine Shared Library benutzt oder die benötigten Teile der Runtime Bibliothek fest einkompiliert.
 
Maledictus schrieb:
Und es geht ja um Binärkompatibilität, nicht Bibliothekskompatibilität, also wird der Kernel wohl zwangsläufig involviert sein müssen.
Aber wie MuffiXXL schon gesagt hat, du musst keinen neuen Kernel bauen, und sogar das Kernelmodul wird meist automatisch geladen.

Ich will ja nicht dazwischenreden, aber kann mir bitte jemand den Unterschied zwischen Binaer- und Bibliothekskompatibilitaet erklaeren?
 
Bei Binärkompatibilität laufen auch linux programme die in assembler geschrieben wurden, auch ganz ohne libc.
Andernfalls gäb es nur die gleichen Funktionen in den Bibliotheken.
 
Maledictus schrieb:
Bei Binärkompatibilität laufen auch linux programme die in assembler geschrieben wurden, auch ganz ohne libc.
Andernfalls gäb es nur die gleichen Funktionen in den Bibliotheken.
Wobei auch die Bibliotheken binärkompatibel sein können oder eben nicht. Laß mal ein FreeBSD-Programm, das keine Syscalls direkt macht, auf der glibc (unter Linux) laufen. Das meine ich mit "nicht binärkompatibel".

Gruß,
/dev
 
Zurück
Oben