svn commit: r48830 - head/de_DE.ISO8859-1/books/handbook/linuxemu

Bjoern Heidotting <[email protected]>
Newsgroups gmane.os.freebsd.devel.cvs.doc
Message-ID <[email protected]>
Author: bhd
Date: Wed May 18 19:55:47 2016
New Revision: 48830
URL: https://svnweb.freebsd.org/changeset/doc/48830

Log:
  Update to r48090:
  
  Patch to get straight to r48090.
  
  Reviewed by:	bcr
  Differential Revision:	https://reviews.freebsd.org/D6440

Modified:
  head/de_DE.ISO8859-1/books/handbook/linuxemu/chapter.xml

Modified: head/de_DE.ISO8859-1/books/handbook/linuxemu/chapter.xml
==============================================================================
--- head/de_DE.ISO8859-1/books/handbook/linuxemu/chapter.xml	Wed May 18 00:18:50 2016	(r48829)
+++ head/de_DE.ISO8859-1/books/handbook/linuxemu/chapter.xml	Wed May 18 19:55:47 2016	(r48830)
@@ -5,10 +5,10 @@
 
      $FreeBSD$
      $FreeBSDde: de-docproj/books/handbook/linuxemu/chapter.xml,v 1.94 2012/04/30 17:13:51 bcr Exp $
-     basiert auf: r40979
+     basiert auf: r48090
 -->
 <chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="linuxemu">
-  <info><title>Linux-Binärkompatibilität</title>
+  <info><title>&linux;-Binärkompatibilität</title>
     <authorgroup>
       <author><personname><firstname>Jim</firstname><surname>Mock</surname></personname><contrib>Restrukturiert und teilweise aktualisiert von </contrib></author>
      <!-- 22 Mar 2000 -->
@@ -22,8 +22,6 @@
       </authorgroup>
   </info>
 
-  
-
   <sect1 xml:id="linuxemu-synopsis">
     <title>Übersicht</title>
     <indexterm>
@@ -34,298 +32,182 @@
       <secondary>Linux</secondary>
     </indexterm>
 
-    <para>FreeBSD bietet Binärkompatibilität zu verschiedenen
-      anderen &unix; Betriebssystemen, darunter auch Linux.  Nun
-      könnten Sie sich fragen, warum FreeBSD in der Lage sein
-      muss, Linux-Binärprogramme auszuführen?  Die Antwort
-      auf diese Frage ist sehr einfach.  Viele Unternehmen und Entwickler
-      programmieren bzw. entwickeln nur für Linux, da es
-      <quote>das Neueste und Beste</quote> in der Computerwelt ist.
-      Für uns FreeBSD-Anwender heißt dies, genau diese Unternehmen
-      und Entwickler zu bitten, FreeBSD-Versionen ihrer Programme
-      herauszubringen.  Das Problem dabei ist nur, dass die meisten dieser
-      Firmen trotzdem nicht erkennen, wie viele zusätzliche
-      Anwender ihre Produkte benutzen würden, wenn es auch
-      FreeBSD-Versionen gäbe, und daher weiterhin
-      ausschließlich für Linux entwickeln.  Was also kann ein
-      FreeBSD-Anwender tun?  Genau an diesem Punkt kommt die Linux-
-      Binärkompatibilität ins Spiel.</para>
-
-    <para>Um es auf den Punkt zu bringen, genau diese Kompatibilität
-      erlaubt es FreeBSD-Anwendern, etwa 90 % aller Linux-Anwendungen
-      ohne Code-Änderungen zu verwenden.  Dies schließt
-      solche Anwendungen wie <application>&staroffice;</application>,
-      <application>Open Office</application>, die Linux-Versionen von
-      <application>&adobe;&nbsp;&acrobat;</application>,
-      <application>&realplayer;</application>,
-      <application>&oracle;</application>,
-      <application>Doom</application>,
-      <application>Quake</application> und viele andere ein.  Es wird
-      sogar berichtet, dass diese Linux-Anwendungen in manchen
-      Fällen unter FreeBSD eine bessere Leistung als unter
-      Linux aufweisen.</para>
-
-    <para>Allerdings gibt es nach wie vor einige Linux-spezifische
-      Betriebssystem-Eigenschaften, die unter FreeBSD nicht
-      unterstützt werden.  Linux-Anwendungen, die
-      &i386;-spezifische Aufrufe (wie die Aktivierung des
-      virtuellen 8086-Modus) verwenden, funktionieren
-      unter FreeBSD leider nicht.</para>
+    <para>&os; bietet 32-Bit-Binärkompatibilität zu &linux;, so dass
+      Benutzer 32-Bit &linux; Anwendungen auf einem &os;-System
+      installieren und ausführen können, ohne die Binärdatei ändern zu
+      müssen.  Es wurde sogar berichtet, dass in einigen Situationen
+      die 32-Bit &linux; Anwendungen auf &os; besser laufen als unter
+      &linux;.</para>
+
+    <para>Allerdings werden einige &linux;-spezifischen Merkmale nicht
+      von &os; unterstützt.  &linux;-Anwendungen, die
+      &i386;-spezifische Aufrufe, wie bspw. die Aktivierung
+      des virtuellen 8086-Modus verwenden, werden derzeit nicht
+      unterstützt.</para>
+
+    <para>Nach dem Lesen dieses Kapitels werden Sie wissen:</para>
 
-    <para>Nach dem Lesen dieses Kapitels werden Sie</para>
     <itemizedlist>
       <listitem>
-	<para>wissen, wie Sie die Linux-Binärkompatibilität
-	  installieren bzw. aktivieren.</para>
+	<para>Wie Sie die &linux;-Binärkompatibilität
+	  aktivieren.</para>
       </listitem>
 
       <listitem>
