01.01.2013 Aufrufe

Das FreeBSD-Handbuch - CSMN Net Services

Das FreeBSD-Handbuch - CSMN Net Services

Das FreeBSD-Handbuch - CSMN Net Services

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Kapitel 3. Grundlagen des UNIX Betriebssystems<br />

Ausführungszeit laden, oder Teile ihres Programms nach der Initialisierung wegwerfen, um Hauptspeicher oder<br />

Swap-Speicher zu sparen. Programmiersprachen wurden immer fortschrittlicher und man wollte, dass Code<br />

automatisch vor der main-Funktion aufgerufen wird. <strong>Das</strong> a.out-Format wurde oft überarbeitet, um alle diese Dinge<br />

zu ermöglichen und sie funktionierten auch für einige Zeit. a.out konnte diese Probleme nicht ohne ein ständiges<br />

Ansteigen eines Overheads im Code und in der Komplexität handhaben. Obwohl ELF viele dieser Probleme löste,<br />

wäre es sehr aufwändig, ein System umzustellen, das im Grunde genommen funktionierte. Also musste ELF warten,<br />

bis es aufwändiger war, bei a.out zu bleiben, als zu ELF überzugehen.<br />

Im Laufe der Zeit haben sich die Erstellungswerkzeuge, von denen <strong>FreeBSD</strong> seine Erstellungswerkzeuge abgeleitet<br />

hat (speziell der Assembler und der Loader), in zwei parallele Zweige entwickelt. Im <strong>FreeBSD</strong>-Zweig wurden<br />

Shared-Libraries hinzugefügt und einige Fehler behoben. <strong>Das</strong> GNU-Team, das diese Programme ursprünglich<br />

geschrieben hat, hat sie umgeschrieben und eine simplere Unterstützung zur Erstellung von Cross-Compilern durch<br />

beliebiges Einschalten verschiedener Formate usw. hinzugefügt. Viele Leute wollten Cross-Compiler für <strong>FreeBSD</strong><br />

erstellen, aber sie hatten kein Glück, denn <strong>FreeBSD</strong>’s ältere Sourcen für as und ld waren hierzu nicht geeignet. Die<br />

neuen GNU-Werkzeuge (binutils) unterstützen Cross-Compilierung, ELF, Shared-Libraries, C++-Erweiterungen<br />

und mehr. Weiterhin geben viele Hersteller ELF-Binaries heraus und es ist gut, wenn <strong>FreeBSD</strong> sie ausführen kann.<br />

ELF ist ausdrucksfähiger als a.out und gestattet eine bessere Erweiterbarkeit des Basissystems. Die<br />

ELF-Werkzeuge werden besser gewartet und bieten Unterstützung von Cross-Compilierung, was für viele Leute<br />

wichtig ist. ELF mag etwas langsamer sein, als a.out, aber zu versuchen, das zu messen, könnte schwierig werden.<br />

Es gibt unzählige Details, in denen sich die beiden Formate unterscheiden, wie sie Pages abbilden,<br />

Initialisierungscode handhaben usw. Keins davon ist sehr wichtig, aber es sind Unterschiede. Irgendwann wird die<br />

Unterstützung für Programme im a.out-Format aus dem GENERIC-Kernel entfernt werden. Wenn es dann keinen<br />

oder kaum noch Bedarf für die Unterstützung dieses Formates gibt, werden die entsprechenden Routinen ganz<br />

entfernt werden.<br />

3.13. Weitere Informationen<br />

3.13.1. Manualpages<br />

Die umfassendste Dokumentation rund um <strong>FreeBSD</strong> gibt es in Form von Manualpages. Annähernd jedes Programm<br />

im System bringt eine kurze Referenzdokumentation mit, die die grundsätzliche Funktion und verschiedene<br />

Parameter erklärt. Diese Dokumentationen kann man mit dem man Kommando benutzen. Die Benutzung des man<br />

Kommandos ist einfach:<br />

% man Kommando<br />

Kommando ist der Name des Kommandos, über das Sie etwas erfahren wollen. Um beispielsweise mehr über das<br />

Kommando ls zu lernen, geben Sie ein:<br />

% man ls<br />

Die Online-Dokumentation ist in nummerierte Sektionen unterteilt:<br />

1. Benutzerkommandos.<br />

2. Systemaufrufe und Fehlernummern.<br />

3. Funktionen der C Bibliothek.<br />

112

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!