diff --git a/de_DE.ISO8859-1/articles/Makefile b/de_DE.ISO8859-1/articles/Makefile index 4ec255330c..3f161a2334 100644 --- a/de_DE.ISO8859-1/articles/Makefile +++ b/de_DE.ISO8859-1/articles/Makefile @@ -1,20 +1,21 @@ # # The FreeBSD Documentation Project # The FreeBSD German Documentation Project # # $FreeBSD$ -# $FreeBSDde: de-docproj/articles/Makefile,v 1.6 2009/01/17 11:49:01 jkois Exp $ +# $FreeBSDde: de-docproj/articles/Makefile,v 1.7 2010/09/18 13:58:33 bcr Exp $ # basiert auf: 1.42 SUBDIR = contributing SUBDIR+= contributing-ports SUBDIR+= explaining-bsd SUBDIR+= laptop SUBDIR+= linux-comparison SUBDIR+= new-users +SUBDIR+= solid-state SUBDIR+= version-guide # ROOT_SYMLINKS+= new-users DOC_PREFIX?= ${.CURDIR}/../.. .include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/de_DE.ISO8859-1/articles/solid-state/Makefile b/de_DE.ISO8859-1/articles/solid-state/Makefile new file mode 100644 index 0000000000..0c4f4dbe3d --- /dev/null +++ b/de_DE.ISO8859-1/articles/solid-state/Makefile @@ -0,0 +1,24 @@ +# +# The FreeBSD Documentation Project +# The FreeBSD German Documentation Project +# +# $FreeBSD$ +# $FreeBSDde: de-docproj/articles/solid-state/Makefile,v 1.1 2010/09/18 13:58:33 bcr Exp $ +# basiert auf: 1.17 +# +# Article: FreeBSD und Solid State Devices + +DOC?= article + +FORMATS?= html html-split +WITH_ARTICLE_TOC?= YES + +INSTALL_COMPRESSED?= gz +INSTALL_ONLY_COMPRESSED?= + +SRCS= article.sgml + +URL_RELPREFIX?= ../../../.. +DOC_PREFIX?= ${.CURDIR}/../../.. + +.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/de_DE.ISO8859-1/articles/solid-state/article.sgml b/de_DE.ISO8859-1/articles/solid-state/article.sgml new file mode 100644 index 0000000000..25bba15d08 --- /dev/null +++ b/de_DE.ISO8859-1/articles/solid-state/article.sgml @@ -0,0 +1,529 @@ + + + +%articles.ent; + +]> + +
+ + &os; und Solid State-Geräte + + + + John + Kozubik + + +
john@kozubik.com
+
+
+
+ + $FreeBSD$ + + + 2001 + 2009 + The FreeBSD Documentation Project + + + + &tm-attrib.freebsd; + &tm-attrib.general; + + + &legalnotice; + + + Dieser Artikel behandelt die Verwendung von Solid State Festplatten + in &os;, um eingebettete Systeme zu erstellen. + + Eingebettete Systeme haben den Vorteil, dass sie eine höhere + Stabilität aufgrund des fehlens von beweglichen Bauteilen + (Festplatten) besitzen. Es muss jedoch beachtet werden, dass generell + weniger Speicherplatz zur Verfügung steht und die Lebensdauer des + Speichermediums geringer ist. + + Spezielle Themen die behandelt werden beinhalten die Typen und + Attribute von Solid State Datenträgern, die in &os; verwendet + werden, Kernel-Optionen die in solch einer Umgebung von Interesse sind, + der rc.initdiskless-Mechanismus, welcher die + Initalisierung solcher Systeme automatisiert, sowie die Notwendigkeit + von Nur-Lese-Dateisystemen und das Erstellen von Dateisystemen von + Grund auf. Der Artikel schliesst mit ein paar generellen Strategien + für kleine und Nur-Lese-&os; Umgebungen. + + Übersetzt von Benedict Reuschling. + +
+ + + Solid State Festplattengeräte + + Der Umfang des Artikels ist auf Solid State Geräte + beschränkt, die auf Flash-Speicher basieren. Flash-Speicher ist ein + Solid State Speicher (keine beweglichen Teile), der nicht flüchtig + ist (der Speicher behält die Daten sogar nachdem alle Energiequellen + ausgeschaltet wurden). Flash-Speicher kann grossen physischen Schock + aushalten und ist vergleichsweise schnell (die Flash-Speicher + Lösungen, die in diesem Artikel behandelt werden, sind nur wenig + langsamer als eine EIDE-Festplatte in der Schreibgeschwindigkeit und viel + schneller bei Lese-Operationen). Ein sehr wichtiger Aspekt von + Flash-Speichern, dessen Auswirkungen später in diesem Artikel + diskutiert werden, ist, dass jeder Sektor eine begrenzte Kapazität + zur Wiederbeschreibung besitzt. Man kann nur eine bestimmte Anzahl von + Schreib-, Lösch- und Wiederbeschreibungsvorgängen + durchführen, bevor der Sektor permanent unbrauchbar wird. Obwohl + viele Flash-Speicher Produkte automatisch schlechte Blöcke markieren + und manche Geräte Schreiboperationen gleichmässig verteilen, + bleibt weiterhin die Anzahl der durchführbaren Schreibvorgänge + begrenzt. Verschiedene Geräteeinheiten besitzen zwischen 1,000,000 + und 10,000,000 Schreibzyklen pro Sektor in ihren Spezifikationen. Diese + Zahlen variieren aufgrund der Umgebungstemperatur. + + Im Speziellen werden wir ATA-kompatible Compact-Flash-Karten + betrachten, welche als Speichermedien für Digitalkameras ziemlich + populär sind. Von besonderem Interesse ist der Umstand, dass diese + direkt an den IDE-Bus angeschlossen werden und kompatibel zu den + ATA-Befehlen sind. Aus diesem Grund können diese Geräte mit + einem einfachen und billigen Adapter direkt an den IDE-Bus eines + Computers angeschlossen werden. Auf diese Weise sehen Betriebssysteme + wie &os; diese Geräte dann als normale (wenn auch sehr kleine) + Festplatten an. + + Andere Solid State Plattenlösungen existieren, jedoch platzieren + deren Kosten, Obskurität und ihre Unhandlichkeit sie aussserhalb + des Umfangs dieses Artikels. + + + + Kerneloptionen + + Ein paar Kerneloptionen sind von besonderem Interesse für + diejenigen, welche diese eingebetteten &os;-Systeme erstellen + möchten. + + Alle eingebetteten &os;-Systeme, die Flash-Speicher als Systemplatte + verwenden, sind interessant für Dateisysteme im Hauptspeicher und + RAM-Disks. Wegen der begrenzten Anzahl von Schreibzyklen, die auf + Flash-Speicher durchgeführt werden können, werden die Platte + und die Dateisysteme darauf mit grosser Wahrscheinlichkeit nur lesend + eingehängt werden. In dieser Umgebung werden Dateisysteme wie + /tmp und /var als RAM-Disks + eingebunden, um dem System zu erlauben, Logdateien anzulegen und + Zähler sowie temporäre Dateien zu aktualisieren. RAM-Disks + sind eine kritische Komponente für eine erfolgreiche Solid State + Umsetzung in &os;. + + Sie sollten dafür sorgen, dass die folgenden Zeilen in Ihrer + Kernelkonfigurationsdatei vorhanden sind: + + options MFS # Memory Filesystem +options MD_ROOT # md device usable as a potential root device +pseudo-device md # memory disk + + + + Die <literal>rc</literal>-Subsysteme und nur-Lese + Dateisysteme + + Die Initialisierung nach dem Bootvorgang eines eingebetteten + &os;-Systems wird von /etc/rc.initdiskless + kontrolliert. + + /etc/rc.d/var hängt + /var als RAM-Disk ein, erstellt eine konfigurierbare + Liste von Verzeichnissen in /var mittels des + &man.mkdir.1;-Kommandos und ändert die Attribute von ein paar dieser + Verzeichnisse. Bei der Ausführung von + /etc/rc.d/var kommt eine andere + rc.conf-Variable ins Spiel: + varsize. Die Datei /etc/rc.d/var + erstellt eine /var-Partition basierend auf dem Wert + dieser Variable in rc.conf: + + varsize=8192 + + Standardmässig wird dieser Wert in Sektoren angegeben. + + Der Fakt, dass es sich bei /var um ein nur-Lese + Dateisystem handelt, ist eine wichtige Unterscheidung, da die + /-Partition (und jede andere Partition, die Sie auf + Ihrem Flash-Medium haben) nur lesend eingehängt wird. Erinnern Sie + sich, dass in die Beschränkungen von + Flash-Speichern erläutert wurden, speziell deren begrenzte + Kapazität zum Schreiben. Die Notwendigkeit, Dateisysteme auf + Flash-Speichern nur lesend einzubinden und keine Swap-Dateien zu + verwenden, kann nicht oft genug erwähnt werden. Eine Swap-Datei auf + einem ausgelasteten System kann in weniger als einem Jahr den gesamten + Flash-Speicher aufbrauchen. Häufige Protokollierung oder das + Erstellen und Löschen von temporären Dateien kann das gleiche + verursachen. Aus diesem Grund sollten Sie zusätzlich zum entfernen + des swap-Eintrags aus ihrer + /etc/fstab-Datei auch noch die Optionsfelder + für jedes Dateisystem auf ro wie folgt + stellen: + + # Device Mountpoint FStype Options Dump Pass# +/dev/ad0s1a / ufs ro 1 1 + + Ein paar Anwendungen im normalen System werden sofort nach dieser + Änderung ausfallen. Beispielsweise wird Cron nicht richtig + funktionieren, aufgrund von fehlenden Cron-Tabellen in + /var die von + /etc/rc.d/var erstellt wurden. Syslog und DHCP + werden ebenfalls Probleme durch das nur-Lese Dateisystem + und fehlende Elemente im Verzeichnis /var + verursachen, die /etc/rc.d/var erstellt hat. Diese + Probleme sind jedoch nur vorübergehend und werden zusammen mit + Lösungen zur Ausführung von anderen gebräuchlichen + Softwarepaketen in angesprochen. + + Eine wichtige Sache, an die man sich erinnern sollte, ist, dass + ein Dateisystem, welches als nur lesend in + /etc/fstab eingebunden wurde, jederzeit als + schreibend durch das folgende Kommando eingehängt werden + kann: + + &prompt.root; /sbin/mount -uw partition + + und auch wieder zurück auf nur lesend durch den Befehl: + + &prompt.root; /sbin/mount -ur partition + + + + Ein Dateisystem von Grund auf neu erstellen + + Wenn ATA-kompatible Compact-Flash-Karten von &os; als normale + IDE-Festplatten erkannt werden, könnten Sie theoretisch &os; aus dem + Netzwerk mittels der Kern- und mfsroot-Floppies oder einer CD + installieren. + + Jedoch kann selbst eine kleine Installation von &os; durch die + normale Installationsprozedur ein System erzeugen, dass grösser als + 200 MB ist. Da die meisten Leute kleinere Flash-Speichermedien + einsetzen (128 MB wird hier als gross angesehen - 32 oder sogar + 16 MB sind gebräuchlich) ist eine gewöhnliche Installation + mit normalen Methoden nicht möglich, da es einfach nicht genug + freien Plattenplatz gibt, selbst für die kleinste + Installationsart. + + Der einfachste Weg, diese Speicherlimitierung zu umgehen, ist, &os; + auf konventionelle Weise auf eine normale Festplatte zu installieren. + Nachdem die Installation abgeschlossen wurde, kürzen Sie das + Betriebssystem auf das nötigste, bis Sie eine Grösse erreicht + hat, die auf das Flash-Medium passt und benutzen Sie dann tar auf dem + gesamten Dateisystem. Die folgenden Schritte werden Sie durch den + Prozess der Vorbereitung eines Flash-Mediums für ihr getartes + Dateisystem führen. Beachten Sie, dass Operationen wie + Partitionierung, Benennung, Erstellung von Dateisystemen, etc. von Hand + durchgeführt werden müssen, da eine normale Installation nicht + möglich ist. Zusätzlich zu den Kern- und mfsroot-Disketten + benötigen Sie auch die fixit-Floppy. + + + + Partitionierung Ihrer Flash-Medien + + Wählen Sie nach dem Starten der Kern- und mfsroot-Disketten, + custom aus dem Installationsmenü. In diesem + Menü wählen Sie dann partition aus. + Dort sollten Sie alle bestehenden Partitionen mit Hilfe der Taste + d löschen. Nachdem alle bestehenden + Partitionen gelöscht wurden, erstellen Sie mittels der Taste + c eine Partition und akzeptieren Sie den + Standardwert für die Grösse der Partition. Wenn Sie nach + dem Typ der Partition gefragt werden, stellen Sie sicher, dass der + Wert auf 165 eingestellt ist. Schreiben Sie jetzt + diese Partitionstabelle auf die Platte durch betätigen der Taste + w (dies ist die versteckte Option auf diesem + Bildschirm). Wenn Sie eine ATA-kompatible Compact Flash-Karte + verwenden, sollten Sie den &os; Bootmanager auswählen. + Drücken Sie nun die Taste q, um das + Partitionsmenü zu verlassen. Sie werden das Menü des + Bootmanagers noch ein weiteres Mal gezeigt bekommt. In diesem Fall + wiederholen Sie die Auswahl von vorher. + + + + Anlegen von Dateisystemen auf Ihrem + Flashspeicher-Gerät + + Verlassen Sie das Installationsmenü und wählen Sie aus + dem Hauptinstallationsmenü die Option fixit. + In der fixit-Umgebung angelangt, geben Sie den folgenden Befehl + ein: + + &prompt.root; disklabel -e /dev/ad0c + + Zu diesem Zeitpunkt sollten Sie sich im vi-Editor unter der + Herrschaft des disklabel-Kommandos befinden. Als nächstes + müssen Sie die eine a:-Zeile an das Ende der + Datei hinzufügen. Diese + a:-Zeile sollte wie folgt aussehen: + + a: 123456 0 4.2BSD 0 0 + + Wobei 123456 eine Zahl darstellt, die + exakt der gleichen Zahl in der bestehenden Zeile mit dem + c:-Eintrag entspricht. Sie kopieren quasi + die bestehende Zeile c: als eine neue Zeile + a: und stellen sicher, dass fstype + 4.2BSD entspricht. Speichern Sie die Datei und + verlassen Sie den Editor. + + &prompt.root; disklabel -B -r /dev/ad0c +&prompt.root; newfs /dev/ad0a + + + + Schreiben des Dateisystems auf Ihr Flash-Medium + + Hängen Sie das neu erstellte Flash-Medium ein: + + &prompt.root; mount /dev/ad0a /flash + + Verbinden Sie diese Maschine mit dem Netzwerk, um die tar-Datei + zu übertragen und extrahieren Sie es auf das Dateisystem des + Flash-Mediums. Ein Beispiel dazu wäre folgendes: + + &prompt.root; ifconfig xl0 192.168.0.10 netmask 255.255.255.0 +&prompt.root; route add default 192.168.0.1 + + Jetzt da die Maschine ans Netzwerk angeschlossen ist, kopieren + Sie die tar-Datei. An diesem Punkt werden Sie möglicherweise + mit einem Dilemma konfrontiert - sollte Ihr Flash-Speicher + beispielsweise 128 MB gross sein und Ihre tar-Datei grösser + als 64 MB, können Sie ihre tar-Datei auf dem Flash-Speicher + nicht entpacken - Ihnen wird vorher der Speicherplatz ausgehen. Eine + Lösung für dieses Problem, sofern Sie FTP verwenden, ist, + dass Sie die Datei entpacken können, während es von FTP + übertragen wird. Wenn Sie die Übertragung auf diese Weise + durchführen, haben Sie niemals die tar-Datei und deren Inhalt + zur gleichen Zeit auf Ihrem Medium: + + ftp> get tarfile.tar "| tar xvf -" + + Sollte Ihre tar-Datei gezippt sein, können Sie dies + ebenso bewerkstelligen: + + ftp> get tarfile.tar "| zcat | tar xvf -" + + Nachdem der Inhalt Ihrer tar-Datei auf dem Dateisystem des + Flash-Mediums abgelegt wurden, können Sie den Flash-Speicher + aushängen und neu starten: + + &prompt.root; cd / +&prompt.root; umount /flash +&prompt.root; exit + + In der Annahme, dass Sie Ihr Dateisystem richtig konfiguriert + haben, als es noch auf der gewöhnlichen Festplatte gebaut wurde + (mit Ihren Nur-Lese-Dateisystemen und den nötigen Optionen im + Kernel), sollten Sie nun erfolgreich von Ihrem &os; Embedded-System + starten können. + + + + + + Systemstrategien für kleine und Nur-Lese-Umgebungen + + In wurde darauf hingewiesen, dass das + /var-Dateisystem von + /etc/rc.d/var konstruiert wurde und die Präsenz + eines Nur-Lese-Wurzeldateisystems Probleme mit vielen in &os; + gebrächlichen Softwarepaketen verursacht. In diesem Artikel werden + Vorschläge für das erfolgreiche Betreiben von cron, syslog, + Installationen von Ports und dem Apache-Webserver unterbreitet. + + + cron + + Während des Bootvorgangs wird /var von + /etc/rc.d/var anhand der Liste aus + /etc/mtree/BSD.var.dist gefüllt, damit + cron, cron/tabs, at und ein paar weitere + Standardverzeichnisse erstellt werden. + + Jedoch löst das noch nicht das Problem, Crontabs über + Neustarts des Systems hinaus zu erhalten. Wenn das System neu + gestartet wird, verschwindet das /var-Dateiystem, + welches sich im Hauptspeicher befunden hat und jegliche Crontabs, die + Sie hatten werden ebenfalls verschwinden. Aus diesem Grund besteht eine + Lösung darin, Crontabs für diejenigen Benutzer zu erstellen, + die diese auch benötigen. Dazu sollte das + /-Dateisystem lesend und schreibend + eingehängt und diese Crontabs an einen sicheren Ort kopiert + werden, wie beispielsweise /etc/tabs. Fügen + Sie dann eine Zeile an das Ende der Datei + /etc/rc.initdiskless hinzu, die diese Crontabs in + /var/cron/tabs kopiert, nachdem dieses Verzeichnis + während der Systeminitialisierung erstellt wurde. Sie werden auch + eine Zeile hinzufügen mössen, welche die Besitzer und + Berechtigungen auf diesen Verzeichnissen, die Sie erstellen und den + dazugehörigen Dateien, die Sie mittels + /etc/rc.initdiskless kopieren, setzen. + + + + syslog + + Die Datei syslog.conf spezifiziert den Ort von + bestimmten Logdateien, welche in /var/log + existieren. Diese Dateien werden nicht von + /etc/rc.d/var während der + Systeminitialisierung erstellt. Aus diesem Grund müssen Sie + irgendwo in /etc/rc.d/var nach dem Abschnitt, der + die Verzeichnisse in /var erstellt, eine Zeile + ähnlich der folgenden hinzufügen: + + &prompt.root; touch /var/log/security /var/log/maillog /var/log/cron /var/log/messages +&prompt.root; chmod 0644 /var/log/* + + + + Installation von Ports + + Bevor die notwendigen Änderungen erkärt werden, einen + Ports-Baum zu verwenden, ist es notwendig, Sie an die + Nur-Lese-Besonderheit Ihres Dateisystems auf dem Flash-Medium zu + erinnern. Da dieses nur lesend verfügbar ist, müssen Sie es + vorübergehend mit Schreibrechten ausstatten, indem Sie die + mount-Syntax, wie in dargestellt wird, + verwenden. Sie sollten immer diese Dateisysteme erneut mit + nur-Lese-Rechten einhängen wenn Sie damit fertig sind - + unnötige Schreibvorgänge auf dem Flash-Medium kann dessen + Lebenszeit erheblich verkürzen. + + Um es zu ermöglichen, in das Ports-Verzeichnis zu wechseln + und erfolgreich + make install + auszuführen, müssen wir ein Paketverzeichnis auf einem + Nicht-Hauptspeicherdateisystem erstellen, welches die Pakete über + Neustarts hinweg im Auge behält. Weil es sowieso nötig ist, + Ihre Dateisysteme mit Lese-Schreibrechten für die Installation + eines Pakets einzuhängen, ist es sinnvoll anzunehmen, dass ein + Bereich Ihres Flash-Mediums ebenfalls für Paketinformationen, die + darauf abgespeichert werden, verwendet wird. + + Erstellen Sie zuerst ein Verzeichnis für die Paketdatenbank. + Normalerweise ist dies /var/db/pkg, jedoch + können wir es dort nicht unterbringen, da es jedesmal verschwinden + wird, wenn das System neu gestartet wird. + + &prompt.root; mkdir /etc/pkg + + Fügen Sie nun eine Zeile in /etc/rc.d/var + hinzu, welche das /etc/pkg-Verzeichnis mit + /var/db/pkg verknüpft. Ein Beispiel: + + &prompt.root; ln -s /etc/pkg /var/db/pkg + + Nun wird jedes Mal, wenn Sie Ihre Dateisysteme mit + Lese-Schreibrechten einbinden und ein Paket installieren, der Befehl + make install funktionieren + und Paketinformationen werden erfolgreich nach + /etc/pkg geschrieben (da zu diesem Zeitpunkt das + Dateisystem mit Lese-Schreibrechten eingebunden ist), welche dann stets + dem Betriebssystem als /var/db/pkg zur + Verfügung stehen. + + + + Apache Webserver + + + Die Anweisungen in diesem Abschnitt sind nur notwendig, wenn + Apache so eingerichtet ist, dass dieser seine PID oder + Protokollierungsinformationen ausserhalb von /var ablegt. Standardmässig + bewahrt Apache seine PID-Datei in /var/run/httpd.pid und seine + Protokolldateien in /var/log auf. + + + Es wird nun davon ausgegangen, dass Apache seine Protokolldateien + in einem Verzeichnis namens apache_log_dir + ausserhalb von /var speichert. + Wenn dieses Verzeichnis auf einem nur-Lese-Dateisystem existiert, wird + Apache nicht in der Lage sein, Protokolldateien zu speichern und wird + vermutlich nicht richtig funktionieren. Wenn dies der Fall ist, muss + ein neues Verzeichnis zu der Liste der Verzeichnisse in + /etc/rc.d/var hinzugefügt werden, um dieses + in /var zu erstellen und um apache_log_dir + nach /var/log/apache zu verknüpfen. Es ist + auch nötig, Berechtigungen und Besitzer auf diesem neuen + Verzeichnis zu setzen. + + Fügen Sie zuerst das Verzeichnis log/apache + zu der Liste von Verzeichnissen hinzu, die in + /etc/rc.d/var angelegt werden sollen. + + Danach tragen Sie die folgenden Befehle in + /etc/rc.d/var nach dem Abschnitt zum Erstellen der + Verzeichnisse ein: + + &prompt.root; chmod 0774 /var/log/apache +&prompt.root; chown nobody:nobody /var/log/apache + + Schliesslich löschen Sie das bestehende apache_log_dir + Verzeichnis und ersetzen es mit einer Verknüpfung: + + &prompt.root; rm -rf apache_log_dir +&prompt.root; ln -s /var/log/apache apache_log_dir + + +
+ + + diff --git a/de_DE.ISO8859-1/books/developers-handbook/kerneldebug/chapter.sgml b/de_DE.ISO8859-1/books/developers-handbook/kerneldebug/chapter.sgml index 1732c3f13c..78161251fe 100644 --- a/de_DE.ISO8859-1/books/developers-handbook/kerneldebug/chapter.sgml +++ b/de_DE.ISO8859-1/books/developers-handbook/kerneldebug/chapter.sgml @@ -1,1243 +1,1131 @@ Paul Richards Contributed by Jörg Wunsch Robert Watson Fabian Ruch Übersetzt von Kernel-Fehlersuche Besorgen eines Speicherauszugs nach einem Kernel-Absturz (Kernel-Crash-Dump) Wenn ein Entwicklungs-Kernel (z.B. &os.current;) wie zum Beispiel ein Kernel unter Extrembedinungen (z.B. sehr hohe Belastungsraten (Load), eine äußerst hohe Anzahl an gleichzeitigen Benutzern, Hunderte &man.jail.8;s usw.) eingesetzt oder eine neue Funktion oder ein neuer Gerätetreiber in &os.stable; verwendet wird (z.B. PAE), tritt manchmal eine Kernel-Panic ein. In einem solchen Fall zeigt dieses Kapitel, wie dem Absturz nützliche Informationen entnommen werden können. Bei Kernel-Panics ist ein Neustart unvermeidlich. Nachdem ein System neu gestartet wurde, ist der Inhalt des physikalischen Speichers (RAM), genauso wie jedes Bit, das sich vor der Panic auf dem Swap-Gerät befand, verloren. Um die Bits im physikalischen Speicher zu erhalten, zieht der Kernel Nutzen aus dem Swap-Gerät als vorübergehenden Ablageort, wo die Bits, welche sich im RAM befinden, auch nach einem Neustart nach einem Absturz verfügbar sind. Durch diese Vorgehensweise kann ein Kernel-Abbild, wenn &os; nach einem Absturz startet, abgezogen und mit der Fehlersuche begonnen werden. Ein Swap-Gerät, das als Ausgabegerät (Dump-Device) konfiguriert wurde, verhält sich immer noch wie ein Swap-Gerät. Die Ausgabe auf Nicht-Swap-Geräte (wie zum Beispiel Bänder oder CDRWs) wird zur Zeit nicht unterstützt. Ein Swap-Gerät ist gleichbedeutend mit einer Swap-Partition. Es stehen verschiedene Arten von Speicherabzügen zur Verfügung: komplette Speicherabzüge (full memory dumps), welche den gesamten Inhalt des physischen Speichers beinhalten, Miniauszüge (minidumps), die nur die gerade verwendeten Speicherseiten des Kernels enthalten (&os; 6.2 und höhere Versionen) und Textauszüge (textdumps), welche geskriptete oder Debugger-Ausgaben enthalten (&os; 7.1 und höher). Miniauszüge sind der Standardtyp der Abzüge seit &os; 7.0 und fangen in den meisten Fällen alle nötigen Informationen ein, die in einem kompletten Kernel-Speicherabzug enthalten sind, da die meisten Probleme nur durch den Zustand des Kernels isoliert werden können. Konfigurieren des Ausgabegeräts Bevor der Kernel den Inhalt seines physikalischen Speichers auf einem Ausgabegerät ablegt, muss ein solches konfiguriert werden. Ein Ausgabegerät wird durch Benutzen des &man.dumpon.8;-Befehls festgelegt, um dem Kernel mitzuteilen, wohin die Speicherauszüge bei einem Kernel-Absturz gesichert werden sollen. Das &man.dumpon.8;-Programm muss aufgerufen werden, nachdem die Swap-Partition mit &man.swapon.8; konfiguriert wurde. Dies wird normalerweise durch Setzen der dumpdev-Variable in &man.rc.conf.5; auf den Pfad des Swap-Geräts (der empfohlene Weg, um einen Kernel-Speicherauszug zu entnehmen) bewerkstelligt, oder über AUTO, um die erste konfigurierte Swap-Partition zu verwenden. AUTO ist seit &os; 6.0 die Standardeinstellung. Vergleichen Sie /etc/fstab oder &man.swapinfo.8; für eine Liste der Swap-Geräte. Stellen Sie sicher, dass das in &man.rc.conf.5; festgelegte dumpdir vor einem Kernel-Absturz vorhanden ist. &prompt.root; mkdir /var/crash &prompt.root; chmod 700 /var/crash Denken Sie auch daran, dass der Inhalt von /var/crash heikel ist und sehr wahrscheinlich vertrauliche Informationen wie Passwörter enthält. Entnehmen eines Kernel-Speicherauszugs (Kernel-Dump) Sobald ein Speicherauszug auf ein Ausgabegerät geschrieben wurde, muss er entnommen werden, bevor das Swap-Gerät eingehängt wird. Um einen Speicherauszug aus einem Ausgabegerät zu entnehmen, benutzen Sie das &man.savecore.8;-Programm. Falls dumpdev in &man.rc.conf.5; gesetzt wurde, wird &man.savecore.8; automatisch beim ersten Start in den Multiuser-Modus nach dem Absturz und vor dem Einhängen des Swap-Geräts aufgerufen. Der Speicherort des entnommenen Kernels ist im &man.rc.conf.5;-Wert dumpdir, standardmäßig /var/crash, festgelegt und der Dateiname wird vmcore.0 sein. In dem Fall, dass bereits eine Datei mit dem Namen vmcore.0 in /var/crash (oder auf was auch immer dumpdir gesetzt ist) vorhanden ist, erhöht der Kernel die angehängte Zahl bei jedem Absturz um eins und verhindert damit, dass ein vorhandener vmcore (z.B. vmcore.1) überschrieben wird. Während der Fehlersuche, möchten Sie höchst wahrscheinlich den vmcore mit der höchsten Version in /var/crash benutzen, wenn Sie den passenden vmcore suchen. Falls Sie einen neuen Kernel testen, aber einen anderen starten müssen, um Ihr System wieder in Gang zu bringen, starten Sie es nur in den Singleuser-Modus, indem Sie das -Flag an der Boot-Eingabeaufforderung benutzen, und nehmen dann folgende Schritte vor: &prompt.root; fsck -p &prompt.root; mount -a -t ufs # make sure /var/crash is writable &prompt.root; savecore /var/crash /dev/ad0s1b &prompt.root; exit # exit to multi-user Dies weist &man.savecore.8; an, einen Kernel-Speicherauszug aus /dev/ad0s1b zu entnehmen und den Inhalt in /var/crash abzulegen. Vergessen Sie nicht sicherzustellen, dass das Zielverzeichnis /var/crash genug freien Speicherplatz für den Speicherauszug zur Verfügung hat. Vergessen Sie auch nicht, den korrekten Pfad des Swap-Geräts anzugeben, da es sehr wahrscheinlich anders als /dev/ad0s1b lautet! Fehlersuche in einem Speicherauszug nach einem Kernel-Absturz mit <command>kgdb</command> Dieser Abschnitt deckt &man.kgdb.1; ab, wie es in &os; 5.3 und später zu finden ist. In früheren Versionen muss gdb -k benutzt werden, um einen Kernspeicherauszug auszulesen. Sobald ein Speicherauszug zur Verfügung steht, ist es recht einfach nützliche Informationen für einfache Probleme daraus zu bekommen. Bevor Sie sich auf die Interna von &man.kgdb.1; stürzen, um die Fehler im Kernspeicherauszug zu suchen und zu beheben, machen Sie die Debug-Version Ihres Kernels (normalerweise kernel.debug genannt) und den Pfad der Quelldateien, die zum Bau Ihres Kernels verwendet wurden (normalerweise /usr/obj/usr/src/sys/KERNCONF, wobei KERNCONF das in einer Kernel-&man.config.5; festgelegte ident ist), ausfindig. Mit diesen beiden Informationen kann die Fehlersuche beginnen. Um in den Debugger zu gelangen und mit dem Informationserhalt aus dem Speicherauszug zu beginnen, sind zumindest folgende Schritte nötig: &prompt.root; cd /usr/obj/usr/src/sys/KERNCONF &prompt.root; kgdb kernel.debug /var/crash/vmcore.0 Sie können Fehler im Speicherauszug nach dem Absturz suchen, indem Sie die Kernel-Quellen benutzen, genauso wie Sie es bei jedem anderen Programm können. Dieser erste Speicherauszug ist aus einem 5.2-BETA-Kernel und der Absturz ist tief im Kernel begründet. Die Ausgabe unten wurde dahingehend bearbeitet, dass sie nun Zeilennummern auf der linken Seite einschließt. Diese erste Ablaufverfolgung (Trace) untersucht den Befehlszeiger (Instruction-Pointer) und beschafft eine Zurückverfolgung (Back-Trace). Die Adresse, die in Zeile 41 für den list-Befehl benutzt wird, ist der Befehlszeiger und kann in Zeile 17 gefunden werden. Die meisten Entwickler wollen zumindest dies zugesendet bekommen, falls Sie das Problem nicht selber untersuchen und beheben können. Falls Sie jedoch das Problem lösen, stellen Sie sicher, dass Ihr Patch seinen Weg in den Quellbaum mittels eines Fehlerberichts, den Mailinglisten oder ihres Privilegs, zu committen, findet! 1:&prompt.root; cd /usr/obj/usr/src/sys/KERNCONF 2:&prompt.root; kgdb kernel.debug /var/crash/vmcore.0 3:GNU gdb 5.2.1 (FreeBSD) 4:Copyright 2002 Free Software Foundation, Inc. 5:GDB is free software, covered by the GNU General Public License, and you are 6:welcome to change it and/or distribute copies of it under certain conditions. 7:Type "show copying" to see the conditions. 8:There is absolutely no warranty for GDB. Type "show warranty" for details. 9:This GDB was configured as "i386-undermydesk-freebsd"... 10:panic: page fault 11:panic messages: 12:--- 13:Fatal trap 12: page fault while in kernel mode 14:cpuid = 0; apic id = 00 15:fault virtual address = 0x300 16:fault code: = supervisor read, page not present 17:instruction pointer = 0x8:0xc0713860 18:stack pointer = 0x10:0xdc1d0b70 19:frame pointer = 0x10:0xdc1d0b7c 20:code segment = base 0x0, limit 0xfffff, type 0x1b 21: = DPL 0, pres 1, def32 1, gran 1 22:processor eflags = resume, IOPL = 0 23:current process = 14394 (uname) 24:trap number = 12 25:panic: page fault 26 cpuid = 0; 27:Stack backtrace: 28 29:syncing disks, buffers remaining... 2199 2199 panic: mi_switch: switch in a critical section 30:cpuid = 0; 31:Uptime: 2h43m19s 32:Dumping 255 MB 33: 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 34:--- 35:Reading symbols from /boot/kernel/snd_maestro3.ko...done. 36:Loaded symbols for /boot/kernel/snd_maestro3.ko 37:Reading symbols from /boot/kernel/snd_pcm.ko...done. 38:Loaded symbols for /boot/kernel/snd_pcm.ko 39:#0 doadump () at /usr/src/sys/kern/kern_shutdown.c:240 40:240 dumping++; 41:(kgdb) list *0xc0713860 42:0xc0713860 is in lapic_ipi_wait (/usr/src/sys/i386/i386/local_apic.c:663). 43:658 incr = 0; 44:659 delay = 1; 45:660 } else 46:661 incr = 1; 47:662 for (x = 0; x < delay; x += incr) { 48:663 if ((lapic->icr_lo & APIC_DELSTAT_MASK) == APIC_DELSTAT_IDLE) 49:664 return (1); 50:665 ia32_pause(); 51:666 } 52:667 return (0); 53:(kgdb) backtrace 54:#0 doadump () at /usr/src/sys/kern/kern_shutdown.c:240 55:#1 0xc055fd9b in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:372 56:#2 0xc056019d in panic () at /usr/src/sys/kern/kern_shutdown.c:550 57:#3 0xc0567ef5 in mi_switch () at /usr/src/sys/kern/kern_synch.c:470 58:#4 0xc055fa87 in boot (howto=256) at /usr/src/sys/kern/kern_shutdown.c:312 59:#5 0xc056019d in panic () at /usr/src/sys/kern/kern_shutdown.c:550 60:#6 0xc0720c66 in trap_fatal (frame=0xdc1d0b30, eva=0) 61: at /usr/src/sys/i386/i386/trap.c:821 62:#7 0xc07202b3 in trap (frame= 63: {tf_fs = -1065484264, tf_es = -1065484272, tf_ds = -1065484272, tf_edi = 1, tf_esi = 0, tf_ebp = -602076292, tf_isp = -602076324, tf_ebx = 0, tf_edx = 0, tf_ecx = 1000000, tf_eax = 243, tf_trapno = 12, tf_err = 0, tf_eip = -1066321824, tf_cs = 8, tf_eflags = 65671, tf_esp = 243, tf_ss = 0}) 64: at /usr/src/sys/i386/i386/trap.c:250 65:#8 0xc070c9f8 in calltrap () at {standard input}:94 66:#9 0xc07139f3 in lapic_ipi_vectored (vector=0, dest=0) 67: at /usr/src/sys/i386/i386/local_apic.c:733 68:#10 0xc0718b23 in ipi_selected (cpus=1, ipi=1) 69: at /usr/src/sys/i386/i386/mp_machdep.c:1115 70:#11 0xc057473e in kseq_notify (ke=0xcc05e360, cpu=0) 71: at /usr/src/sys/kern/sched_ule.c:520 72:#12 0xc0575cad in sched_add (td=0xcbcf5c80) 73: at /usr/src/sys/kern/sched_ule.c:1366 74:#13 0xc05666c6 in setrunqueue (td=0xcc05e360) 75: at /usr/src/sys/kern/kern_switch.c:422 76:#14 0xc05752f4 in sched_wakeup (td=0xcbcf5c80) 77: at /usr/src/sys/kern/sched_ule.c:999 78:#15 0xc056816c in setrunnable (td=0xcbcf5c80) 79: at /usr/src/sys/kern/kern_synch.c:570 80:#16 0xc0567d53 in wakeup (ident=0xcbcf5c80) 81: at /usr/src/sys/kern/kern_synch.c:411 82:#17 0xc05490a8 in exit1 (td=0xcbcf5b40, rv=0) 83: at /usr/src/sys/kern/kern_exit.c:509 84:#18 0xc0548011 in sys_exit () at /usr/src/sys/kern/kern_exit.c:102 85:#19 0xc0720fd0 in syscall (frame= 86: {tf_fs = 47, tf_es = 47, tf_ds = 47, tf_edi = 0, tf_esi = -1, tf_ebp = -1077940712, tf_isp = -602075788, tf_ebx = 672411944, tf_edx = 10, tf_ecx = 672411600, tf_eax = 1, tf_trapno = 12, tf_err = 2, tf_eip = 671899563, tf_cs = 31, tf_eflags = 642, tf_esp = -1077940740, tf_ss = 47}) 87: at /usr/src/sys/i386/i386/trap.c:1010 88:#20 0xc070ca4d in Xint0x80_syscall () at {standard input}:136 89:---Can't read userspace from dump, or kernel process--- 90:(kgdb) quit Diese nächste Ablaufverfolgung ist ein älterer Speicherauszug aus FreeBSD 2-Zeiten, aber ist komplizierter und zeigt mehr der gdb-Funktionen. Lange Zeilen wurden gefaltet, um die Lesbarkeit zu verbessern, und die Zeilen wurden zur Verweisung nummeriert. Trotzdem ist es eine reale Fehlerverfolgung (Error-Trace), die während der Entwicklung des pcvt-Konsolentreibers entstanden ist. 1:Script started on Fri Dec 30 23:15:22 1994 2:&prompt.root; cd /sys/compile/URIAH 3:&prompt.root; gdb -k kernel /var/crash/vmcore.1 4:Reading symbol data from /usr/src/sys/compile/URIAH/kernel ...done. 5:IdlePTD 1f3000 6:panic: because you said to! 7:current pcb at 1e3f70 8:Reading in symbols for ../../i386/i386/machdep.c...done. 9:(kgdb) backtrace 10:#0 boot (arghowto=256) (../../i386/i386/machdep.c line 767) 11:#1 0xf0115159 in panic () 12:#2 0xf01955bd in diediedie () (../../i386/i386/machdep.c line 698) 13:#3 0xf010185e in db_fncall () 14:#4 0xf0101586 in db_command (-266509132, -266509516, -267381073) 15:#5 0xf0101711 in db_command_loop () 16:#6 0xf01040a0 in db_trap () 17:#7 0xf0192976 in kdb_trap (12, 0, -272630436, -266743723) 18:#8 0xf019d2eb in trap_fatal (...) 19:#9 0xf019ce60 in trap_pfault (...) 20:#10 0xf019cb2f in trap (...) 21:#11 0xf01932a1 in exception:calltrap () 22:#12 0xf0191503 in cnopen (...) 23:#13 0xf0132c34 in spec_open () 24:#14 0xf012d014 in vn_open () 25:#15 0xf012a183 in open () 26:#16 0xf019d4eb in syscall (...) 27:(kgdb) up 10 28:Reading in symbols for ../../i386/i386/trap.c...done. 29:#10 0xf019cb2f in trap (frame={tf_es = -260440048, tf_ds = 16, tf_\ 30:edi = 3072, tf_esi = -266445372, tf_ebp = -272630356, tf_isp = -27\ 31:2630396, tf_ebx = -266427884, tf_edx = 12, tf_ecx = -266427884, tf\ 32:_eax = 64772224, tf_trapno = 12, tf_err = -272695296, tf_eip = -26\ 33:6672343, tf_cs = -266469368, tf_eflags = 66066, tf_esp = 3072, tf_\ 34:ss = -266427884}) (../../i386/i386/trap.c line 283) 35:283 (void) trap_pfault(&frame, FALSE); 36:(kgdb) frame frame->tf_ebp frame->tf_eip 37:Reading in symbols for ../../i386/isa/pcvt/pcvt_drv.c...done. 38:#0 0xf01ae729 in pcopen (dev=3072, flag=3, mode=8192, p=(struct p\ 39:roc *) 0xf07c0c00) (../../i386/isa/pcvt/pcvt_drv.c line 403) 40:403 return ((*linesw[tp->t_line].l_open)(dev, tp)); 41:(kgdb) list 42:398 43:399 tp->t_state |= TS_CARR_ON; 44:400 tp->t_cflag |= CLOCAL; /* cannot be a modem (:-) */ 45:401 46:402 #if PCVT_NETBSD || (PCVT_FREEBSD >= 200) 47:403 return ((*linesw[tp->t_line].l_open)(dev, tp)); 48:404 #else 49:405 return ((*linesw[tp->t_line].l_open)(dev, tp, flag)); 50:406 #endif /* PCVT_NETBSD || (PCVT_FREEBSD >= 200) */ 51:407 } 52:(kgdb) print tp 53:Reading in symbols for ../../i386/i386/cons.c...done. 54:$1 = (struct tty *) 0x1bae 55:(kgdb) print tp->t_line 56:$2 = 1767990816 57:(kgdb) up 58:#1 0xf0191503 in cnopen (dev=0x00000000, flag=3, mode=8192, p=(st\ 59:ruct proc *) 0xf07c0c00) (../../i386/i386/cons.c line 126) 60: return ((*cdevsw[major(dev)].d_open)(dev, flag, mode, p)); 61:(kgdb) up 62:#2 0xf0132c34 in spec_open () 63:(kgdb) up 64:#3 0xf012d014 in vn_open () 65:(kgdb) up 66:#4 0xf012a183 in open () 67:(kgdb) up 68:#5 0xf019d4eb in syscall (frame={tf_es = 39, tf_ds = 39, tf_edi =\ 69: 2158592, tf_esi = 0, tf_ebp = -272638436, tf_isp = -272629788, tf\ 70:_ebx = 7086, tf_edx = 1, tf_ecx = 0, tf_eax = 5, tf_trapno = 582, \ 71:tf_err = 582, tf_eip = 75749, tf_cs = 31, tf_eflags = 582, tf_esp \ 72:= -272638456, tf_ss = 39}) (../../i386/i386/trap.c line 673) 73:673 error = (*callp->sy_call)(p, args, rval); 74:(kgdb) up 75:Initial frame selected; you cannot go up. 76:(kgdb) quit Kommentare zum Skript oben: Zeile 6: Dies ist ein Speicherauszug, der innerhalb von DDB genommen wurde (siehe unten), deswegen der Kommentar zur Panic because you said to! und die eher lange Stack-Ablaufverfolgung (Stack-Trace); der anfängliche Grund für das Starten von DDB war jedoch ein Seitenfehler-Trap (Page-Fault-Trap). Zeile 20: Dies ist die Position der Funktion trap() in der Stack-Ablaufverfolgung. Zeile 36: Erzwingt die Benutzung eines neuen Stack-Frames; dies ist nicht mehr notwendig. Die Stack-Frames sollen jetzt an die richtige Stelle im Speicher zeigen, selbst im Falle eines Traps. Nach einem Blick auf den Code in Zeile 403 ergibt sich mit hoher Wahrscheinlichkeit, dass entweder der Zeigerzugriff auf tp fehlerbehaftet oder der Array-Zugriff unerlaubt war. Zeile 52: Der Zeiger scheint verdächtig, aber besitzt zufällig eine gültige Adresse. Zeile 56: Jedoch zeigt er offensichtlich auf nichts und so haben wir unseren Fehler gefunden! (Für diejenigen, die nichts mit diesem speziellen Stück Code anfangen können: tp->t_line verweist hier auf das Zeilenverhalten (Line-Discipline) des Konsolen-Geräts, was eine ziemlich kleine Ganzzahl (Integer) sein muss.) Falls Ihr System regelmäßig abstürzt und und Sie bald keinen freien Speicherplatz mehr zur Verfügung haben, könnte das Löschen alter vmcore-Dateien in /var/core einen beträchtlichen Betrag an Speicherplatz einsparen. Fehlersuche in einem Speicherauszug nach einem Absturz mit DDD Die Untersuchung eines Speicherauszugs nach einem Kernel-Absturz mit einem grafischen Debugger wie ddd ist auch möglich (Sie müssen den devel/ddd-Port installieren, um den ddd-Debugger benutzen zu können). Nehmen Sie die mit in die ddd-Kommandozeile auf, die Sie normalerweise benutzen würden. Zum Beispiel: &prompt.root; ddd -k /var/crash/kernel.0 /var/crash/vmcore.0 Sie sollten nun in der Lage sein, die Untersuchung des Speicherauszugs nach dem Absturz unter Benutzung der grafischen Schnittstelle von ddd anzugehen. - - Post-Mortem-Auswertung eines Speicherauszugs - - Was machen Sie, falls ein Kernel abstürzt und einen - Kernspeicherauszug ablegt, aber Sie es nicht erwartet haben und - der Kernel folglich nicht unter Benutzung von config - -g kompiliert wurde? Nicht alles ist dann verloren. - Geraten Sie nicht in Panik! - - Natürlich müssen Sie immer noch die Ablage von - Speicherauszügen nach einem Absturz aktivieren. Sehen Sie - weiter oben nach den Optionen, die Sie festlegen müssen, um - dies zu tun. - - Wechseln Sie in Ihr Kernel-Konfigurationsverzeichnis - (/usr/src/sys/arch/conf) - und bearbeiten Sie die Konfigurationsdatei. Entfernen Sie den - Kommentar vor folgender Zeile (oder fügen Sie sie hinzu, - falls sie nicht vorhanden ist): - - makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols - - Bauen Sie den Kernel neu. Aufgrund der Änderung des - Zeitstempels im Makefile werden einige weitere Objektdateien neu - gebaut, zum Beispiel trap.o. Mit etwas - Glück ändert die hinzugefügte - -Option nichts am erzeugten Code, sodass Sie - schließlich einen neuen Kernel mit gleichem Code wie im - fehlerbehafteten, jedoch mit einigen Symbolen zur Fehlersuche - (Debugging-Symbols), erhalten. Sie sollten zumindest die alten - und neuen Dateigrößen mit dem &man.size.1;-Befehl - überprüfen. Falls sich eine Nichtübereinstimmung - findet, müssen Sie an dieser Stelle vermutlich - aufgeben. - - Untersuchen Sie nun den Speicherauszug, wie oben beschrieben. - Die Symbole zur Fehlersuche könnten an manchen Stellen - unvollständig sein, wie es die Stack-Ablaufverfolgung im - Beispiel oben zeigt, wo manche Funktionen ohne Zeilennummer und - Parameterliste aufgelistet sind. Falls Sie mehr Symbole zur - Fehlersuche benötigen, entfernen Sie geeignete Objektdateien, - bauen Sie den Kernel ein weiteres Mal neu und wiederholen Sie die - gdb -Sitzung, bis Sie - genug wissen. - - Das Ganze funktioniert nicht unter Garantie, reicht aber in - den meisten Fällen aus. - + Online-Kernel-Fehlersuche mit DDB Während kgdb als Offline-Debugger eine Benutzerschnittstelle auf höchster Ebene bietet, gibt es einige Dinge, die es nicht kann. Die wichtigsten sind das Setzen von Breakpoints und das Abarbeiten des Kernel-Codes in Einzelschritten (Single-Stepping). Falls Sie eine systemnahe Fehlersuche an Ihrem Kernel vorhaben, steht Ihnen ein Online-Debugger mit dem Namen DDB zur Verfügung. Er erlaubt Ihnen das Setzen von Breakpoints, die Abarbeitung von Kernel-Funktionen in Einzelschritten, das Untersuchen und Verändern von Kernel-Variablen usw. Jedoch hat er keinen Zugriff auf Kernel-Quelldateien, sondern kann nur, im Gegensatz zu gdb, welches auf die ganzen Informationen zur Fehlersuche zurückgreifen kann, auf globale und statische Symbole zugreifen. Um DDB in Ihren Kernel einzubinden, fügen Sie die Optionen options KDB options DDB Ihrer Konfigurationsdatei hinzu und bauen Sie den Kernel neu. (Details zur Konfiguration des FreeBSD-Kernels finden Sie im &os;-Handbuch). Falls Sie eine ältere Version des Boot-Blocks haben, könnte es sein, dass Ihre Symbole zur Fehlersuche noch nicht einmal geladen werden. Aktualisieren Sie den Boot-Block; aktuelle Versionen laden die DDB-Symbole automatisch. Sobald Ihr Kernel mit DDB startet, gibt es mehrere Wege, um in DDB zu gelangen. Der erste und früheste Weg ist, das Boot-Flag gleich an der Boot-Eingabeaufforderung einzugeben. Der Kernel startet dann in den Debug-Modus und betritt DDB noch vor jedweder Gerätesuche. Somit können Sie Funktionen zur Gerätesuche/-bereitstellung auf Fehler untersuchen. &os.current;-Benutzer müssen die sechste Option im Boot-Menü auswählen, um an eine Eingabeaufforderung zu gelangen. Das zweite Szenario ist der Gang in den Debugger, sobald das System schon gestartet ist. Es gibt zwei einfache Wege dies zu erreichen. Falls Sie von der Eingabeaufforderung aus in den Debugger gelangen möchten, geben Sie einfach folgenden Befehl ab: &prompt.root; sysctl debug.kdb.enter=1 Um eine schnelle Panic zu erzwingen, geben Sie das folgende Kommando ein: &prompt.root; sysctl debug.kdb.panic=1 Anderenfalls können Sie ein Tastenkürzel auf der Tastatur benutzen, wenn Sie an der Systemkonsole sind. Die Voreinstellung für die break-to-debugger-Sequenz ist CtrlAltESC. In syscons kann diese Sequenz auf eine andere Tastenkombination gelegt werden (remap) und manche der verfügbaren Tastaturlayouts tun dies, stellen Sie also sicher, dass Sie die richtige Sequenz kennen, die benutzt werden soll. Für serielle Konsolen ist eine Option vorhanden, die die Benutzung einer Unterbrechung der seriellen Verbindung (BREAK) auf der Kommandozeile erlaubt, um in DDB zu gelangen (options BREAK_TO_DEBUGGER in der Kernel-Konfigurationsdatei). Dies ist jedoch nicht der Standard, da viele serielle Adapter in Verwendung sind, die grundlos eine BREAK-Bedingung erzeugen, zum Beispiel bei Ziehen des Kabels. Die dritte Möglichkeit ist, dass jede Panic-Bedingung in DDB springt, falls der Kernel hierfür konfiguriert ist. Aus diesem Grund ist es nicht sinnvoll einen Kernel mit DDB für ein unbeaufsichtigtes System zu konfigurieren. Um die unbeaufsichtigte Funktionsweise zu erreichen fügen Sie: options KDB_UNATTENDED der Kernel-Konfigurationsdatei hinzu und bauen/installieren Sie den Kernel neu. Die DDB-Befehle ähneln grob einigen gdb-Befehlen. Das Erste, das Sie vermutlich tun müssen, ist einen Breakpoint zu setzen: break function-name address Zahlen werden standardmäßig hexadezimal angegeben, aber um sie von Symbolnamen zu unterscheiden, muss Zahlen, die mit den Buchstaben a-f beginnen, 0x vorangehen (dies ist für andere Zahlen beliebig). Einfache Ausdrücke sind erlaubt, zum Beispiel: function-name + 0x103. Um den Debugger zu verlassen und mit der Abarbeitung fortzufahren, geben Sie ein: continue Um eine Stack-Ablaufverfolgung zu erhalten, benutzen Sie: trace Beachten Sie, dass wenn Sie DDB mittels einer Schnelltaste betreten, der Kernel zurzeit einen Interrupt bereitstellt, sodass die Stack-Ablaufverfolgung Ihnen nicht viel nützen könnte. Falls Sie einen Breakpoint entfernen möchten, benutzen Sie del del address-expression Die erste Form wird direkt, nachdem ein Breakpoint anschlug, angenommen und entfernt den aktuellen Breakpoint. Die zweite kann jeden Breakpoint löschen, aber Sie müssen die genaue Adresse angeben; diese kann bezogen werden durch: show b oder: show break Um den Kernel in Einzelschritten auszuführen, probieren Sie: s Dies springt in Funktionen, aber Sie können DDB veranlassen, diese schrittweise zu verfolgen, bis die passende Rückkehranweisung (Return-Statement) erreicht ist. Nutzen Sie hierzu: n Dies ist nicht das gleiche wie die next-Anweisung von gdb; es ist wie gdbs finish. Mehrmaliges Drücken von n führt zu einer Fortsetzung. Um Daten aus dem Speicher zu untersuchen, benutzen Sie (zum Beispiel): x/wx 0xf0133fe0,40 x/hd db_symtab_space x/bc termbuf,10 x/s stringbuf für Word/Halfword/Byte-Zugriff und Hexadezimal/Dezimal/Character/String-Ausgabe. Die Zahl nach dem Komma ist der Objektzähler. Um die nächsten 0x10 Objekte anzuzeigen benutzen Sie einfach: x ,10 Gleichermaßen benutzen Sie x/ia foofunc,10 um die ersten 0x10 Anweisungen aus foofunc zu zerlegen (disassemble) und Sie zusammen mit ihrem Adressabstand (Offset) vom Anfang von foofunc auszugeben. Um Speicher zu verändern benutzen Sie den Schreibbefehl: w/b termbuf 0xa 0xb 0 w/w 0xf0010030 0 0 Die Befehlsoption (b/h/w) legt die Größe der Daten fest, die geschrieben werden sollen, der erste Ausdruck danach ist die Adresse, wohin geschrieben werden soll, und der Rest wird als Daten verarbeitet, die in aufeinander folgende Speicherstellen geschrieben werden. Falls Sie die aktuellen Register wissen möchten, benutzen Sie: show reg Alternativ können Sie den Inhalt eines einzelnen Registers ausgeben mit z.B. p $eax und ihn bearbeiten mit: set $eax new-value Sollten Sie irgendeine Kernel-Funktion aus DDB heraus aufrufen wollen, geben Sie einfach ein: call func(arg1, arg2, ...) Der Rückgabewert wird ausgegeben. Für eine Zusammenfassung aller laufenden Prozesse im Stil von &man.ps.1; benutzen Sie: ps Nun haben Sie herausgefunden, warum Ihr Kernel fehlschlägt, und möchten neu starten. Denken Sie daran, dass, abhängig von der Schwere vorhergehender Störungen, nicht alle Teile des Kernels wie gewohnt funktionieren könnten. Führen Sie eine der folgenden Aktionen durch, um Ihr System herunterzufahren und neu zu starten: panic Dies wird Ihren Kernel dazu veranlassen abzustürzen, einen Speicherauszug abzulegen und neu zu starten, sodass Sie den Kernspeicherauszug später auf höherer Ebene mit gdb auswerten können. Diesem Befehl muss normalerweise eine weitere continue-Anweisung folgen. call boot(0) Dürfte ein guter Weg sein, um das laufende System sauber herunterzufahren, alle Festplatten mittels sync() zu schreiben und schließlich, in manchen Fällen, neu zu starten. Solange die Festplatten- und Dateisystemschnittstellen des Kernels nicht beschädigt sind, könnte dies ein guter Weg für ein beinahe sauberes Abschalten sein. call cpu_reset() Dies ist der letzte Ausweg aus der Katastrophe und kommt beinahe dem Drücken des Ausschaltknopfes gleich. Falls Sie eine kurze Zusammenfassung aller Befehle benötigen, geben Sie einfach ein: help Es ist strengstens empfohlen, eine ausgedruckte Version der &man.ddb.4;-Manualpage während der Fehlersuche neben sich liegen zu haben. Denken Sie daran, dass es schwer ist, die Online-Hilfe zu lesen, während der Ausführung des Kernels in Einzelschritten. Online-Kernel-Fehlersuche mit GDB auf einem entfernten System Diese Funktion wird seit FreeBSD 2.2 unterstützt und ist wirklich sehr geschickt. GDB unterstützt die Fehlersuche von einem entfernten System aus bereits einige Zeit. Dies geschieht unter Benutzung eines sehr einfachen Protokolls über eine serielle Verbindung. Anders als bei den anderen, oben beschriebenen, Vorgehensweisen werden hier zwei Systeme benötigt. Das eine ist das Hostsystem, welches die Umgebung zur Fehlersuche, einschließlich aller Quellen und einer Kopie der Kernel-Binärdatei mit allen Symbolen bereitstellt, und das andere das Zielsystem, welches einfach nur eine Kopie desselben Kernels ausführt (ohne die Informationen zur Fehlersuche). Sie sollten den Kernel im Zweifelsfall mit config -g konfigurieren, in die Konfiguration aufnehmen und den Kernel, wie sonst auch, kompilieren. Dies ergibt, aufgrund der zusätzlichen Informationen zur Fehlersuche, eine umfangreiche Binärdatei. Kopieren Sie diesen Kernel auf das Zielsystem, entfernen Sie die Symbole zur Fehlersuche mit strip -x und starten Sie ihn mit der -Boot-Option. Stellen Sie die serielle Verbindung zwischen dem Zielsystem, welches "flags 80" für dessen sio-Gerät gesetzt hat, und dem Hostsystem, welches die Fehlersuche übernimmt, her. Nun wechseln Sie auf dem Hostsystem in das Bauverzeichnis des Ziel-Kernels und starten gdb: &prompt.user; kgdb kernel GDB is free software and you are welcome to distribute copies of it under certain conditions; type "show copying" to see the conditions. There is absolutely no warranty for GDB; type "show warranty" for details. GDB 4.16 (i386-unknown-freebsd), Copyright 1996 Free Software Foundation, Inc... (kgdb) Stellen Sie die entfernte Sitzung zur Fehlersuche ein mit (angenommen, der erste serielle Port ist in Verwendung): (kgdb) target remote /dev/cuaa0 Jetzt geben Sie auf dem Zielsystem, welches noch vor Beginn der Gerätesuche in DDB gelangt ist, ein: Debugger("Boot flags requested debugger") Stopped at Debugger+0x35: movb $0, edata+0x51bc db> gdb DDB antwortet dann mit: Next trap will enter GDB remote protocol mode Jedesmal wenn Sie gdb eingeben, wird zwischen dem lokalen DDB und entfernten GDB umgeschaltet. Um einen nächsten Trap sofort zu erzwingen, geben Sie einfach s (step) ein. Ihr GDB auf dem Hostsystem erhält nun die Kontrolle über den Ziel-Kernel: Remote debugging using /dev/cuaa0 Debugger (msg=0xf01b0383 "Boot flags requested debugger") at ../../i386/i386/db_interface.c:257 (kgdb) Sie können mit dieser Sitzung wie mit jeder anderen GDB-Sitzung umgehen, einschließlich vollem Zugriff auf die Quellen, Starten im gud-Modus innerhalb eines Emacs-Fensters (was Ihnen automatische Quelltext-Ausgabe in einem weiteren Emacs-Fenster bietet), usw. - - Fehlersuche bei ladbaren Modulen mit GDB - - Während der Fehlersuche bei einer Panic, die innerhalb - eines Moduls oder unter Benutzung von GDB auf einem entfernten - System gegen ein System, das dynamische Module benutzt, - ausgelöst wurde, müssen Sie GDB mitteilen, wie es an - die Informationen zu den Symbolen dieser Module kommt. - - Zuerst müssen Sie die Module mit Informationen zur - Fehlersuche bauen: - - &prompt.root; cd /sys/modules/linux -&prompt.root; make clean; make COPTS=-g - - Falls Sie GDB auf einem entfernten System benutzen, - können Sie kldstat auf dem Zielsystem - starten, um herauszufinden, wohin die Module geladen - wurden: - - &prompt.root; kldstat -Id Refs Address Size Name - 1 4 0xc0100000 1c1678 kernel - 2 1 0xc0a9e000 6000 linprocfs.ko - 3 1 0xc0ad7000 2000 warp_saver.ko - 4 1 0xc0adc000 11000 linux.ko - - Falls Sie einen Speicherauszug nach einem Absturz auf Fehler - untersuchen, müssen Sie die - linker_files-Liste abgehen, beginnend mit - linker_files->tqh_first und den - link.tqe_next-Zeigern folgend, bis Sie den - Eintrag mit dem Dateinamen, nach dem Sie - suchen, gefunden haben. Der Adress-Teil des - Eintrags ist die Adresse, wohin das Modul geladen - wurde. - - Als Nächstes müssen Sie den Adressabstand des - Textabschnitts innerhalb des Moduls herausfinden: - - &prompt.root; objdump --section-headers /sys/modules/linux/linux.ko | grep text - 3 .rel.text 000016e0 000038e0 000038e0 000038e0 2**2 - 10 .text 00007f34 000062d0 000062d0 000062d0 2**2 - - Das, wonach Sie suchen, ist die - .text-Zeile, Zeile 10 im Beispiel oben. Die - vierte hexadezimale Spalte (insgesamt die sechste) zeigt den - Adressabstand des Textabschnitts innerhalb der Datei. Addieren - Sie diesen Adressabstand zu der Ladeadresse des Moduls, um die - Verschiebungsadresse für den Code des Moduls zu erhalten. - In unserem Beispiel erhalten wir 0xc0adc000 + 0x62d0 = - 0x0ae22d0. Benutzen Sie den - add-symbol-file-Befehl in GDB, um dem - Debugger das Modul mitzuteilen: - - (kgdb) add-symbol-file /sys/modules/linux/linux.ko 0xc0ae22d0 -add symbol table from file "/sys/modules/linux/linux.ko" at text_addr = 0xc0ae22d0? -(y or n) y -Reading symbols from /sys/modules/linux/linux.ko...done. -(kgdb) - - Sie sollten nun auf alle Symbole im Modul zugreifen - können. - - Fehlersuche bei einem Konsolen-Treiber Da Sie nunmal einen Konsolen-Treiber benötigen, um DDB zu starten, ist alles ein wenig komplizierter, sobald der Konsolen-Treiber selbst versagt. Sie erinnern sich vielleicht an die Benutzung einer seriellen Konsole (entweder durch Verändern des Boot-Blocks oder Eingabe von an der Boot:-Eingabeaufforderung) und das Anschließen eines Standard-Terminals an Ihren ersten seriellen Port. DDB funktioniert auf jedem konfigurierten Konsolen-Treiber, auch auf einer seriellen Konsole. Fehlersuche bei Deadlocks Sie erleben vielleicht mal sogenannte Deadlocks, wobei ein System aufhört, nützliche Arbeit zu machen. Um in einer solchen Situation einen hilfreichen Fehlerbericht zu liefern, benutzen Sie &man.ddb.4;, wie oben beschrieben. Hängen Sie die Ausgabe von ps und trace für verdächtige Prozesse an den Bericht an. Falls möglich, versuchen Sie, weitere Untersuchungen anzustellen. Der Empfang der Ausgaben unten ist besonders dann nützlich, wenn Sie den Auslöser für die Blockade des Systems auf VFS-Ebene vermuten. Fügen Sie die folgenden Optionen makeoptions DEBUG=-g options INVARIANTS options INVARIANT_SUPPORT options WITNESS options DEBUG_LOCKS options DEBUG_VFS_LOCKS options DIAGNOSTIC der Kernel-Konfigurationsdatei hinzu. Wenn die Blockade ausgelöst wird, stellen Sie, zusätzlich der Ausgabe vom ps-Befehl, die Informationen aus show pcpu, show allpcpu, show locks, show alllocks, show lockedvnods und alltrace bereit. Um aussagekräftige Zurückverfolgungen von in Threads aufgeteilten Prozesse zu erhalten, benutzen Sie thread thread-id, um zum Thread-Stack zu wechseln und eine Zurückverfolgung mit where anzustellen. Glossar der Kernel-Optionen zur Fehlersuche Dieser Abschnitt bietet ein kurzes Glossar der zur Kompilierzeit verfügbaren Kernel-Optionen, die die Fehlersuche unterstützen: options KDB: Kompiliert das Kernel-Debugger-Framework ein. Wird von options DDB und options GDB benötigt. Kein oder nur geringer Leistungs-Overhead. Standardmäßig wird bei einer Panic der Debugger gestartet, anstatt automatisch neu zu starten. options KDB_UNATTENDED: Setzt den Standard des debug.debugger_on_panic-sysctl-Werts auf 0, welcher regelt, ob der Debugger bei einer Panic gestartet wird. Solange options KDB nicht in den Kernel einkompiliert ist, wird bei einer Panic automatisch neu gestartet; sobald es in den Kernel einkompiliert ist, wird standardmäßig der Debugger gestartet, solange options KDB_UNATTENDED nicht einkompiliert ist. Falls Sie den Kernel-Debugger in den Kernel einkompiliert lassen wollen, aber möchten, dass das System neu startet, wenn Sie nicht zur Stelle sind, um den Debugger zur Diagnose zu benutzen, wählen Sie diese Option. options KDB_TRACE: Setzt den Standard des debug.trace_on_panic-sysctl-Werts auf 1, welcher regelt, ob der Debugger bei einer Panic automatisch eine Stack-Ablaufverfolgung ausgibt. Besonders wenn der Kernel mit KDB_UNATTENDED läuft, kann dies hilfreich sein, um grundlegende Informationen zur Fehlersuche auf der seriellen oder Firewire-Konsole zu erhalten, während immer noch zur Wiederherstellung neu gestartet wird. options DDB: Kompiliert die Unterstützung für den Konsolen-Debugger DDB ein. Dieser interaktive Debugger läuft auf was auch immer die aktive Konsole des Systems auf niedrigster Ebene ist, dazu gehören die Video-, serielle und Firewire-Konsole. Er bietet grundlegende, eingebaute Möglichkeiten zur Fehlersuche wie zum Beispiel das Erstellen von Stack-Ablaufverfolgungen, das Auflisten von Prozessen und Threads, das Ablegen des Lock-, VM- und Dateisystemstatus und die Verwaltung des Kernel-Speichers. DDB benötigt keine Software, die auf einem zweiten System läuft, oder die Fähigkeit, einen Kernspeicherauszug oder Kernel-Symbole zur vollen Fehlersuche zu erzeugen und bietet detaillierte Fehlerdiagnose des Kernels zur Laufzeit. Viele Fehler können allein unter Benutzung der DDB-Ausgabe untersucht werden. Diese Option hängt von options KDB ab. options GDB: Kompiliert die Unterstützung für den Debugger GDB ein, welcher von einem entfernten System aus über ein serielles Kabel oder Firewire agieren kann. Wenn der Debugger gestartet ist, kann GDB dazu verwendet werden, um Struktur-Inhalte einzusehen, Stack-Ablaufverfolgungen zu erzeugen, usw. Bei manchem Kernel-Status ist der Zugriff ungeschickter als mit DDB, welcher dazu in der Lage ist, nützliche Zusammenfassungen des Kernel-Status automatisch zu erstellen wie zum Beispiel das automatische Abgehen der Lock-Fehlersuche oder der Strukturen zur Kernel-Speicher-Verwaltung, und es wird ein zweites System beötigt. Auf der anderen Seite verbindet GDB Informationen aus den Kernel-Quellen mit vollständigen Symbolen zur Fehlersuche, erkennt komplette Datenstrukturdefinitionen, lokale Variablen und ist in Skripten einsetzbar. Diese Option hängt von options KDB ab, ist aber nicht zur Benutzung von GDB auf einem Kernel-Kernspeicherauszug nötig. options BREAK_TO_DEBUGGER, options ALT_BREAK_TO_DEBUGGER: Erlaubt ein Abbruch- oder Alternativ-Signal auf der Konsole, um in den Debugger zu gelangen. Falls sich das System ohne eine Panic aufhängt, ist dies ein nützlicher Weg, um den Debugger zu erreichen. Aufgrund der aktuellen Verriegelung durch den Kernel ist ein Abbruch-Signal, das auf einer seriellen Konsole erzeugt wurde, deutlich vertrauenswürdiger beim Gelangen in den Debugger und wird allgemein empfohlen. Diese Option hat kaum oder keine Auswirkung auf den Durchsatz. options INVARIANTS: Kompiliert eine große Anzahl an Aussageprüfungen und -tests (Assertion-Checks und -Tests) ein, welche ständig die Intaktheit der Kernel-Datenstrukturen und die Invarianten der Kernel-Algorithmen prüfen. Diese Tests können aufwendig sein und sind deswegen nicht von Anfang an einkompiliert, aber helfen nützliches "fail stop"-Verhalten, wobei bestimmte Gruppen nicht erwünschten Verhaltens den Debugger öffnen, bevor Beschädigungen an Kernel-Daten auftreten, bereitzustellen, welches es einfacher macht, diese auf Fehler hin zu untersuchen. Die Tests beinhalten Säubern von Speicher und use-after-free-Prüfungen, was eine der bedeutenderen Quellen von Overhead ist. Diese Option hängt von options INVARIANT_SUPPORT ab. options INVARIANT_SUPPORT: Viele der in options INVARIANTS vorhandenen Tests benötigen veränderte Datenstrukturen und zusätzliche Kernel-Symbole, die festgelegt werden müssen. options WITNESS: Diese Option aktiviert Verfolgung und Prüfung von Lock-Anforderungen zur Laufzeit und ist als Werkzeug für die Deadlock-Diagnose von unschätzbarem Wert. WITNESS pflegt ein Diagramm mit erworbenen Lock-Anträgen nach Typ geordnet und prüft bei jedem Erwerb nach Zyklen (implizit oder explizit). Falls ein Zyklus entdeckt wird, werden eine Warnung und eine Stack-Ablaufverfolgung erzeugt und als Hinweis, dass ein möglicher Deadlock gefunden wurde, auf der Konsole ausgegeben. WITNESS wird benötigt, um die DDB-Befehle show locks, show witness und show alllocks benutzen zu können. Diese Debug-Option hat einen bedeutenden Leistung-Overhead, welcher ein ein wenig durch Benutzung von options WITNESS_SKIPSPIN gemildert werden kann. Detaillierte Dokumentation kann in &man.witness.4; gefunden werden. options WITNESS_SKIPSPIN: Deaktiviert die Prüfung von Spinlock-Lock-Anforderungen mit WITNESS zur Laufzeit. Da Spinlocks am häufigsten im Scheduler angefordert werden und Scheduler-Ereignisse oft auftreten, kann diese Option Systeme, die mit WITNESS laufen, merklich beschleunigen. Diese Option hängt von options WITNESS ab. options WITNESS_KDB: Setzt den Standard des debug.witness.kdb-sysctl-Werts auf 1, was bewirkt, dass WITNESS den Debugger aufruft, sobald eine Lock-Anforderungsverletzung vorliegt, anstatt einfach nur eine Warnung auszugeben. Diese Option hängt von options WITNESS ab. options SOCKBUF_DEBUG: Führt umfassende Beschaffenheitsprüfungen in Socket-Puffern durch, was nützlich zur Fehlersuche bei Socket-Fehlern und Anzeichen für Ressourceblockaden (Race) in Protokollen und Gerätetreibern, die mit Sockets arbeiten, sein kann. Diese Option hat bedeutende Auswirkung auf die Netzwerkleistung und kann die Zeitverhältnisse bei gegenseitiger Ressourceblockade in Gerätetreibern ändern. options DEBUG_VFS_LOCKS: Verfolgt Lock-Anforderungs-Einzelheiten bei lockmgr/vnode-Locks, was die Menge der Informationen, die von show lockdevnods in DDB angezeigt werden, vergrößert. Diese Option hat messbare Auswirkung auf die Leistung. options DEBUG_MEMGUARD: Ein Ersatz für die Kernel-Speicher-Zuweisung durch &man.malloc.9;, die das VM-System benutzt, um Lese- und Schreibzugriffe auf zugewiesenen Speicher nach der Freigabe zu entdecken. Details können in &man.memguard.9; gefunden werden. Diese Option hat bedeutende Auswirkung auf die Leistung, aber kann sehr nützlich bei der Fehlersuche sein, wenn Kernel-Speicher-Beschädigungen durch Fehler verursacht werden. options DIAGNOSTIC: Aktiviert zusätzliche, aufwendigere Diagnosetests analog zu options INVARIANTS. diff --git a/de_DE.ISO8859-1/books/handbook/bibliography/chapter.sgml b/de_DE.ISO8859-1/books/handbook/bibliography/chapter.sgml index c295642428..2fd16fa0c3 100644 --- a/de_DE.ISO8859-1/books/handbook/bibliography/chapter.sgml +++ b/de_DE.ISO8859-1/books/handbook/bibliography/chapter.sgml @@ -1,703 +1,703 @@ Bibliografie Übersetzt von &a.de.gruender; Während die Manualpages die endgültige Auskunft über bestimmte Teile des FreeBSD-Betriebssystems geben, so können sie jedoch nicht darstellen, wie man die einzelnen Teile zusammenfügt, um ein vollständig laufendes Betriebssystem herzustellen. Daher gibt es keinen Ersatz für ein gutes Buch über die Administration von &unix; Systemen und ein gutes Benutzerhandbuch. In der Regel handelt es sich im folgenden Kapitel um englische Ausgaben der genannten Werke. Übersetzungen oder Ausgaben in anderen Sprachen sind mit entsprechenden Hinweisen versehen. Bücher und Magazine speziell für FreeBSD Internationale Bücher und Magazine: Using FreeBSD, herausgegeben von Drmaster, 1997 (in traditionellem Chinesisch). ISBN 9-578-39435-7. FreeBSD Unleashed (in vereinfachtem Chinesisch), herausgegeben von China Press. ISBN 7-111-10201-0. FreeBSD From Scratch First Edition (in vereinfachtem Chinesisch), herausgegeben von China Press. ISBN 7-111-07482-3. FreeBSD From Scratch Second Edition (in vereinfachtem Chinesisch), herausgegeben von China Press. ISBN 7-111-10286-X. FreeBSD Handbook Second Edition (in vereinfachtem Chinesisch), herausgegeben von Posts & Telecom Press. ISBN 7-115-10541-3. FreeBSD 3.x Internet (in vereinfachtem Chinesisch), herausgegeben von Tsinghua University Press. ISBN 7-900625-66-6. FreeBSD & Windows (in vereinfachtem Chinesisch), herausgegeben von China Railway Publishing House. ISBN 7-113-03845-X. FreeBSD Internet Services HOWTO (in vereinfachtem Chinesisch), herausgegeben von China Railway Publishing House. ISBN 7-113-03423-3. FreeBSD for PC 98'ers (in japanischer Sprache), herausgegeben von SHUWA System Co, LTD. ISBN 4-87966-468-5 C3055 P2900E. FreeBSD (in japanischer Sprache), herausgegeben von CUTT. ISBN 4-906391-22-2 C3055 P2400E. Complete Introduction to FreeBSD (in Japanese), published by Shoeisha Co., Ltd. ISBN 4-88135-473-6 P3600E. Personal UNIX Starter Kit FreeBSD (in japanischer Sprache), herausgegeben von ASCII. ISBN 4-7561-1733-3 P3000E. FreeBSD Handbook (japanische Übersetzung), herausgegeben von ASCII. ISBN 4-7561-1580-2 P3800E. FreeBSD mit Methode (in deutscher Sprache), herausgegeben von Computer und Literatur Verlag /Vertrieb Hanser, 1998. ISBN 3-932311-31-0. FreeBSD 4 - Installieren, Konfigurieren, Administrieren (in deutscher Sprache), herausgegeben von Computer und Literatur Verlag, 2001. ISBN 3-932311-88-4. FreeBSD 5 – Installieren, Konfigurieren, Administrieren (in deutscher Sprache), herausgegeben von Computer und Literatur Verlag, 2001. ISBN 3-936546-06-1. FreeBSD de Luxe (in German), published by Verlag Modere Industrie, 2003. ISBN 3-8266-1343-0. FreeBSD Install and Utilization Manual (in japanischer Sprache), herausgegeben von Mainichi Communications Inc., 1998. ISBN 4-8399-0112-0. Onno W Purbo, Dodi Maryanto, Syahrial Hubbany, Widjil Widodo Building Internet Server with FreeBSD (in indonesischer Sprache), herausgegeben von Elex Media Komputindo. Absolute BSD: The Ultimate Guide to FreeBSD (in traditionellem Chinesisch), herausgegeben von GrandTech Press, 2003. ISBN 986-7944-92-5. The FreeBSD 6.0 Book (in traditionellem Chinesisch, herausgegeben von Drmaster, 2006. ISBN 9-575-27878-X. Englischsprachige Bücher und Magazine: Absolute FreeBSD, 2nd Edition: The Complete Guide to FreeBSD, herausgegeben von No Starch Press, 2007. ISBN: 978-1-59327-151-0 The Complete FreeBSD, herausgegeben von O'Reilly, 2003. ISBN: 0596005164 The FreeBSD Corporate Networker's Guide, herausgegeben von Addison-Wesley, 2002. ISBN: 0201704811 FreeBSD: An Open-Source Operating System for Your Personal Computer, herausgegeben von The Bit Tree Press, 2001. ISBN: 0971204500 Teach Yourself FreeBSD in 24 Hours, herausgegeben von Sams, 2002. ISBN: 0672324245 FreeBSD6 Unleashed, herausgegeben von Sams, 2006. ISBN: 0672328755 FreeBSD: The Complete Reference, herausgegeben von McGrawHill, 2003. ISBN: 0072224096 BSD Magazine, herausgegeben von Software Press Sp. z o.o. SK. ISBN: 1898-9144 Handbücher Computer Systems Research Group, UC Berkeley. 4.4BSD User's Reference Manual. O'Reilly & Associates, Inc., 1994. ISBN 1-56592-075-9 Computer Systems Research Group, UC Berkeley. 4.4BSD User's Supplementary Documents. O'Reilly & Associates, Inc., 1994. ISBN 1-56592-076-7 UNIX in a Nutshell. O'Reilly & Associates, Inc., 1990. ISBN 093717520X Mui, Linda. What You Need To Know When You Can't Find Your UNIX System Administrator. O'Reilly & Associates, Inc., 1995. ISBN 1-56592-104-6 Die Ohio State University hat ein UNIX Introductory Course veröffentlicht, welcher auch online im HTML- und PostScriptformat verfügbar ist. Eine italienische Übersetzung ist Teil des &os; Italian Documentation Projects. Jpman Project, Japan FreeBSD Users Group. FreeBSD User's Reference Manual (japanische Übersetzung). Mainichi Communications Inc., 1998. ISBN4-8399-0088-4 P3800E. Edinburgh University hat einen Online Guide für Anfänger in Sachen UNIX geschrieben. Administrations-Anleitungen Albitz, Paul and Liu, Cricket. DNS and BIND, 4th Ed. O'Reilly & Associates, Inc., 2001. ISBN 1-59600-158-4 Computer Systems Research Group, UC Berkeley. 4.4BSD System Manager's Manual. O'Reilly & Associates, Inc., 1994. ISBN 1-56592-080-5 Costales, Brian, et al. Sendmail, 2nd Ed. O'Reilly & Associates, Inc., 1997. ISBN 1-56592-222-0 Frisch, Æleen. Essential System Administration, 2nd Ed. O'Reilly & Associates, Inc., 1995. ISBN 1-56592-127-5 Hunt, Craig. TCP/IP Network Administration, 2nd Ed. O'Reilly & Associates, Inc., 1997. ISBN 1-56592-322-7 Nemeth, Evi. UNIX System Administration Handbook. 3rd Ed. Prentice Hall, 2000. ISBN 0-13-020601-6 Stern, Hal Managing NFS and NIS O'Reilly & Associates, Inc., 1991. ISBN 0-937175-75-7 Jpman Project, Japan FreeBSD Users Group. FreeBSD System Administrator's Manual (japanische Übersetzung). Mainichi Communications Inc., 1998. ISBN4-8399-0109-0 P3300E. Dreyfus, Emmanuel. Cahiers de l'Admin: BSD 2nd Ed. (in French), Eyrolles, 2004. ISBN 2-212-11463-X. Programmierhandbücher Asente, Paul, Paul, Converse, Diana, and Swick, Ralph. X Window System Toolkit. Digital Press, 1998. ISBN 1-55558-178-1 Computer Systems Research Group, UC Berkeley. 4.4BSD Programmer's Reference Manual. O'Reilly & Associates, Inc., 1994. ISBN 1-56592-078-3 Computer Systems Research Group, UC Berkeley. 4.4BSD Programmer's Supplementary Documents. O'Reilly & Associates, Inc., 1994. ISBN 1-56592-079-1 Harbison, Samuel P. and Steele, Guy L. Jr. C: A Reference Manual. 4th ed. Prentice Hall, 1995. ISBN 0-13-326224-3 Kernighan, Brian and Dennis M. Ritchie. The C Programming Language. 2nd Ed., PTR Prentice Hall, 1988. ISBN 0-13-110362-9 Lehey, Greg. Porting UNIX Software. O'Reilly & Associates, Inc., 1995. ISBN 1-56592-126-7 Plauger, P. J. The Standard C Library. Prentice Hall, 1992. ISBN 0-13-131509-9 Spinellis, Diomidis. Code Reading: The Open Source Perspective. Addison-Wesley, 2003. ISBN 0-201-79940-5 Spinellis, Diomidis. Code Quality: The Open Source Perspective. Addison-Wesley, 2006. ISBN 0-321-16607-8 Stevens, W. Richard and Stephen A. Rago. Advanced Programming in the UNIX Environment. 2nd Ed. Reading, Mass. : Addison-Wesley, 2005. ISBN 0-201-43307-9 Stevens, W. Richard. UNIX Network Programming. 2nd Ed, PTR Prentice Hall, 1998. ISBN 0-13-490012-X Wells, Bill. Writing Serial Drivers for UNIX. Dr. Dobb's Journal. 19(15), December 1994. pp68-71, 97-99. Betriebssystem-Interna Andleigh, Prabhat K. UNIX System Architecture. Prentice-Hall, Inc., 1990. ISBN 0-13-949843-5 Jolitz, William. Porting UNIX to the 386. Dr. Dobb's Journal. January 1991-July 1992. Leffler, Samuel J., Marshall Kirk McKusick, Michael J Karels and John Quarterman The Design and Implementation of the 4.3BSD UNIX Operating System. Reading, Mass. : Addison-Wesley, 1989. ISBN 0-201-06196-1 Kapitel 2 dieses Buchs ist Teil des FreeBSD Documentation Projects und online erhältlich. Kapitel 9 findet sich hier. Leffler, Samuel J., Marshall Kirk McKusick, The Design and Implementation of the 4.3BSD UNIX Operating System: Answer Book. Reading, Mass. : Addison-Wesley, 1991. ISBN 0-201-54629-9 McKusick, Marshall Kirk, Keith Bostic, Michael J Karels, and John Quarterman. The Design and Implementation of the 4.4BSD Operating System. Reading, Mass. : Addison-Wesley, 1996. ISBN 0-201-54979-4 Marshall Kirk McKusick, George V. Neville-Neil. The Design and Implementation of the &os; Operating System. Boston, Mass. : Addison-Wesley, 2004. ISBN 0-201-70245-2 Stevens, W. Richard. TCP/IP Illustrated, Volume 1: The Protocols. Reading, Mass. : Addison-Wesley, 1996. ISBN 0-201-63346-9 Schimmel, Curt. Unix Systems for Modern Architectures. Reading, Mass. : Addison-Wesley, 1994. ISBN 0-201-63338-8 Stevens, W. Richard. TCP/IP Illustrated, Volume 3: TCP for Transactions, HTTP, NNTP and the UNIX Domain Protocols. Reading, Mass. : Addison-Wesley, 1996. ISBN 0-201-63495-3 Vahalia, Uresh. UNIX Internals -- The New Frontiers. Prentice Hall, 1996. ISBN 0-13-101908-2 Wright, Gary R. and W. Richard Stevens. TCP/IP Illustrated, Volume 2: The Implementation. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-63354-X Sicherheits-Anleitung Cheswick, William R. and Steven M. Bellovin. Firewalls and Internet Security: Repelling the Wily Hacker. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-63357-4 Garfinkel, Simson and Gene Spafford. Practical UNIX & Internet Security. 2nd Ed. O'Reilly & Associates, Inc., 1996. ISBN 1-56592-148-8 Garfinkel, Simson. PGP Pretty Good Privacy O'Reilly & Associates, Inc., 1995. ISBN 1-56592-098-8 Hardware-Anleitung Anderson, Don and Tom Shanley. Pentium Processor System Architecture. 2nd Ed. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-40992-5 Ferraro, Richard F. Programmer's Guide to the EGA, VGA, and Super VGA Cards. 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-62490-7 Die Intel Corporation veröffentlicht Dokumentationen Ihrer CPUs, Chipsets und Standards auf ihrer developer web site, normalerweise als PDF-Dateien. Shanley, Tom. 80486 System Architecture. 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-40994-1 Shanley, Tom. ISA System Architecture. 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-40996-8 Shanley, Tom. PCI System Architecture. 4th ed. Reading, Mass. : Addison-Wesley, 1999. ISBN 0-201-30974-2 Van Gilluwe, Frank. The Undocumented PC, 2nd Ed. Reading, Mass: Addison-Wesley Pub. Co., 1996. ISBN 0-201-47950-8 Messmer, Hans-Peter. The Indispensable PC Hardware Book, 4th Ed. Reading, Mass: Addison-Wesley Pub. Co., 2002. ISBN 0-201-59616-4 &unix; Geschichte Lion, John Lion's Commentary on UNIX, 6th Ed. With Source Code. ITP Media Group, 1996. ISBN 1573980137 Raymond, Eric S. The New Hacker's Dictionary, 3rd edition. MIT Press, 1996. ISBN 0-262-68092-0. Auch bekannt als das Jargon File Salus, Peter H. A quarter century of UNIX. Addison-Wesley Publishing Company, Inc., 1994. ISBN 0-201-54777-5 Simon Garfinkel, Daniel Weise, Steven Strassmann. The UNIX-HATERS Handbook. IDG Books Worldwide, Inc., 1994. ISBN 1-56884-203-1. - Online verfügbar. + url="http://www.simson.net/ref/ugh.pdf">Online + verfügbar. Don Libes, Sandy Ressler Life with UNIX — special edition. Prentice-Hall, Inc., 1989. ISBN 0-13-536657-7 The BSD family tree. oder unter /usr/share/misc/bsd-family-tree auf einem FreeBSD-System. Networked Computer Science Technical Reports Library. Old BSD releases from the Computer Systems Research group (CSRG). : Das Paket mit 4 CD-ROMs enthält alle BSD-Versionen von 1BSD bis 4.4BSD und 4.4BSD-Lite2 (nicht aber 2.11BSD). Die letzte CD beinhaltet auch die finalen Sourcen inklusive den SCCS Dateien. Magazine und Journale The C/C++ Users Journal. R&D Publications Inc. ISSN 1075-2838 Sys Admin — The Journal for UNIX System Administrators Miller Freeman, Inc., ISSN 1061-2688 freeX – Das Magazin für Linux – BSD – UNIX (in deutscher Sprache), Computer- und Literaturverlag GmbH, ISSN 1436-7033 diff --git a/de_DE.ISO8859-1/books/handbook/eresources/chapter.sgml b/de_DE.ISO8859-1/books/handbook/eresources/chapter.sgml index bdaf89038b..46245d211d 100644 --- a/de_DE.ISO8859-1/books/handbook/eresources/chapter.sgml +++ b/de_DE.ISO8859-1/books/handbook/eresources/chapter.sgml @@ -1,2156 +1,2174 @@ Ressourcen im Internet Gedruckte Medien können mit der schnellen Entwicklung von FreeBSD nicht Schritt halten. Elektronische Medien sind häufig die einzige Möglichkeit, über aktuelle Entwicklungen informiert zu sein. Da FreeBSD ein Projekt von Freiwilligen ist, gibt die Benutzergemeinde selbst auch technische Unterstützung. Die - Benutzergemeinde erreichen Sie am besten über E-Mail, Internetforen + Benutzergemeinde erreichen Sie am besten über E-Mail, Internetforen oder Usenet-News. Die wichtigsten Wege, auf denen Sie die FreeBSD-Benutzergemeinde erreichen können, sind unten dargestellt. Wenn Sie weitere Ressourcen kennen, die hier fehlen, schicken Sie diese bitte an die Mailingliste des &a.doc;, damit sie hier aufgenommen werden können. Mailinglisten Die Mailinglisten sind der direkteste Weg, um Fragen an das - gesamte &os; Publikum zu stellen oder eine technische Diskussion zu + gesamte &os; Publikum zu stellen oder eine technische Diskussion zu beginnen. Es existiert eine grosse Vielfalt von Listen mit einer Reihe von verschiedenen FreeBSD Themen. Wenn Sie ihre Fragen an die richtige Mailingliste richten können Sie viel eher mit einer passenden Antwort darauf rechnen. Die Chartas der verschiedenen Listen sind unten wiedergegeben. Bevor Sie sich einer Mailingliste anschließen oder E-Mails an eine Liste senden, lesen Sie bitte die Charta der Liste. Die meisten Mitglieder unserer Mailinglisten erhalten Hunderte E-Mails zum Thema FreeBSD pro Tag. Die Chartas und Regeln, die den Gebrauch der Listen beschreiben, garantieren die hohe Qualität der Listen. Die Listen würden ihren hohen Wert für das Projekt verlieren, wenn wir weniger Regeln aufstellen würden. Um zu testen, ob Sie eine Nachricht an eine &os;-Liste senden können, verwenden Sie bitte Die Liste &a.test.name;. Schicken Sie derartige Nachrichten bitte nicht an eine der anderen Listen. Wenn Sie Sich nicht sicher sind, auf welcher Liste Sie Ihre Frage stellen sollen, sollten Sie den Artikel How to get best results from the FreeBSD-questions mailing list lesen. Bevor Sie eine Nachricht an eine Mailingliste senden, sollten Sie die korrekte Nutzung der Mailinglisten erlernen. Dazu gehört auch das Vermeiden von sich häufig wiederholenden Diskussionen (lesen Sie deshalb zuerst die Mailing List Frequently Asked Questions). Alle Mailinglisten werden archiviert und können auf dem FreeBSD World Wide Web Server durchsucht werden. Das nach Schlüsselwörtern durchsuchbare Archiv bietet die hervorragende Möglichkeit, Antworten auf häufig gestellte Fragen zu finden. Nutzen Sie bitte diese Möglichkeit, bevor Sie Fragen auf einer Liste stellen. Beachten Sie auch, dass das zur Folge - hat, dass die Nachrichten an die &os; Mailinglisten für die + hat, dass die Nachrichten an die &os; Mailinglisten für die Ewigkeit erhalten bleiben. Wenn Sie am Schutz ihrer Privatsphähre - interessiert sind, ziehen Sie die Verwendung einer + interessiert sind, ziehen Sie die Verwendung einer Wegwerf-E-Mail-Adresse in Betracht und schreiben Sie nur solche Nachrichten, die für die Öffentlichkeit bestimmt sind. Beschreibung der Mailinglisten Allgemeine Listen: Jeder kann die folgenden allgemeinen Listen abonnieren (und ist dazu aufgefordert): Mailingliste Zweck &a.advocacy.name; Verbreitung von FreeBSD &a.announce.name; Wichtige Ereignisse und Meilensteine des Projekts &a.arch.name; Architektur und Design von FreeBSD &a.bugbusters.name; Diskussionen über die Pflege der FreeBSD Fehlerberichte-Datenbank und die dazu benutzten Werkzeuge &a.bugs.name; Fehlerberichte &a.chat.name; Nicht technische Themen, die die FreeBSD-Gemeinschaft betreffen &a.current.name; Gebrauch von &os.current; &a.isp.name; Für Internet-Service-Provider, die FreeBSD benutzen &a.jobs.name; Anstellung und Beratung im FreeBSD-Umfeld &a.policy.name; Grundsatzentscheidungen des FreeBSD-Core-Teams. Wenig Verkehr und nur zum Lesen &a.questions.name; Benutzerfragen und technische Unterstützung &a.security-notifications.name; Ankündigungen zum Thema Sicherheit &a.stable.name; Gebrauch von &os.stable; &a.test.name; Schicken Sie Testnachrichten an diese Liste anstelle der wirklichen Listen Technische Listen: Auf den folgenden Listen werden technische Diskussionen geführt. Bevor Sie eine der Listen abonnieren oder Nachrichten an sie schicken, lesen Sie sich bitte die Charta der Liste durch, da der Inhalt und Zweck dieser Listen genau festgelegt ist. Mailingliste Zweck &a.acpi.name; Entwicklung von ACPI &a.afs.name; Portierung von AFS nach FreeBSD &a.aic7xxx.name; Entwicklung von &adaptec; AIC 7xxx Treibern &a.alpha.name; Portierung von FreeBSD auf Alpha-Maschinen &a.amd64.name; Portierung von FreeBSD auf AMD64-Systeme &a.apache.name; Diskussion über Ports, die mit Apache zusammenhängen. &a.arm.name; Portierung von FreeBSD auf &arm;-Prozessoren &a.atm.name; Benutzung von ATM-Netzen mit FreeBSD &a.audit.name; Audit der FreeBSD-Quellen &a.binup.name; Design und Entwicklung eines Systems, das es erlaubt, ein FreeBSD-System mit binären Paketen zu aktualisieren &a.bluetooth.name; &bluetooth; unter FreeBSD verwenden &a.cluster.name; Benutzung von FreeBSD in einem Cluster &a.cvsweb.name; Pflege von CVSweb &a.database.name; Diskussion über Datenbanken und Datenbankprogrammierung unter FreeBSD &a.doc.name; Erstellen der FreeBSD-Dokumentation &a.drivers.name; Gerätetreiber für &os; schreiben &a.eclipse.name; Für FreeBSD-Anwender, die die Eclipse IDE, deren Werkzeuge, Anwendungen und Ports einsetzen &a.embedded.name; FreeBSD in eingebetteten Anwendungen einsetzen &a.emulation.name; Emulation anderer Systeme wie Linux, &ms-dos; oder &windows; &a.eol.name; Support für FreeBSD-bezogene Software, die vom FreeBSD Project offiziell nicht mehr unterstützt wird. &a.firewire.name; Technische Diskussion über &firewire; (iLink, IEEE 1394) &a.fs.name; Dateisysteme &a.gecko.name; Angelegenheiten zur - Gecko Rendering Engine + Gecko Rendering Engine &a.geom.name; Diskussion über GEOM &a.gnome.name; Portierung von GNOME und GNOME-Anwendungen &a.hackers.name; Allgemeine technische Diskussionen &a.hardware.name; Allgemeine Diskussion über Hardware, auf der FreeBSD läuft &a.i18n.name; Internationalisierung von FreeBSD &a.ia32.name; FreeBSD für die IA-32 (&intel; x86) Plattform &a.ia64.name; Portierung von FreeBSD auf &intel;s neue IA64-Systeme &a.ipfw.name; Technische Diskussion über die Neubearbeitung der IP-Firewall Quellen &a.isdn.name; Für Entwickler des ISDN-Systems &a.java.name; Für &java; Entwickler und Leute, die &jdk;s nach FreeBSD portieren &a.kde.name; Portierung von KDE und KDE-Anwendungen &a.lfs.name; Portierung von LFS nach FreeBSD &a.libh.name; Das nächste Installations- und Paketsystem &a.mips.name; Portierung von FreeBSD zu &mips; &a.mobile.name; Diskussionen über mobiles Rechnen &a.mono.name; Mono und C# Anwendungen auf FreeBSD &a.mozilla.name; Portierung von Mozilla nach FreeBSD &a.multimedia.name; Multimedia Anwendungen &a.newbus.name; Technische Diskussionen über die Architektur von Bussen &a.net.name; Diskussion über Netzwerke und den TCP/IP Quellcode &a.openoffice.name; Portierung von OpenOffice.org und &staroffice; nach FreeBSD &a.performance.name; Fragen zur Optimierung der Leistung stark ausgelasteter Systeme &a.perl.name; Pflege der portierten Perl-Anwendungen. &a.pf.name; Diskussionen und Fragen zu packet filter als Firewallsystem. &a.platforms.name; Portierungen von FreeBSD auf nicht-&intel; Architekturen &a.ports.name; Diskussion über die Ports-Sammlung &a.ports-bugs.name; Diskussion über Fehler und PRs der Ports &a.ppc.name; Portierung von FreeBSD auf den &powerpc; &a.proliant.name; Technische Diskussionen zum Einsatz von FreeBSD auf der ProLiant-Serverplattform von HP. &a.python.name; FreeBSD-spezifische Diskussionen zu Python &a.qa.name; Diskussion über Qualitätssicherung, normalerweise kurz vor einem Release &a.rc.name; Diskussion über das rc.d-System sowie dessen Weiterentwicklung &a.realtime.name; Entwicklung von Echtzeiterweiterungen für FreeBSD &a.ruby.name; FreeBSD-spezifische Diskussionen zu Ruby &a.scsi.name; Diskussion über das SCSI-Subsystem &a.security.name; Sicherheitsthemen &a.small.name; Gebrauch von FreeBSD in eingebetteten Systemen (obsolet; verwenden Sie stattdessen &a.embedded.name;) &a.smp.name; Diskussionen über das Design von asymmetrischen und symmetrischen Mehrprozessor-Programmen &a.sparc.name; Portierung von FreeBSD auf &sparc; Systeme &a.standards.name; Konformität von FreeBSD mit den C99- und POSIX-Standards &a.sun4v.name; Portierung von FreeBSD auf &ultrasparc;-T1-basierte Systeme - + &a.sysinstall.name; &man.sysinstall.8; Entwicklung &a.threads.name; Leichgewichtige Prozesse (Threads) in FreeBSD &a.testing.name; Leistungs- und Stabilitätstests von FreeBSD &a.tokenring.name; Token-Ring Unterstützung in FreeBSD + + &a.toolchain.name; + Wartung der &os;-Toolchain + + &a.usb.name; USB-Unterstützung in FreeBSD &a.virtualization.name; Diskussion über verschiedene - Virtualisierungsverfahren, die von &os; unterstützt + Virtualisierungsverfahren, die von &os; unterstützt werden &a.vuxml.name; Diskussion über die Infratruktur von VuXML &a.x11.name; Wartung und Unterstützung von X11 auf FreeBSD &a.xen.name; Diskussionen über die &os; Portierung auf &xen; - Implementierung und Verwendung - + Eingeschränkte Listen: Die folgenden Listen wenden sich an Zielgruppen mit speziellen Anforderungen und sind nicht für die Öffentlichkeit gedacht. Bevor Sie eine dieser Listen abonnieren, sollten Sie einige der technischen Listen abonniert haben, um mit den Umgangsformen vertraut zu sein. Mailingliste Zweck &a.hubs.name; Betrieb von FreeBSD-Spiegeln &a.usergroups.name; Koordination von Benutzergruppen &a.vendors.name; Koordination von Händlern vor einem Release &a.wip-status.name; - Status von in Arbeit befindlichen + Status von in Arbeit befindlichen &os;-Tätigkeiten - + &a.www.name; Betreuer von www.FreeBSD.org Zusammenfassungen: Alle eben aufgezählten Listen sind auch in zusammengefasster Form (digest) erhältlich. In den Einstellungen Ihres Accounts legen Sie fest, in welcher Form Sie die Listen empfangen. CVS & SVN Listen: Die folgenden Listen versenden die Log-Einträge zu Änderungen an verschiedenen Teilen des Quellbaums. Diese Listen sollen nur gelesen werden, schicken Sie bitte keine Nachrichten an eine der Listen. Mailingliste Teil des Quellbaums Beschreibung &a.cvsall.name; /usr/(CVSROOT|doc|ports) Alle Änderungen im Quellbaum (Obermenge der anderen Commit-Listen) &a.cvs-doc.name; /usr/(doc|www) Änderungen in den doc- und www Bäumen &a.cvs-ports.name; /usr/ports Änderungen im ports-Baum &a.cvs-projects.name; /usr/projects Änderungen im projects-Baum &a.cvs-src.name; /usr/src Änderungen im src-Baum (generiert aus den svn-zu-cvs Import-Commits - + &a.svn-src-all.name; /usr/src - Änderungen im Subversion Repository (ausser für + Änderungen im Subversion Repository (ausser für user und projects) - + &a.svn-src-head.name; /usr/src Änderungen im head Zweig des Subversion Repository (der &os;-CURRENT Zweig) &a.svn-src-projects.name; /usr/projects Änderungen im projects Bereich des src Subversion Repository &a.svn-src-release.name; /usr/src Änderungen im releases Bereich des src Subversion Repository &a.svn-src-releng.name; /usr/src Änderungen im releng Zweig des src Subversion Repository (der security / release engineering Zweige) &a.svn-src-stable.name; /usr/src Änderungen an allen stable Zweigen des src Subversion Repository &a.svn-src-stable-6.name; /usr/src Änderungen im stable/6 Zweig des src Subversion Repository &a.svn-src-stable-7.name; /usr/src Änderungen im stable/7 Zweig des src Subversion Repository &a.svn-src-stable-8.name; /usr/src Änderungen im stable/8 Zweig des src Subversion Repository &a.svn-src-stable-other.name; /usr/src - Änderungen an älteren + Änderungen an älteren stable Zweigen des src Subversion Repository &a.svn-src-svnadmin.name; /usr/src Änderungen an den administrativen Skripten, hooks, and anderen Daten zur Konfiguration des src Subversion Repository &a.svn-src-user.name; /usr/src Änderungen am experimentellen user Bereich des src Subversion Repository &a.svn-src-vendor.name; /usr/src Änderungen am Herstellerbereich des src Subversion Repository - + Mailinglisten abonnieren Um eine Liste zu abonnieren, folgen Sie dem oben angegebenen Hyperlink der Liste oder Sie besuchen die Webseite &a.mailman.lists.link; und klicken dort auf die Liste, die Sie abonnieren wollen. Sie gelangen dann auf die Webseite der Liste, die weitere Anweisungen enthält. Um eine Nachricht an eine Mailingliste zu schicken, schreiben Sie einfach eine E-Mail an Liste@FreeBSD.org. Die E-Mail wird dann an alle Mitglieder der Mailingliste verteilt. Wenn Sie das Abonnement aufheben wollen, folgen Sie der URL, die am Ende jeder Mail der Liste angegeben ist. Sie können das Abonnement auch mit einer E-Mail an Liste-unsubscribe@FreeBSD.org aufheben. Verwenden Sie bitte die technischen Listen ausschließlich für technische Diskussionen. Wenn Sie nur an wichtigen Ankündigungen interessiert sind, abonnieren Sie die Mailingliste &a.announce;, auf der nur wenige Nachrichten versendet werden. Chartas der Mailinglisten Alle FreeBSD-Mailinglisten besitzen Grundregeln, die von jedem beachtet werden müssen. Für die ersten beiden Male, in denen ein Absender gegen diese Regeln verstößt, erhält er jeweils eine Warnung vom FreeBSD-Postmaster postmaster@FreeBSD.org. Ein dritter Verstoß gegen die Regeln führt dazu, dass der Absender in allen FreeBSD-Mailinglisten gesperrt wird und weitere Nachrichten von ihm nicht mehr angenommen werden. Wir bedauern sehr, dass wir solche Maßnahmen ergreifen müssen, aber heutzutage ist das Internet eine recht rauhe Umgebung, in der immer weniger Leute Rücksicht aufeinander nehmen. Die Regeln: Das Thema einer Nachricht soll der Charta der Liste, an die sie gesendet wird, entsprechen. Wenn Sie eine Nachricht an eine technische Liste schicken, sollte die Nachricht auch technische Inhalte haben. Fortwährendes Geschwätz oder Streit mindern den Wert der Liste für alle Mitglieder und wird nicht toleriert. Benutzen Sie &a.chat; für allgemeine Diskussionen über FreeBSD. Eine Nachricht sollte an nicht mehr als zwei Mailinglisten gesendet werden. Schicken Sie eine Nachricht nur dann an zwei Listen, wenn das wirklich notwendig ist. Viele Leute haben mehrere Mailinglisten abonniert und Nachrichten sollten nur zu ungewöhnlichen Kombinationen der Listen, wie -stable und -scsi, gesendet werden. Wenn Sie eine Nachricht erhalten, die im Cc-Feld mehrere Listen enthält, sollten Sie das Feld kürzen, bevor Sie eine Antwort darauf verschicken. Unabhängig von dem ursprünglichen Verteiler sind Sie für Ihre eigenen Mehrfach-Sendungen selbst verantwortlich. Persönliche Angriffe und Beschimpfungen sind in einer Diskussion nicht erlaubt. Dies gilt gleichermaßen für Benutzer wie Entwickler. Grobe Verletzungen der Netiquette, wie das Verschicken oder Zitieren von privater E-Mail ohne eine entsprechende Genehmigung, werden nicht gebilligt. Die Nachrichten werden aber nicht besonders auf Verletzungen der Netiquette untersucht. Es kann sein, dass eine Verletzung der Netiquette durchaus zu der Charta einer Liste passt, aber der Absender aufgrund der Verletzung eine Warnung erhält oder gesperrt wird. Werbung für Produkte oder Dienstleistungen, die nichts mit FreeBSD zu tun haben, sind verboten. Ist die Werbung als Spam verschickt worden, wird der Absender sofort gesperrt. Chartas einzelner Listen: &a.acpi.name; Die Entwicklung von ACPI und Energieverwaltungsfunktionen. &a.afs.name; Andrew File System Auf dieser Liste wird die Portierung des AFS von CMU/Transarc diskutiert. &a.announce.name; Wichtige Ereignisse und Meilensteine Diese Liste ist für Personen, die nur an den wenigen Ankündigungen wichtiger Ereignisse interessiert sind. Die Ankündigungen betreffen Schnappschüsse und Releases, neue Merkmale von FreeBSD und die Suche nach freiwilligen Mitarbeitern. Auf der Liste herrscht wenig Verkehr und sie wird streng moderiert. &a.arch.name; Architektur und Design von FreeBSD Auf dieser technischen Liste wird die FreeBSD-Architektur diskutiert. Beispiele für angemessene Themen sind: Wie das Bausystem zu verändern ist, damit verschiedene Läufe gleichzeitig möglich sind. Was am VFS geändert werden muss, damit Heidemann Schichten eingesetzt werden können. Wie die Schnittstelle der Gerätetreiber angepasst werden muss, damit derselbe Treiber auf verschiedenen Bussen und Architekturen eingesetzt werden kann. Wie ein Netzwerktreiber geschrieben wird. &a.audit.name; Source Code Audit Project Dies ist die Liste des FreeBSD-Source Code Audit Projects. Ursprünglich war vorgesehen, hier nur sicherheitsrelevante Änderungen zu diskutieren, doch ist die Charta auf alle Änderungen ausgedehnt worden. Zu dieser Liste werden viele Korrekturen gesandt, so dass sie für den normalen FreeBSD-Benutzer von wenig Wert ist. Diskussionen über Sicherheit, die sich nicht auf die Änderung von Quellcode beziehen, finden auf der Mailingliste &a.security; statt. Auf der anderen Seite sind aber alle Entwickler aufgefordert, ihre Korrekturen zur Überprüfung an diese Liste zu senden. Dies trifft besonders auf Änderungen zu, in denen ein Fehler die Integrität des Gesamtsystems gefährdet. &a.binup.name; FreeBSD Binary Update Project Auf dieser Liste wird das Design und die Implementierung von binup diskutiert. Weitere Themen sind Fehlerbehebungen, Fehlerberichte und Anfragen nach Neuerungen. Die CVS-Logmeldungen des Projekts werden ebenfalls auf diese Liste gesendet. &a.bluetooth.name; &bluetooth; unter FreeBSD Diese Liste diskutiert Probleme der Verwendung von &bluetooth; unter FreeBSD. Designprobleme, Implementierungsdetails, Patches, Fehler- und Statusberichte, Verbesserungsvorschläge sowie alle anderen mit &bluetooth; zusammenhängenden Themen werden hier behandelt. &a.bugbusters.name; Bearbeitung der Fehlerberichte Auf dieser Liste wird die Bearbeitung der Fehlerberichte (PR, engl. problem report) koordiniert. Sie dient dem Bugmeister und allen Leuten, die ein Interesse an der Datenbank der Fehlerberichte haben, als Diskussionsforum. Auf dieser Liste werden keine spezifischen Fehler, Fehlerbehebungen oder PRs diskutiert. &a.bugs.name; Fehlerberichte Auf dieser Liste werden Fehlerberichte gesammelt. Fehlerberichte sollten immer mit &man.send-pr.1; oder dem Web Formular erstellt werden. &a.chat.name; Nicht technische Themen, die die FreeBSD Gemeinschaft betreffen Auf dieser Liste werden nicht-technische soziale Themen diskutiert, die nicht auf die anderen Listen passen. Hier kann diskutiert werden, ob Jordan wie ein Frettchen aus einem Zeichentrickfilm aussieht oder nicht, ob grundsätzlich in Großbuchstaben geschrieben werden soll, wer zuviel Kaffee trinkt, wo das beste Bier gebraut wird und wer Bier in seinem Keller braut. Gelegentlich können auf den technischen Listen wichtige Ereignisse wie Feste, Hochzeiten oder Geburten angekündigt werden, aber nachfolgende Nachrichten sollten auf die Liste &a.chat; gesendet werden. &a.core.name; FreeBSD Core Team Dies ist eine interne Mailingliste des FreeBSD Core Teams. Wenn in einer wichtigen Angelegenheit, die FreeBSD betrifft, entschieden werden muss oder die Angelegenheit einer genauen Prüfung unterzogen werden muss, können Nachrichten an diese Liste gesendet werden. &a.current.name; Gebrauch von &os.current; Diese Mailingliste ist für die Benutzer von &os.current; eingerichtet. Auf ihr finden sich Ankündigungen über Besonderheiten von -CURRENT, von denen Benutzer betroffen sind. Sie enthält weiterhin Anweisungen, wie man ein System auf -CURRENT hält. Jeder, der ein -CURRENT System besitzt, muss diese Liste lesen. Die Liste ist nur für technische Inhalte bestimmt. &a.cvsweb.name; FreeBSD CVSweb Project Technische Diskussion über den Gebrauch, die Entwicklung und die Pflege von FreeBSD-CVSweb. &a.doc.name; Documentation Project Auf dieser Mailingliste werden Themen und Projekte diskutiert, die im Zusammenhang mit der Erstellung der FreeBSD Dokumentation stehen. The FreeBSD Documentation Project besteht aus den Mitgliedern dieser Liste. Diese Liste steht jedem offen, Sie sind herzlich eingeladen teilzunehmen und mitzuhelfen. &a.drivers.name; Gerätetreiber für &os; schreiben Ein Forum für technische Diskussionen über das Schreiben von Gerätetreibern für &os;. Daher werden hier vor allem Fragen behandelt, die sich um das Schreiben von Treibern, die die APIs des Kernels nutzen, drehen. &a.eclipse.name; Für FreeBSD-Anwender, die die Eclipse IDE deren Werkzeuge, Anwendungen und Ports einsetzen Das Ziel dieser Liste ist es, Unterstützung für all jene zu bieten, die mit der Installation, Verwendung, Entwicklung und Wartung der Eclipse-IDE sowie deren Werkzeugen und Anwendungen unter &os; zu tun haben. Außerdem wird Hilfe bei der Portierung der IDE und deren Plugins auf &os; geboten. Zusätzlich soll diese Liste einen Informationsaustausch zwischen der Eclipse- und der &os;-Gemeinde ermöglichen, von dem beide Seiten profitieren können. Obwohl sich diese Liste auf die Anforderungen von Anwendern konzentriert, möchte sie auch Entwickler unterstützen, die an der Entwicklung von &os;-spezifischen Anwendungen unter Nutzung des Eclipse-Frameworks arbeiten. &a.embedded.name; FreeBSD in eingebetteten Anwendungen einsetzen Diese Liste diskutiert Themen im Zusammenhang mit dem Einsatz von ungewöhnlich kleinen und eingebettenen FreeBSD-Installationen. Auf dieser Liste werden ausschließlich technische Diskussionen geführt. Unter eingebetteten Systemen versteht diese Liste Systeme, bei denen es sich nicht um Desktopsysteme handelt, und die in der Regel nur einem einzigen Zweck dienen (im Gegensatz zu Desktopsystemen, die für die Bewältigung verschiedenster Aufgaben geeignet sind). In die Gruppe der eingebetteten Systeme gehören beispielsweise Telephone, Netzwerkgeräte wie Router, Switche oder PBX-Systeme, PDAs, Verkaufsautomaten und andere mehr. &a.emulation.name; Emulation anderer Systeme wie Linux, &ms-dos; oder &windows; Hier werden technische Diskussionen zum Einsatz von Programmen, die für andere Betriebssysteme geschrieben wurden, geführt. &a.eol.name; Support für FreeBSD-bezogene Software, die vom FreeBSD Project offiziell nicht mehr unterstützt wird. Diese Liste ist für all jene interessant, die Unterstützung für vom FreeBSD Project offiziell nicht mehr (in Form von Security Advisories oder Patches) unterstützte Programme benötigen oder anbieten wollen. &a.firewire.name; &firewire; (iLink, IEEE 1394) Auf dieser Liste wird das Design und die Implementierung eines &firewire;-Subsystems (auch IEEE 1394 oder iLink) für FreeBSD diskutiert. Relevante Themen sind die Standards, Busse und ihre Protokolle, sowie Adapter, Karten und Chipsätze. Des Weiteren die Architektur und der Quellcode, die nötig sind, diese Geräte zu unterstützen. &a.fs.name; Dateisysteme Diskussionen über FreeBSD-Dateisysteme. Dies ist eine technische Liste, in der nur technische Inhalte erwartet werden. &a.gecko.name; Angelegenheiten zur Gecko Rendering Engine - Dies ist ein Forum über - Gecko-Anwendungen, die &os; + Dies ist ein Forum über + Gecko-Anwendungen, die &os; verwenden. - Die Diskussion dreht sich um die Portierung von - Gecko-Anwendungen, deren Installation, die Entwicklung + Die Diskussion dreht sich um die Portierung von + Gecko-Anwendungen, deren Installation, die Entwicklung sowie deren Unterstützung innerhalb von &os;. &a.geom.name; GEOM Diskussion über GEOM und verwandte Implementierungen. Dies ist eine technische Liste, in der nur technische Inhalte erwartet werden. &a.gnome.name; GNOME Diskussionen über die grafische Benutzeroberfläche GNOME. Dies ist eine technische Liste, in der nur technische Inhalte erwartet werden. &a.ipfw.name; IP Firewall Diskussionen über eine Neubearbeitung des IP-Firewall Quelltexts in FreeBSD. Dies ist eine technische Liste, in der nur technische Inhalte erwartet werden. &a.ia64.name; Portierung von FreeBSD auf die IA64-Plattform Dies ist eine technische Liste für diejenigen, die FreeBSD auf die IA-64 Plattform von &intel; portieren. Themen sind die Probleme bei der Portierung und deren Lösung. Interessierte, die der Diskussion folgen wollen, sind ebenfalls willkommen. &a.isdn.name; ISDN Subsystem Mailingliste für die Entwickler des ISDN Subsystems von FreeBSD. &a.java.name; &java; Entwicklung Mailingliste, auf der die Entwicklung von &java; Anwendungen für FreeBSD sowie die Portierung und Pflege von &jdk;s diskutiert wird. &a.jobs.name; Stellenangebote und Stellengesuche In diesem Forum können Sie Stellenangebote und Stellengesuche, die mit &os; zu tun haben, aufgeben. Wenn Sie beispielsweise eine Beschäftigung im &os;-Umfeld suchen oder eine freie Stelle haben, die mit &os; zu tun hat, ist dies der richtige Ort. Diese Mailingliste ist nicht der Ort, um über allgemeine Beschäftigungsprobleme zu diskutieren; dazu gibt es anderswo geeignete Foren. Beachten Sie bitte, dass diese Liste, wie die anderen FreeBSD.org-Listen, weltweit gelesen wird. Geben Sie daher bitte den Arbeitsort genau an. Geben Sie bitte auch an, ob Telearbeit möglich ist und ob Hilfen für einen Umzug angeboten werden. Benutzen Sie in der E-Mail bitte nur offene Formate – vorzugsweise nur das Textformat. Andere Formate, wie PDF oder HTML, werden von den Lesern akzeptiert. Nicht offene Formate wie µsoft; Word (.doc) werden vom Server der Liste abgelehnt. &a.hackers.name; Technische Diskussionen Dies ist ein Forum für technische Diskussionen über FreeBSD. Leute, die aktiv an FreeBSD arbeiten, können hier Probleme und deren Lösungen diskutieren. Interessierte, die den Diskussionen folgen wollen, steht die Liste ebenfalls offen. Auf dieser Liste finden nur technische Diskussionen statt. &a.hardware.name; Allgemeine Diskussionen über Hardware Allgemeine Diskussionen über die Hardware, auf der FreeBSD läuft: Probleme und Ratschläge welche Hardware man kaufen sollte und welche nicht. &a.hubs.name; FreeBSD-Spiegel Ankündigungen und Diskussionsforum für Leute, die FreeBSD-Spiegel betreiben. &a.isp.name; Themen für Internet Service Provider Diese Liste ist für Internet Service Provider (ISP), die FreeBSD benutzen. Auf dieser Liste finden nur technische Diskussionen statt. &a.mono.name; Mono und C# Anwendungen auf FreeBSD Diese Liste beinhaltet Diskussionen über das Mono Entwicklungsframework auf &os;. Dies ist eine technische - Mailingliste. Es ist für Personen gedacht, die aktiv - an der Portierung von Mono oder C# Anwendungen auf &os; sind, - um Probleme oder alternative Lösungen zu beratschlagen. - Personen die der technischen Diskussion folgen möchten + Mailingliste. Es ist für Personen gedacht, die aktiv + an der Portierung von Mono oder C# Anwendungen auf &os; sind, + um Probleme oder alternative Lösungen zu beratschlagen. + Personen die der technischen Diskussion folgen möchten sind ebenso willkommen. &a.kde.name; KDE Diskussionen über KDE auf FreeBSD-Systemen. Dies ist eine technische Liste, in der nur technische Inhalte erwartet werden. &a.openoffice.name; OpenOffice.org Portierung und Pflege von OpenOffice.org und &staroffice;. &a.performance.name; Diskussionsforum mit dem Ziel, die Leistung von FreeBSD zu verbessern. Auf dieser Liste diskutieren Hacker, Systemadministratoren und andere Interessierte die Leistung von FreeBSD. Zulässige Themen sind beispielsweise Systeme unter hoher Last, Systeme mit Leistungsproblemen oder Systeme, die Leistungsgrenzen von FreeBSD überwinden. Jeder, der mithelfen will, die Leistung von FreeBSD zu verbessern, sollte diese Liste abonnieren. Die Liste ist technisch anspruchsvoll und geeignet für erfahrene FreeBSD-Benutzer, Hacker oder Administratoren, die FreeBSD schnell, robust und skalierbar halten wollen. Auf der Liste werden Beiträge gesammelt oder Fragen nach ungelösten Problemen beantwortet. Sie ist kein Ersatz für das gründliche Studium der Dokumentation. &a.pf.name; Diskussionen und Fragen zu packet filter als Firewallsystem. FreeBSD-spezische Diskussionen zur Benutzung von packet filter (pf) als Firewallsystem. Sowohl technische Diskussionen als auch Anwenderfragen sind auf dieser Liste willkommen. Fragen zum ALTQ QoS Framework können ebenfalls gestellt werden. &a.platforms.name; Portierung auf nicht-&intel; Plattformen Plattformübergreifende Themen und Vorschläge für die Portierung auf nicht-&intel; Plattformen. Auf dieser Liste finden nur technische Diskussionen statt. &a.policy.name; Grundsatzentscheidungen des Core Teams Diese Mailingliste ist für Grundsatzentscheidungen des FreeBSD-Core-Teams. Sie trägt wenige Nachrichten und ist nur zum Lesen gedacht. &a.ports.name; Diskussion über die Ports-Sammlung Diskussionen über die FreeBSD-Ports-Sammlung und die Infrastruktur der Sammlung. Die Liste dient auch der allgemeinen Koordination der Dinge, die die Ports-Sammlung betreffen. Auf dieser Liste finden nur technische Diskussionen statt. &a.ports-bugs.name; Diskussion über Fehler in den Ports Diskussion über Fehler in der Ports-Sammlung (/usr/ports), neue Ports oder Änderungen an bestehenden Ports. Auf dieser Liste finden nur technische Diskussionen statt. &a.proliant.name; Technische Diskussionen zum Einsatz von FreeBSD auf der ProLiant-Serverplattform von HP Diese Mailingliste bietet technische Diskussionen zum Einsatz von FreeBSD auf der ProLiant-Serverplattform von HP, darunter Fragen zu ProLiant-spezifischen Treibern, Konfigurationswerkzeugen sowie BIOS-Aktualisierungen. Daher ist sie die erste Anlaufstelle, um die Module hpasmd, hpasmcli, sowie hpacucli zu diskutieren. &a.python.name; Python unter FreeBSD Diese technische Liste dient der Verbesserung der Python-Unterstützung unter FreeBSD. Sie wird von Personen gelesen, die an der Portierung von Python, von Python-Modulen Dritter und von Zope nach FreeBSD arbeiten. Personen, die diese technischen Diskussion verfolgen wollen, sind ebenfalls willkommen. &a.questions.name; Benutzerfragen Auf dieser Mailingliste können Fragen zu FreeBSD gestellt werden. Fragen Sie bitte nicht nach Anleitungen, wenn Sie nicht sicher sind, dass Ihre Frage wirklich technischer Natur ist. &a.ruby.name; Ruby unter FreeBSD Diese technische Liste dient der Verbesserung der Ruby-Unterstützung unter FreeBSD. Sie wird von Personen gelesen, die an der Portierung von Ruby, von Bibliotheken Dritter und Frameworks arbeiten. Personen, die diese technischen Diskussionen verfolgen wollen, sind ebenfalls willkommen. &a.scsi.name; SCSI Subsystem Diese Mailingliste ist für die Entwickler des SCSI Subsystems von FreeBSD. Auf dieser Liste finden nur technische Diskussionen statt. &a.security.name; Sicherheitsthemen Sicherheitsthemen, die FreeBSD betreffen, wie DES, Kerberos, bekannte Sicherheitslöcher und Fehlerbehebungen. Stellen Sie bitte auf dieser Liste keine allgemeinen Fragen zum Thema Sicherheit. Willkommen sind allerdings Beiträge zur FAQ, das heißt eine Frage mit der passenden Antwort. Auf dieser Liste finden nur technische Diskussionen statt. &a.security-notifications.name; Ankündigungen zum Thema Sicherheit Ankündigungen über Sicherheitsprobleme von FreeBSD und deren Behebungen. Diese Liste ist kein Diskussionsforum, benutzen Sie &a.security;, um Sicherheitsthemen zu diskutieren. &a.small.name; Gebrauch von FreeBSD in eingebetteten Systemen. Diese Liste für ungewöhnlich kleine FreeBSD Installation oder den Einsatz von FreeBSD in eingebetteten Systemen gedacht. Auf dieser Liste finden nur technische Diskussionen statt. Diese Liste wurde durch &a.embedded.name; ersetzt. &a.stable.name; Gebrauch von &os.stable;. Diese Mailingliste ist für die Benutzer von &os.stable; eingerichtet. Auf ihr finden sich Ankündigungen über Besonderheiten von -STABLE, von denen Benutzer betroffen sind. Sie enthält weiterhin Anweisungen, wie man ein System auf -STABLE hält. Jeder, der ein -STABLE System besitzt, muss diese Liste lesen. Die Liste ist nur für technische Inhalte bestimmt. &a.standards.name; Konformität von FreeBSD mit den C99- und &posix; Standards Dieses Forum ist für technische Diskussionen über die Konformität von FreeBSD mit den C99- und POSIX-Standards. + + &a.toolchain.name; + + + Wartung der &os;-Toolchain + + Auf dieser Mailingliste werden alle Themen rund um + die &os;-Toolchain diskutiert. Dazu gehören der + Status von Clang und GCC, aber auch Fragen zu Programmen + wie Assemblern, Linkern und Debuggern. + + + &a.usb.name; USB-Unterstützung in &os;. Auf dieser Liste finden nur technische Diskussionen statt. &a.usergroups.name; Koordination von Benutzergruppen Diese Liste ist für Koordinatoren lokaler Benutzergruppen und einem ausgesuchten Mitglied des Core Teams eingerichtet worden. Der Inhalt sollte Inhalte von Treffen und die Koordination von Projekten mehrerer Benutzergruppen beschränkt sein. &a.vendors.name; Koordination von Händlern Koordination zwischen dem FreeBSD Project und Händlern, die Soft- und Hardware für FreeBSD verkaufen. - + &a.virtualization.name; Diskussion über verschiedene - Virtualisierungsverfahren, die von &os; unterstützt + Virtualisierungsverfahren, die von &os; unterstützt werden - Eine Liste, auf der die verschiedenen + Eine Liste, auf der die verschiedenen Virtualisierungsverfahren, die von &os; unterstützt werden, diskutiert werden. Auf der einen Seite liegt der Fokus auf der Implementierung der zugrundeliegenden Funktionalitäten, ebenso wie das Hinzufügen neuer Eigenschaften. Auf der anderen Seite haben die Benutzer ein Forum, um Fragen bei Problemen zu stellen oder um ihre Anwendungsfälle zu besprechen. - + &a.wip-status.name; - Status von in Arbeit befindlichen + Status von in Arbeit befindlichen &os;-Tätigkeiten - Diese Mailingliste kann dazu verwendet werden, + Diese Mailingliste kann dazu verwendet werden, eigene Kreationen und deren Fortschritt von &os;-verwandten Tätigkeiten anzukündigen. Die Nachrichten werden moderiert. Es wird vorgeschlagen, die Nachricht "An:" eine mehr themenverwandte &os;-Liste zu senden und diese Liste nur in Blindkopie zu setzen. Auf diese Weise kann ihre in Arbeit - befindliche Tätigkeit auch auf der themenverwandten + befindliche Tätigkeit auch auf der themenverwandten Liste diskutiert werden, da auf dieser Liste keine Diskussionen erlaubt sind. Sehen Sie sich das Archiv der Liste für passende Nachrichten an. Redaktionelle Auszüge der Nachrichten an diese Liste werden eventuell alle paar Monate auf die &os; Webseite als - Teil der Statusberichte gestellt. Weitere Beispiele und zurückliegende Berichte können Sie auch dort finden. - + &a.xen.name; - Diskussionen über die &os; Portierung auf + Diskussionen über die &os; Portierung auf &xen; - Implementierung und Verwendung Eine Liste, die die &os; Portierung auf &xen; behandelt. Das - erwartete Nachrichtenaufkommen ist klein genug, so dass es - als Forum für sowohl technische Diskussionen über die + erwartete Nachrichtenaufkommen ist klein genug, so dass es + als Forum für sowohl technische Diskussionen über die Implementierung und Entwurfsdetails, als auch administrative Verteilaspekte ausgelegt ist. - + Filter der Mailinglisten Um die Verbreitung von Spam, Viren und anderen nicht erwünschten E-Mails zu verhindern, werden auf den &os;-Mailinglisten Filter eingesetzt. Dieser Abschnitt beschreibt nur einen Teil der zum Schutz der Listen eingesetzten Filter. Auf den Mailinglisten sind nur die unten aufgeführten Anhänge erlaubt. Anhänge mit einem anderen MIME-Typ werden entfernt, bevor eine E-Mail an eine Liste verteilt wird. application/octet-stream application/pdf application/pgp-signature application/x-pkcs7-signature message/rfc822 multipart/alternative multipart/related multipart/signed text/html text/plain text/x-diff text/x-patch Einige Mailinglisten erlauben vielleicht Anhänge mit anderem MIME-Typ. Für die meisten Mailinglisten sollte die obige Aufzählung aber richtig sein. Wenn eine E-Mail sowohl aus einer HTML-Version wie auch aus einer Text-Version besteht, wird die HTML-Version entfernt. Wenn eine E-Mail nur im HTML-Format versendet wurde, wird sie in reinen Text umgewandelt. Usenet-News Neben den Gruppen, die sich ausschließlich mit BSD beschäftigen, gibt es viele weitere in denen über FreeBSD diskutiert wird, oder die für FreeBSD-Benutzer wichtig sind. Warren Toomey wkt@cs.adfa.edu.au stellte großzügig suchbare Archive einiger dieser Gruppen bereit. BSD spezifische Gruppen comp.unix.bsd.freebsd.announce comp.unix.bsd.freebsd.misc de.comp.os.unix.bsd (deutsch) fr.comp.os.bsd (französisch) it.comp.os.bsd (italienisch) tw.bbs.comp.386bsd (Traditionelles Chinesisch) Weitere UNIX Gruppen comp.unix comp.unix.questions comp.unix.admin comp.unix.programmer comp.unix.shell comp.unix.user-friendly comp.security.unix comp.sources.unix comp.unix.advocacy comp.unix.misc comp.bugs.4bsd comp.bugs.4bsd.ucb-fixes comp.unix.bsd X Window System comp.windows.x.i386unix comp.windows.x comp.windows.x.apps comp.windows.x.announce comp.windows.x.intrinsics comp.windows.x.motif comp.windows.x.pex comp.emulators.ms-windows.wine World Wide Web Server Foren, Blogs und soziale Netzwerke Die &os; Foren dienen als webbasiertes Diskussionsforum für Fragen und technische Diskussionen zu &os;. Planet FreeBSD bietet einen gesammelten Feed aus dutzenden von Blogs, die von den &os; Entwicklern geschrieben werden. Viele Entwickler nutzen dies, um schnell Aufzeichnungen darüber zu veröffentlichen, woran sie gerade arbeiten, welche neuen Erweiterungen es gibt und andere Arbeiten, die gerade im Gange sind. Der BSDConferences - YouTube-Kanal beinhaltet eine Sammlung von qualitativ + YouTube-Kanal beinhaltet eine Sammlung von qualitativ hochwertigen Videos von BSD Konferenzen aus der ganzen Welt. Dies ist eine ausgezeichnete Art und Weise, den Entwicklern beim - Präsentieren von neuen Arbeiten an FreeBSD + Präsentieren von neuen Arbeiten an FreeBSD zuzuschauen. Official Mirrors &chap.eresources.www.inc; E-Mail Adressen Die folgenden Benutzergruppen stellen ihren Mitgliedern für die Arbeit an FreeBSD E-Mail-Adressen zur Verfügung. Der aufgeführte Administrator behält sich das Recht vor, die Adresse zu sperren, wenn sie missbraucht wird. Domain Angebot Benutzergruppe Administrator ukug.uk.FreeBSD.org nur zum Weiterleiten ukfreebsd@uk.FreeBSD.org Lee Johnston lee@uk.FreeBSD.org diff --git a/de_DE.ISO8859-1/books/handbook/linuxemu/chapter.sgml b/de_DE.ISO8859-1/books/handbook/linuxemu/chapter.sgml index 174a9a4a9d..e1f7588933 100644 --- a/de_DE.ISO8859-1/books/handbook/linuxemu/chapter.sgml +++ b/de_DE.ISO8859-1/books/handbook/linuxemu/chapter.sgml @@ -1,3753 +1,3745 @@ Jim Mock Restrukturiert und teilweise aktualisiert von Brian N. Handy Beigetragen von Rich Murphey Johann Kois Übersetzt von Linux-Binärkompatibilität Übersicht Linux-Binärkompatibilität Binärkompatibilität Linux 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 das Neueste und Beste 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. 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 &staroffice;, Open Office, die Linux-Versionen von &netscape;, &adobe; &acrobat;, &realplayer;, VMWare , &oracle;, &wordperfect;, Doom, Quake 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. 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. Nach dem Lesen dieses Kapitels werden Sie wissen, wie Sie die Linux-Binärkompatibilität installieren bzw. aktivieren. Wissen, wie man zusätzliche Linux-Systembibliotheken unter FreeBSD installiert. Linux-Anwendungen unter FreeBSD installieren können. Wissen, wie die Linux-Binärkompatibilität unter FreeBSD verwirklicht wurde. Bevor Sie dieses Kapitel lesen, sollten Sie wissen, wie man Software Dritter installiert (). Installation KLD (kernel loadable object) Die Linux-Binärkompatibilität ist per Voreinstellung nicht aktiviert. Der einfachste Weg, dies zu tun, ist das Linux KLD (Kernel LoaDable object) zu laden. Dies erreichen Sie durch die Eingabe des folgenden Befehls: &prompt.root; kldload linux Wollen Sie die Linux-Binärkompatibilität dauerhaft aktivieren, sollten Sie die folgende Zeile in /etc/rc.conf einfügen: linux_enable="YES" Der &man.kldstat.8;-Befehl kann benutzt werden, um festzustellen, ob KLD geladen wurde: &prompt.user; kldstat Id Refs Address Size Name 1 2 0xc0100000 16bdb8 kernel 7 1 0xc24db000 d000 linux.ko Kerneloptionen COMPAT_LINUX 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 options COMPAT_LINUX hinzu. Anschließend installieren Sie Ihren neuen Kernel wie in beschrieben. Linux-Laufzeitbibliotheken installieren Linux Linux-Laufzeitbibliotheken installieren Dies kann auf zwei Arten geschehen, entweder über den linux_base-Port oder durch manuelle Installation der Bibliotheken. Installation unter Verwendung des linux_base-Ports Ports-Sammlung Dies ist die einfachste Methode, um die Laufzeitbibliotheken zu installieren. Sie funktioniert genauso wie die Installation eines beliebigen anderen Ports aus der Ports-Sammlung. Dazu machen Sie einfach folgendes: &prompt.root; cd /usr/ports/emulators/linux_base-f10 &prompt.root; make install distclean Bei &os;-Systemen vor &os; 8.0 müssen Sie den Port - emulators/linux_base-fc4 + emulators/linux_base-fc4 anstatt emulators/linux_base-f10 installieren. 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. Unter Umständen gibt es mehrere Versionen des Ports emulators/linux_base. Die Ports entsprechen unterschiedlichen Versionen verschiedener Linux-Distributionen Sie sollten den Port installieren, der am besten die Anforderungen der Linux-Anwendung erfüllt. Manuelle Installation der Bibliotheken Wenn Sie die Ports-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 virtuellen 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 /lib/libc.so lädt, versucht FreeBSD zuerst, /compat/linux/lib/libc.so laden. Ist diese Datei nicht vorhanden, wird /lib/libc.so geladen. Systembibliotheken sollten daher besser in den virtuellen Verzeichnisbaum /compat/linux/lib als in den vom Linux-ld.so vorgeschlagenen installiert werden. 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. Installation zusätzlicher Systembibliotheken Shared-Libraries Was passiert, wenn Sie den linux_base-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 root angemeldet sein): 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: Nehmen wir an, Sie haben FTP verwendet, um die Linux-Binärversion von Doom zu bekommen und haben sie auf Ihrem Linux-System installiert. Nun können Sie überprüfen, welche Systembibliotheken das Programm benötigt, indem Sie ldd linuxdoom eingeben. Das Resultat sieht dann so aus: &prompt.user; ldd linuxdoom libXt.so.3 (DLL Jump 3.1) => /usr/X11/lib/libXt.so.3.1.0 libX11.so.3 (DLL Jump 3.1) => /usr/X11/lib/libX11.so.3.1.0 libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29 symbolische Links Sie müssten nun alle Dateien aus der letzten Spalte kopieren und sie unter /compat/linux 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: /compat/linux/usr/X11/lib/libXt.so.3.1.0 /compat/linux/usr/X11/lib/libXt.so.3 -> libXt.so.3.1.0 /compat/linux/usr/X11/lib/libX11.so.3.1.0 /compat/linux/usr/X11/lib/libX11.so.3 -> libX11.so.3.1.0 /compat/linux/lib/libc.so.4.6.29 /compat/linux/lib/libc.so.4 -> libc.so.4.6.29
Beachten Sie, dass wenn Sie bereits eine Linux-Systembibliothek einer zur ersten Spalte passenden Hauptversionsnummer (laut ldd-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: /compat/linux/lib/libc.so.4.6.27 /compat/linux/lib/libc.so.4 -> libc.so.4.6.27 und Sie haben eine neue Binärdatei, die laut ldd eine neuere Bibliothek benötigt: libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29 Wenn diese sich nur um ein oder zwei Stellen in der Unterversionsnummer unterscheiden, müssen Sie /lib/libc.so.4.6.29 nicht auf Ihr System kopieren, da das Programm auch mit der etwas älteren Version ohne Probleme funktionieren sollte. Wenn Sie wollen, können Sie libc.so aber dennoch ersetzen (das heißt aktualisieren), was dann zu folgender Ausgabe führt: /compat/linux/lib/libc.so.4.6.29 /compat/linux/lib/libc.so.4 -> libc.so.4.6.29
Der Mechanismus der symbolischen Links wird nur 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.
Linux ELF-Binärdateien installieren Linux ELF-Binärdatei ELF-Binärdateien benötigen manchmal eine zusätzliche Kennzeichnung. Wenn Sie versuchen, eine nicht gekennzeichnete ELF-Binärdatei auszuführen, werden Sie eine Fehlermeldung ähnlich der folgenden erhalten: &prompt.user; ./my-linux-elf-binary ELF binary type not known Abort Damit der FreeBSD-Kernel eine Linux-ELF-Datei von einer FreeBSD-ELF-Datei unterscheiden kann, gibt es das Werkzeug &man.brandelf.1;. &prompt.user; brandelf -t Linux my-linux-elf-binary GNU Werkzeuge 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. Installieren einer beliebigen RPM-basierten Linuxanwendung &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). - + Falls Sie jedoch eine beliebige RPM-basierte &linux;-Anwendung installieren wollen, erreichen Sie das mittels: - + &prompt.root; cd /compat/linux &prompt.root; rpm2cpio -q < /path/to/linux.archive.rpm | cpio -id 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. Namensauflösung konfigurieren Wenn DNS nicht funktioniert, oder Sie folgende Fehlermeldung erhalten: resolv+: "bind" is an invalid keyword resolv+: "hosts" is an invalid keyword müssen sie /compat/linux/etc/host.conf wie folgt anlegen: order hosts, bind multi on Diese Reihenfolge legt fest, dass zuerst /etc/hosts und anschließend DNS durchsucht werden. Wenn /compat/linux/etc/host.conf nicht vorhanden ist, finden Linux-Anwendungen FreeBSD's /etc/host.conf und beschweren sich über die inkompatible FreeBSD-Syntax. Wenn Sie keinen Nameserver (in /etc/resolv.conf) konfiguriert haben, sollten Sie den Eintrag bind entfernen.
Boris Hollas Für Mathematica 5.x aktualisiert von &mathematica; installieren Linux-Anwendungen Mathematica Dieses Dokument beschreibt die Installation der Linux-Version von &mathematica; 5.x auf einem FreeBSD-System. Die Linux-Version von &mathematica; oder &mathematica; für Studenten kann direkt von Wolfram unter bestellt werden. Den &mathematica;-Installer starten Zuerst müssen Sie &os; mitteilen, dass die Linux-Binärversion von &mathematica; die Linux-ABI verwendet. Dies erreichen Sie am einfachsten, indem Sie die Standard-ELF-Kennzeichnung für alle ungekennzeichneten Binärdateien auf Linux festlegen: &prompt.root; sysctl kern.fallback_elf_brand=3 Danach wird FreeBSD annehmen, dass alle ungekennzeichneten ELF-Binärdateien die Linux-ABI verwenden und es wäre nun möglich, das Installationsprogramm direkt von der CD-ROM zu starten. Unter &os; müssen allerdings die Datei MathInstaller in ein lokales Verzeichnis Ihrer Festplatte kopieren: &prompt.root; mount /cdrom &prompt.root; cp /cdrom/Unix/Installers/Linux/MathInstaller /LokalesVerzeichnis/ In dieser Datei ersetzen Sie in der ersten Zeile den Wert /bin/sh durch /compat/linux/bin/sh. Dadurch wird sichergestellt, dass der Installer von der Linux-Version von &man.sh.1; aufgerufen wird. Danach ersetzen Sie durch das im nächsten Abschnitt zu findende Skript oder über einen Texteditor alle Vorkommen von Linux) durch FreeBSD). Dadurch ist es dem &mathematica;-Installer möglich, durch den Einsatz von uname -s das Betriebssystem zu bestimmen. &os; wird dabei als Linux-artiges Betriebssystem behandelt. Durch den Aufruf von MathInstaller kann &mathematica; anschließend installiert werden. Die &mathematica;-Programmdateien anpassen Das von &mathematica; während der Installation erzeugte Shell-Skript muss angepasst werden, bevor Sie es einsetzen können. Wenn Sie die &mathematica;-Programmdateien unter /usr/local/bin installieren, finden Sie in diesem Verzeichnis die symbolische Links math, mathematica, Mathematica, sowie MathKernel. In jeder dieser Dateien müssen Sie jedes Vorkommen von Linux) durch FreeBSD) ersetzen (entweder über einen Texteditor oder durch das folgende Shellskript): #!/bin/sh cd /usr/local/bin for i in math mathematica Mathematica MathKernel do sed 's/Linux)/FreeBSD)/g' $i > $i.tmp sed 's/\/bin\/sh/\/compat\/linux\/bin\/sh/g' $i.tmp > $i rm $i.tmp chmod a+x $i done Ihr &mathematica;-Passwort anfordern Ethernet MAC-Adresse Wenn Sie &mathematica; das erste Mal starten, werden Sie nach einem Passwort gefragt. Haben Sie noch kein Passwort von Wolfram erhalten, müssen Sie zuerst im Installationsverzeichnis mathinfo aufrufen, um Ihre Rechner-ID zu bestimmen. Diese Rechner-ID basiert ausschließlich auf der MAC-Adresse Ihrer ersten Netzwerkkarte. Daher ist es nicht möglich, Ihre &mathematica;-Kopie auf verschiedenen Rechnern zu installieren. Wenn Sie sich bei Wolfram registrieren (durch E-Mail, Telefon oder Fax), teilen Sie Ihre Rechner-ID mit und erhalten dafür ein aus Zahlengruppen bestehendes Passwort. Das &mathematica;-Frontend über ein Netzwerk ausführen &mathematica; verwendet einige spezielle Schriftarten, um Zeichen anzuzeigen, die in den Standardzeichensätzen nicht vorhanden sind (z.B. Integrale, Summen, griechische Buchstaben). Das X-Protokoll verlangt allerdings, dass diese Schriftarten lokal installiert sind. Das bedeutet, dass Sie diese Schriftarten von der CD-ROM oder von einem Rechner, auf dem &mathematica; installiert ist, auf Ihren Rechner kopieren müssen. Diese Schriftarten befinden sich normalerweise in /cdrom/Unix/Files/SystemFiles/Fonts (&mathematica;-CD) oder in /usr/local/mathematica/SystemFiles/Fonts (Festplatte). Die aktuellen Schriftarten befinden sich dabei in den Unterverzeichnissen Type1 und X. Um diese Schriftarten zu verwenden, gibt es mehrere Möglichkeiten, die nun beschrieben werden: Die erste Möglichkeit besteht darin, die Schriftarten in eins der bereits existierenden Schriftartenverzeichnisse unter /usr/X11R6/lib/X11/fonts zu kopieren. Dies bedeutet, dass Sie fonts.dir editieren müssen, indem Sie die Schriftnamen hinzufügen und die Anzahl der Schriftarten in der ersten Zeile ändern. Alternativ ist es auch möglich, im Verzeichnis, in das Sie die Schriftarten kopiert haben, das Kommando &man.mkfontdir.1; auszuführen. Die zweite Möglichkeit, besteht darin, die Verzeichnisse nach /usr/X11R6/lib/X11/fonts zu kopieren: &prompt.root; cd /usr/X11R6/lib/X11/fonts &prompt.root; mkdir X &prompt.root; mkdir MathType1 &prompt.root; cd /cdrom/Unix/Files/SystemFiles/Fonts &prompt.root; cp X/* /usr/X11R6/lib/X11/fonts/X &prompt.root; cp Type1/* /usr/X11R6/lib/X11/fonts/MathType1 &prompt.root; cd /usr/X11R6/lib/X11/fonts/X &prompt.root; mkfontdir &prompt.root; cd ../MathType1 &prompt.root; mkfontdir Nun fügen Sie die neuen Schriftartenverzeichnisse in Ihren Pfad ein: &prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/X &prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/MathType1 &prompt.root; xset fp rehash Wenn Sie den &xorg;-Server verwenden, können Sie die Schriftarten-Verzeichnisse automatisch laden lassen, wenn Sie sie in Ihrer xorg.conf angeben. Für den &xfree86;-Server verwenden Sie die Datei XF86Config. Schriftarten Wenn Sie noch kein /usr/X11R6/lib/X11/fonts/Type1-Verzeichnis haben, können Sie das MathType1-Verzeichnis im vorherigen Beispiel in Type1 umbenennen. Aaron Kaplan Beigetragen von Robert Getschmann Mit Unterstützung durch &maple; installieren Linux-Anwendungen Maple &maple; ist ein mit &mathematica; vergleichbares kommerzielles Mathematikprogramm. Sie können dieses Programm unter kaufen und sich anschließend registrieren, um eine Lizenz zu erhalten. Um dieses Programm unter FreeBSD zu installieren, gehen Sie wie folgt vor: Führen Sie das INSTALL-Shell-Skript der Softwaredistribution aus. Wählen Sie die RedHat-Option aus, wenn Sie das Installationsprogramm danach fragt. Ein typisches Installationsverzeichnis wäre z.B. /usr/local/maple. Wenn Sie dies noch nicht gemacht haben, besorgen Sie sich nun eine &maple;-Lizenz von Maple Waterloo Software () und kopieren Sie diese nach /usr/local/maple/license/license.dat. Installieren Sie den FLEXlm-Lizenz-Manager, indem Sie das INSTALL_LIC-Installations-Shellskript ausführen, das mit &maple; ausgeliefert wird. Geben Sie Ihren primären Rechnernamen für den Lizenz-Server an. Verändern Sie /usr/local/maple/bin/maple.system.type wie folgt: ----- snip ------------------ *** maple.system.type.orig Sun Jul 8 16:35:33 2001 --- maple.system.type Sun Jul 8 16:35:51 2001 *************** *** 72,77 **** --- 72,78 ---- # the IBM RS/6000 AIX case MAPLE_BIN="bin.IBM_RISC_UNIX" ;; + "FreeBSD"|\ "Linux") # the Linux/x86 case # We have two Linux implementations, one for Red Hat and ----- snip end of patch ----- Bitte beachten Sie, dass nach "FreeBSD"|\ kein anderes Zeichen eingefügt werden darf. Dieser Patch weist &maple; an, FreeBSD als eine Art von Linux-System zu erkennen. Das Shell-Skript bin/maple ruft das Shell-Skript bin/maple.system.type auf, welches wiederum uname -a verwendet, um den Namen des Betriebssystems herauszufinden. Abhängig vom Betriebssystem weiß das System nun, welche Binärdateien verwendet werden sollen. Starten Sie den Lizenz-Server. Das folgende, als /usr/local/etc/rc.d/lmgrd.sh installierte Shell-Skript ist ein komfortabler Weg, um lmgrd zu starten: ----- snip ------------ #! /bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin PATH=${PATH}:/usr/local/maple/bin:/usr/local/maple/FLEXlm/UNIX/LINUX export PATH LICENSE_FILE=/usr/local/maple/license/license.dat LOG=/var/log/lmgrd.log case "$1" in start) lmgrd -c ${LICENSE_FILE} 2>> ${LOG} 1>&2 echo -n " lmgrd" ;; stop) lmgrd -c ${LICENSE_FILE} -x lmdown 2>> ${LOG} 1>&2 ;; *) echo "Usage: `basename $0` {start|stop}" 1>&2 exit 64 ;; esac exit 0 ----- snip ------------ Versuchen Sie, &maple; zu starten: &prompt.user; cd /usr/local/maple/bin &prompt.user; ./xmaple Nun sollte das Programm laufen und alles funktionieren. Falls ja, vergessen Sie nicht, an Maplesoft zu schreiben und sie wissen zu lassen, dass Sie gerne eine native FreeBSD-Version hätten. Häufige Fehlerquellen Der FLEXlm-Lizenzmanager kann schwierig zu bedienen sein. Zusätzliche Dokumentation zu diesem Thema finden Sie unter . Es ist bekannt, dass lmgrd sehr pingelig ist, wenn es um die Lizenzdatei geht. Gibt es Probleme, führt dies zu einem Speicherauszug (core dump). Ein korrekte Lizenzdatei sollte ähnlich der folgenden aussehen: # ======================================================= # License File for UNIX Installations ("Pointer File") # ======================================================= SERVER chillig ANY #USE_SERVER VENDOR maplelmg FEATURE Maple maplelmg 2000.0831 permanent 1 XXXXXXXXXXXX \ PLATFORMS=i86_r ISSUER="Waterloo Maple Inc." \ ISSUED=11-may-2000 NOTICE=" Technische Universitat Wien" \ SN=XXXXXXXXX Seriennummer und Schlüssel wurden durch mehrere X unkenntlich gemacht. chillig ist ein Rechnername. Veränderungen an der Lizenzdatei sind möglich, solange Sie die FEATURE-Zeile nicht verändern (diese ist durch den Lizenzschlüssel geschützt). Dan Pelleg Beigesteuert von &matlab; installieren Linux-Anwendungen MATLAB Im Folgenden wird die Installation der Linux-Anwendung &matlab; Version 6.5 auf &os; beschrieben. Mit Ausnahme der &java.virtual.machine; (siehe ) läuft die Anwendung auch ganz gut. Die Linux-Version von &matlab; können Sie direkt bei The MathWorks bestellen. Vergewissern Sie sich, dass Sie die Lizenz-Datei oder eine Anleitung zum Erstellen der Lizenz-Datei erhalten haben. Wenn Sie mit MathWorks in Kontakt stehen, weisen Sie bitte auf die fehlende &os;-Version der Software hin. Das &matlab;-Installationsskript Um &matlab; zu installieren, gehen Sie wie folgt vor: Hängen Sie die Installations-CD ein und wechseln Sie zu root, wie im Installations-Skript gefordert. Starten Sie die Installation mit dem folgenden Kommando: &prompt.root; /compat/linux/bin/sh /cdrom/install Die Installation erfordert eine graphische Benutzeroberfläche. Wenn Sie die Fehlermeldung erhalten, dass das Display nicht geöffnet werden konnte, führen Sie das folgende Kommando aus: &prompt.root; setenv HOME ~USER Für USER setzen Sie den Benutzer ein, von dem aus Sie root geworden sind. Beantworten Sie die Frage nach dem &matlab;-Root-Verzeichnis mit: /compat/linux/usr/local/matlab. Den langen Pfad werden Sie noch öfter brauchen. Die Tipparbeit können Sie sich mit dem folgenden Befehl erleichtern: &prompt.root; set MATLAB=/compat/linux/usr/local/matlab Editieren Sie die Lizenz-Datei entsprechend der Anweisung, die Sie beim Erwerb der Lizenz erhalten haben. Sie können die Datei schon vorher mit Ihrem Lieblingseditor bearbeiten. Kopieren Sie die Lizenz-Datei nach $MATLAB/license.dat bevor das Installationsprogramm Sie auffordert, die Datei zu editieren. Schließen Sie die Installation ab. Die &matlab;-Installation ist jetzt abgeschlossen. Die folgenden Schritte passen &matlab; an &os; an. Den Lizenzmanager starten Erstellen Sie symbolische Links zu den Startskripten des Lizenzmanagers: &prompt.root; ln -s $MATLAB/etc/lmboot /usr/local/etc/lmboot_TMW &prompt.root; ln -s $MATLAB/etc/lmdown /usr/local/etc/lmdown_TMW Erstellen Sie das Startskript /usr/local/etc/rc.d/flexlm.sh. Das folgende Beispiel ist eine geänderte Version des mitgelieferten Skripts $MATLAB/etc/rc.lm.glnx86. Angepasst wurden die Pfade zu den Dateien und der Start des Lizenzmanagers unter der Linux-Emulation. #!/bin/sh case "$1" in start) if [ -f /usr/local/etc/lmboot_TMW ]; then /compat/linux/bin/sh /usr/local/etc/lmboot_TMW -u username && echo 'MATLAB_lmgrd' fi ;; stop) if [ -f /usr/local/etc/lmdown_TMW ]; then /compat/linux/bin/sh /usr/local/etc/lmdown_TMW > /dev/null 2>&1 fi ;; *) echo "Usage: $0 {start|stop}" exit 1 ;; esac exit 0 Machen Sie Datei ausführbar: &prompt.root; chmod +x /usr/local/etc/rc.d/flexlm.sh Ersetzen Sie im Skript username durch einen existierenden Benutzer Ihres Systems (bitte keinesfalls root). Starten Sie den Lizenzmanager: &prompt.root; /usr/local/etc/rc.d/flexlm.sh start Einrichten der &java;-Laufzeitumgebung Erstellen Sie einen symbolischen Link auf eine unter &os; laufende &java;-Laufzeitumgebung (JRE): &prompt.root; cd $MATLAB/sys/java/jre/glnx86/ &prompt.root; unlink jre; ln -s ./jre1.1.8 ./jre Ein &matlab;-Startskript erstellen Kopieren Sie das folgende Skript nach /usr/local/bin/matlab: #!/bin/sh /compat/linux/bin/sh /compat/linux/usr/local/matlab/bin/matlab "$@" Machen Sie das Skript ausführbar: &prompt.root; chmod +x /usr/local/bin/matlab Abhängig von der Version des Ports emulators/linux_base kann das Skript auf Fehler laufen. Die Fehler können Sie vermeiden, indem Sie die Datei /compat/linux/usr/local/matlab/bin/matlab editieren. Ändern Sie die nachstehende Zeile if [ `expr "$lscmd" : '.*->.*'` -ne 0 ]; then (mit Version 13.0.1 in der Zeile 410) in die folgende um: if test -L $newbase; then Stopp-Skript für &matlab; erstellen Das nachstehende Skript beendet &matlab; ordnungsgemäß. Erstellen Sie die Datei $MATLAB/toolbox/local/finish.m mit dem nachstehenden Inhalt: ! $MATLAB/bin/finish.sh Übernehmen Sie die Zeichenkette $MATLAB unverändert. Im selben Verzeichnis befinden sich die Dateien finishsav.m und finishdlg.m. Die Dateien sichern die Einstellungen der Arbeitsfläche bevor &matlab; beendet wird. Wenn Sie eine der beiden Dateien benutzen, fügen Sie die obige Zeile unmittelbar nach dem save-Kommando ein. Erstellen Sie die Datei $MATLAB/bin/finish.sh mit nachstehendem Inhalt: #!/usr/compat/linux/bin/sh (sleep 5; killall -1 matlab_helper) & exit 0 Machen Sie die Datei ausführbar: &prompt.root; chmod +x $MATLAB/bin/finish.sh &matlab; benutzen Jetzt können Sie &matlab; mit dem matlab starten. Marcel Moolenaar Beigetragen von &oracle; installieren Linux-Anwendungen Oracle Übersicht Dieses Dokument beschreibt die Installation von &oracle; 8.0.5 und &oracle; 8.0.5.1 Enterprise Edition für Linux auf einem FreeBSD-Rechner. Installation der Linux-Umgebung Stellen Sie sicher, dass Sie sowohl emulators/linux_base und devel/linux_devtools aus der Ports-Sammlung installiert haben. Wenn Sie mit diesen Ports Schwierigkeiten haben, müssen Sie vielleicht ältere Versionen der Linux-Umgebung aus der Ports-Sammlung installieren. Wenn Sie den Intelligent-Agent verwenden wollen, müssen Sie zusätzlich das RedHat Tcl-Paket installieren: tcl-8.0.3-20.i386.rpm. Zur Installation von RPM-Paketen wir der Port archivers/rpm benötigt. Ist der Port installiert, lassen sich RPM-Pakete anschließend mit dem nachstehenden Befehl installieren: &prompt.root; rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm package Die Installation der RPM-Pakete sollte ohne Fehlermeldung ablaufen. Die &oracle;-Umgebung erzeugen Bevor Sie &oracle; installieren können, müssen Sie eine entsprechende Umgebung erzeugen. Dieses Dokument beschreibt nur, was Sie im Speziellen tun müssen, um die Linux-Version von &oracle; unter FreeBSD zu installieren, nicht aber, was bereits in der Installationsanleitung von &oracle; beschrieben wird. Kernel-Tuning Kernel Tuning Wie in der Installationsanleitung von &oracle; beschrieben, müssen Sie die maximale Shared-Memory Größe festlegen. Verwenden Sie SHMMAX nicht unter FreeBSD. SHMMAX wird lediglich aus SHMMAXPGS und PGSIZE berechnet. Definieren Sie stattdessen SHMMAXPGS. Alle anderen Optionen können wie in der Anleitung beschrieben verwendet werden. Zum Beispiel: options SHMMAXPGS=10000 options SHMMNI=100 options SHMSEG=10 options SEMMNS=200 options SEMMNI=70 options SEMMSL=61 Passen Sie diese Optionen entsprechend dem von Ihnen gewünschten Einsatzzweck von &oracle; an. Stellen Sie außerdem sicher, dass Sie folgende Optionen in Ihren Kernel kompilieren: options SYSVSHM #SysV shared memory options SYSVSEM #SysV semaphores options SYSVMSG #SysV interprocess communication &oracle;-Benutzer anlegen Legen Sie den Account oracle an. Der Account unterschiedet sich von normalen Accounts dadurch, dass er eine Linux-Shell zugeordnet bekommen muss. Fügen Sie /compat/linux/bin/bash in die Datei /etc/shells ein und setzen Sie die Shell für den oracle-Account auf /compat/linux/bin/bash. Umgebung Neben den normalen &oracle;-Variablen, wie z.B. ORACLE_HOME und ORACLE_SID müssen Sie die folgenden Variablen setzen: Variable Wert LD_LIBRARY_PATH $ORACLE_HOME/lib CLASSPATH $ORACLE_HOME/jdbc/lib/classes111.zip PATH /compat/linux/bin /compat/linux/sbin /compat/linux/usr/bin /compat/linux/usr/sbin /bin /sbin /usr/bin /usr/sbin /usr/local/bin $ORACLE_HOME/bin Es ist empfehlenswert, alle Variablen in der Datei .profile zu setzen. Ein komplettes Beispiel sieht folgendermaßen aus: ORACLE_BASE=/oracle; export ORACLE_BASE ORACLE_HOME=/oracle; export ORACLE_HOME LD_LIBRARY_PATH=$ORACLE_HOME/lib export LD_LIBRARY_PATH ORACLE_SID=ORCL; export ORACLE_SID ORACLE_TERM=386x; export ORACLE_TERM CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip export CLASSPATH PATH=/compat/linux/bin:/compat/linux/sbin:/compat/linux/usr/bin PATH=$PATH:/compat/linux/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin PATH=$PATH:/usr/local/bin:$ORACLE_HOME/bin export PATH &oracle; installieren Auf Grund einer kleinen Unregelmäßigkeit im Linux-Emulator müssen Sie das Verzeichnis .oracle unter /var/tmp erzeugen, bevor Sie das Installationsprogramm starten. Das Verzeichnis muss dem Account oracle gehören. Sie sollten &oracle; nun ohne Probleme installieren können. Treten dennoch Probleme auf, überprüfen Sie zuerst Ihre &oracle;-Distribution und Ihre Konfiguration. Nachdem Sie &oracle; erfolgreich installiert haben, installieren Sie die Patches wie in den zwei folgenden Abschnitten beschrieben: Ein häufiges Problem ist, dass der TCP Protokoll-Adapter nicht korrekt installiert wird. Daraus folgt, dass Sie keine TCP-Listener starten können. Dieses Problem kann durch folgende Schritte behoben werden: &prompt.root; cd $ORACLE_HOME/network/lib &prompt.root; make -f ins_network.mk ntcontab.o &prompt.root; cd $ORACLE_HOME/lib &prompt.root; ar r libnetwork.a ntcontab.o &prompt.root; cd $ORACLE_HOME/network/lib &prompt.root; make -f ins_network.mk install Vergessen Sie nicht, root.sh nochmals auszuführen! root.sh patchen Während der &oracle;-Installation werden einige Aktionen, die als root ausgeführt werden müssen, in ein Shell-Skript mit dem Namen root.sh gespeichert. Dieses Skript befindet sich im Verzeichnis orainst. Verwenden Sie folgenden Patch für root.sh, damit es das richtige chown Kommando verwendet, oder lassen Sie das Skript alternativ unter einer Linux-Shell ablaufen: *** orainst/root.sh.orig Tue Oct 6 21:57:33 1998 --- orainst/root.sh Mon Dec 28 15:58:53 1998 *************** *** 31,37 **** # This is the default value for CHOWN # It will redefined later in this script for those ports # which have it conditionally defined in ss_install.h ! CHOWN=/bin/chown # # Define variables to be used in this script --- 31,37 ---- # This is the default value for CHOWN # It will redefined later in this script for those ports # which have it conditionally defined in ss_install.h ! CHOWN=/usr/sbin/chown # # Define variables to be used in this script Wenn Sie &oracle; nicht von CD-ROM installieren, können Sie Quelldatei für root.sh verändern. Sie heißt rthd.sh und befindet sich im orainst-Verzeichnis des Quellcodebaums. genclntsh patchen Das Skript genclntsh wird verwendet, um eine Shared-Library für Clients zu erzeugen. Diese wird bei der Erzeugung der Demos verwendet. Verwenden Sie folgenden Patch, um die Definition von PATH auszukommentieren: *** bin/genclntsh.orig Wed Sep 30 07:37:19 1998 --- bin/genclntsh Tue Dec 22 15:36:49 1998 *************** *** 32,38 **** # # Explicit path to ensure that we're using the correct commands #PATH=/usr/bin:/usr/ccs/bin export PATH ! PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH # # each product MUST provide a $PRODUCT/admin/shrept.lst --- 32,38 ---- # # Explicit path to ensure that we're using the correct commands #PATH=/usr/bin:/usr/ccs/bin export PATH ! #PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH # # each product MUST provide a $PRODUCT/admin/shrept.lst &oracle; starten Wenn Sie den Anweisungen gefolgt sind, sollten Sie nun in der Lage sein, &oracle; zu starten, genau so, wie Sie dies auch unter Linux tun würden. Holger Kipp Beigetragen von Valentino Vaschetto Originalversion nach SGML konvertiert durch: &sap.r3; installieren Linux-Anwendungen SAP R/3 Installationen von &sap; unter FreeBSD werden vom &sap; Support-Team nicht unterstützt – und &sap; bietet Support nur für zertifizierte Plattformen an! Übersicht Dieses Dokument beschreibt einen möglichen Weg, um ein &sap.r3;-System mit &oracle; Datenbank für Linux auf einem FreeBSD-Rechner zu installieren, einschließlich der Installation von FreeBSD und &oracle;. Zwei verschiedene Konfigurationen werden beschrieben: &sap.r3; 4.6B (IDES) mit &oracle; 8.0.5 unter FreeBSD 4.3-STABLE &sap.r3; 4.6C mit &oracle; 8.1.7 unter FreeBSD 4.5-STABLE Obwohl dieses Dokument versucht, alle wichtigen Schritte ausführlich zu beschreiben, besteht nicht die Absicht, die originalen Installationsanleitungen von &oracle; und &sap.r3; zu ersetzen. Benutzen Sie die mit &sap.r3; Linux Edition gelieferte Dokumentation für &sap;- und &oracle;-spezifische Fragen, sowie die Ressourcen von &oracle; und &sap;-OSS. Software/Programme Folgende CD-ROMs wurden für die Installation von &sap; verwendet: &sap.r3; 4.6B, &oracle; 8.0.5 Bezeichnung Nummer Beschreibung KERNEL 51009113 &sap; Kernel &oracle; / Installation / AIX, Linux, &solaris; RDBMS 51007558 &oracle; / RDBMS 8.0.5.X / Linux EXPORT1 51010208 IDES / DB-Export / Disc 1 of 6 EXPORT2 51010209 IDES / DB-Export / Disc 2 of 6 EXPORT3 51010210 IDES / DB-Export / Disc 3 of 6 EXPORT4 51010211 IDES / DB-Export / Disc 4 of 6 EXPORT5 51010212 IDES / DB-Export / Disc 5 of 6 EXPORT6 51010213 IDES / DB-Export / Disc 6 of 6 Zusätzlich wurde die &oracle; 8 Server CD-ROM (Pre-production Version 8.0.5 für Linux, Kernel Version 2.0.33) verwendet, die allerdings nicht unbedingt nötig ist und FreeBSD 4.3-STABLE (die Installation wurde kurz nach dem Erscheinen von 4.3-RELEASE durchgeführt). &sap.r3; 4.6C SR2, &oracle; 8.1.7 Bezeichnung Nummer Beschreibung KERNEL 51014004 &sap; Kernel &oracle; / &sap; Kernel Version 4.6D / DEC, Linux RDBMS 51012930 &oracle; 8.1.7/ RDBMS / Linux EXPORT1 51013953 Release 4.6C SR2 / Export / Disc 1 of 4 EXPORT1 51013953 Release 4.6C SR2 / Export / Disc 2 of 4 EXPORT1 51013953 Release 4.6C SR2 / Export / Disc 3 of 4 EXPORT1 51013953 Release 4.6C SR2 / Export / Disc 4 of 4 LANG1 51013954 Release 4.6C SR2 / Language / DE, EN, FR / Disc 1 of 3 Abhängig von den zu installierenden Sprachen kann es sein, dass zusätzliche Sprach-CDs nötig sind. Da hier nur Deutsch und Englisch verwendet wurden, ist die erste Sprachen-CD ausreichend. Nebenbei bemerkt sind die Nummern aller vier Export-CDs identisch. Das heißt alle drei Sprachen-CDs haben diesselbe Nummer (das unterscheidet sie von der Nummerierung der 4.6B IDES-Version). Zum Zeitpunkt der Erstellung dieses Dokuments lief das System unter FreeBSD 4.5-STABLE (20.03.2002). &sap;-Notes Die folgenden Anmerkungen sollten vor der Installation von &sap.r3; gelesen werden, da sie sich während der Installation als nützlich erwiesen haben. &sap.r3; 4.6B, &oracle; 8.0.5 Nummer Bezeichnung 0171356 &sap; Software on Linux: Essential Comments 0201147 INST: 4.6C R/3 Inst. on UNIX - &oracle; 0373203 Update / Migration &oracle; 8.0.5 --> 8.0.6/8.1.6 LINUX 0072984 Release of Digital UNIX 4.0B for &oracle; 0130581 R3SETUP step DIPGNTAB terminates 0144978 Your system has not been installed correctly 0162266 Questions and tips for R3SETUP on Windows NT/W2K &sap.r3; 4.6C, &oracle; 8.1.7 Nummer Bezeichnung 0015023 Initializing table TCPDB (RSXP0004) (EBCDIC) 0045619 R/3 with several languages or typefaces 0171356 &sap; Software on Linux: Essential Comments 0195603 RedHat 6.1 Enterprise version: Known problems 0212876 The new archiving tool SAPCAR 0300900 Linux: Released DELL Hardware 0377187 RedHat 6.2: important remarks 0387074 INST: R/3 4.6C SR2 Installation on UNIX 0387077 INST: R/3 4.6C SR2 Inst. on UNIX - &oracle; 0387078 &sap; Software on UNIX: OS Dependencies 4.6C SR2 Hardware-Anforderungen Die folgende Ausstattung reicht für die Installation eines &sap.r3; Systems aus. Für Produktionszwecke benötigt man natürlich eine exakte Bestimmung dieser Größen: Komponente 4.6B 4.6C Prozessor 2 x 800MHz &pentium; III 2 x 800MHz &pentium; III Hauptspeicher 1GB ECC 2GB ECC Festplattenplatz 50-60GB (IDES) 50-60GB (IDES) Für Produktionszwecke sind &xeon; Prozessoren mit großem Cache, Hochgeschwindigkeitsspeicher (SCSI, RAID Hardware Controller), USV (unterbrechungsfreie Stromversorgung) und ECC-RAM empfehlenswert. Der große Bedarf an Festplattenplatz ergibt sich durch das vorkonfigurierte IDES System, welches während der Installation 27 GB Datenbankdateien erzeugt. Dieser Speicher ist auch für neue Produktionssysteme und Anwendungsdaten ausreichend. &sap.r3; 4.6B, &oracle; 8.0.5 Folgende Standard-Hardware wurde verwendet: Ein Doppelprozessorboard mit zwei 800 MHz &pentium; III Prozessoren, Adaptec 29160 Ultra160 SCSI Adaptern (zum Anschluß eines 40/80 GB DLT Bandlaufwerks und eines CD-ROM-Laufwerks), &mylex; &acceleraid; (2 Kanäle, Firmware 6.00-1-00 mit 32 MB RAM). An den &mylex; RAID-Controller wurden 2 (gespiegelte) 17 GB Festplatten sowie vier 36 GB Festplatten (RAID level 5) angeschlossen. &sap.r3; 4.6C, &oracle; 8.1.7 Für diese Installation wurde ein DELL PowerEdge 2500 verwendet: Ein Doppelprozessorboard mit zwei 1000 MHz &pentium; III Prozessoren (256 kB Cache), 2 GB PC133 ECC SDRAM, PERC/3 DC PCI RAID-Controller mit 128 MB, und einem EIDE DVD-ROM Laufwerk. An den RAID-Controller sind zwei (gespiegelte) 18 GB Festplatten sowie vier 36 GB Festplatten (RAID level 5) angeschlossen. Installation von FreeBSD Als erstes müssen Sie FreeBSD installieren. Dazu gibt es mehrere Möglichkeiten, die in des Handbuchs beschrieben werden. Aufteilung der Festplatte Um das Ganze zu vereinfachen, wurde sowohl für die &sap.r3; 46B- als auch die &sap.r3; 46C SR2-Installation die gleiche Platteneinteilung verwendet. Nur die Gerätenamen änderten sich, da die Installationen auf verschiedenen Hardwareplattformen durchgeführt wurden (Insbesondere /dev/da sowie /dev/amr; wenn also jemand z.B. ein AMI &megaraid; verwendet, so wird er /dev/amr0s1a anstelle von /dev/da0s1a vorfinden.): Dateisystem - Größe (1k-blocks) - HDD-Größe (GB) + Größe der Partition Gemountet nach /dev/da0s1a - 1.016.303 - 1 + 1 GB / /dev/da0s1b - - 6 + 6 GB Swap /dev/da0s1e - 2.032.623 - 2 + 2 GB /var /dev/da0s1f - 8.205.339 - 8 + 8 GB /usr /dev/da1s1e - 45.734.361 - 45 + 45 GB /compat/linux/oracle /dev/da1s1f - 2.032.623 - 2 + 2 GB /compat/linux/sapmnt /dev/da1s1g - 2.032.623 - 2 + 2 GB /compat/linux/usr/sap Konfigurieren und initialisieren Sie die zwei logischen Platten mit der &mylex;- oder PERC/3 RAID Software, bevor Sie beginnen. Diese kann während der BIOS-Bootphase gestartet werden. Beachten Sie bitte, dass sich diese Platteneinteilung etwas von den &sap;-Empfehlungen unterscheidet, da &sap; vorschlägt, die &oracle;-Unterverzeichnisse (und einige andere) separat einzuhängen – es ist jedoch einfacher, diese als reale Unterverzeichnisse zu erzeugen. <command>make world</command> und ein neuer Kernel Laden Sie die neuesten STABLE-Quellen herunter. Aktualisieren Sie das System und erzeugen Sie einen neuen Kernel, nachdem Sie die Kernelkonfigurationsdatei angepasst haben. Zusätzlich sollten Sie die Kernel Parameter einfügen, die sowohl von &sap.r3; als auch von &oracle; benötigt werden. Installation der Linux-Umgebung Das Linux-Basissystem installieren Zuerst muss der Port linux_base als root installiert werden: &prompt.root; cd /usr/ports/emulators/linux_base-fc4 &prompt.root; make install distclean Die Linux-Entwicklungsumgebung installieren Die Linux-Entwicklungsumgebung wird benötigt, wenn Sie &oracle; auf Ihrem FreeBSD-System installieren wollen (siehe ): &prompt.root; cd /usr/ports/devel/linux_devtools &prompt.root; make install distclean Die Linux-Entwicklungsumgebung wurde hier jedoch nur für die &sap.r3; 46B IDES-Installation verwendet. Sie wird nicht benötigt, wenn die &oracle;-Datenbank auf dem FreeBSD System nicht neu gebunden wird. Dies ist dann der Fall, wenn Sie den &oracle; Tarball eines Linux-Systems verwenden. Notwendige RPMs installieren RPMs Um das R3SETUP-Programm zu starten, wird PAM-Unterstützung benötigt. Während der ersten Installation von &sap; unter FreeBSD 4.3-STABLE wurde versucht, zuerst alle von PAM benötigten Pakete zu installieren. Anschließend wurde die Installation von PAM erzwungen, was auch ohne Probleme funktionierte. Für die folgende Installation von &sap.r3; 4.6C SR2 wurde die Installation von PAM ohne die abhängigen Pakete direkt erzwungen und es funktionierte ebenfalls. Es sieht so aus, als würden die abhängigen Pakete nicht benötigt. &prompt.root; rpm -i --ignoreos --nodeps --root /compat/linux --dbpath /var/lib/rpm \ pam-0.68-7.i386.rpm Um den Intelligent-Agent von &oracle; 8.0.5 auszuführen, musste das RedHat Tcl-Paket tcl-8.0.5-30.i386.rpm installiert werden, da sonst das Binden (link) während der &oracle;-Installation nicht funktionierte. Es gibt noch weitere Punkte beim Binden von &oracle;, die aber die Kombination &oracle;-Linux betreffen und nicht FreeBSD spezifisch sind. Zusätzliche Hinweise Eine gute Idee ist es, linprocfs in /etc/fstab einzufügen; weitere Informationen dazu erhalten Sie in der Hilfeseite &man.linprocfs.5;. Weiterhin sollten Sie in der Datei /etc/sysctl.conf die Zeile kern.fallback_elf_brand=3 einfügen. Die &sap.r3;-Umgebung erzeugen Die nötigen Dateisysteme erzeugen Für eine einfache Installation reicht es aus, folgende Dateisysteme zu erzeugen: Dateisysteme Größe in GB /compat/linux/oracle 45 GB /compat/linux/sapmnt 2 GB /compat/linux/usr/sap 2 GB Außerdem müssen einige Links angelegt werden. Ansonsten beschwert sich der &sap;-Installer, wenn er die erzeugten Links überprüft: &prompt.root; ln -s /compat/linux/oracle /oracle &prompt.root; ln -s /compat/linux/sapmnt /sapmnt &prompt.root; ln -s /compat/linux/usr/sap /usr/sap Eine Fehlermeldung während der Installation (hier unter dem PRD-System und &sap.r3; 4.6C SR2 könnte beispielsweise so aussehen: INFO 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:200 Checking existence of symbolic link /usr/sap/PRD/SYS/exe/dbg to /sapmnt/PRD/exe. Creating if it does not exist... WARNING 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:400 Link /usr/sap/PRD/SYS/exe/dbg exists but it points to file /compat/linux/sapmnt/PRD/exe instead of /sapmnt/PRD/exe. The program cannot go on as long as this link exists at this location. Move the link to another location. ERROR 2002-03-19 16:45:36 R3LINKS_IND_IND Ins_SetupLinks:0 can not setup link '/usr/sap/PRD/SYS/exe/dbg' with content '/sapmnt/PRD/exe' Benutzer und Verzeichnisse anlegen &sap.r3; benötigt zwei Benutzer und drei Benutzergruppen. Die Benutzernamen hängen von der (aus drei Buchstaben bestehenden) SAP-System-ID (SID) ab. Einige dieser SIDs sind von &sap; reserviert (z.B. SAP und NIX. Für eine komplette Übersicht schlagen Sie bitte in der &sap;-Dokumentation nach. Für die IDES-Installation wurde IDS verwendet, für die 4.6C-SR2-Installation PRD, da das System für Produktionszwecke eingesetzt werden sollte. Daraus ergaben sich folgende Gruppen (die Gruppen-IDs können variieren, es handelt sich nur um Werte, die für diese spezielle Installation verwendet wurden): Gruppen-ID Gruppen-Name Beschreibung 100 dba Datenbank-Administrator 101 sapsys SAP System 102 oper Datenbank-Operator Bei einer Standard-&oracle;-Installation wird nur die Gruppe dba verwendet. Für die Gruppe oper wird ebenfalls die Gruppe dba verwendet (weitere Informationen finden sich in der &oracle;- und &sap;-Dokumentation). Zusätzlich werden auch folgende Benutzer benötigt: Benutzer-ID Benutzername Generischer Name Gruppe Zusätzliche Gruppen Beschreibung 1000 idsadm/prdadm sidadm sapsys oper SAP Administrator 1002 oraids/oraprd orasid dba oper &oracle; Administrator Für das Anlegen des &sap;-Administrators mittels &man.adduser.8; werden folgende Einträge (beachten Sie bitte die Shell und das Heimatverzeichnis) benötigt: Name: sidadm Password: ****** Fullname: SAP Administrator SID Uid: 1000 Gid: 101 (sapsys) Class: Groups: sapsys dba HOME: /home/sidadm Shell: bash (/compat/linux/bin/bash) und für den Datenbank-Administrator: Name: orasid Password: ****** Fullname: Oracle Administrator SID Uid: 1002 Gid: 100 (dba) Class: Groups: dba HOME: /oracle/sid Shell: bash (/compat/linux/bin/bash) Wenn Sie beide Gruppen (dba und oper) verwenden, sollte auch die Gruppe oper hinzugefügt werden. Verzeichnisse erzeugen Diese Verzeichnisse werden gewöhnlich als eigene Dateisysteme erzeugt und gemountet. Letztlich liegt dies aber an Ihren Anforderungen an das System. Hier wurden sie als einfache Verzeichnisse angelegt, die sich alle im gleichen RAID5 befinden: Zuerst werden die Eigentümer und Rechte für einige Verzeichnisse (als Benutzer root) gesetzt: &prompt.root; chmod 775 /oracle &prompt.root; chmod 777 /sapmnt &prompt.root; chown root:dba /oracle &prompt.root; chown sidadm:sapsys /compat/linux/usr/sap &prompt.root; chmod 775 /compat/linux/usr/sap Danach werden (als Benutzer orasid) einige Verzeichnisse erzeugt, die alle Unterverzeichnisse von /oracle/SID sind: &prompt.root; su - orasid &prompt.root; cd /oracle/SID &prompt.root; mkdir mirrlogA mirrlogB origlogA origlogB &prompt.root; mkdir sapdata1 sapdata2 sapdata3 sapdata4 sapdata5 sapdata6 &prompt.root; mkdir saparch sapreorg &prompt.root; exit Für die &oracle; 8.1.7-Installation werden ebenfalls zusätzliche Verzeichnisse benötigt: &prompt.root; su - orasid &prompt.root; cd /oracle &prompt.root; mkdir 805_32 &prompt.root; mkdir client stage &prompt.root; mkdir client/80x_32 &prompt.root; mkdir stage/817_32 &prompt.root; cd /oracle/SID &prompt.root; mkdir 817_32 Das Verzeichnis client/80x_32 muss genau so genannt werden. Versuchen Sie nicht, das x durch eine Zahl oder einen Buchstaben zu ersetzen. Im dritten Schritt werden wiederum Verzeichnisse (als Benutzer sidadm) erzeugt: &prompt.root; su - sidadm &prompt.root; cd /usr/sap &prompt.root; mkdir SID &prompt.root; mkdir trans &prompt.root; exit Einträge in <filename>/etc/services</filename> &sap.r3; benötigt einige Einträge in /etc/services, die während der Installation unter FreeBSD nicht richtig gesetzt werden. Sie benötigen mindestens die zur Instanzennummer, in diesem Fall 00, passenden Einträge. Es ist auch möglich, direkt alle Einträge für dp, gw, sp und ms von 00 bis 99 einzufügen. Wenn Sie einen SAP-Router verwenden, oder den Zugang zu &sap;-OSS benötigen, müssen Sie auch 99 einfügen, da der Port 3299 normalerweise für den SAP-Router-Prozess auf dem Zielsystem benötigt wird: sapdp00 3200/tcp # SAP Dispatcher. 3200 + Instance-Number sapgw00 3300/tcp # SAP Gateway. 3300 + Instance-Number sapsp00 3400/tcp # 3400 + Instance-Number sapms00 3500/tcp # 3500 + Instance-Number sapmsSID 3600/tcp # SAP Message Server. 3600 + Instance-Number sapgw00s 4800/tcp # SAP Secure Gateway 4800 + Instance-Number Notwendige Lokalisierungen Locale &sap; benötigt mindestens zwei Lokalisierungen, die nicht Teil der RedHat-Standardinstallation sind. &sap; bietet diese als RPMs auf ihrem FTP-Server als Downloads an (diese sind aber nur dann zugänglich, wenn Sie ein Kunde mit OSS-Zugang sind). Für eine Übersicht der notwendigen RPMs lesen Sie bitte den &sap;-Hinweis 0171356. Es ist auch möglich, nur die passenden Links (z.B. von de_DE und en_US) zu erzeugen, diese Vorgehensweise wird aber nicht nicht empfohlen (obwohl es bisher beim IDES-System ohne Probleme funktioniert hat). Folgende Lokalisationen werden benötigt: de_DE.ISO-8859-1 en_US.ISO-8859-1 Erzeugen Sie die Links wie folgt: &prompt.root; cd /compat/linux/usr/share/locale &prompt.root; ln -s de_DE de_DE.ISO-8859-1 &prompt.root; ln -s en_US en_US.ISO-8859-1 Sind diese nicht vorhanden, wird es während der Installation zu einigen Problemen kommen. Wenn diese konsequent ignoriert werden (indem der fehlgeschlagene Schritt in CENTRDB.R3S auf OK gesetzt wird), ist es ohne größeren Aufwand nicht mehr möglich, sich am &sap;-System anzumelden. Kernel-Tuning Kernel Tuning &sap.r3;-Systeme verbrauchen sehr viele Ressourcen. Deshalb wurden folgende Parameter in die Kernelkonfigurationsdatei eingefügt: # Set these for memory pigs (SAP and Oracle): options MAXDSIZ="(1024*1024*1024)" options DFLDSIZ="(1024*1024*1024)" # System V options needed. options SYSVSHM #SYSV-style shared memory options SHMMAXPGS=262144 #max amount of shared mem. pages #options SHMMAXPGS=393216 #use this for the 46C inst.parameters options SHMMNI=256 #max number of shared memory ident if. options SHMSEG=100 #max shared mem.segs per process options SYSVMSG #SYSV-style message queues options MSGSEG=32767 #max num. of mes.segments in system options MSGSSZ=32 #size of msg-seg. MUST be power of 2 options MSGMNB=65535 #max char. per message queue options MSGTQL=2046 #max amount of msgs in system options SYSVSEM #SYSV-style semaphores options SEMMNU=256 #number of semaphore UNDO structures options SEMMNS=1024 #number of semaphores in system options SEMMNI=520 #number of semaphore indentifiers options SEMUME=100 #number of UNDO keys Die minimalen Werte sind in der von &sap; kommenden Dokumentation festgelegt. Da es keine Beschreibung für Linux (und daher auch nicht für FreeBSD) gibt, entnehmen Sie weitere Informationen dem HP-UX-Abschnitt (32-Bit). Da das System für die 4.6C SR2-Installation über mehr Hauptspeicher verfügte, können die Shared-Segments für &sap; und &oracle; größer sein. Wählen Sie daher eine größere Anzahl von Shared-Memory-Pages. Bei einer &os;-Standardinstallation auf &i386;-Systemen belassen Sie MAXDSIZ und DFLDSIZ auf dem Maximum von 1 GB. Ansonsten könnten seltsame Fehlermeldungen, wie ORA-27102: out of memory oder Linux Error: 12: Cannot allocate memory auftreten. &sap.r3; installieren Die &sap; CD-ROMs vorbereiten Für eine Installation werden viele CD-ROMs benötigt, die gemountet und ungemountet werden müssen. Wenn Sie genügend CD-ROM-Laufwerke haben, können Sie alle gleichzeitig gemountet werden. Ansonsten kopiert man die CD-ROM-Inhalte einfach in die entsprechenden Verzeichnisse, /oracle/SID/sapreorg/cd-name wobei cd-name KERNEL, RDBMS, EXPORT1, EXPORT2, EXPORT3, EXPORT4, EXPORT5 und EXPORT6 bei einer 4.6B/IDES-Installation und KERNEL, RDBMS, DISK1, DISK2, DISK3, DISK4 und LANG bei einer 4.6C SR2-Installation entspricht. Die Dateinamen auf den gemounteten CDs sollten aus Großbuchstaben bestehen. Ist dies nicht der Fall, verwenden Sie zum Mounten die Option . Für das Kopieren der CD-Inhalte verwenden Sie folgenden Befehle: &prompt.root; mount_cd9660 -g /dev/cd0a /mnt &prompt.root; cp -R /mnt/* /oracle/SID/sapreorg/cd-name &prompt.root; umount /mnt Das Installations-Skript ausführen Als erstes müssen Sie ein Installationsverzeichnis anlegen: &prompt.root; cd /oracle/SID/sapreorg &prompt.root; mkdir install &prompt.root; cd install Anschließend wird das Installations-Skript gestartet, das nahezu alle relevanten Daten in das Installationsverzeichnis kopiert: &prompt.root; /oracle/SID/sapreorg/KERNEL/UNIX/INSTTOOL.SH Die IDES-Installation (4.6B) wird mit einem vollständig angepassten &sap.r3; Demo-System geliefert, das heißt es gibt sechs statt drei Export-CDs. Da CENTRDB.R3S für eine Standard-Zentralinstanz (&r3; plus Datenbank) ausgelegt ist, aber nicht für eine IDES-Zentralinstanz, muss die passende CENTRDB.R3S-Datei manuell aus dem Verzeichnis EXPORT1 in das Installationsverzeichnis kopiert werden, da R3SETUP ansonsten nur nach drei EXPORT-CDs verlangt. Die aktuellere Version &sap; 4.6C SR2 wird mit vier EXPORT-CDs geliefert. Die die Installation überwachende Parameter-Datei heißt hier CENTRAL.R3S. Im Gegensatz zu früheren Versionen gibt es nun keine separaten Vorlagen für die Installation von Zentralinstanzen mit und ohne Datenbank mehr. &sap; verwendet eine eigene Vorlage für die Datenbankinstallation. Um die Installation später erneut starten, ist es jedoch ausreichend, die Installation mit der ursprünglichen Datei zu starten. Während und nach der Installation benötigt &sap; hostname, um den Rechnernamen, aber nicht den vollständigen Domain-Namen zu erhalten. Setzen Sie also entweder den Rechnernamen entsprechend, oder setzen Sie einen Alias mit alias hostname='hostname -s' für die Benutzer orasid und sidadm (Und zusätzlich für root. Dies zumindest für die Installationsschritte, die als root ausgeführt werden müssen.). Außerdem ist es möglich, nur die während der &sap;-Installation erstellten Dateien .profile und .login beider Benutzer anzupassen. <command>R3SETUP</command> 4.6B starten Stellen Sie sicher, dass LD_LIBRARY_PATH korrekt gesetzt wurde: &prompt.root; export LD_LIBRARY_PATH=/oracle/IDS/lib:/sapmnt/IDS/exe:/oracle/805_32/lib Gehen Sie in das Installationsverzeichnis und starten Sie R3SETUP als root: &prompt.root; cd /oracle/IDS/sapreorg/install &prompt.root; ./R3SETUP -f CENTRDB.R3S Das Skript stellt anschließend einige Fragen (Vorgaben stehen dabei in Klammern, gefolgt von den aktuellen Eingaben): Frage Vorgabe Eingabe Enter SAP System ID [C11] IDSEnter Enter SAP Instance Number [00] Enter Enter SAPMOUNT Directory [/sapmnt] Enter Enter name of SAP central host [troubadix.domain.de] Enter Enter name of SAP db host [troubadix] Enter Select character set [1] (WE8DEC) Enter Enter Oracle server version (1) Oracle 8.0.5, (2) Oracle 8.0.6, (3) Oracle 8.1.5, (4) Oracle 8.1.6 1Enter Extract Oracle Client archive [1] (Yes, extract) Enter Enter path to KERNEL CD [/sapcd] /oracle/IDS/sapreorg/KERNEL Enter path to RDBMS CD [/sapcd] /oracle/IDS/sapreorg/RDBMS Enter path to EXPORT1 CD [/sapcd] /oracle/IDS/sapreorg/EXPORT1 Directory to copy EXPORT1 CD [/oracle/IDS/sapreorg/CD4_DIR] Enter Enter path to EXPORT2 CD [/sapcd] /oracle/IDS/sapreorg/EXPORT2 Directory to copy EXPORT2 CD [/oracle/IDS/sapreorg/CD5_DIR] Enter Enter path to EXPORT3 CD [/sapcd] /oracle/IDS/sapreorg/EXPORT3 Directory to copy EXPORT3 CD [/oracle/IDS/sapreorg/CD6_DIR] Enter Enter path to EXPORT4 CD [/sapcd] /oracle/IDS/sapreorg/EXPORT4 Directory to copy EXPORT4 CD [/oracle/IDS/sapreorg/CD7_DIR] Enter Enter path to EXPORT5 CD [/sapcd] /oracle/IDS/sapreorg/EXPORT5 Directory to copy EXPORT5 CD [/oracle/IDS/sapreorg/CD8_DIR] Enter Enter path to EXPORT6 CD [/sapcd] /oracle/IDS/sapreorg/EXPORT6 Directory to copy EXPORT6 CD [/oracle/IDS/sapreorg/CD9_DIR] Enter Enter amount of RAM for SAP + DB 850Enter (in Megabytes) Service Entry Message Server [3600] Enter Enter Group-ID of sapsys [101] Enter Enter Group-ID of oper [102] Enter Enter Group-ID of dba [100] Enter Enter User-ID of sidadm [1000] Enter Enter User-ID of orasid [1002] Enter Number of parallel procs [2] Enter Wenn Sie die CD-Inhalte nicht in verschiedene Verzeichnisse kopiert haben, findet das &sap;-Installationsprogramm die benötigten CDs nicht (diese sind durch die Datei LABEL.ASC gekennzeichnet) und würde von Ihnen verlangen, entweder die CD einzulegen und zu mounten oder den entsprechenden mount-Pfad einzugeben. CENTRDB.R3S ist möglicherweise nicht fehlerfrei. Im vorliegenden Fall wurde die CD EXPORT4 zwar erneut verlangt, dennoch wurde der richtige Schlüssel (6_LOCATION, danach 7_LOCATION) vorgeschlagen. Daher ist es problemlos möglich, durch Eingabe der korrekten Werte fortzufahren. Abgesehen von einigen kleineren (unten angeführten) Problemen, sollte nun bis zur Installation der &oracle;-Datenbank alles ohne Probleme ablaufen. <command>R3SETUP</command> 4.6C SR2 starten Stellen Sie sicher, dass LD_LIBRARY_PATH korrekt gesetzt ist. Dieser Wert unterscheidet sich von dem der 4.6B-&oracle; 8.0.5-Installation: &prompt.root; export LD_LIBRARY_PATH=/sapmnt/PRD/exe:/oracle/PRD/817_32/lib Gehen Sie in das Installationsverzeichnis und führen Sie R3SETUP als root aus: &prompt.root; cd /oracle/PRD/sapreorg/install &prompt.root; ./R3SETUP -f CENTRAL.R3S Das Skript stellt anschließend einige Fragen (Vorgaben in Klammern, gefolgt von den aktuellen Eingaben): Frage Vorgabe Eingabe Enter SAP System ID [C11] PRDEnter Enter SAP Instance Number [00] Enter Enter SAPMOUNT Directory [/sapmnt] Enter Enter name of SAP central host [majestix] Enter Enter Database System ID [PRD] PRDEnter Enter name of SAP db host [majestix] Enter Select character set [1] (WE8DEC) Enter Enter Oracle server version (2) Oracle 8.1.7 2Enter Extract Oracle Client archive [1] (Yes, extract) Enter Enter path to KERNEL CD [/sapcd] /oracle/PRD/sapreorg/KERNEL Enter amount of RAM for SAP + DB 2044 1800Enter (in Megabytes) Service Entry Message Server [3600] Enter Enter Group-ID of sapsys [100] Enter Enter Group-ID of oper [101] Enter Enter Group-ID of dba [102] Enter Enter User-ID of oraprd [1002] Enter Enter User-ID of prdadm [1000] Enter LDAP support 3Enter (no support) Installation step completed [1] (continue) Enter Choose installation service [1] (DB inst,file) Enter Bisher verursacht das Anlegen von Benutzern eine Fehlermeldung während der Installation, und zwar in den Stadien OSUSERDBSID_IND_ORA (beim Anlegen des Benutzers orasid), sowie in OSUSERSIDADM_IND_ORA (beim Anlegen des Benutzers sidadm). Abgesehen von einigen kleineren (unten angeführten) Problemen, sollte nun bis zur Installation der &oracle;-Datenbank alles ohne Probleme ablaufen. &oracle; 8.0.5 installieren Lesen Sie bitte die entsprechenden &sap;-Hinweise und &oracle;-Readmes für Probleme, die Linux und die &oracle;-Datenbank betreffen. Die meisten (wenn nicht alle) Probleme werden durch inkompatible Bibliotheken verursacht. Weiteres zur &oracle;-Installation finden Sie im Kapitel Installation von &oracle;. &oracle; 8.0.5 mit <command>orainst</command> installieren Wenn &oracle; 8.0.5 verwendet wird, werden einige zusätzliche Bibliotheken benötigt, da &oracle; 8.0.5 mit einer alten Version von glibc verlinkt wurde, RedHat 6.1 aber bereits eine aktuellere Version verwendet. Daher müssen Sie folgende zusätzliche Pakte installieren, um sicherzustellen, dass die Verlinkung ordnungsgemäß erfolgt: compat-libs-5.2-2.i386.rpm compat-glibc-5.2-2.0.7.2.i386.rpm compat-egcs-5.2-1.0.3a.1.i386.rpm compat-egcs-c++-5.2-1.0.3a.1.i386.rpm compat-binutils-5.2-2.9.1.0.23.1.i386.rpm Lesen Sie bitte die entsprechenden &sap;-Hinweise und die &oracle;-Readmes. Ist dies nicht möglich (z.B. aus Zeitmangel, oder bei Nichtvorhandensein dieser Unterlagen), besteht auch die Möglichkeit, die originalen Binärdateien oder die verlinkten Binärdateien eines RedHat-Systems zu verwenden. Um den Intelligent-Agent zu kompilieren, muss das RedHat Tcl-Paket installiert sein. Wenn Sie tcl-8.0.3-20.i386.rpm nicht bekommen können, sollte es auch problemlos möglich sein, eine neuere Version, z.B. tcl-8.0.5-30.i386.rpm für RedHat 6.1, zu verwenden. Vom Binden abgesehen, läuft die Installation wie folgt ab: &prompt.root; su - oraids &prompt.root; export TERM=xterm &prompt.root; export ORACLE_TERM=xterm &prompt.root; export ORACLE_HOME=/oracle/IDS &prompt.root; cd $ORACLE_HOME/orainst_sap &prompt.root; ./orainst Bestätigen Sie alle Meldungen mit Enter, bis die Software installiert ist. Einzige Ausnahme ist die Frage nach der Installation des &oracle; On-Line Text Viewers. Dieser ist unter Linux (noch) nicht verfügbar. Daher muss diese Option deaktiviert werden. Anschließend will sich &oracle; unter Verwendung von i386-glibc20-linux-gcc anstelle der verfügbaren gcc, egcs oder i386-redhat-linux-gcc verlinken. Auf Grund zeitlicher Einschränkungen wurden für die Installation die Binärdateien der &oracle; 8.0.5 PreProduction-Version verwendet, nachdem sich der erste Versuch, die Version von der RDBMS-CD zum Laufen zu bringen, sowie die richtigen RPMs zu finden und zu installieren, zum Alptraum entwickelt hatte. &oracle; 8.0.5 Pre-Production für Linux (Kernel 2.0.33) installieren Diese Installation ist relativ einfach. Mounten Sie die CD und starten Sie den Installer. Danach wählen Sie das &oracle;-Heimatverzeichnis und kopieren Sie die Binärdateien dorthin. Die Überreste der vorherigen RDBMS-Installationsversuche werden dabei nicht entfernt. Danach konnte die &oracle;-Datenbank ohne Probleme gestartet werden. Das &oracle; 8.1.7-Linux-Archiv entpacken Nehmen Sie das aus dem Installationsverzeichnis eines Linux-Systems erstellte Archiv oracle81732.tgz und entpacken Sie es nach /oracle/SID/817_32/. Mit der &sap.r3;-Installation fortfahren Überprüfen Sie als Erstes die Umgebungseinstellungen der Benutzer idsamd(sidadm) und oraids (orasid). Beide sollten nun die Dateien .profile, .login und .cshrc enthalten, die alle hostname benutzen. Falls der Rechnername Ihres Systems der vollständige Rechnername ist, müssen Sie in allen drei Dateien hostname in hostname -s ändern. Datenbanken laden Danach kann R3SETUP entweder erneut gestartet oder fortgesetzt werden (je nachdem, ob Sie das Programm zuvor beendet hatten oder nicht). R3SETUP erzeugt nun die Tablespaces und lädt die Daten (für 46B IDES von EXPORT1 bis EXPORT6, für 46C von DISK1 bis DISK4) mittels R3load in die Datenbank. Wenn das Laden der Datenbank abgeschlossen ist (dieser Vorgang kann einige Stunden dauern!), werden einige Passwörter angefordert. Für Testinstallationen können auch Standard-Passwörter verwendet werden. Liegt Ihnen allerdings etwas an der Sicherheit Ihres Systems, so verwenden Sie andere Passwörter. Frage Eingabe Enter Password for sapr3 sapEnter Confirum Password for sapr3 sapEnter Enter Password for sys change_on_installEnter Confirm Password for sys change_on_installEnter Enter Password for system managerEnter Confirm Password for system managerEnter An diesem Punkt gab es während der 4.6B-Installation einige Probleme mit dipgntab. Listener Starten Sie den &oracle;-Listener als Benutzer orasid wie folgt: &prompt.user; umask 0; lsnrctl start Ansonsten könnten Sie die Meldung ORA-12546 erhalten, da die Sockets nicht über die korrekten Berechtigungen verfügen werden. Lesen Sie dazu auch den &sap;-Hinweis 072984. MNLS-Tabellen aktualisieren Wenn Sie Nicht-Latin-1-Sprachen in das &sap;-System einbauen wollen, müssen Sie die MNLS (Multi National Language Support)-Tabellen aktualisieren. Dies wird in den SAP-OSS-Hinweisen 15023 und 45619 beschrieben. Ansonsten können Sie diese Frage während der &sap;-Installation überspringen. Wenn Sie MNLS nicht benötigen, ist es trotzdem nötig, die Tabelle TCPDB zu überprüfen und zu initialisieren, falls dies nicht bereits geschehen ist. Lesen Sie die &sap;-Hinweise 0015023 und 0045619, falls Sie weitere Informationen benötigen. Abschließende Aufgaben &sap.r3;-Lizenzschlüssel anfordern Sie müssen Ihren &sap.r3;-Lizenzschlüssel anfordern, da die zur Installation verwendete Lizenz nur für vier Wochen gültig ist. Dazu ermitteln Sie zuerst Ihren Hardwareschlüssel. Melden Sie sich als idsadm an und rufen Sie saplicense auf: &prompt.root; /sapmnt/IDS/exe/saplicense -get Wird saplicense ohne Optionen aufgerufen, so erhalten Sie eine Übersicht der möglichen Optionen. Nach Erhalt des Lizenzschlüssels kann dieser installiert werden: &prompt.root; /sapmnt/IDS/exe/saplicense -install Nun müssen Sie folgende Daten eingeben: SAP SYSTEM ID = SID, 3 Zeichen CUSTOMER KEY = Hardware-Schlüssel, 11 Zeichen INSTALLATION NO = Installation, 10 Ziffern EXPIRATION DATE = JJJJMMTT, normalerweise "99991231" LICENSE KEY = Lizenzschlüssel, 24 Zeichen Benutzer anlegen Erzeugen Sie einen Benutzer innerhalb von client 000 (für einige Aufgaben muss dies innerhalb von client 000 erfolgen, aber nicht als Benutzer sap* und ddic). Als Benutzername empfiehlt sich beispielsweise wartung (oder auf Englisch service). Benötigte Profile sind sap_new und sap_all. Aus Sicherheitsgründen sollten die Passwörter der Standardbenutzer in allen Clients geändert werden (dies gilt auch für die Benutzer sap* und ddic). Transportsystem, Profile, Betriebsarten usw. konfigurieren Innerhalb von client 000 führen andere Benutzer als ddic und sap* normalerweise folgende Aufgaben durch: Aufgabe Transaktion Konfiguration des Transportsystems, beispielsweise als Stand-Alone Transport Domain Entity STMS Erstellen und Editieren von Profilen RZ10 Pflege von Betriebsarten und Instanzen RZ04 Diese sowie alle anderen Post-Installationsschritte sind ausführlich in den &sap;-Installationsanleitungen beschrieben. <filename>init<replaceable>sid</replaceable>.sap</filename> (<filename>initIDS.sap</filename>) anpassen Die Datei /oracle/IDS/dbs/initIDS.sap enthält das &sap;-Sicherungsprofil. Hier sind die Größe des verwendeten Band(laufwerks), die Kompressionsart und so weiter festgelegt. Um dieses Profil mit sapdba oder brbackup auszuführen, wurden folgende Werte geändert: compress = hardware archive_function = copy_delete_save cpio_flags = "-ov --format=newc --block-size=128 --quiet" cpio_in_flags = "-iuv --block-size=128 --quiet" tape_size = 38000M tape_address = /dev/nsa0 tape_address_rew = /dev/sa0 Erklärungen: compress: Das verwendete Bandlaufwerk war ein HP DLT1. Dieses unterstützt Hardware-Kompression. archive_function: Hier wird das Standardverhalten beim Sichern von &oracle;-Archivprotokollen festgelegt. Neue Protokolldateien werden auf Band gespeichert, bereits gespeicherte erneut gespeichert und anschließend gelöscht. Dies verhindert eine Vielzahl von Problemen, falls Sie Ihre Datenbank wiederherstellen müssen und dabei feststellen, dass eins Ihrer Archivbänder defekt ist. cpio_flags: Standardmäßig wird verwendet. Dies setzt die Blockgröße auf 5120 Bytes. Für DLT-Bänder werden von HP mindestens 32 K Blockgröße empfohlen, daher wurde hier verwendet, um 64 KB-blöcke zu erzeugen. wurde benötigt, da das Installationssystem über mehr als 65535 Inodes verfügt. Die letzte Option ist notwendig, weil brbackup sich sonst beschwert, wenn die cpio die Anzahl der gespeicherten Blöcke ausgibt. cpio_in_flags: Flags, die zum Laden der Daten vom Band benötigt werden. Das Format wird dabei automatisch erkannt. tape_size: Damit wird die maximale Speicherkapazität des Bandes angegeben. Aus Sicherheitsgründen (das Bandlaufwerk unterstützt Hardware-Kompression) ist dieser Wert geringfügig kleiner als der aktuelle Wert. tape_address: Nicht zurückspulendes Gerät für cpio. tape_address_rew: Zurückspulendes Gerät für cpio. Konfiguration nach Installationsende Die folgenden &sap;-Parameter sollten nach der Installation optimiert werden (die Beispiele gelten für IDES 46B, 1 GB Hauptspeicher): Name Wert ztta/roll_extension 250000000 abap/heap_area_dia 300000000 abap/heap_area_nondia 400000000 em/initial_size_MB 256 em/blocksize_kB 1024 ipc/shm_psize_40 70000000 &sap;-Hinweis 0013026: Name Wert ztta/dynpro_area 2500000 &sap;-Hinweis 0157246: Name Wert rdisp/ROLL_MAXFS 16000 rdisp/PG_MAXFS 30000 Mit obigen Parametern und einem System mit 1 Gigabyte Hauptspeicher, könnte der Speicherverbrauch in etwa so aussehen: Mem: 547M Active, 305M Inactive, 109M Wired, 40M Cache, 112M Buf, 3492K Free Während der Installation auftretende Probleme Neustarten von <command>R3SETUP</command> nach Behebung eines Problems R3SETUP bricht ab, wenn ein Fehler auftritt. Wenn Sie (nach Durchsicht der jeweiligen Protokolldateien) den Fehler behoben haben, müssen Sie R3SETUP erneut aufrufen, indem Sie für den fehlerhaften Schritt als Option REPEAT eingeben. Um R3SETUP erneut zu starten, rufen Sie die Datei einfach mit der entsprechenden R3S-Datei auf: &prompt.root; ./R3SETUP -f CENTRDB.R3S für 4.6B, oder mit &prompt.root; ./R3SETUP -f CENTRAL.R3S für 4.6C, unabhängig davon, ob der Fehler mit CENTRAL.R3S oder mit DATABASE.R3S auftrat. Zu bestimmten Zeitpunkten nimmt R3SETUP an, dass sowohl der Datenbank- als auch die &sap;-Prozesse vorhanden sind und laufen (da dies Schritte sind, die es bereits ausgeführt hat). Sollten Fehler auftreten (z.B. wenn sich die Datenbank nicht starten lässt), müssen Sie sowohl die Datenbank als auch &sap; manuell neu starten, nachdem Sie die Fehler behoben haben. Erst danach darf R3SETUP erneut gestartet werden. Achten Sie auch darauf, den &oracle;-Listener erneut zu starten (als Benutzer orasid mittels umask 0; lsnrctl start), wenn dieser beendet wurde (z.B. durch einen notwendigen Neustart des Systems). Fehler im Stadium OSUSERSIDADM_IND_ORA bei der Ausführung von <command>R3SETUP</command> Wenn sich R3SETUP in diesem Stadium beschwert, editieren Sie die bei der Installation verwendete Version der Vorlage (CENTRDB.R3S (4.6B) oder entweder CENTRAL.R3S oder DATABASE.R3S (4.6C)). Finden Sie [OSUSERSIDADM_IND_ORA] oder suchen Sie nach dem einzigen STATUS=ERROR-Eintrag und ändern Sie die folgenden Werte: HOME=/home/sidadm (war voher leer) STATUS=OK (hatte den Status ERROR) Danach können Sie R3SETUP erneut aufrufen. Fehler im Stadium OSUSERDBSID_IND_ORA bei der Ausführung von <command>R3SETUP</command> Wahrscheinlich beschwert sich R3SETUP auch in diesem Stadium. Der hier auftretende Fehler ähnelt dem im Abschnitt OSUSERSIDADM_IND_ORA. Editieren Sie einfach die bei der Installation verwendete Version der Vorlage (das heißt CENTRDB.R3S (4.6B) oder entweder CENTRAL.R3S oder DATABASE.R3S (4.6C)). Finden Sie [OSUSERDBSID_IND_ORA] oder suchen Sie nach dem einzigen STATUS=ERROR-Eintrag und ändern Sie folgenden Eintrag: STATUS=OK Danach können Sie R3SETUP erneut aufrufen. Fehler <errorname>oraview.vrf FILE NOT FOUND</errorname> bei der &oracle;-Installation Sie haben die Option &oracle; On-Line Text Viewer nicht deaktiviert, bevor Sie die Installation gestartet haben. Per Voreinstellung ist diese Option aktiviert, obwohl sie unter Linux gar nicht verfügbar ist. Deaktivieren Sie daher diese Option im &oracle;-Installationsmenü und starten Sie die Installation erneut. Fehler <errorname>TEXTENV_INVALID</errorname> bei der Ausführung von <command>R3SETUP</command>, RFC oder beim Start von SAPGUI Tritt dieser Fehler auf, so fehlt die korrekte Lokalisierung. &sap;-Hinweis 0171356 führt die notwendigen RPMs auf, die installiert sein müssen (zum Beispiel saplocales-1.0-3, saposcheck-1.0-1 für RedHat 6.1). Falls Sie alle damit verbundenen Fehler ignoriert haben, und bei der Ausführung von R3SETUP den STATUS jeweils von ERROR auf OK (in CENTRDB.R3S) gesetzt haben, um R3SETUP anschließend neu zu starten, wurde das &sap;-System nicht ordnungsgemäß konfiguriert. Das bedeutet, dass Sie nicht via SAPgui am System anmelden können, obwohl das System trotzdem gestartet werden kann. Ein Versuch, sich über die alte Linux-SAPgui anzumelden, führte zu folgenden Fehlermeldungen: Sat May 5 14:23:14 2001 *** ERROR => no valid userarea given [trgmsgo. 0401] Sat May 5 14:23:22 2001 *** ERROR => ERROR NR 24 occured [trgmsgi. 0410] *** ERROR => Error when generating text environment. [trgmsgi. 0435] *** ERROR => function failed [trgmsgi. 0447] *** ERROR => no socket operation allowed [trxio.c 3363] Speicherzugriffsfehler Dieses Verhalten kommt daher, weil &sap.r3; nun nicht in der Lage ist, eine korrekte Lokalisierung zuzuweisen, und sich daher nicht ordnungsgemäß konfigurieren kann (durch fehlende Einträge in einigen Datenbank-Tabellen). Um sich in &sap; anmelden zu können, müssen Sie folgende Einträge zur Datei DEFAULT.PFL (lesen Sie dazu auch Hinweis 0043288) hinzufügen: abap/set_etct_env_at_new_mode = 0 install/collate/active = 0 rscp/TCP0B = TCP0B Starten Sie nun das &sap;-System neu. Sie sind nun in der Lage, sich anzumelden, obwohl einige länderspezifische Spracheinstellungen fehlerhaft sein könnten. Nachdem Sie diese Ländereinstellungen korrigiert (und die korrekten Lokalisierungen installiert) haben, können Sie diese Einträge wieder aus DEFAULT.PFL löschen und das &sap;-System anschließend neu starten. <errorcode>ORA-00001</errorcode> Dieser Fehler trat nur bei einer Installation von &oracle; 8.1.7 unter FreeBSD auf. Dies geschah deshalb, weil sich die &oracle;-Datenbank nicht initialisieren konnte und daher abstürzte. Dadurch verblieben Semaphore und Shared-Memory im System. Der nächste Startversuch führte dann zur Meldung ORA-00001. Suchen Sie diese Semaphore mittels ipcs -a und entfernen Sie sie mit ipcrm. <errorcode>ORA-00445</errorcode> (Hintergrundprozess PMON wurde nicht gestartet) Dieser Fehler trat bei &oracle; 8.1.7 auf. Die Meldung erscheint, wenn die Datenbank mit dem normalen startsap-Skript (zum Beispiel startsap_majestix_00) aber als Benutzer prdadm gestartet wird. Dies kann vermieden werden, indem die Datenbank als Benutzer oraprd über svrmgrl gestartet wird: &prompt.user; svrmgrl SVRMGR> connect internal; SVRMGR> startup; SVRMGR> exit <errorcode>ORA-12546</errorcode> (den Listener mit den richtigen Berechtigungen starten) Starten Sie den &oracle;-Listener als Benutzer oraids mit folgendem Befehl: &prompt.root; umask 0; lsnrctl start Ansonsten könnten Sie die Meldung ORA-12546 erhalten, da die Sockets nun nicht die richtigen Berechtigungen aufweisen. Lesen Sie dazu auch den &sap;-Hinweis 0072984. <errorcode>ORA-27102</errorcode> (kein freier Speicher mehr) Dieser Fehler trat auf, wenn versucht wurde, für MAXDSIZ und DFLDSIZ Werte über 1 GB (1024x1024x1024) festzulegen. Zusätzlich führte dies zur Fehlermeldung Linux Error 12: Cannot allocate memory. Fehler im Stadium [DIPGNTAB_IND_IND] bei der Ausführung von <command>R3SETUP</command> Für allgemeine Informationen lesen Sie bitte den &sap;-Hinweis 0130581 # (R3SETUP - Abbruch im Stadium DIPGNTAB). Bei der IDES-spezifischen Installation verwendete der Installationsprozess aus irgendwelchen Gründen nicht den korrekten &sap;-Systemnamen IDS, sondern den leeren String "". Dies führte zu einigen kleineren Problemen beim Zugriff auf bestimmte Verzeichnisse, da die Pfade durch SID (in diesem Fall IDS) dynamisch generiert werden. Das heißt anstatt auf /usr/sap/IDS/SYS/... /usr/sap/IDS/DVMGS00 zuzugreifen, wurden folgende Pfade verwendet: /usr/sap//SYS/... /usr/sap/D00 Um dennoch mit der Installation fortfahren zu können, wurden ein Link sowie ein zusätzliches Verzeichnis erzeugt: &prompt.root; pwd /compat/linux/usr/sap &prompt.root; ls -l total 4 drwxr-xr-x 3 idsadm sapsys 512 May 5 11:20 D00 drwxr-x--x 5 idsadm sapsys 512 May 5 11:35 IDS lrwxr-xr-x 1 root sapsys 7 May 5 11:35 SYS -> IDS/SYS drwxrwxr-x 2 idsadm sapsys 512 May 5 13:00 tmp drwxrwxr-x 11 idsadm sapsys 512 May 4 14:20 trans Dieses Verhalten wird auch in den &sap;-Hinweisen 0029227 und 0008401 beschrieben. Bei der Installtion von &sap; 4.6C trat allerdings keines dieser Probleme auf. Fehler im Stadium [RFCRSWBOINI_IND_IND] bei der Ausführung von <command>R3SETUP</command> Bei der Installation von &sap; 4.6C trat dieser Fehler als Folge eines anderen, bereits vorher aufgetretenen Fehlers auf. Daher müssen Sie sich die entsprechenden Protokolldateien durchsehen, und danach das wirkliche (bereits vorher aufgetretene) Problem beheben. Wenn Sie nach dem Durchsehen der Protokolldateien feststellen, dass dieser Fehler wirklich der eigentliche Fehler ist (lesen Sie dazu wiederum die &sap;-Hinweise), können Sie den STATUS des betreffenden Schritts von ERROR auf OK setzen (und zwar in der Datei CENTRDB.R3S). Anschließend starten Sie R3SETUP erneut. Nach der Installation müssen Sie den Report RSWBOINS der Transaktion SE38 ausführen. Lesen Sie den &sap;-Hinweis 0162266, um weitere Informationen zu den Stadien RFCRSWBOINI und RFCRADDBDIF zu erhalten. Fehler im Stadium [RFCRADDBDIF_IND_IND] bei der Ausführung von <command>R3SETUP</command> Hier gilt das Gleiche wie für den letzten Fehler. Stellen Sie durch Überprüfen der Protokolldateien sicher, dass dieser Fehler nicht durch ein früheres Problem verursacht wird. Wenn Sie sicher sind, dass &sap;-Hinweis 0162266 auf Ihr System zutrifft, setzen Sie den STATUS des betreffenden Stadiums von ERROR auf OK (und zwar in der Datei CENTRDB.R3S). Anschließend starten Sie R3SETUP erneut. Nach der Installation müssen Sie den Report RADDBDIF der Transaktion SE38 ausführen. sigaction sig31: File size limit exceeded Dieser Fehler trat beim Start des &sap;-Prozesses disp+work auf. Wird &sap; mit startsap-Skript gestartet, werden Subprozesse gestartet, deren Aufgabe es ist, alle anderen &sap;-Prozesse zu starten. Als Folge davon erkennt startsap dabei auftretende Fehler nicht. Um zu überprüfen, ob die &sap;-Prozesse korrekt gestartet wurden, überprüfen Sie den Prozessstatus mit ps ax | grep SID. Sie erhalten dadurch eine Liste aller &oracle;- und &sap;-Prozesse. Wenn einige Prozesse fehlen, oder Sie sich nicht mit dem &sap;-System verbinden können, überprüfen Sie wiederum die entsprechenden Protokolldateien, die sich unter /usr/sap/SID/DVEBMGSnr/work/ befinden. Die zu durchsuchenden Dateien heißen dev_ms und dev_disp. Wenn &oracle; und &sap; mehr Speicher anfordern als in der Kernelkonfigurationsdatei festgelegt wurde, wird das Signal 31 ausgeliefert. Der Fehler kann behoben werden, indem im Kernel ein größerer Wert verwendet wird. # larger value for 46C production systems: options SHMMAXPGS=393216 # smaller value sufficient for 46B: #options SHMMAXPGS=262144 Der Start von <command>saposcol</command> schlug fehl Das Programm saposcol (Version 4.6D) kann einige Probleme verursachen. Das &sap;-System verwendet saposcol, um Daten über die Systemleistung zu sammeln. Für die Benutzung des &sap;-Systems hingegen ist es es nicht erforderlich. Daher handelt es sich hier auch nur um ein kleineres Problem. Ältere Versionen von saposcol (z.B. 4.6B) funktionieren, sammeln allerdings nicht alle Daten (viele Aufrufe geben, zum Beispiel die CPU-Nutzung, einfach 0 (Null) zurück. Weiterführende Themen 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 (tlambert@primenet.com) an die FreeBSD-Chat-Mailingliste (freebsd-chat@FreeBSD.org) geschrieben wurde (Message ID: <199906020108.SAA07001@usr09.primenet.com>). Wie funktioniert es? execution class loader FreeBSD verfügt über eine execution class loader genannte Abstraktion. Dabei handelt es sich um einen Eingriff in den &man.execve.2; Systemaufruf. FreeBSD verfügt über eine Liste von Ladern, anstelle eines einzigen, auf #! zurückgreifenden Laders, um Shell-Interpreter oder Shell-Skripte auszuführen. Historisch gesehen untersuchte der einzige, auf UNIX-Plattformen vorhandene Lader die "magische Zahl" (in der Regel die ersten 4 oder 8 Bytes der Datei), um festzustellen, ob der Binärtyp dem System bekannt war. War dies der Fall, wurde der Binärlader aufgerufen. 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. Dabei wurde als Standardeinstellung was auch immer die aktuelle Shell ist festgelegt. Später wurde ein Hack in &man.sh.1; eingefügt, der die zwei ersten Zeichen untersuchte. Wenn diese :\n entsprachen, wurde stattdessen die &man.csh.1;-Shell aufgerufen (wir glauben, dass dies zuerst von SCO umgesetzt wurde). 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 #!-Zeile angegeben. Lässt sich der Interpreter nicht ermitteln, wird auf /bin/sh zurückgegriffen. ELF 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.). Solaris Der ELF-Lader sucht nach einer speziellen Kennzeichnung, die aus einem Kommentarabschnitt in der ELF-Datei besteht, und die in SVR4/&solaris; ELF Binärdateien nicht vorhanden ist. Damit Linux-Binärdateien (unter FreeBSD) funktionieren, müssen sie als Linux gekennzeichnet werden, und zwar durch &man.brandelf.1;: &prompt.root; brandelf -t Linux file Nachdem dies geschehen ist, erkennt der ELF-Lader die Linux-Kennzeichnung der Datei. ELF brandelf Wenn der ELF-Lader die Linux-Kennzeichnung sieht, wird ein Zeiger in der proc-Struktur ersetzt. Alle Systemaufrufe werden durch diesen Zeiger indiziert (in einem traditionellen &unix; System wäre das ein sysent[]-Strukturfeld, das die Systemaufrufe enthält). 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 kleinere Korrekturen vornehmen kann. Der Linux-Systemaufrufvektor enthält neben anderen Dingen eine Liste der sysent[]-Einträge, deren Adressen sich im Kernelmodul befinden. 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. Zusätzlich verändert der Linuxmodus die Systempfade dynamisch; genauso, wie dies die Option beim Einbinden von Dateisystemen macht (Achtung: nicht das Dateisystem unionfs!). Zuerst wird die Datei im Verzeichnis /compat/linux/Originalpfad gesucht, danach, wenn sie dort nicht gefunden wurde, wird sie im FreeBSD-Verzeichnis /Originalpfad 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 /compat/linux plaziertes &man.uname.1; kann damit Linux-Programmen vorgaukeln, dass sie auf einem Linux-System laufen. 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 V IPC bereitstellen, Der einzige Unterschied ist, dass Binärdateien unter FreeBSD FreeBSD-glue-Funktionen verwenden. Linux-Binärdateien hingegen verwenden die Linux-glue-Funktionen. Die meisten älteren Betriebssysteme hatten ihre eigenen glue-Funktionen: Funktionsadressen in einem globalen, statischen sysent[] Strukturfeld an Stelle von Funktionsadressen, die durch einen dynamisch initialisierten Zeiger aus der proc Struktur, die den Aufruf gemacht hatte, dereferenziert wurden. 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-glue-Funktionen statisch in den Kernel gelinkt sind, und dass die Linux-glue-Funktionen statisch gelinkt oder über ein Modul eingebunden werden können. 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. Warum wird es manchmal Linux-Emulation 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 – daher Der Linux-Emulator.
diff --git a/de_DE.ISO8859-1/share/sgml/mailing-lists.ent b/de_DE.ISO8859-1/share/sgml/mailing-lists.ent index 8ac36d96a1..35bd12a81a 100644 --- a/de_DE.ISO8859-1/share/sgml/mailing-lists.ent +++ b/de_DE.ISO8859-1/share/sgml/mailing-lists.ent @@ -1,645 +1,649 @@ FreeBSD list server"> &a.mailman.listinfo;"> de-bsd-translators@de.FreeBSD.org"> de-bsd-questions@de.FreeBSD.org"> FreeBSD ACPI"> freebsd-acpi"> FreeBSD advocacy"> freebsd-advocacy"> FreeBSD AFS porting"> freebsd-afs"> FreeBSD Adapteci AIC7xxx discussions"> freebsd-aic7xxx"> FreeBSD Alpha porting"> freebsd-alpha"> Porting FreeBSD to AMD64 systems"> freebsd-amd64"> FreeBSD announcements"> freebsd-announce"> FreeBSD Apache"> freebsd-apache"> FreeBSD architecture and design"> freebsd-arch"> FreeBSD ARM porting"> freebsd-arm"> FreeBSD ATM networking"> freebsd-atm"> FreeBSD source code audit"> freebsd-audit"> FreeBSD binary update system"> freebsd-binup"> FreeBSD Bluetooth mailing list"> freebsd-bluetooth"> FreeBSD bugbusters"> freebsd-bugbusters"> FreeBSD problem reports"> freebsd-bugs"> FreeBSD chat"> freebsd-chat"> FreeBSD clustering"> freebsd-cluster"> FreeBSD committers"> FreeBSD core team"> &os.current;"> freebsd-current"> CTM announcements"> ctm-announce"> CTM distribution of CVS files"> ctm-cvs-cur"> CTM 4-STABLE src branch distribution"> ctm-src-4"> CTM -CURRENT src branch distribution"> ctm-src-cur"> CTM user discussion"> ctm-users"> FreeBSD CVS commit message"> cvs-all"> FreeBSD CVS doc commit"> cvs-doc"> FreeBSD CVS ports commit"> cvs-ports"> FreeBSD CVS projects commit"> cvs-projects"> FreeBSD CVS src commit"> cvs-src"> FreeBSD CVSweb maintenance"> freebsd-cvsweb"> FreeBSD based Databases"> freebsd-database"> FreeBSD developers"> Writing device drivers for FreeBSD"> freebsd-drivers"> FreeBSD documentation project"> freebsd-doc"> FreeBSD doc/ Committer"> FreeBSD doc/ developers"> FreeBSD users of Eclipse EDI, tools, rich client apps and ports."> freebsd-eclipse"> FreeBSD-embedded mailing list"> freebsd-embedded"> FreeBSD-emulation"> freebsd-emulation"> FreeBSD-eol mailing list"> freebsd-eol"> FreeBSD FireWire (IEEE 1394) discussion"> freebsd-firewire"> FreeBSD filesystem project"> freebsd-fs"> -FreeBSD gecko mailing +FreeBSD gecko mailing list"> freebsd-gecko"> FreeBSD GEOM"> freebsd-geom"> FreeBSD GNOME and GNOME applications"> freebsd-gnome"> FreeBSD technical discussions"> freebsd-hackers"> FreeBSD hardware and equipment"> freebsd-hardware"> FreeBSD mirror sites"> freebsd-hubs"> FreeBSD internationalization"> freebsd-i18n"> FreeBSD i386-specific issues"> freebsd-i386"> FreeBSD IA32 porting"> freebsd-ia32"> FreeBSD IA64 porting"> freebsd-ia64"> FreeBSD IPFW code"> freebsd-ipfw"> FreeBSD ISDN"> freebsd-isdn"> FreeBSD Internet service providers"> freebsd-isp"> FreeBSD jails mailing list"> freebsd-jail"> FreeBSD Java Language"> freebsd-java"> FreeBSD related employment"> freebsd-jobs"> FreeBSD KDE/Qt and KDE applications"> freebsd-kde"> FreeBSD LFS porting"> freebsd-lfs"> FreeBSD libh installation and packaging system"> freebsd-libh"> FreeBSD MIPS porting"> freebsd-mips"> FreeBSD mirror site administrators"> mirror-announce"> FreeBSD laptop computer"> freebsd-mobile"> -Mono and C# applications on +Mono and C# applications on FreeBSD"> freebsd-mono"> FreeBSD port of the Mozilla browser"> freebsd-mozilla"> FreeBSD multimedia"> freebsd-multimedia"> FreeBSD networking"> freebsd-net"> FreeBSD new users"> freebsd-newbies"> New Bus Architecture"> freebsd-new-bus"> FreeBSD OpenOffice"> freebsd-openoffice"> FreeBSD performance"> freebsd-performance"> FreeBSD Perl"> freebsd-perl"> FreeBSD packet filter mailing list"> freebsd-pf"> FreeBSD non-Intel platforms porting"> freebsd-platforms"> FreeBSD core team policy decisions"> freebsd-policy"> FreeBSD ports"> freebsd-ports"> FreeBSD ports/ developers"> FreeBSD ports bugs"> freebsd-ports-bugs"> FreeBSD ports/ Committer"> FreeBSD PowerPC porting"> freebsd-ppc"> Technical discussion of FreeBSD on HP ProLiant server platforms"> freebsd-proliant"> FreeBSD Python mailing list"> freebsd-python"> FreeBSD Quality Assurance"> freebsd-qa"> FreeBSD general questions"> freebsd-questions"> FreeBSD boot script system mailing list"> freebsd-rc"> FreeBSD realtime extensions"> freebsd-realtime"> FreeBSD Ruby mailing list"> freebsd-ruby"> FreeBSD SCSI subsystem"> freebsd-scsi"> FreeBSD security"> freebsd-security"> FreeBSD security notifications"> freebsd-security-notifications"> FreeBSD-small"> freebsd-small"> FreeBSD symmetric multiprocessing"> freebsd-smp"> FreeBSD SPARC porting"> freebsd-sparc64"> FreeBSD src/ Committer"> FreeBSD src/ developers"> &os.stable;"> freebsd-stable"> FreeBSD C99 and POSIX compliance"> freebsd-standards"> FreeBSD sun4v porting mailing list"> freebsd-sun4v"> -SVN commit messages - for the entire src tree (except for user and +SVN commit messages + for the entire src tree (except for user and projects)"> -svn-src-all"> -SVN commit messages +SVN commit messages for the src tree for head/-current"> -svn-src-head"> - + -SVN commit +SVN commit messages for the src projects tree"> -svn-src-projects"> - + -SVN commit +SVN commit messages for releases in the src tree"> -svn-src-release"> - + -SVN commit +SVN commit messages for the release engineering / security commits to the src tree"> -svn-src-releng"> - + -SVN commit messages for all the -stable branches +SVN commit messages for all the -stable branches of the src tree"> -svn-src-stable"> - + -SVN commit +SVN commit messages for only the 6-stable src tree"> -svn-src-stable-6"> - + -SVN commit +SVN commit messages for only the 7-stable src tree"> -svn-src-stable-7"> SVN commit messages for only the 8-stable src tree"> svn-src stable-8"> - + -SVN +SVN commit messages for the old stable src trees"> -svn-src-stable-other"> - + -SVN commit +SVN commit messages for the admin / configuration tree"> -svn-src-svnadmin"> - + -SVN commit messages +SVN commit messages for the experimental user src tree"> -svn-src-user"> - + -SVN commit +SVN commit messages for the vendor work area tree"> -svn-src-vendor"> - + Sysinstall development mailing list"> freebsd-sysinstall"> FreeBSD test"> freebsd-test"> FreeBSD performance and stability testing"> freebsd-testing"> FreeBSD threads"> freebsd-threads"> FreeBSD tokenring"> freebsd-tokenring"> + +FreeBSD integrated toolchain"> +freebsd-toolchain"> + FreeBSD USB"> freebsd-usb"> FreeBSD user group coordination"> freebsd-user-groups"> FreeBSD vendors pre-release coordination"> freebsd-vendors"> -Discussion of +Discussion of various virtualization techniques supported by FreeBSD"> -freebsd-virtualization"> Diskussion über die Infrastruktur von VuXML"> freebsd-vuxml"> -FreeBSD +FreeBSD Work-In-Progress Status"> -freebsd-wip-status"> FreeBSD Webmaster"> freebsd-www"> FreeBSD X11 mailing list"> freebsd-x11"> -FreeBSD port to Xen mailing +FreeBSD port to Xen mailing list"> freebsd-xen"> bug-followup@FreeBSD.org"> majordomo@FreeBSD.org">