-	<para>Wissen, wie man zusätzliche Linux-Systembibliotheken
-	  unter FreeBSD installiert.</para>
+	<para>Wie zusätzliche &linux;-Systembibliotheken installiert
+	  werden.</para>
       </listitem>
 
       <listitem>
-	<para>Linux-Anwendungen unter FreeBSD installieren können.</para>
+	<para>Wie Sie &linux;-Anwendungen unter &os;
+	  installieren.</para>
       </listitem>
 
       <listitem>
-	<para>Wissen, wie die Linux-Binärkompatibilität
-	  unter FreeBSD verwirklicht wurde.</para>
+	<para>Wie die &linux;-Binärkompatibilität unter &os;
+	  implementiert ist.</para>
       </listitem>
     </itemizedlist>
 
-    <para>Bevor Sie dieses Kapitel lesen, sollten Sie</para>
+    <para>Bevor Sie dieses Kapitel lesen, sollten Sie wissen:</para>
 
     <itemizedlist>
       <listitem>
-	<para>wissen, wie man Software Dritter installiert
-	  (<xref linkend="ports"/>).</para>
+	<para>Wie Sie <link linkend="ports">
+	    Software von Drittanbietern installieren</link>.</para>
       </listitem>
     </itemizedlist>
 
   </sect1>
 
   <sect1 xml:id="linuxemu-lbc-install">
-    <title>Installation</title>
+    <title>Konfiguration der &linux;-Binärkompatibilität</title>
 
-    <indexterm><primary>KLD (kernel loadable object)</primary></indexterm>
+    <indexterm><primary>Ports-Sammlung</primary></indexterm>
 
-    <para>Die Linux-Binärkompatibilität ist per Voreinstellung
-      nicht aktiviert.  Der einfachste Weg, dies zu tun, ist das
-      <literal>Linux</literal> KLD (<quote>Kernel LoaDable object</quote>)
-      zu laden.  Dies erreichen Sie durch die Eingabe des folgenden
-      Befehls:</para>
+    <para>Die &linux;-Binärkompatibilität ist per Voreinstellung
+      nicht aktiviert und auch &linux;-Bibliotheken werden nicht
+      installiert.  &linux;-Bibliotheken können entweder manuell,
+      oder aus der &os; Ports-Sammlung installiert werden.</para>
 
-    <screen>&prompt.root; <userinput>kldload linux</userinput></screen>
+    <para>Bevor Sie versuchen den Port zu bauen, laden Sie das
+      &linux;-Kernelmodul, da ansonsten der Bau fehlschlägt:</para>
 
-    <para>Wollen Sie die Linux-Binärkompatibilität dauerhaft
-      aktivieren, sollten Sie die folgende Zeile in
-      <filename>/etc/rc.conf</filename> einfügen:</para>
-
-    <programlisting>linux_enable="YES"</programlisting>
+    <screen>&prompt.root; <userinput>kldload linux</userinput></screen>
 
-    <para>Der &man.kldstat.8;-Befehl kann benutzt werden, um
-      festzustellen, ob KLD geladen wurde:</para>
+    <para>Prüfen Sie, ob das Modul geladen wurde:</para>
 
     <screen>&prompt.user; <userinput>kldstat</userinput>
 Id Refs Address    Size     Name
  1    2 0xc0100000 16bdb8   kernel
  7    1 0xc24db000 d000     linux.ko</screen>
+
+    <para>Der einfachste Weg um einen Basissatz von
+      &linux;-Bibliotheken und Binärdateien auf einem &os;-System zu
+      installieren, ist über den Port oder das Paket
+      <package>emulators/linux_base-c6</package>.  So installieren Sie
+      das Paket:</para>
+
+    <screen>&prompt.root; <userinput>printf "compat.linux.osrelease=2.6.18\n" >> /etc/sysctl.conf</userinput>
+&prompt.root; <userinput>sysctl compat.linux.osrelease=2.6.18</userinput>
+&prompt.root; <userinput>pkg install emulators/linux_base-c6</userinput></screen>
+
+    <para>Wollen Sie die &linux;-Binärkompatibilität beim Systemstart
+      aktivieren, fügen Sie folgende Zeile in
+      <filename>/etc/rc.conf</filename> hinzu:</para>
+
+    <programlisting>linux_enable="YES"</programlisting>
+
     <indexterm>
       <primary>Kerneloptionen</primary>
       <secondary>COMPAT_LINUX</secondary>
     </indexterm>
 
-    <para>Wenn Sie das KLD nicht laden können oder wollen, besteht
-      auch die Möglichkeit, die Linux-Binärkompatibiltät
-      statisch in den Kernel einzubinden.  Dazu fügen Sie Ihrer
-      Kernelkonfigurationsdatei den Eintrag
-      <literal>options COMPAT_LINUX</literal>
-      hinzu.  Anschließend installieren Sie Ihren neuen Kernel
-      wie in <xref linkend="kernelconfig"/> beschrieben.</para>
+    <para>Benutzer, die es vorziehen, &linux;-Binärkompatibilität
+      statisch in den Kernel zu linken, müssen
+      <literal>options COMPAT_LINUX</literal> in die
+      Kernelkonfigurationsdatei aufnehmen und anschließend einen neuen
+      Kernel installieren.  Dies ist in <xref linkend="kernelconfig"/>
+      beschrieben.</para>
+
+    <sect2 xml:id="linuxemu-libs-manually">
+      <title>Manuelle Installation zusätzlicher Bibliotheken</title>
 
-    <sect2>
-      <title>Linux-Laufzeitbibliotheken installieren</title>
       <indexterm>
-	<primary>Linux</primary>
-	<secondary>Linux-Laufzeitbibliotheken installieren</secondary>
+	<primary>Gemeinsam benutzte Bibliotheken</primary>
       </indexterm>
 
-      <para>Dies kann auf zwei Arten geschehen, entweder über den
-	<link linkend="linuxemu-libs-port">linux_base</link>-Port
-	oder durch <link linkend="linuxemu-libs-manually">manuelle
-	Installation</link> der Bibliotheken.</para>
-
-      <sect3 xml:id="linuxemu-libs-port">
-	<title>Installation unter Verwendung des linux_base-Ports</title>
-	<indexterm><primary>Ports-Sammlung</primary></indexterm>
-
-	<para>Dies ist die einfachste Methode, um die Laufzeitbibliotheken
-	  zu installieren.  Sie funktioniert genauso wie die
-	  Installation eines beliebigen anderen Ports aus der
-          <link xlink:href="file://localhost/usr/ports/">Ports-Sammlung</link>.
-	  Dazu machen Sie einfach folgendes:</para>
-
-	<screen>&prompt.root; <userinput>cd /usr/ports/emulators/linux_base-f10</userinput>
-&prompt.root; <userinput>make install distclean</userinput></screen>
-
-        <note>
-          <para>Bei &os;-Systemen vor &os;&nbsp;8.0 müssen Sie den Port
-            <package>emulators/linux_base-fc4</package>
-            anstatt <package>emulators/linux_base-f10</package>
-            installieren.</para>
-        </note>
-
-	<para>Sie sollten nun über eine funktionierende
-	  Linux-Binärkompatibilität verfügen.  Einige
-	  Programme könnten sich zwar über falsche
-	  Unterversionsnummern der Systembibliotheken beschweren, dies ist
-	  im Allgemeinen aber kein Problem.</para>
-
-	<note>
-	  <para>Unter Umständen gibt es mehrere Versionen des
-	    Ports <package>emulators/linux_base</package>.
-	    Die Ports entsprechen unterschiedlichen Versionen
-	    verschiedener Linux-Distributionen Sie sollten den
-	    Port installieren, der am besten die Anforderungen
-	    der Linux-Anwendung erfüllt.</para>
-	</note>
-      </sect3>
-
-      <sect3 xml:id="linuxemu-libs-manually">
-	<title>Manuelle Installation der Bibliotheken</title>
-
-	<para>Wenn Sie die <quote>Ports</quote>-Sammlung nicht installiert
-	  haben, können Sie die Bibliotheken auch manuell
-	  installieren.  Dazu brauchen Sie die jeweiligen
-	  Linux-Systembibliotheken, die das zu installierende Programm
-	  verwendet sowie den Laufzeit-Linker.  Zusätzlich müssen
-	  Sie auf Ihrem FreeBSD-System einen
-	  <quote>virtuellen</quote> Verzeichnisbaum für die
-	  Linux-Bibliotheken einrichten.  Alle unter FreeBSD gestarteten
-	  Linux-Programme suchen zuerst in diesem Verzeichnisbaum
-	  nach Systembibliotheken.  Wenn also ein Linuxprogramm beispielsweise
-	  <filename>/lib/libc.so</filename> lädt, versucht FreeBSD
-	  zuerst, <filename>/compat/linux/lib/libc.so</filename> laden.
-	  Ist diese Datei nicht vorhanden, wird
-	  <filename>/lib/libc.so</filename> geladen.  Systembibliotheken
-	  sollten daher besser in den <quote>virtuellen</quote> Verzeichnisbaum
-	  <filename>/compat/linux/lib</filename> als in den vom
-	  Linux-<command>ld.so</command> vorgeschlagenen installiert
-	  werden.</para>
-
-	<para>Im Allgemeinen müssen Sie nur zu Beginn nach den
-	  Systembibliotheken suchen, die von Linuxprogrammen
-	  benötigt werden.  Nach den ersten Installationen von
-	  Linuxprogrammen auf Ihrem FreeBSD-System verfügen Sie
-	  über eine Sammlung von Linux-Systembibliotheken,
-	  die es Ihnen ermöglichen wird, neue Linuxprogramme
-	  ohne Zusatzarbeit zu installieren.</para>
-      </sect3>
-
-      <sect3>
-	<title>Installation zusätzlicher Systembibliotheken</title>
-	<indexterm><primary>Shared-Libraries</primary></indexterm>
-
-	<para>Was passiert, wenn Sie den <filename>linux_base</filename>-Port
-	  installieren, und Ihr Programm beschwert sich trotzdem
-	  über fehlende Systembibliotheken?  Woher wissen Sie,
-	  welche Systembibliotheken von Linux-Binärprogrammen
-	  benötigt werden, und wo Sie diese finden? Grundsätzlich
-	  gibt es dafür zwei Möglichkeiten (um dieser
-	  Anleitung zu folgen, müssen Sie unter
-	  FreeBSD als Benutzer <systemitem class="username">root</systemitem> angemeldet
-	  sein):</para>
-
-	<para>Wenn Sie Zugriff auf ein Linux-System haben, können
-	  Sie dort nachsehen, welche Systembibliotheken eine Anwendung
-	  benötigt, und diese auf Ihr FreeBSD-System kopieren.
-	  Dazu folgendes Beispiel:</para>
-
-	<informalexample>
-	  <para>Nehmen wir an, Sie haben FTP verwendet, um die
-	    Linux-Binärversion von <application>Doom</application>
-	    zu bekommen und haben sie auf Ihrem Linux-System installiert.
-	    Nun können Sie überprüfen, welche
-	    Systembibliotheken das Programm benötigt, indem Sie
-	    <command>ldd linuxdoom</command> eingeben.  Das Resultat
-	    sieht dann so aus:</para>
+      <para>Wenn sich eine &linux;-Anwendung über fehlende
+	Bibliotheken beschwert nachdem die
+	&linux;-Binärkompatibilität installiert wurde, finden Sie
+	heraus welche Bibliothken die Anwendung benötigt und
+	installieren Sie diese manuell.</para>
+
+      <para>Mit <command>ldd</command> können Sie unter &linux;
+	bestimmen, welche gemeinsam benutzten Bibliotheken eine
+	Anwendung benötigt.  Wenn Sie herausfinden wollen, welche
+	Bibliotheken <command>linuxdoom</command> benötigt, können Sie
+	folgenden Befehl auf einem &linux;-System ausführen, welches
+	<application>Doom</application> installiert hat:</para>
 
-	  <screen>&prompt.user; <userinput>ldd linuxdoom</userinput>
+      <screen>&prompt.user; <userinput>ldd linuxdoom</userinput>
 libXt.so.3 (DLL Jump 3.1) =&gt; /usr/X11/lib/libXt.so.3.1.0
 libX11.so.3 (DLL Jump 3.1) =&gt; /usr/X11/lib/libX11.so.3.1.0
 libc.so.4 (DLL Jump 4.5pl26) =&gt; /lib/libc.so.4.6.29</screen>
 
-	  <indexterm><primary>symbolische Links</primary></indexterm>
-	  <para>Sie müssten nun alle Dateien aus der
-	    letzten Spalte kopieren und sie unter
-	    <filename>/compat/linux</filename> speichern, wobei
-	    die Namen der ersten Spalte als symbolische Links auf
-	    diese Dateien zeigen.  Damit haben Sie schließlich
-	    folgende Dateien auf Ihrem FreeBSD-System:</para>
+      <para>Kopieren Sie alle Dateien aus der letzten Spalte der
+	Ausgabe von einem &linux;-System auf das &os;-System in das
+	Verzeichnis <filename>/compat/linux</filename>.  Nach dem
+	Kopieren erstellen Sie symbolische Links auf die Namen in der
+	ersten Spalte.  In diesem Beispiel werden folgende Dateien auf
+	dem &os;-System installiert:</para>
 
-	  <screen>/compat/linux/usr/X11/lib/libXt.so.3.1.0
+      <screen>/compat/linux/usr/X11/lib/libXt.so.3.1.0
 /compat/linux/usr/X11/lib/libXt.so.3 -&gt; libXt.so.3.1.0
 /compat/linux/usr/X11/lib/libX11.so.3.1.0
 /compat/linux/usr/X11/lib/libX11.so.3 -&gt; libX11.so.3.1.0
 /compat/linux/lib/libc.so.4.6.29
 /compat/linux/lib/libc.so.4 -&gt; libc.so.4.6.29</screen>
 
-	  <blockquote>
-	    <note>
-	      <para>Beachten Sie, dass wenn Sie bereits eine
-		Linux-Systembibliothek einer zur ersten Spalte
-		passenden Hauptversionsnummer (laut
-		<command>ldd</command>-Ausgabe) besitzen, Sie die Datei
-		aus der zweiten Spalte nicht mehr kopieren müssen,
-		da die	bereits vorhandene Version funktionieren sollte.
-		Hat die Systembibliothek jedoch eine neuere
-		Versionsnummer, sollten Sie sie dennoch kopieren.
-		Sie können die alte Version löschen, solange
-		Sie einen symbolischen Link auf die neue
-		Version anlegen.  Wenn Sie also folgende Bibliotheken
-		auf Ihrem System installiert haben:</para>
+      <para>Wenn Sie bereits eine &linux;-Bibliothek einer zur
+	ersten Spalte passenden Hauptversionsnummer besitzen, muss sie
+	nicht mehr kopiert werden, da die bereits vorhandene Version
+	funktionieren sollte.  Hat die Bibliothek jedoch eine neuere
+	Versionsnummer, sollten Sie sie dennoch kopieren.  Sie können
+	die alte Version löschen, solange Sie einen symbolischen Link
+	auf die neue Version anlegen.</para>
+
+      <para>Folgende Bibliotheken existieren bereits auf dem
+	&os;-System:</para>
 
-	      <screen>/compat/linux/lib/libc.so.4.6.27
+      <screen>/compat/linux/lib/libc.so.4.6.27$
 /compat/linux/lib/libc.so.4 -&gt; libc.so.4.6.27</screen>
 
-	      <para>und Sie haben eine neue Binärdatei, die
-		laut <command>ldd</command>
-		eine neuere Bibliothek benötigt:</para>
-
-	      <screen>libc.so.4 (DLL Jump 4.5pl26) -&gt; libc.so.4.6.29</screen>
-
-	      <para>Wenn diese sich nur  um ein oder zwei Stellen
-		in der Unterversionsnummer unterscheiden, müssen
-		Sie <filename>/lib/libc.so.4.6.29</filename>
-		nicht auf Ihr System kopieren, da das Programm auch
-		mit der etwas älteren Version ohne Probleme
-		funktionieren sollte.  Wenn Sie wollen,
-		können Sie <filename>libc.so</filename> aber
-		dennoch ersetzen (das heißt aktualisieren), was dann zu
-		folgender Ausgabe führt:</para>
+      <para><command>ldd</command> zeigt an, dass eine Anwendung eine
+	neuere Version benötigt:</para>
 
-	      <screen>/compat/linux/lib/libc.so.4.6.29
+      <screen>libc.so.4 (DLL Jump 4.5pl26) -&gt; libc.so.4.6.29</screen>
+
+      <para>Wenn diese Bibliotheken sich nur um ein oder zwei Stellen
+	in der Unterversionsnummer unterscheiden, sollte das Programm
+	dennoch mit der älteren Version funktionieren.  Wenn Sie
+	wollen, können Sie die bestehende <filename>libc.so</filename>
+	durch die neuere Version ersetzen:</para>
+
+      <screen>/compat/linux/lib/libc.so.4.6.29
 /compat/linux/lib/libc.so.4 -&gt; libc.so.4.6.29</screen>
-	    </note>
-	  </blockquote>
 
-	  <blockquote>
-	    <note>
-	      <para>Der Mechanismus der symbolischen Links wird
-		<emphasis>nur</emphasis> für Linux-Binärdateien
-		benötigt.  Der FreeBSD-Laufzeitlinker sucht
-		sich die passenden Hauptversionsnummern selbst,
-		das heißt Sie müssen sich nicht darum
-		kümmern.</para>
-	    </note>
-	  </blockquote>
-	</informalexample>
-      </sect3>
+      <para>Der Mechanismus der symbolischen Links wird nur für
+	&linux;-Binärdateien benötigt.  Nach einer Weile wird es eine
+	ausreichende Menge an &linux;-Bibliotheken auf dem System
+	geben, sodass Sie neu installierte &linux;-Anwendungen ohne
+	zusätzlichen Aufwand auf dem System laufen lassen
+	können.</para>
     </sect2>
 
     <sect2>
-      <title>Linux ELF-Binärdateien installieren</title>
+      <title>&linux; ELF-Binärdateien installieren</title>
+
       <indexterm>
 	<primary>Linux</primary>
 	<secondary>ELF-Binärdatei</secondary>
@@ -333,75 +215,81 @@ libc.so.4 (DLL Jump 4.5pl26) =&gt; /lib/
 
       <para>ELF-Binärdateien benötigen manchmal eine zusätzliche
 	<quote>Kennzeichnung</quote>.  Wenn Sie versuchen, eine nicht
-	gekennzeichnete ELF-Binärdatei auszuführen,
-	werden Sie eine Fehlermeldung ähnlich der folgenden
-	erhalten:</para>
+	gekennzeichnete ELF-Binärdatei auszuführen, werden Sie eine
+	Fehlermeldung ähnlich der folgenden erhalten:</para>
 
       <screen>&prompt.user; <userinput>./my-linux-elf-binary</userinput>
 ELF binary type not known
 Abort</screen>
 
-      <para>Damit der FreeBSD-Kernel eine Linux-ELF-Datei von einer
-	FreeBSD-ELF-Datei unterscheiden kann, gibt es das Werkzeug
+      <para>Damit der &os;-Kernel eine &linux;-ELF-Datei von einer
+	&os;-ELF-Datei unterscheiden kann, gibt es das Werkzeug
 	&man.brandelf.1;.</para>
 
       <screen>&prompt.user; <userinput>brandelf -t Linux my-linux-elf-binary</userinput></screen>
 
       <indexterm><primary>GNU Werkzeuge</primary></indexterm>
-      <para>Die GNU Werkzeuge schreiben nun automatisch die
-	passende Kennzeichnungsinformation in die ELF-Binärdateien,
-	so dass Sie diesen Schritt in Zukunft nur noch selten benötigen
-	werden.</para>
+
+      <para>Die GNU Werkzeuge schreiben nun automatisch die passende
+	Kennzeichnungsinformation in die ELF-Binärdateien, so dass Sie
+	diesen Schritt in Zukunft nur noch selten benötigen.</para>
     </sect2>
 
     <sect2>
-      <title>Installieren einer beliebigen RPM-basierten Linuxanwendung</title>
+      <title>Installieren einer <acronym>RPM</acronym>-basierten
+	&linux;-Anwendung</title>
 
-      <para>&os; besitzt seine eigene Paketdatenbank und diese wird dazu
-        verwendet, um alle Ports (auch &linux;-Ports) zu verfolgen.  Deshalb
-        wird die &linux; RPM-Datenbank nicht benutzt (fehlende
-        Unterstützung).</para>
-
-      <para>Falls Sie jedoch eine beliebige RPM-basierte &linux;-Anwendung
-        installieren wollen, erreichen Sie das mittels:</para>
+      <para>Wenn Sie eine &linux; <acronym>RPM</acronym>-basierte
+	Anwendung installieren möchten, installieren Sie zunächst den
+	Port oder das Paket <package>archivers/rpm4</package>.
+	Anschließend kann der Superuser das folgende Kommando
+	benutzen, um ein <filename>.rpm</filename> zu
+	installieren:</para>
 
       <screen>&prompt.root; <userinput>cd /compat/linux</userinput>
-&prompt.root; <userinput>rpm2cpio -q &lt; /path/to/linux.archive.rpm | cpio -id</userinput></screen>
+&prompt.root; <userinput>rpm2cpio &lt; /pfad/zum/linux.archiv.rpm | cpio -id</userinput></screen>
 
-      <para>Benutzen Sie dann brandelf auf die installierten
-        ELF-Binärdateien (nicht die Bibliotheken!).  Sie werden keine
-        saubere Deinstallation hinbekommen, aber evtl. helfen ein paar Tests
-        weiter.</para>
+      <para>Fall notwendig, benutzen Sie <command>brandelf</command>
+	auf den installierten ELF-Binärdateien.  Beachten Sie, dass
+	dies eine saubere Deinstallation verhindert.</para>
     </sect2>
 
     <sect2>
       <title>Namensauflösung konfigurieren</title>
 
-      <para>Wenn DNS nicht funktioniert, oder Sie folgende Fehlermeldung
-	erhalten:</para>
+      <para>Wenn <acronym>DNS</acronym> nicht funktioniert, oder die
+	folgende Fehlermeldung erscheint:</para>
 
       <screen>resolv+: "bind" is an invalid keyword resolv+:
 "hosts" is an invalid keyword</screen>
 
-      <para>müssen sie <filename>/compat/linux/etc/host.conf</filename>
-        wie folgt anlegen:</para>
+      <para>müssen Sie
+	<filename>/compat/linux/etc/host.conf</filename> wie folgt
+	bearbeiten:</para>
 
       <programlisting>order hosts, bind
 multi on</programlisting>
 
       <para>Diese Reihenfolge legt fest, dass zuerst
-	<filename>/etc/hosts</filename> und anschließend DNS
-	durchsucht werden.  Wenn
-	<filename>/compat/linux/etc/host.conf</filename> nicht vorhanden
-	ist, finden Linux-Anwendungen FreeBSD's
+	<filename>/etc/hosts</filename> und anschließend
+	<acronym>DNS</acronym> durchsucht werden.  Wenn
+	<filename>/compat/linux/etc/host.conf</filename> nicht
+	vorhanden ist, nutzen &linux;-Anwendungen
 	<filename>/etc/host.conf</filename> und
-	beschweren sich über die inkompatible FreeBSD-Syntax.  Wenn Sie
-	keinen Nameserver (in <filename>/etc/resolv.conf</filename>)
+	beschweren sich über die inkompatible &os;-Syntax.  Wenn Sie
+	in <filename>/etc/resolv.conf</filename> keinen Nameserver
 	konfiguriert haben, sollten Sie den Eintrag
 	<literal>bind</literal> entfernen.</para>
     </sect2>
   </sect1>
 
+  <?ignore
+
+  While the installer works, the binaries do not.  As of Oct 2013,
+  Linux emulation is 32-bit but the trial version of Mathematica is
+  only available as 64-bit.  This section should be revisited if Linux
+  emulation gets 64-bit binary support.
+
   <sect1 xml:id="linuxemu-mathematica">
     <info><title>&mathematica; installieren</title>
       <authorgroup>
@@ -1290,169 +1178,126 @@ export PATH</programlisting>
 	genau so, wie Sie dies auch unter Linux tun würden.</para>
     </sect2>
   </sect1>
+  ?>
 
   <sect1 xml:id="linuxemu-advanced">
     <title>Weiterführende Themen</title>
 
-    <para>Wenn Sie sich fragen, wie die Linux-Binärkompatibilität
-      unter FreeBSD realisiert wurde, sollten Sie diesen Abschnitt lesen.
-      Der Großteil der folgenden Informationen stammt aus einer
-      E-Mail, die von Terry Lambert (<email>[email protected]</email>)
-      an die FreeBSD-Chat-Mailingliste
-      (<email>[email protected]</email>) geschrieben wurde
-      (Message ID: <literal>&lt;[email protected]&gt;</literal>).</para>
+    <para>Dieser Abschnitt beschreibt wie die
+      &linux;-Binärkompatibilität funktioniert.  Die folgenden
+      Informationen stammen aus einer E-Mail, die von Terry Lambert
+      (<email>[email protected]</email>) an &a.chat; geschrieben
+      wurde (Message ID:
+      <literal>&lt;[email protected]&gt;</literal>).</para>
 
-    <sect2>
-      <title>Wie funktioniert es?</title>
       <indexterm><primary>execution class loader</primary></indexterm>
 
-      <para>FreeBSD verfügt über eine <quote>execution class
-	loader</quote> genannte Abstraktion.  Dabei handelt es sich um einen
-	Eingriff in den &man.execve.2; Systemaufruf.</para>
-
-      <para>FreeBSD verfügt über eine Liste von Ladern, anstelle
-	eines einzigen, auf <literal>#!</literal>
-	zurückgreifenden Laders, um Shell-Interpreter oder Shell-Skripte
-	auszuführen.</para>
+      <para>&os; verfügt über eine
+	<quote>execution class loader</quote> genannte Abstraktion.
+	Dabei handelt es sich um einen Eingriff in den &man.execve.2;
+	Systemaufruf.</para>
 
       <para>Historisch gesehen untersuchte der einzige, auf
-	UNIX-Plattformen vorhandene Lader die "magische Zahl"
+	&unix;-Plattformen vorhandene Lader die "magische Zahl"
 	(in der Regel die ersten 4 oder 8&nbsp;Bytes der Datei), um
 	festzustellen, ob der Binärtyp dem System bekannt war.
 	War dies der Fall, wurde der Binärlader aufgerufen.</para>
 
       <para>Wenn es sich nicht um den zum System gehörigen Binärtyp
-        handelte, gab &man.execve.2; einen Fehler zurück,
-	und die Shell versuchte stattdessen, die Datei als Shell-Befehl
-	auszuführen.</para>
-
-      <para>Dabei wurde als Standardeinstellung <quote>was auch immer die
-        aktuelle Shell ist</quote> festgelegt.</para>
+	handelte, gab &man.execve.2; einen Fehler zurück, und die
+	Shell versuchte stattdessen, die Datei als Shell-Befehl
+	auszuführen.  Dabei wurde als Standardeinstellung
+	<quote>was auch immer die aktuelle Shell ist</quote>
+	festgelegt.</para>
 
       <para>Später wurde ein Hack in &man.sh.1; eingefügt,
 	der die zwei ersten Zeichen untersuchte.  Wenn diese
 	<literal>:\n</literal> entsprachen,
-	wurde stattdessen die &man.csh.1;-Shell aufgerufen
-	(wir glauben, dass dies zuerst von SCO umgesetzt wurde).</para>
+	wurde stattdessen die &man.csh.1;-Shell aufgerufen.</para>
 
-      <para>FreeBSD versucht heute eine Liste von Ladern, unter denen
-	sich ein allgemeiner Lader für Interpreter befindet.  Der
-	auszuführende Interpreter wird im ersten, durch
-	Leerzeichen getrennten Feld, der <literal>#!</literal>-Zeile
-	angegeben.  Lässt sich der Interpreter nicht ermitteln,
-	wird auf <filename>/bin/sh</filename> zurückgegriffen.</para>
+      <para>FreeBSD verfügt über eine Liste von Ladern, anstelle
+	eines einzigen, auf <literal>#!</literal>
+	zurückgreifenden Laders, um Shell-Interpreter oder Shell-Skripte
+	auszuführen.</para>
 
       <indexterm><primary>ELF</primary></indexterm>
-
-      <para>Für die Linux ABI-Unterstützung erkennt FreeBSD
-        die magische Zahl als ELF-Binärdatei (Zu diesem Zeitpunkt wird
-	nicht zwischen FreeBSD, &solaris;, Linux oder anderen Systemen
-	unterschieden, die über ELF-Binärdateien
-	verfügen.).</para>
-
       <indexterm><primary>Solaris</primary></indexterm>
 
-      <para>Der ELF-Lader sucht nach einer speziellen
-	<emphasis>Kennzeichnung</emphasis>, die aus einem Kommentarabschnitt
-	in der ELF-Datei besteht, und die in SVR4/&solaris; ELF
-	Binärdateien nicht vorhanden ist.</para>
-
-      <para>Damit Linux-Binärdateien (unter FreeBSD) funktionieren,
-	müssen sie als <literal> Linux</literal>
-	<emphasis>gekennzeichnet</emphasis> werden, und zwar durch
-	&man.brandelf.1;:</para>
+      <para>Für die &linux; <acronym>ABI</acronym>-Unterstützung
+	erkennt &os; die magische Zahl als ELF-Binärdatei.  Der
+	ELF-Lader sucht nach einer speziellen
+	<emphasis>Kennzeichnung</emphasis>, die aus einem
+	Kommentarabschnitt in der ELF-Datei besteht, und die in
+	SVR4/&solaris; ELF Binärdateien nicht vorhanden ist.</para>
+
+      <para>Damit &linux;-Binärdateien unter &os; funktionieren, müssen
+	sie mit &man.brandelf.1; als <literal>Linux</literal>
+	<emphasis>gekennzeichnet</emphasis> werden:</para>
 
       <screen>&prompt.root; <userinput>brandelf -t Linux file</userinput></screen>
 
-      <para>Nachdem dies geschehen ist, erkennt der ELF-Lader die
-	<literal>Linux</literal>-Kennzeichnung der Datei.</para>
       <indexterm>
-        <primary>ELF</primary>
-	<secondary><command>brandelf</command></secondary>
+	<primary>ELF</primary>
+	<secondary>Kennzeichnung</secondary>
       </indexterm>
 
       <para>Wenn der ELF-Lader die <literal>Linux</literal>-Kennzeichnung
 	sieht, wird ein Zeiger in der <literal>proc</literal>-Struktur
-	ersetzt.  Alle Systemaufrufe werden durch diesen Zeiger indiziert
-	(in einem traditionellen &unix; System wäre das ein
-	<literal>sysent[]</literal>-Strukturfeld, das die Systemaufrufe
-	enthält).  Der Prozess wird weiterhin speziell gekennzeichnet,
+	ersetzt.  Alle Systemaufrufe werden durch diesen Zeiger
+	indiziert.  Der Prozess wird weiterhin speziell gekennzeichnet,
 	so dass der Trap-vector im Signal-trampoline-code eine spezielle
-	Behandlung erfährt und das Linux-Kernelmodul verschiedene
+	Behandlung erfährt und das &linux;-Kernelmodul verschiedene
 	kleinere Korrekturen vornehmen kann.</para>
 
-      <para>Der Linux-Systemaufrufvektor enthält neben anderen
+      <para>Der &linux;-Systemaufrufvektor enthält neben anderen
 	Dingen eine Liste der <literal>sysent[]</literal>-Einträge,
 	deren Adressen sich im Kernelmodul befinden.</para>
 
-      <para>Wenn ein Linux-Programm einen Systemaufruf ausführt,
-        dereferenziert die Trap-Behandlungsroutine den Zeiger auf die
-	Eintrittspunkte für die Systemaufrufe und erhält damit die
-	Linux-Eintrittspunkte und nicht die FreeBSD-Eintrittspunkte.</para>
+      <para>Wenn ein &linux;-Programm einen Systemaufruf ausführt,
+	dereferenziert die Trap-Behandlungsroutine den Zeiger für den
+	Systemaufruf aus der <literal>proc</literal>-Struktur und
+	erhält damit die &linux;-Eintrittspunkte für den
+	Systemaufruf.</para>
 
       <para>Zusätzlich <emphasis>verändert</emphasis> der
-	Linuxmodus die Systempfade dynamisch; genauso, wie dies die
+	&linux;-Modus die Systempfade dynamisch; genauso, wie dies die
 	Option <option>union</option> beim Einbinden von Dateisystemen
-	macht (Achtung: <emphasis>nicht</emphasis> das Dateisystem unionfs!).
-	Zuerst wird die Datei im Verzeichnis <filename>/compat/linux/Originalpfad</filename>
-	gesucht, <emphasis>danach</emphasis>, wenn sie dort nicht gefunden
-	wurde, wird sie im FreeBSD-Verzeichnis
-	<filename>/Originalpfad</filename>
-	gesucht.  Dadurch wird sichergestellt, dass
-	Binärdateien, die zur Ausführung andere
-	Binärdateien benötigen, ausgeführt
-	werden können (so dass alle Linux-Werkzeuge unter der
-	ABI laufen).  Dies bedeutet auch,
-	dass Linux-Binärdateien FreeBSD-Binärdateien
-	laden und ausführen können, wenn keine passenden
-	Linux-Binärdateien vorhanden sind.  Ein in
-	<filename>/compat/linux</filename> plaziertes &man.uname.1; kann
-	damit Linux-Programmen vorgaukeln, dass sie auf einem Linux-System
-	laufen.</para>
-
-      <para>Im Endeffekt gibt es einen Linux-Kernel innerhalb des
-        FreeBSD-Kernels.  Die Sprungtabellen für Linux-
-	beziehungsweise FreeBSD-Systemaufrufe verweisen allerdings auf
-	dieselben Funktionen, die Kerneldienste wie Dateisystemoperationen,
-	Operationen für den virtuellen Speicher,
-	Signalübermittlung und System&nbsp;V&nbsp;IPC bereitstellen,
-	Der einzige Unterschied ist, dass Binärdateien unter FreeBSD
-	FreeBSD-<emphasis>glue</emphasis>-Funktionen verwenden.
-	Linux-Binärdateien hingegen verwenden die
-	Linux-<emphasis>glue</emphasis>-Funktionen. Die meisten
-	älteren Betriebssysteme hatten ihre eigenen
-	<emphasis>glue</emphasis>-Funktionen: Funktionsadressen
-	in einem globalen, statischen <literal>sysent[]</literal>
-	Strukturfeld an Stelle von Funktionsadressen,  die durch
-	einen dynamisch initialisierten Zeiger aus der
-	<literal>proc</literal> Struktur, die den Aufruf gemacht hatte,
-	dereferenziert wurden.</para>
-
-      <para>Welche ist die echte FreeBSD-ABI?  Das spielt keine Rolle.
-	Grundsätzlich ist der einzige Unterschied (zurzeit
-	ist das so; dies könnte sich in zukünftigen
-	Versionen leicht ändern und wird sich wahrscheinlich
-	auch ändern), dass die
-	FreeBSD-<emphasis>glue</emphasis>-Funktionen statisch in
-	den Kernel gelinkt sind, und dass die
-	Linux-<emphasis>glue</emphasis>-Funktionen statisch gelinkt
-	oder über ein Modul eingebunden werden können.</para>
-
-      <para>Ja, aber ist das wirkliche eine Emulation? Nein.  Es ist eine
-	Implementierung eines ABIs, keine Emulation.  Es ist kein Emulator
-	(oder Simulator, um der nächsten Frage zuvorzukommen)
-	beteiligt.</para>
-
-      <para>Warum wird es manchmal <quote>Linux-Emulation</quote> genannt?
-	Um es schwerer zu machen, FreeBSD zu verkaufen.  Wirklich, das kommt
-	daher, weil dies zu einer Zeit implemtiert wurde,
-	in der es kein anderes Wort
-	(als Emulation) gab, das beschrieb, was vor sich ging.
-	Wenn der Kernel nicht entsprechend konfiguriert wurde oder das
-	Modul geladen wurde, war es falsch zu behaupten, FreeBSD würde
-	Linux-Binärprogramme ausführen.  Man benötigte
-	ein Wort, das beschrieb, was da geladen
-	wurde &ndash; daher <quote>Der Linux-Emulator</quote>.</para>
-    </sect2>
+	macht.  Zuerst wird die Datei im Verzeichnis
+	<filename>/compat/linux/Originalpfad</filename> gesucht, wenn
+	sie dort nicht gefunden wurde, wird sie im Verzeichnis
+	<filename>/Originalpfad</filename> gesucht.  Dadurch wird
+	sichergestellt, dass Binärdateien, die zur Ausführung andere
+	Binärdateien benötigen, ausgeführt werden können (so dass alle
+	&linux;-Werkzeuge unter der <acronym>ABI</acronym> laufen).
+	Dies bedeutet auch, dass &linux;-Binärdateien
+	&os;-Binärdateien laden und ausführen können, wenn keine
+	passenden &linux;-Binärdateien vorhanden sind.  Ein in
+	<filename>/compat/linux</filename> plaziertes &man.uname.1;
+	kann damit &linux;-Programmen vorgaukeln, dass sie auf einem
+	&linux;-System laufen.</para>
+
+      <para>Im Endeffekt gibt es einen &linux;-Kernel innerhalb des
+	&os;-Kernels.  Die Sprungtabellen für &linux;- beziehungsweise
+	&os;-Systemaufrufe verweisen allerdings auf dieselben
+	Funktionen, die Kerneldienste wie Dateisystemoperationen,
+	Operationen für den virtuellen Speicher, Signalübermittlung
+	und System&nbsp;V&nbsp;IPC bereitstellen.  Der einzige
+	Unterschied ist, dass Binärdateien unter &os;
+	&os;-<emphasis>glue</emphasis>-Funktionen verwendet werden.
+	&linux;-Binärdateien hingegen verwenden die
+	&linux;-<emphasis>glue</emphasis>-Funktionen.
+	&os;-<emphasis>glue</emphasis>-Funktionen sind statisch in
+	den Kernel gelinkt,
+	&linux;-<emphasis>glue</emphasis>-Funktionen sind statisch
+	gelinkt oder können über ein ladbares Kernelmodul eingebunden
+	werden.</para>
+
+      <para>Technisch gesehen ist dies nicht wirklich eine Emulation,
+	sondern eine <acronym>ABI</acronym>-Implementation.  Es wird
+	manchmal <quote>&linux; Emulation</quote> genannt, da es zu
+	einer Zeit implementiert wurde, in der es kein anderes Wort
+	gab, das beschrieb, was vor sich ging.  Es war falsch zu
+	behaupten, &os; würde &linux;-Binärprogramme ausführen, da der
+	Code nicht unter &os; übersetzt wurde.</para>
   </sect1>
 </chapter>

_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-doc-all
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.