diff --git a/de_DE.ISO8859-1/articles/Makefile b/de_DE.ISO8859-1/articles/Makefile
index 61398acb15..dd36519f24 100644
--- a/de_DE.ISO8859-1/articles/Makefile
+++ b/de_DE.ISO8859-1/articles/Makefile
@@ -1,16 +1,17 @@
#
# The FreeBSD Documentation Project
# The FreeBSD German Documentation Project
#
# $FreeBSD$
-# $FreeBSDde: de-docproj/articles/Makefile,v 1.1 2004/11/28 21:13:46 jkois Exp $
-# basiert auf: 1.42
+# $FreeBSDde: de-docproj/articles/Makefile,v 1.3 2005/01/29 11:48:10 jkois Exp $
+# basiert auf: 1.42
SUBDIR = contributing
SUBDIR+= explaining-bsd
SUBDIR+= laptop
+SUBDIR+= new-users
# ROOT_SYMLINKS+= new-users
DOC_PREFIX?= ${.CURDIR}/../..
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/de_DE.ISO8859-1/articles/explaining-bsd/article.sgml b/de_DE.ISO8859-1/articles/explaining-bsd/article.sgml
index eacf1ca4b5..dfb0f7562f 100644
--- a/de_DE.ISO8859-1/articles/explaining-bsd/article.sgml
+++ b/de_DE.ISO8859-1/articles/explaining-bsd/article.sgml
@@ -1,672 +1,672 @@
-
-
-
-%articles.ent;
-]>
-
-
-
- Hintergrundwissen zu BSD
-
-
-
- Greg
- Lehey
-
-
- grog@FreeBSD.org
-
-
-
-
-
- &tm-attrib.freebsd;
- &tm-attrib.amd;
- &tm-attrib.apple;
- &tm-attrib.linux;
- &tm-attrib.opengroup;
- &tm-attrib.sun;
- &tm-attrib.xfree86;
- &tm-attrib.general;
-
-
-
- In der Open Source-Welt steht das Wort
- Linux oft synonym für
- Betriebssystem, obwohl es nicht das einzige
- frei verfügbare Betriebssystem ist. Laut Internet
- Operating System Counter liefen im April 1999
- 31,3 Prozent der weltweit vernetzten Rechner unter Linux,
- 14,6 Prozent liefen hingegen unter BSD &unix;. Einige
- der weltweit größten Internetdienstleister, darunter
- Yahoo!, verwenden BSD.
- Der im Jahre 1999 weltgrößte FTP-Server ftp.cdrom.com (inzwischen
- abgeschaltet) verwendete BSD, um täglich 1,4 Terabyte
- an Daten zu übertragen. Hier geht es offensichtlich nicht
- um einen Nischenmarkt, BSD ist vielmehr ein gut gehütetes
- Geheimnis.
-
- Worin besteht nun dieses Geheimnis? Warum ist BSD nicht
- bekannter? Dieser Artikel versucht, diese und andere Fragen
- zu beantworten.
-
- Unterschiede zwischen BSD und Linux werden in diesem
- Artikel kursiv dargestellt.
-
- Übersetzt von Fabio Tosques.
-
-
-
-
- Was ist BSD?
-
- BSD steht für Berkeley Software
- Distribution, also für die Verbreitung des Quellcodes
- der University of California, Berkeley, und war ursprünglich
- als Erweiterung für ein von AT&T's Research
- entwickeltes &unix;-Betriebssystem gedacht. Verschiedene
- Open Source-Projekte basieren auf dieser, als 4.4BSD-Lite
- bekannten Quellcodeausgabe. In dieser Ausgabe sind auch
- Softwarepakete anderer Open Source-Projekte, insbesondere jene des
- GNU-Projekts, enthalten. Das komplette Betriebssystem
- umfasst:
-
-
-
- Den BSD-Kernel, der sich um Prozessscheduling,
- Speichermanagement, die Unterstützung mehrerer
- Prozessoren
- (symmetric multi-processing
- (SMP)), Gerätetreiber und anderes mehr
- kümmert.
-
- Im Gegensatz zum Linux-Kernel gibt es
- verschiedene BSD-Kernel mit unterschiedlichen
- Fähigkeiten.
-
-
- Die C-Bibliothek, die grundlegende API des
- Systems.
-
- Die C-Bibliothek von BSD basiert auf
- Berkeley-Code und nicht auf Code des
- GNU-Projekts.
-
-
-
- Nützliche Programme wie Shells, Programme für
- Dateioperationen, Compiler und Linker.
-
- Einige Programme stammen aus dem GNU-Projekt,
- andere hingegen nicht.
-
-
-
- Das X Window-System für die grafische
- Benutzeroberfläche.
-
- Bei den meisten BSD-Versionen werden zwei
- X Window-Systeme gepflegt, die Version des
- &xfree86;-Projekts,
- sowie die des
- X.org-Projekts. Dieser
- Code wird auch von Linux verwendet. BSD definiert keinen
- Standarddesktop wie GNOME oder KDE. Beide
- sind aber in der Portssammlung vorhanden.
-
-
-
- Viele weitere Programme und Werkzeuge.
-
-
-
-
-
- Ein echtes &unix;?
-
- BSD-Betriebssysteme sind keine Nachbauten, sondern
- Weiterentwicklungen des &unix;-Betriebssystems von
- AT&T's Research, das als Vorfahre des modernen
- &unix; System V gilt. Überrascht Sie diese Aussage? Wie kann
- das sein, wenn AT&T seine Quellen nie als Open Source
- veröffentlicht hat?
-
- Es stimmt, dass AT&T &unix; kein Open Source ist. Im
- Sinne des Copyright ist BSD daher eindeutig
- kein &unix;. Andererseits fügte
- AT&T aber Quellcode von anderen Projekten in den eigenen Code
- ein, inbesondere jenen der Computer Sciences Research Group (CSRG)
- der University of California in Berkeley, CA. Im Jahr 1976
- begann die CSRG damit, Bänder ihrer Software zu vertreiben,
- die sie Berkeley Software Distribution oder
- BSD nannten.
-
- Anfangs wurden vor allem Anwendungen veröffentlicht.
- Das änderte sich schlagartig, als die CSRG von der Advanced
- Projects Research Agency (DARPA) den Auftrag bekam, deren
- Kommunikationsprotokolle (ARPANET) zu überarbeiten. Die
- neuen Protokolle wurden als Internet Protocols
- bezeichnet, und wurden später als TCP/IP
- weltbekannt. Die erste Implementierung dieser Protokolle erfolgte
- 1982 als Teil von 4.2BSD.
-
- Im Laufe der 80er Jahre entstanden einige neue Firmen, die
- Workstations vertrieben. Viele zogen es vor, &unix; zu
- lizenzieren und kein eigenes Betriebssystem zu entwickeln.
- Sun Microsystems lizenzierte &unix;, implementierte eine
- Version von 4.2BSD und bezeichnete das fertige Produkt als
- &sunos;. Als es AT&T gestattet wurde, &unix; kommerziell zu
- vertreiben, verkaufte AT&T eine abgespeckte Version namens
- System III, der schnell System V folgte. In
- System V-Basissystem waren keine Netzwerkfunktionen
- enthalten, daher wurden alle Implementierungen zusätzlich
- mit Software des BSD-Projekts, darunter TCP/IP sowie diverse
- nützliche Programme wie csh oder
- vi. Diese Erweiterungen wurden unter der
- Bezeichnung Berkeley Extensions
- zusammengefasst.
-
- Da die BSD-Bänder AT&T-Quellcode enthielten, war
- eine &unix;-Lizenz erforderlich. Als im Jahre 1990 die
- Förderung der CSRG auslief, beschlossen einige Mitglieder
- der Gruppe, den quelloffenen BSD-Code ohne den
- proprietären AT&T-Code zu veröffentlichen. Das
- Ergebnis dieser Bemühungen war
- Networking Tape 2, besser bekannt als
- Net/2. Net/2 war aber kein komplettes
- Betriebssystem, da gut 20 Prozent des Kernelcodes fehlten.
- William F. Jolitz, ein Mitglied der CSRG, schrieb den fehlenden
- Code und veröffentlichte diesen Anfang 1992 als
- 386BSD. Zur gleichen Zeit gründete
- eine andere Gruppe ehemaliger CSRG-Mitglieder das kommerzielle
- Unternehmen Berkeley Software
- Design Inc. und veröffentlichte eine Betaversion des
- Betriebssystems unter dem Namen BSD/386, die auf den gleichen
- Quellen basierte. Später wurde dieses Betriebssystem in
- BSD/OS umbenannt.
-
- 386BSD war niemals wirklich stabil. Daher spalteten sich
- 1993 zwei neue Projekte ab: NetBSD sowie FreeBSD. Beide Projekte
- entstanden, weil sich 386BSD zu langsam weiterentwickelte.
- Die erste NetBSD-Version entstand Anfang 1993, die erste
- FreeBSD-Version Ende 1993. Zu dieser Zeit hatte sich der
- Quellcode aber derart verändert, dass es schwer war,
- ihn wieder zu verschmelzen. Zudem hatten die beiden Projekte
- unterschiedliche Ziele, die dieser Artikel noch beschreiben
- wird. 1996 spaltete sich ein weiteres Projekt von NetBSD ab:
- OpenBSD.
-
-
-
- Warum ist BSD nicht bekannter?
-
- BSD ist aus vielen Gründen relativ unbekannt:
-
-
-
- BSD-Entwickler sind eher an der Verbesserung des Codes
- interessiert, als an der Vermarktung desselben.
-
-
-
- Die Popularität von Linux beruht auch auf externen
- Faktoren wie der Presse, sowie auf Firmen, die gegründet
- wurden, um Linux zu vertreiben. Bis heute fehlen den freien
- BSD-Systemen solche Förderer.
-
-
-
- BSD-Entwickler sind vielleicht erfahrener als
- Linux-Entwickler, und haben deshalb weniger Interesse daran,
- die Benutzung des Systems einfacher zu gestalten. Einsteiger
- sind bei Linux wahrscheinlich besser aufgehoben.
-
-
-
- 1992 verklagte AT&T BSDI, den Verkäufer
- von BSD/386, mit der Behauptung, der Quellcode enthalte
- urheberrechtlich geschützten AT&T Code. Zwar kam es
- 1994 zu einer außergerichtlichen Einigung, die Leute
- waren aber erst einmal verunsichert. Noch im März 2000
- behauptete ein im Web publizierter Artikel, das Verfahren sei
- erst kürzlich eingestellt worden.
-
- Bezüglich der Bezeichnung schaffte der
- Gerichtsprozess jedoch Klarheit: In den 80er Jahren war
- BSD unter dem Namen BSD &unix; bekannt.
- Durch die Entfernung der letzten Zeilen des AT&T-Codes
- verlor BSD das Recht, sich &unix; zu nennen. Deshalb finden
- Sie in der Literatur sowohl Verweise auf
- 4.3BSD &unix; als auch auf
- 4.4BSD.
-
-
-
- Nach wie vor existiert das Vorurteil, die einzelnen
- BSD Projekte seien gespalten und zerstritten. Das
- Wall Street Journal sprach gar von einer
- Balkanisierung des BSD-Projekts. Wie der
- Prozess, basiert auch dieses Vorurteil hauptsächlich
- auf alten Geschichten.
-
-
-
-
-
- Ein Vergleich zwischen BSD und Linux
-
- Wo sind nun die Unterschiede zwischen, sagen wir Debian
- GNU/Linux und FreeBSD? Für die meisten Benutzer sind die
- Unterschiede nicht groß: Beide sind &unix;-ähnliche
- Betriebssysteme. Beide sind nichtkommerzielle Projekte (was
- für eine Vielzahl anderer Linux-Distributionen nicht gilt).
- Der folgende Abschnitt betrachtet BSD näher und vergleicht es
- mit Linux. Die meisten Erläuterungen beziehen sich auf
- FreeBSD, da es sich dabei um das am häufigsten installierte
- BSD-System handelt. Die Unterschiede zu NetBSD und OpenBSD sind
- aber gering.
-
-
- Wem gehört BSD?
-
- BSD gehört weder einer einzelnen Person, noch
- gehört es einem Unternehmen. Entwickelt und zur
- Verfügung gestellt wird es von einer technisch
- interessierten und engagierten Gemeinschaft, die über
- die ganze Welt verteilt ist. Einige BSD-Komponenten sind
- eigenständige Open Source-Projekte mit eigenen Rechten,
- die getrennt verwaltet und gewartet werden.
-
-
-
- Wie erfolgt die Weiterentwicklung von BSD?
-
- BSD-Kernel werden nach dem Open Source-Modell
- weiterentwickelt. Jedes Projekt unterhält einen
- öffentlich zugänglichen
- Quellcode-Baum, der durch das Concurrent Versions System
- (CVS) organisiert wird, und alle Quellen des Projekts, die
- Dokumentation und andere notwendige Dateien enthält.
- CVS erlaubt es Anwendern, jede gewünschte Version des
- Systems auszuchecken (mit anderen Worten, eine
- Kopie des System zu erhalten).
-
- Eine Vielzahl von Entwicklern trägt weltweit zur
- Verbesserung von BSD bei. Dabei werden drei Typen
- unterschieden:
-
-
-
- Ein Contributor schreibt Code
- oder Dokumentationen. Ihm ist es nicht gestattet, seinen
- Beitrag direkt in den Quellbaum einfließen zu lassen.
- Bevor dieser Code das System eingebracht wird, muss er von
- einem registrierten Entwickler, dem
- Committer geprüft werden.
-
-
-
- Committer können Code in
- den Quellbaum einbringen, d.h. sie besitzen Schreibrechte
- für den Quellcode-Baum. Um ein Committer zu werden,
- muss man zuerst seine Fähigkeiten im dem
- gewünschten Gebiet unter Beweis stellen.
-
- Es liegt im Ermessen des Committers, ob er die
- Allgemeinheit befragt, bevor er Änderungen am Quellbaum
- vornimmt. In der Regel wird ein erfahrener Committer
- korrekte Änderungen einfügen, ohne sich mit anderen
- abzustimmen. Ein Committer des Documentation Projects
- könnte etwa typografische oder grammatikalische
- Korrekturen ohne lange Diskussion durchführen. Auf der
- anderen Seite sollten Änderungen mit weitreichenden
- Konsequenzen vor dem Commit zur Begutachtung bereitgestellt
- werden. Im Extremfall kann ein Mitglied des Core Teams, das
- als Principal Architect fungiert, sogar die Entfernung der
- Änderung aus dem Quellcodebaum veranlassen. Dieser
- Vorgang wird als backing out
- bezeichnet. Alle Committer werden durch eine E-Mail
- über die erfolgte Änderung informiert. Es ist
- daher nicht möglich, heimlich eine Änderung
- durchzuführen.
-
-
-
- Das Core Team. Sowohl FreeBSD
- als auch NetBSD besitzen ein Core Team zur Betreuung des
- jeweiligen Projekts. Da die Core Teams erst im
- Projektverlauf entstanden, ist ihre Rolle nicht genau
- definiert. Um ein Mitglied des Core Teams zu sein, muss
- man kein Entwickler sein, obwohl dies die Regel ist. Die
- Regeln der Core Teams unterscheiden sich von Projekt zu
- Projekt, generell gilt aber, das dessen Mitglieder mehr
- Einfluss auf die Richtung des Projekts haben als
- Nichtmitglieder.
-
-
-
- Diese Konstellation unterscheidet sich von Linux in
- einigen Punkten:
-
-
-
- Es sind stets mehrere Personen für das System
- verantwortlich. In der Praxis ist dieser Unterscheid aber
- nicht gravierend, da zum einen der Principal Architect
- verlangen kann, dass Änderungen zurückgenommen
- werden, und zum anderen auch beim Linux-Projekt mehrere
- Personen das Recht haben, Änderungen
- vorzunehmen.
-
-
-
- Es existiert ein zentraler
- Aufbewahrungsort (Repository), in dem die kompletten
- Betriebssystemquellen zu finden sind, einschließlich
- aller älteren Versionen.
-
-
-
- BSD-Projekte pflegen das komplette
- Betriebssystem, nicht nur den Kernel. Dieser
- Unterschied ist aber marginal, da weder BSD noch Linux ohne
- Anwendungsprogramme sinnvoll einsetzbar sind. Die unter BSD
- eingesetzten Applikationen sind oft identisch mit denen
- von Linux.
-
-
-
- Da beim BSD-Projekt nur ein CVS-Quellbaum gepflegt
- werden muss, ist die Entwicklung übersichtlicher, und es
- ist möglich, auf jede beliebige Version einer Datei
- zuzugreifen. CVS ermöglicht auch inkrementelle Updates:
- Das FreeBSD-Repository wird beispielsweise etwa 100 Mal pro
- Tag verändert. Viele dieser Änderungen betreffen
- aber nur einen relativen kleinen Bereich von FreeBSD.
-
-
-
-
-
- BSD-Versionen
-
- Jedes BSD-Projekt stellt das System in drei verschiedenen
- Ausgaben (Releases) zur Verfügung. Analog
- zu Linux erhalten diese Ausgaben eine Nummer, etwa 1.4.1 oder
- 3.5. Die Versionsnummer erhält zusätzlich ein Suffix,
- das den Verwendungszweck bezeichnet:
-
-
-
- Die Entwicklerversion hat das Suffix
- CURRENT. FreeBSD weist diesem Suffix
- eine Nummer zu, z.B. FreeBSD 5.0-CURRENT. NetBSD verwendet
- ein etwas anderes Bezeichnungsschema und hängt als
- Suffix nur einen Buchstaben an die Versionsnummer an, der
- Änderungen an den internen Schnittstellen anzeigt, z.B.
- NetBSD 1.4.3G. OpenBSD weist der Entwicklerversion keine
- Nummer zu, sie heißt also einfach OpenBSD-current.
- Neue Entwicklungen werden zuerst in diesen Zweig
- eingefügt.
-
-
-
- In regelmäßigen Intervallen, durchschnittlich
- zwei- bis viermal im Jahr, wird eine so genannte
- RELEASE-Version des Systems
- veröffentlicht, die dann beispielsweise als
- OpenBSD 2.6-RELEASE oder NetBSD 1.4-RELEASE
- bezeichnet wird. Diese sind sowohl auf CD-ROM
- als auch als freier Download von den FTP-Servern der Projekte
- erhältlich. Diese RELEASE-Versionen sind für
- Endbenutzer gedacht. NetBSD verwendet sogar eine dritte
- Ziffer, um gepatchte Releases zu kennzeichnen
- (etwa NetBSD 1.4.2).
-
-
-
- Sobald Fehler in einer RELEASE-Version gefunden werden,
- werden diese beseitigt und in den CVS-Baum eingefügt.
- Beim FreeBSD-Projekt wird die daraus resultierende Version
- als STABLE bezeichnet, während
- sie bei NetBSD und OpenBSD weiterhin RELEASE heißt.
- Kleinere Änderungen, die sich nach einer Testphase im
- CURRENT-Zweig als stabil erweisen, können ebenfalls
- in die STABLE-Version einfließen.
-
-
-
- Bei Linux werden hingegen zwei getrennte
- Code-Bäume gepflegt: Eine stabile Version und eine
- Entwicklerversion. Stabile Versionen haben an der zweiten
- Stelle eine gerade Ziffer (2.0, 2.2 oder 2.4).
- Entwicklerversionen haben an der zweiten Stelle eine ungerade
- Ziffer (2.1, 2.3 oder 2.5). In jedem Fall folgt der
- zweiten Ziffer noch eine dritte, welche die Version genauer
- bezeichnet. Zusätzlich fügt jeder Verkäufer
- einer Linux-Distribution selbst Programme und Werkzeuge hinzu.
- Daher ist auch der Name der Distribution nicht unwichtig, da
- dieser ebenfalls eine Versionsnummer enthält. So kann die
- vollständige Beschreibung beispielsweise so aussehen:
- TurboLinux 6.0 mit
- Kernel 2.2.14
-
-
-
- Welche BSD-Versionen gibt es überhaupt?
-
- Im Gegensatz zu den zahlreichen Linux-Distributionen gibt es
- nur drei frei verfügbare BSDs. Jedes BSD-Projekt
- unterhält seinen eigenen Quellcode-Baum und seinen eigenen
- Kernel. In der Praxis scheinen die Unterschiede im Code der
- Anwenderprogramme aber geringer zu sein als bei Linux.
-
- Es ist nicht einfach, die Ziele der einzelnen BSD-Projekte
- genau zu trennen, da die Unterschiede eher subtiler Natur
- sind:
-
-
-
-
- FreeBSD will eine hohe Leistung erreichen, für
- den Benutzer einfach in der Bedienung sein, und wird von
- Internetanbietern bevorzugt eingesetzt. Es läuft
- auf einer Vielzahl von Plattformen, darunter
- i386-Systeme (PCs), Systeme mit einem
- AMD 64-Bit-Prozessor, &ultrasparc;-Systeme,
- Compaq Alpha-Systeme, sowie Systeme, die der
- Spezifikation NEC PC-98 entsprechen. Das
- FreeBSD-Projekt hat die mit Abstand größte
- Anwenderzahl unter den frei verfügbaren
- BSD-Systemen.
-
-
-
- Bei NetBSD ist Portabilität das oberste Ziel:
- Natürlich läuft NetBSD darauf.
- NetBSD kann auf vielen verschiedenen Systemen, von Palmtops
- bis hin zu großen Servern, installiert werden, und
- wurde sogar schon im Raumfahrtprogramm der NASA eingesetzt.
- Besonders für alte Nicht-Intel-Plattformen ist NetBSD
- die erste Wahl.
-
-
-
- Bei OpenBSD stehen die Sicherheit und sauberer Code im
- Vordergrund. OpenBSD verbindet bei der Weiterentwicklung
- des Systems Open Source-Konzepte mit rigorosen
- code reviews. Dadurch
- entsteht ein sehr sicheres System, das OpenBSD für
- sicherheitsbewusste Unternehmen, Banken, Börsen
- und die US-Regierung zu ersten Wahl macht. Auch OpenBSD
- läuft, ähnlich wie NetBSD, auf vielen
- verschiedenen Plattformen.
-
-
-
- Es gibt noch zwei weitere BSD-&unix;-Systeme, die aber
- nicht Open Source sind: BSD/OS sowie Apples
- &macos; X:
-
-
-
- BSD/OS ist das älteste, von 4.4BSD abstammende
- Betriebssystem. Es ist zwar nicht Open Source,
- Quellcode-Lizenzen können aber relativ günstig
- erworben werden. Es weist viele Gemeinsamkeiten mit
- FreeBSD auf.
-
-
-
- Bei
- &macos; X handelt es sich um die neueste
- Version des Betriebssystems der &macintosh;-Linie von
- Apple Computer Inc.'s.
- Darwin,
- der BSD-Kern des Betriebssystems ist als voll
- funktionsfähiges Open Source-Betriebssystem für
- x86- sowie PPC-Computer erhältlich. Die grafische
- Oberfläche Aqua/Quartz und andere proprietäre
- Anwendungen von &macos; X sind aber weiterhin
- closed-source Software. Einige Darwin-Entwickler sind
- auch FreeBSD-Committer, was auch für den umgekehrten
- Fall gilt.
-
-
-
-
-
- Worin unterscheidet sich die BSD-Lizenz von der GNU
- Public License?
-
- Linux steht unter der GNU General Public
- License (GPL), die entworfen wurde, um closed-source
- Software zu verhindern. Jede Software, die von einer Software
- abgeleitet wurde, die unter der GPL steht, muss wieder unter
- der GPL veröffentlicht werden. Auf Verlangen ist auch
- der Quellcode zur Verfügung zu stellen. Die
- BSD-Lizenz ist dagegen weniger restriktiv: Der
- Quellcode muss nicht zur Verfügung gestellt werden, es
- können also auch Binärdateien verbreitet werden.
- Dieser Umstand ist besonders für Anwendungen im
- Embedded-Bereich interessant.
-
-
-
- Was sollte ich sonst noch wissen?
-
- Da für BSD weniger Anwendungsprogramme verfügbar
- waren als für Linux, wurde ein Softwarepaket entwickelt, das
- die Ausführung von Linuxprogrammen unter BSD
- ermöglichte. Diese Paket enthält zwei Dinge:
- Kernelmodifikationen zur korrekten Ausführung von
- Linux-Systemaufrufen sowie Linuxkompatibilitätsdateien,
- beispielsweise die C-Bibliothek von Linux. Unterscheide in der
- Ausführungsgeschwindigkeit von Linuxanwendungen auf einem
- Linuxrechner und einem vergleichbaren mit BSD ausgestatteten
- Rechner sind in der Praxis so gut wie nicht feststellbar.
-
- Die Alles-aus-einer-Hand-Natur von BSD
- hat den Vorteil, dass Upgrades im Vergleich zu Linux häufig
- leichter durchzuführen sind. BSD aktualisiert
- Bibliotheken, indem es Kompatibilitätsmodule für
- ältere Versionen der Bibliotheken bereitstellt. Daher ist
- es möglich, auch mehrere Jahre alte Binärdateien ohne
- Probleme auszuführen.
-
-
-
- Was soll ich nun benutzen, BSD oder Linux?
-
- Was heißt das nun alles für die Praxis? Wer
- sollte BSD, wer Linux benutzen?
-
- Diese Frage ist nicht einfach zu beantworten. Trotzdem
- folgen nun einige Empfehlungen:
-
-
-
- Wenn es nicht kaputt ist, fass es nicht
- an!: Wenn Sie schon ein frei verfügbares
- Betriebssystem verwenden und damit glücklich sind,
- gibt es eigentlich keinen vernünftigen Grund für
- einen Wechsel.
-
-
-
- BSD-Systeme, inbesonders FreeBSD, können eine
- weitaus bessere Leistung als Linux-Systeme aufweisen. Diese
- Aussage ist aber nicht allgemein gültig. In den
- meisten Fällen sind die Leistungsunterschiede aber
- gering oder gar nicht festzustellen. In bestimmten
- Fällen kann auch Linux eine bessere Leistung
- aufweisen.
-
-
-
- In der Regel haben BSD-Systeme den Ruf,
- zuverlässiger zu sein. Diese Aussage beruht auf der
- reiferen Codebasis.
-
-
-
- Die BSD-Lizenz kann für sie attraktiver sein als
- die GPL.
-
-
-
- BSD-Systeme können die meisten Linuxprogramme
- ausführen, während Linux keine BSD-Programme
- ausführen kann. Viele BSD-Systeme können sogar
- Programme von anderen &unix;-ähnlichen Systemen
- ausführen. Daraus könnte man ableiten, dass die
- Migration auf ein BSD-System einfacher ist, als es bei
- Linux der Fall wäre.
-
-
-
-
-
- Wo gibt es Support, Serviceleistungen und Schulungen
- für BSD?
-
- BSDi hat BSD/OS von Anfang an unterstützt und hat
- angekündigt, Supportverträge für FreeBSD
- anzubieten.
-
- Darüber hinaus finden sich auf den folgenden Seiten der
- einzelnen Projekte Firmen, die Supportleistungen anbieten:
- FreeBSD,
- NetBSD,
- und OpenBSD.
-
-
-
-
-
+
+
+
+%articles.ent;
+]>
+
+
+
+ Hintergrundwissen zu BSD
+
+
+
+ Greg
+ Lehey
+
+
+ grog@FreeBSD.org
+
+
+
+
+
+ &tm-attrib.freebsd;
+ &tm-attrib.amd;
+ &tm-attrib.apple;
+ &tm-attrib.linux;
+ &tm-attrib.opengroup;
+ &tm-attrib.sun;
+ &tm-attrib.xfree86;
+ &tm-attrib.general;
+
+
+
+ In der Open Source-Welt steht das Wort
+ Linux oft synonym für
+ Betriebssystem, obwohl es nicht das einzige
+ frei verfügbare Betriebssystem ist. Laut Internet
+ Operating System Counter liefen im April 1999
+ 31,3 Prozent der weltweit vernetzten Rechner unter Linux,
+ 14,6 Prozent liefen hingegen unter BSD &unix;. Einige
+ der weltweit größten Internetdienstleister, darunter
+ Yahoo!, verwenden BSD.
+ Der im Jahre 1999 weltgrößte FTP-Server ftp.cdrom.com (inzwischen
+ abgeschaltet) verwendete BSD, um täglich 1,4 Terabyte
+ an Daten zu übertragen. Hier geht es offensichtlich nicht
+ um einen Nischenmarkt, BSD ist vielmehr ein gut gehütetes
+ Geheimnis.
+
+ Worin besteht nun dieses Geheimnis? Warum ist BSD nicht
+ bekannter? Dieser Artikel versucht, diese und andere Fragen
+ zu beantworten.
+
+ Unterschiede zwischen BSD und Linux werden in diesem
+ Artikel kursiv dargestellt.
+
+ Übersetzt von Fabio Tosques.
+
+
+
+
+ Was ist BSD?
+
+ BSD steht für Berkeley Software
+ Distribution, also für die Verbreitung des Quellcodes
+ der University of California, Berkeley, und war ursprünglich
+ als Erweiterung für ein von AT&T's Research
+ entwickeltes &unix; Betriebssystem gedacht. Verschiedene
+ Open Source-Projekte beruhen auf dieser, als 4.4BSD-Lite
+ bekannten Quellcodeausgabe. In dieser Ausgabe sind auch
+ Softwarepakete anderer Open Source-Projekte, insbesondere jene des
+ GNU-Projekts, enthalten. Das komplette Betriebssystem
+ umfasst:
+
+
+
+ Den BSD-Kernel, der sich um Prozessscheduling,
+ Speichermanagement, die Unterstützung mehrerer
+ Prozessoren
+ (symmetric multi-processing,
+ SMP), Gerätetreiber und anderes mehr
+ kümmert.
+
+ Im Gegensatz zum Linux-Kernel gibt es
+ verschiedene BSD-Kernel mit unterschiedlichen
+ Fähigkeiten.
+
+
+ Die C-Bibliothek, die grundlegende API des
+ Systems.
+
+ Die C-Bibliothek von BSD basiert auf
+ Berkeley-Code und nicht auf Code des
+ GNU-Projekts.
+
+
+
+ Nützliche Programme wie Shells, Programme für
+ Dateioperationen, Compiler und Linker.
+
+ Einige Programme stammen aus dem GNU-Projekt,
+ andere hingegen nicht.
+
+
+
+ Das X Window-System für die grafische
+ Benutzeroberfläche.
+
+ Bei den meisten BSD-Versionen werden zwei
+ X Window-Systeme gepflegt, die Version des
+ &xfree86;-Projekts,
+ sowie die des
+ X.org-Projekts. Dieser
+ Code wird auch von Linux verwendet. BSD definiert keinen
+ Standarddesktop wie GNOME oder KDE. Beide
+ sind aber in der Portssammlung vorhanden.
+
+
+
+ Viele weitere Programme und Werkzeuge.
+
+
+
+
+
+ Ein echtes &unix;?
+
+ BSD-Betriebssysteme sind keine Nachbauten, sondern
+ Weiterentwicklungen des &unix; Betriebssystems von
+ AT&T's Research, das als Vorfahre des modernen
+ &unix; System V gilt. Überrascht Sie diese Aussage? Wie kann
+ das sein, wenn AT&T seine Quellen nie als Open Source
+ veröffentlicht hat?
+
+ Es stimmt, dass AT&T &unix; kein Open Source ist. Im
+ Sinne des Copyright ist BSD daher eindeutig
+ kein &unix;. Andererseits fügte
+ AT&T aber Quellcode von anderen Projekten in den eigenen Code
+ ein, insbesondere jenen der Computer Sciences Research Group (CSRG)
+ der University of California in Berkeley, CA. Im Jahr 1976
+ begann die CSRG damit, Bänder ihrer Software zu vertreiben,
+ die sie Berkeley Software Distribution oder
+ BSD nannten.
+
+ Anfangs wurden vor allem Anwendungen veröffentlicht.
+ Das änderte sich schlagartig, als die CSRG von der Advanced
+ Projects Research Agency (DARPA) den Auftrag bekam, deren
+ Kommunikationsprotokolle (ARPANET) zu überarbeiten. Die
+ neuen Protokolle wurden als Internet Protocols
+ bezeichnet, und wurden später als TCP/IP
+ weltbekannt. Die erste Implementierung dieser Protokolle erfolgte
+ 1982 als Teil von 4.2BSD.
+
+ Im Laufe der 80er Jahre entstanden einige neue Firmen, die
+ Workstations vertrieben. Viele zogen es vor, &unix; zu
+ lizenzieren und kein eigenes Betriebssystem zu entwickeln.
+ Sun Microsystems lizenzierte &unix;, implementierte eine
+ Version von 4.2BSD und bezeichnete das fertige Produkt als
+ &sunos;. Als es AT&T gestattet wurde, &unix; kommerziell zu
+ vertreiben, verkaufte AT&T eine abgespeckte Version namens
+ System III, der schnell System V folgte. Im
+ System V-Basissystem waren keine Netzwerkfunktionen
+ enthalten, daher wurden alle Implementierungen zusätzlich
+ mit Software des BSD-Projekts, darunter TCP/IP sowie diverse
+ nützliche Programme wie csh oder
+ vi. Diese Erweiterungen wurden unter der
+ Bezeichnung Berkeley Extensions
+ zusammengefasst.
+
+ Da die BSD-Bänder AT&T-Quellcode enthielten, war
+ eine &unix; Lizenz erforderlich. Als im Jahre 1990 die
+ Förderung der CSRG auslief, beschlossen einige Mitglieder
+ der Gruppe, den quelloffenen BSD-Code ohne den
+ proprietären AT&T-Code zu veröffentlichen. Das
+ Ergebnis dieser Bemühungen war
+ Networking Tape 2, besser bekannt als
+ Net/2. Net/2 war aber kein komplettes
+ Betriebssystem, da gut 20 Prozent des Kernelcodes fehlten.
+ William F. Jolitz, ein Mitglied der CSRG, schrieb den fehlenden
+ Code und veröffentlichte diesen Anfang 1992 als
+ 386BSD. Zur gleichen Zeit gründete
+ eine andere Gruppe ehemaliger CSRG-Mitglieder das kommerzielle
+ Unternehmen Berkeley Software
+ Design Inc. und veröffentlichte eine Betaversion des
+ Betriebssystems unter dem Namen BSD/386, die auf den gleichen
+ Quellen basierte. Später wurde dieses Betriebssystem in
+ BSD/OS umbenannt.
+
+ 386BSD war niemals wirklich stabil. Daher spalteten sich
+ 1993 zwei neue Projekte ab: NetBSD sowie FreeBSD. Beide Projekte
+ entstanden, weil sich 386BSD zu langsam weiterentwickelte.
+ Die erste NetBSD-Version entstand Anfang 1993, die erste
+ FreeBSD-Version Ende 1993. Zu dieser Zeit hatte sich der
+ Quellcode aber derart verändert, dass es schwer war,
+ ihn wieder zu verschmelzen. Zudem hatten die beiden Projekte
+ unterschiedliche Ziele, die dieser Artikel noch beschreiben
+ wird. 1996 spaltete sich ein weiteres Projekt von NetBSD ab:
+ OpenBSD.
+
+
+
+ Warum ist BSD nicht bekannter?
+
+ BSD ist aus vielen Gründen relativ unbekannt:
+
+
+
+ BSD-Entwickler sind eher an der Verbesserung des Codes
+ interessiert, als an der Vermarktung desselben.
+
+
+
+ Die Popularität von Linux beruht auch auf externen
+ Faktoren wie der Presse, sowie auf Firmen, die gegründet
+ wurden, um Linux zu vertreiben. Bis heute fehlen den freien
+ BSD-Systemen solche Förderer.
+
+
+
+ BSD-Entwickler sind vielleicht erfahrener als
+ Linux-Entwickler, und haben deshalb weniger Interesse daran,
+ die Benutzung des Systems einfacher zu gestalten. Einsteiger
+ sind bei Linux wahrscheinlich besser aufgehoben.
+
+
+
+ 1992 verklagte AT&T BSDI, den Verkäufer
+ von BSD/386, mit der Behauptung, der Quellcode enthalte
+ urheberrechtlich geschützten AT&T Code. Zwar kam es
+ 1994 zu einer außergerichtlichen Einigung, die Leute
+ waren aber erst einmal verunsichert. Noch im März 2000
+ behauptete ein im Web publizierter Artikel, das Verfahren sei
+ erst kürzlich eingestellt worden.
+
+ Bezüglich der Bezeichnung schaffte der
+ Gerichtsprozess jedoch Klarheit: In den 80er Jahren war
+ BSD unter dem Namen BSD &unix; bekannt.
+ Durch die Entfernung der letzten Zeilen des AT&T-Codes
+ verlor BSD das Recht, sich &unix; zu nennen. Deshalb finden
+ Sie in der Literatur sowohl Verweise auf
+ 4.3BSD &unix; als auch auf
+ 4.4BSD.
+
+
+
+ Nach wie vor existiert das Vorurteil, die einzelnen
+ BSD Projekte seien gespalten und zerstritten. Das
+ Wall Street Journal sprach gar von einer
+ Balkanisierung des BSD-Projekts. Wie der
+ Prozess, basiert auch dieses Vorurteil hauptsächlich
+ auf alten Geschichten.
+
+
+
+
+
+ Ein Vergleich zwischen BSD und Linux
+
+ Wo sind nun die Unterschiede zwischen, sagen wir Debian
+ GNU/Linux und FreeBSD? Für die meisten Benutzer sind die
+ Unterschiede nicht groß: Beide sind &unix; ähnliche
+ Betriebssysteme. Beide sind nichtkommerzielle Projekte (was
+ für eine Vielzahl anderer Linux-Distributionen nicht gilt).
+ Der folgende Abschnitt betrachtet BSD näher und vergleicht es
+ mit Linux. Die meisten Erläuterungen beziehen sich auf
+ FreeBSD, da es sich dabei um das am häufigsten installierte
+ BSD-System handelt. Die Unterschiede zu NetBSD und OpenBSD sind
+ aber gering.
+
+
+ Wem gehört BSD?
+
+ BSD gehört weder einer einzelnen Person, noch
+ gehört es einem Unternehmen. Entwickelt und zur
+ Verfügung gestellt wird es von einer technisch
+ interessierten und engagierten Gemeinschaft, die über
+ die ganze Welt verteilt ist. Einige BSD-Komponenten sind
+ eigenständige Open Source-Projekte mit eigenen Rechten,
+ die getrennt verwaltet und gewartet werden.
+
+
+
+ Wie erfolgt die Weiterentwicklung von BSD?
+
+ BSD-Kernel werden nach dem Open Source-Modell
+ weiterentwickelt. Jedes Projekt unterhält einen
+ öffentlich zugänglichen
+ Quellcode-Baum, der mit dem Concurrent Versions System
+ (CVS) verwaltet wird, und alle Quellen des Projekts, die
+ Dokumentation und andere notwendige Dateien enthält.
+ CVS erlaubt es Anwendern, jede gewünschte Version des
+ Systems auszuchecken (mit anderen Worten, eine
+ Kopie des System zu erhalten).
+
+ Eine Vielzahl von Entwicklern trägt weltweit zur
+ Verbesserung von BSD bei. Dabei werden drei Typen
+ unterschieden:
+
+
+
+ Ein Contributor schreibt Code
+ oder Dokumentationen. Ihm ist es nicht gestattet, seinen
+ Beitrag direkt in den Quellbaum einfließen zu lassen.
+ Bevor dieser Code in das System eingebracht wird, muss er von
+ einem registrierten Entwickler, dem
+ Committer geprüft werden.
+
+
+
+ Committer können Code in
+ den Quellbaum einbringen, das heißt sie besitzen
+ Schreibrechte für den Quellcode-Baum. Um ein
+ Committer zu werden, muss man zuerst seine Fähigkeiten
+ im gewünschten Gebiet unter Beweis stellen.
+
+ Es liegt im Ermessen des Committers, ob er die
+ Allgemeinheit befragt, bevor er Änderungen am Quellbaum
+ vornimmt. In der Regel wird ein erfahrener Committer
+ korrekte Änderungen einfügen, ohne sich mit anderen
+ abzustimmen. Ein Committer des Documentation Projects
+ könnte etwa typografische oder grammatikalische
+ Korrekturen ohne lange Diskussion durchführen. Auf der
+ anderen Seite sollten Änderungen mit weitreichenden
+ Konsequenzen vor dem Commit zur Begutachtung bereitgestellt
+ werden. Im Extremfall kann ein Mitglied des Core Teams, das
+ als Principal Architect fungiert, sogar die Entfernung der
+ Änderung aus dem Quellcodebaum veranlassen. Dieser
+ Vorgang wird als backing out
+ bezeichnet. Alle Committer werden durch eine E-Mail
+ über die erfolgte Änderung informiert. Es ist
+ daher nicht möglich, heimlich eine Änderung
+ durchzuführen.
+
+
+
+ Das Core Team. Sowohl FreeBSD
+ als auch NetBSD besitzen ein Core Team zur Betreuung des
+ jeweiligen Projekts. Da die Core Teams erst im
+ Projektverlauf entstanden, ist ihre Rolle nicht genau
+ definiert. Um ein Mitglied des Core Teams zu sein, muss
+ man kein Entwickler sein, obwohl dies die Regel ist. Die
+ Regeln der Core Teams unterscheiden sich von Projekt zu
+ Projekt, generell gilt aber, das dessen Mitglieder mehr
+ Einfluss auf die Richtung des Projekts haben als
+ Nichtmitglieder.
+
+
+
+ Diese Konstellation unterscheidet sich von Linux in
+ einigen Punkten:
+
+
+
+ Es sind stets mehrere Personen für das System
+ verantwortlich. In der Praxis ist dieser Unterschied aber
+ nicht gravierend, da zum einen der Principal Architect
+ verlangen kann, dass Änderungen zurückgenommen
+ werden, und zum anderen auch beim Linux-Projekt mehrere
+ Personen das Recht haben, Änderungen
+ vorzunehmen.
+
+
+
+ Es existiert ein zentraler
+ Aufbewahrungsort (Repository), in dem die kompletten
+ Betriebssystemquellen zu finden sind, einschließlich
+ aller älteren Versionen.
+
+
+
+ BSD-Projekte pflegen das komplette
+ Betriebssystem, nicht nur den Kernel. Dieser
+ Unterschied ist aber marginal, da weder BSD noch Linux ohne
+ Anwendungsprogramme sinnvoll einsetzbar sind. Die unter BSD
+ eingesetzten Applikationen sind oft identisch mit denen
+ von Linux.
+
+
+
+ Da beim BSD-Projekt nur ein CVS-Quellbaum gepflegt
+ werden muss, ist die Entwicklung übersichtlicher, und es
+ ist möglich, auf jede beliebige Version einer Datei
+ zuzugreifen. CVS ermöglicht auch inkrementelle Updates:
+ Das FreeBSD-Repository wird beispielsweise etwa 100 Mal pro
+ Tag verändert. Viele dieser Änderungen betreffen
+ aber nur einen relativen kleinen Bereich von FreeBSD.
+
+
+
+
+
+ BSD-Versionen
+
+ Jedes BSD-Projekt stellt das System in drei verschiedenen
+ Ausgaben (Releases) zur Verfügung. Analog
+ zu Linux erhalten diese Ausgaben eine Nummer, etwa 1.4.1 oder
+ 3.5. Die Versionsnummer erhält zusätzlich ein Suffix,
+ das den Verwendungszweck bezeichnet:
+
+
+
+ Die Entwicklerversion hat das Suffix
+ CURRENT. FreeBSD weist diesem Suffix
+ eine Nummer zu, z.B. FreeBSD 5.0-CURRENT. NetBSD verwendet
+ ein etwas anderes Bezeichnungsschema und hängt als
+ Suffix nur einen Buchstaben an die Versionsnummer an, der
+ Änderungen an den internen Schnittstellen anzeigt, z.B.
+ NetBSD 1.4.3G. OpenBSD weist der Entwicklerversion keine
+ Nummer zu, sie heißt also einfach OpenBSD-current.
+ Neue Entwicklungen werden zuerst in diesen Zweig
+ eingefügt.
+
+
+
+ In regelmäßigen Intervallen, durchschnittlich
+ zwei- bis viermal im Jahr, wird eine so genannte
+ RELEASE-Version des Systems
+ veröffentlicht, die dann beispielsweise als
+ OpenBSD 2.6-RELEASE oder NetBSD 1.4-RELEASE
+ bezeichnet wird. Diese sind sowohl auf CD-ROM
+ als auch als freier Download von den FTP-Servern der Projekte
+ erhältlich. Diese RELEASE-Versionen sind für
+ Endbenutzer gedacht. NetBSD verwendet sogar eine dritte
+ Ziffer, um gepatchte Releases zu kennzeichnen
+ (etwa NetBSD 1.4.2).
+
+
+
+ Sobald Fehler in einer RELEASE-Version gefunden werden,
+ werden diese beseitigt und in den CVS-Baum eingefügt.
+ Beim FreeBSD-Projekt wird die daraus resultierende Version
+ als STABLE bezeichnet, während
+ sie bei NetBSD und OpenBSD weiterhin RELEASE heißt.
+ Kleinere Änderungen, die sich nach einer Testphase im
+ CURRENT-Zweig als stabil erweisen, können ebenfalls
+ in die STABLE-Version einfließen.
+
+
+
+ Bei Linux werden hingegen zwei getrennte
+ Code-Bäume gepflegt: Eine stabile Version und eine
+ Entwicklerversion. Stabile Versionen haben an der zweiten
+ Stelle eine gerade Ziffer (2.0, 2.2 oder 2.4).
+ Entwicklerversionen haben an der zweiten Stelle eine ungerade
+ Ziffer (2.1, 2.3 oder 2.5). In jedem Fall folgt der
+ zweiten Ziffer noch eine dritte, welche die Version genauer
+ bezeichnet. Zusätzlich fügt jeder Verkäufer
+ einer Linux-Distribution selbst Programme und Werkzeuge hinzu.
+ Daher ist auch der Name der Distribution nicht unwichtig, da
+ dieser ebenfalls eine Versionsnummer enthält. So kann die
+ vollständige Beschreibung beispielsweise so aussehen:
+ TurboLinux 6.0 mit
+ Kernel 2.2.14
+
+
+
+ Welche BSD-Versionen gibt es überhaupt?
+
+ Im Gegensatz zu den zahlreichen Linux-Distributionen gibt es
+ nur drei frei verfügbare BSDs. Jedes BSD-Projekt
+ unterhält seinen eigenen Quellcode-Baum und seinen eigenen
+ Kernel. In der Praxis scheinen die Unterschiede im Code der
+ Anwenderprogramme aber geringer zu sein als bei Linux.
+
+ Es ist nicht einfach, die Ziele der einzelnen BSD-Projekte
+ genau zu trennen, da die Unterschiede eher subtiler Natur
+ sind:
+
+
+
+
+ FreeBSD will eine hohe Leistung erreichen, für
+ den Benutzer einfach in der Bedienung sein, und wird von
+ Internetanbietern bevorzugt eingesetzt. Es läuft
+ auf einer Vielzahl von Plattformen, darunter
+ i386-Systeme (PCs), Systeme mit einem
+ AMD 64-Bit-Prozessor, &ultrasparc;-Systeme,
+ Compaq Alpha-Systeme, sowie Systeme, die der
+ Spezifikation NEC PC-98 entsprechen. Das
+ FreeBSD-Projekt hat die mit Abstand größte
+ Anwenderzahl unter den frei verfügbaren
+ BSD-Systemen.
+
+
+
+ Bei NetBSD ist Portabilität das oberste Ziel:
+ Natürlich läuft NetBSD darauf.
+ NetBSD kann auf vielen verschiedenen Systemen, von Palmtops
+ bis hin zu großen Servern, installiert werden, und
+ wurde sogar schon im Raumfahrtprogramm der NASA eingesetzt.
+ Besonders für alte Nicht-Intel-Plattformen ist NetBSD
+ die erste Wahl.
+
+
+
+ Bei OpenBSD stehen die Sicherheit und sauberer Code im
+ Vordergrund. OpenBSD verbindet bei der Weiterentwicklung
+ des Systems Open Source-Konzepte mit rigorosen
+ code reviews. Dadurch
+ entsteht ein sehr sicheres System, das OpenBSD für
+ sicherheitsbewusste Unternehmen, Banken, Börsen
+ und die US-Regierung zu ersten Wahl macht. Auch OpenBSD
+ läuft, ähnlich wie NetBSD, auf vielen
+ verschiedenen Plattformen.
+
+
+
+ Es gibt noch zwei weitere BSD &unix; Systeme, die aber
+ nicht Open Source sind: BSD/OS sowie Apples
+ &macos; X:
+
+
+
+ BSD/OS ist das älteste, von 4.4BSD abstammende
+ Betriebssystem. Es ist zwar nicht Open Source,
+ Quellcode-Lizenzen können aber relativ günstig
+ erworben werden. Es weist viele Gemeinsamkeiten mit
+ FreeBSD auf.
+
+
+
+ Bei
+ &macos; X handelt es sich um die neueste
+ Version des Betriebssystems der &macintosh;-Linie von
+ Apple Computer Inc.'s.
+ Darwin,
+ der BSD-Kern des Betriebssystems ist als voll
+ funktionsfähiges Open Source-Betriebssystem für
+ x86- sowie PPC-Computer erhältlich. Die grafische
+ Oberfläche Aqua/Quartz und andere proprietäre
+ Anwendungen von &macos; X sind aber weiterhin
+ closed-source Software. Einige Darwin-Entwickler sind
+ auch FreeBSD-Committer, was auch für den umgekehrten
+ Fall gilt.
+
+
+
+
+
+ Worin unterscheidet sich die BSD-Lizenz von der GNU
+ Public License?
+
+ Linux steht unter der GNU General Public
+ License (GPL), die entworfen wurde, um closed-source
+ Software zu verhindern. Jede Software, die von einer Software
+ abgeleitet wurde, die unter der GPL steht, muss wieder unter
+ der GPL veröffentlicht werden. Auf Verlangen ist auch
+ der Quellcode zur Verfügung zu stellen. Die
+ BSD-Lizenz ist dagegen weniger restriktiv: Der
+ Quellcode muss nicht zur Verfügung gestellt werden, es
+ können also auch Binärdateien verbreitet werden.
+ Dieser Umstand ist besonders für Anwendungen im
+ Embedded-Bereich interessant.
+
+
+
+ Was sollte ich sonst noch wissen?
+
+ Da für BSD weniger Anwendungsprogramme verfügbar
+ waren als für Linux, wurde ein Softwarepaket entwickelt, das
+ die Ausführung von Linuxprogrammen unter BSD
+ ermöglicht. Dieses Paket enthält zwei Dinge:
+ Kernelmodifikationen zur korrekten Ausführung von
+ Linux-Systemaufrufen sowie Linuxkompatibilitätsdateien,
+ beispielsweise die C-Bibliothek von Linux. Unterschiede in der
+ Ausführungsgeschwindigkeit von Linuxanwendungen auf einem
+ Linuxrechner und einem vergleichbaren mit BSD ausgestatteten
+ Rechner sind in der Praxis so gut wie nicht feststellbar.
+
+ Die Alles-aus-einer-Hand-Natur von BSD
+ hat den Vorteil, dass Upgrades im Vergleich zu Linux häufig
+ leichter durchzuführen sind. BSD aktualisiert
+ Bibliotheken, indem es Kompatibilitätsmodule für
+ ältere Versionen der Bibliotheken bereitstellt. Daher ist
+ es möglich, auch mehrere Jahre alte Binärdateien ohne
+ Probleme auszuführen.
+
+
+
+ Was soll ich nun benutzen, BSD oder Linux?
+
+ Was heißt das nun alles für die Praxis? Wer
+ sollte BSD, wer Linux benutzen?
+
+ Diese Frage ist nicht einfach zu beantworten. Trotzdem
+ folgen nun einige Empfehlungen:
+
+
+
+ Wenn es nicht kaputt ist, fass' es nicht
+ an!: Wenn Sie schon ein frei verfügbares
+ Betriebssystem verwenden und damit glücklich sind,
+ gibt es eigentlich keinen vernünftigen Grund für
+ einen Wechsel.
+
+
+
+ BSD-Systeme, inbesondere FreeBSD, können eine
+ weitaus bessere Leistung als Linux-Systeme aufweisen. Diese
+ Aussage ist aber nicht allgemein gültig. In den
+ meisten Fällen sind die Leistungsunterschiede aber
+ gering oder gar nicht festzustellen. In bestimmten
+ Fällen kann auch Linux eine bessere Leistung
+ aufweisen.
+
+
+
+ In der Regel haben BSD-Systeme den Ruf,
+ zuverlässiger zu sein. Diese Aussage beruht auf der
+ reiferen Codebasis.
+
+
+
+ Die BSD-Lizenz kann attraktiver sein als
+ die GPL.
+
+
+
+ BSD-Systeme können die meisten Linuxprogramme
+ ausführen, während Linux keine BSD-Programme
+ ausführen kann. Viele BSD-Systeme können sogar
+ Programme von anderen &unix; ähnlichen Systemen
+ ausführen. Daraus könnte man ableiten, dass die
+ Migration auf ein BSD-System einfacher ist, als es bei
+ Linux der Fall wäre.
+
+
+
+
+
+ Wo gibt es Support, Serviceleistungen und Schulungen
+ für BSD?
+
+ BSDi hat BSD/OS von Anfang an unterstützt und hat
+ angekündigt, Supportverträge für FreeBSD
+ anzubieten.
+
+ Darüber hinaus finden sich auf den folgenden Seiten der
+ einzelnen Projekte Firmen, die Supportleistungen anbieten:
+ FreeBSD,
+ NetBSD,
+ und OpenBSD.
+
+
+
+
+
diff --git a/de_DE.ISO8859-1/articles/new-users/Makefile b/de_DE.ISO8859-1/articles/new-users/Makefile
new file mode 100644
index 0000000000..50a4126d7e
--- /dev/null
+++ b/de_DE.ISO8859-1/articles/new-users/Makefile
@@ -0,0 +1,24 @@
+#
+# The FreeBSD Documentation Project
+# The FreeBSD German Documentation Project
+#
+# $FreeBSD$
+# $FreeBSDde: de-docproj/articles/new-users/Makefile,v 1.2 2005/02/08 00:43:39 mheinen Exp $
+# basiert auf: 1.11
+#
+# Article: Informationen für &os;- und &unix;-Einsteiger
+
+DOC?= article
+
+FORMATS?= html
+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/new-users/article.sgml b/de_DE.ISO8859-1/articles/new-users/article.sgml
new file mode 100644
index 0000000000..76a483d0c5
--- /dev/null
+++ b/de_DE.ISO8859-1/articles/new-users/article.sgml
@@ -0,0 +1,1210 @@
+
+
+
+%articles.ent;
+]>
+
+
+
+ Informationen für &os;- und &unix;-Einsteiger
+
+
+
+ Annelise
+
+ Anderson
+
+
+ andrsn@andrsn.stanford.edu
+
+
+
+
+ 15. August 1997
+
+
+ &tm-attrib.freebsd;
+ &tm-attrib.ibm;
+ &tm-attrib.microsoft;
+ &tm-attrib.netscape;
+ &tm-attrib.opengroup;
+ &tm-attrib.general;
+
+
+
+ Wir gratulieren Ihnen zur Installation von &os;! Diese
+ Einführung ist für alle Personen gedacht, die &os;
+ und &unix; noch nicht kennen, und enthält daher auch einige
+ grundlegende Informationen. Es wird davon ausgegangen, dass
+ Sie FreeBSD 2.0.5 oder neuer in der von FreeBSD.org
+ veröffentlichten Form installiert haben sowie über
+ gute Kenntnisse von DOS/&windows; oder &os2; verfügen.
+
+ Übersetzt von Fabio Tosques.
+
+
+
+
+ An- und Abmelden
+
+ Melden Sie sich (wenn login: am
+ Bildschirm erscheint) als derjenige Benutzer, den Sie
+ während der Installation angelegt haben, oder als
+ root an. (Die FreeBSD-Installationsroutine
+ legt in jedem Fall einen Benutzer root an;
+ dieser darf auf dem System fast alles tun, einschließlich dem
+ Löschen von wichtigen Dateien. Seien Sie also vorsichtig, wenn
+ Sie sich als root anmelden.) Die Zeichen
+ &prompt.user; und &prompt.root; stellen im folgenden die
+ Eingabeaufforderung dar, wobei &prompt.user; für den
+ gewöhnlichen Benutzer und &prompt.root; für den Benutzer
+ root steht.
+
+ Um sich abzumelden, geben Sie
+
+
+ &prompt.root; exit
+
+
+ so oft wie nötig ein (und zwar bis wieder
+ login: erscheint). Drücken Sie nach jedem
+ Befehl die Enter-Taste und beachten Sie, dass
+ &unix; zwischen Groß- und Kleinschreibung unterscheidet –
+ exit und EXIT sind also
+ zwei verschiedene Befehle.
+
+ Um den Rechner herunterzufahren, geben Sie
+
+
+ &prompt.root; /sbin/shutdown -h now
+
+
+ ein.
+
+ Um den Rechner neu zu starten, geben Sie
+
+
+ &prompt.root; /sbin/shutdown -r now
+
+
+ ein, oder Sie rufen einfach
+
+
+ &prompt.root; /sbin/reboot
+
+
+ auf.
+
+ Sie können natürlich auch den Rechner mit
+ StrgAltEntf
+ neu starten. Warten Sie danach, bis der Neustart erfolgt ist.
+ Diese Tastenkombination ist in neueren FreeBSD-Versionen mit
+ /sbin/reboot identisch und viel besser als das
+ Drücken des Reset-Knopfes. Sie wollen das System ja sicher
+ nicht noch einmal neu installieren, oder?
+
+
+
+ Einen neuen Benutzer anlegen, der
+ root-Rechte erlangen kann
+
+ Falls Sie während der Installation des Systems keine
+ Benutzer angelegt haben und noch als root
+ angemeldet sind, sollten Sie mit
+
+
+ &prompt.root; adduser
+
+
+ einen neuen Benutzer anlegen.
+
+ Wenn Sie adduser das erste Mal
+ ausführen, werden Sie gefragt, ob Sie einige
+ Standardeinstellungen abspeichern möchten. Vielleicht
+ möchten Sie &man.csh.1; statt &man.sh.1; als
+ Default-Shell auswählen (falls sh
+ als Default-Shell angeboten wird). Diese Standardeinstellungen
+ sind in /etc/adduser.conf gespeichert und
+ können von Ihnen verändert werden.
+
+ Angenommen, Sie möchten den Benutzer
+ jack mit dem vollständigen Namen
+ Jack Benimble anlegen. Weisen Sie
+ jack auf jeden Fall ein Passwort zu (auch
+ Kinder, die auf der Tastatur spielen, können ein Problem
+ darstellen). Wenn Sie gefragt werden, ob
+ jack Mitglied in anderen Gruppen sein soll,
+ geben Sie wheel ein.
+
+
+ Login group is ``jack''. Invite jack into other groups: wheel
+
+
+ Dadurch können Sie sich als
+ jack anmelden, und mit &man.su.1;
+ root-Rechte erlangen. Dann werden Sie nie
+ wieder dafür kritisiert werden, dass Sie sich als
+ root am System anmelden.
+
+ Das Programm adduser kann jederzeit mit
+ StrgC
+ beendet werden. Am Schluß haben Sie die Möglichkeit,
+ die Einstellungen für den neuen Benutzer nochmals zu
+ kontrollieren oder diese mit n zu verwerfen.
+ Sie sollten noch einen zweiten Benutzer anlegen, damit Sie auch
+ dann auf Ihr System zugreifen können, wenn Sie die
+ Anmeldedaten von jack bearbeitet und dabei
+ einen Fehler gemacht haben.
+
+ Haben Sie alle Benutzer angelegt, geben Sie
+ exit ein, damit Sie sich als
+ jack anmelden können. Es ist generell
+ sinnvoll, wann immer möglich, als gewöhnlicher Benutzer
+ und nicht als der allmächtige Benutzer
+ root zu arbeiten.
+
+ Falls Sie schon einen Benutzer angelegt haben und diesem
+ die Möglichkeit einräumen wollen, mit
+ suroot-Rechte zu
+ erlangen, können Sie sich als root
+ anmelden und die Datei /etc/group anpassen.
+ Fügen Sie in der ersten Zeile (der Gruppe
+ wheel) den Benutzer
+ jack ein. Sie sollten auch den Umgang
+ mit dem Texteditor &man.vi.1; erlernen. Alternativ können
+ Sie auch den einfacher zu bedienenden Texteditor &man.ee.1;
+ verwenden, der auf aktuellen FreeBSD-Systemen automatisch
+ installiert wird.
+
+ Mit rmuser können Sie einen Benutzer
+ löschen.
+
+
+
+ Sich im System umsehen
+
+ Nachdem wir uns als gewöhnlicher Benutzer angemeldet
+ haben, sehen wir uns nun im System um und testen einige Befehle,
+ die uns den Zugriff auf die Hilfefunktion ermöglichen sowie
+ einige Informationen über unser System liefern.
+
+
+
+ id
+
+
+ Sagt uns, wer wir sind!
+
+
+
+
+ pwd
+
+
+ Zeigt uns, wo wir uns befinden, gibt also das aktuelle
+ Verzeichnis
+ (working directory) aus.
+
+
+
+
+ ls
+
+
+ Listet die Dateien im aktuellen Verzeichnis
+ auf.
+
+
+
+
+ ls
+
+
+ Listet Dateien im aktuellen Verzeichnis auf und
+ kennzeichnet ausführbare Dateien mit einem
+ *, Verzeichnisse mit einem
+ /, sowie symbolische Links mit
+ @.
+
+
+
+
+ ls
+
+
+ Listet Dateiem im Langformat
+ auf, dabei werden Größe, Datum und Rechte
+ angezeigt.
+
+
+
+
+ ls
+
+
+ Listet auch versteckte Dateien auf (so genannte
+ dot-Dateien). Falls Sie als
+ root angemeldet sind, werden die
+ dot-Dateien auch ohne die Option
+ angezeigt.
+
+
+
+
+ cd
+
+
+ Wechselt das Verzeichnis. cd
+ .. wechselt in der
+ Verzeichnishierarchie eine Stufe nach oben (beachten
+ Sie das Leerzeichen nach cd!).
+ cd /usr/local
+ wechselt dorthin.
+ cd ~ wechselt
+ wechselt in des Heimatverzeichnis des angemeldeten
+ Benutzers, in unserem Fall nach
+ /usr/home/jack. Geben Sie
+ cd /cdrom,
+ gefolgt von ls, ein, um herauszufinden,
+ ob Ihr CD-ROM-Laufwerk eingebunden ist und
+ funktioniert.
+
+
+
+
+ view
+ Dateiname
+
+
+ Zeigt den Inhalt von
+ Dateiname auf dem Bildschirm
+ an. Falls der Inhalt der Datei zu lang ist, und Sie nur
+ das Ende sehen, aktivieren Sie die
+ Rollen-Taste und drücken dann
+ die Bild hoch-Taste, um nach oben zu
+ scrollen. Sie können die
+ Rollen-Taste auch bei Manualpages
+ verwenden. Drücken Sie die
+ Rollen-Taste nochmals, um das Scrollen
+ zu beenden. Sie sollten sich auch einige der versteckten
+ Dateien in Ihrem Heimatverzeichnis mit
+ cat ansehen: cat
+ .cshrc, cat
+ .login, cat
+ .profile.
+
+
+
+
+ In .cshrc sind einige nützliche
+ Aliase für den Befehl ls definiert.
+ Dort können Sie auch zusätzliche Aliase definieren.
+ Um diese Aliase allen Benutzern zur Verfügung zu stellen,
+ müssen Sie diese in /etc/csh.cshrc,
+ der systemweiten Konfigurationsdatei von csh,
+ eintragen.
+
+
+
+ Hilfe und Informationen erhalten
+
+ Im folgenden Abschnitt erhalten Sie einige Tipps zur
+ Verwendung der Hilfefunktion. Text
+ steht dabei für etwas, das Sie eingeben müssen —
+ meistens einen Befehl oder einen Dateinamen.
+
+
+
+ apropos
+ text
+
+
+ Jeder Eintrag, der die Zeichenkette
+ text in der
+ whatis-Datenbank enthält,
+ wird aufgelistet.
+
+
+
+
+ man
+ text
+
+
+ Die Manualpage von
+ text. Manualpages sind
+ die Hauptinformationsquelle für &unix;-Systeme.
+ man ls zeigt
+ alle Möglichkeiten, wie ls
+ verwendet werden kann. Drücken Sie
+ Enter um weiterzublättern,
+ StrgB,
+ um eine Seite zurück zu blättern,
+ StrgF,
+ um eine Seite vorwärts zu blättern oder
+ StrgC
+ zum Beenden.
+
+
+
+
+ which
+ text
+
+
+ Sagt Ihnen, in welchem Verzeichnis der Befehl
+ text im Pfad des Benutzers
+ gefunden wird.
+
+
+
+
+ locate
+ text
+
+
+ Alle Verzeichnisse, welche die Zeichenkette
+ text enthalten, werden
+ ausgegeben.
+
+
+
+
+ whatis
+ text
+
+
+ Gibt aus, wofür das Kommando
+ text steht und welche
+ Handbuchseite(n) es dafür gibt.
+ whatis * liefert Ihnen Informationen
+ zu allen ausführbaren Dateien des aktuellen
+ Verzeichnisses.
+
+
+
+
+ whereis
+ text
+
+
+ Gibt den absoluten Pfad der Datei
+ text aus.
+
+
+
+
+ Rufen Sie nun whatis
+ mit einigen nützlichen Befehlen wie
+ cat, more,
+ grep, mv,
+ find, tar,
+ chmod, chown,
+ date, und script
+ auf. more funktioniert genau so
+ wie unter DOS und zeigt den Inhalt der Datei seitenweise an.
+ ls -l | more entspricht daher
+ more Dateiname.
+ Das *-Zeichen dient als Platzhalter,
+ ls w* zeigt daher alle Dateien an, die mit
+ w beginnen.
+
+ Funktioniert der eine oder andere Aufruf bei Ihnen nicht?
+ Sowohl &man.locate.1;, als auch &man.whatis.1; sind von
+ einer Datenbank abhängig, die wöchentlich aktualisiert
+ wird. Falls Ihr Rechner nicht ständig läuft, können
+ Sie die täglichen, wöchentlichen und monatlichen
+ Aktualisierungen auch manuell starten. Melden Sie sich dazu als
+ root an. Warten Sie jeweils auf das Ende
+ eines Befehls, bevor Sie den nächsten Befehl eingeben.
+
+
+ &prompt.root; periodic daily
+output omitted
+&prompt.root; periodic weekly
+output omitted
+&prompt.root; periodic monthly
+output omitted
+
+
+ Diese Befehle sind zwar Teil der Systemverwaltung, als
+ alleiniger Benutzer eines &unix;-Systems sind Sie aber auch der
+ Administrator des Systems. Sie müssen sich nur als
+ root anmelden, wenn Sie das System
+ verwalten möchten. Eine Information, die leider in
+ vielen dicken Büchern über &unix; vergessen wird,
+ die sich lieber den Pulldown-Menüs und Window-Managern
+ widmen. Empfehlenswerte Bücher zur
+ &unix;-Systemadministration sind das
+ UNIX System Administration Handbook
+ von Evi Nemeth et.al. (Prentice-Hall, 1995, ISBN 0-13-15051-7,
+ die zweite Ausgabe hat ein rotes Cover), oder
+ Essential System Administration von
+ Æleen Frisch (O'Reilly & Associates, 2002,
+ ISBN 0-596-00343-9).
+
+
+
+ Textdateien bearbeiten
+
+ Um Ihr System konfigurieren zu können, müssen Sie
+ häufig Textdateien bearbeiten. Die meisten
+ Konfigurationsdateien befinden sich im Verzeichnis
+ /etc. Um diese editieren zu können,
+ müssen Sie mit su zu
+ root werden. Sie können den einfachen
+ Editor ee verwenden, auf lange Sicht lohnt es
+ sich aber, die Bedienung von vi zu erlernen.
+ Falls Sie die Systemquellen installiert haben, befindet sich
+ unter /usr/src/contrib/nvi/docs/tutorial
+ ein ausgezeichnetes Tutorial zu vi.
+
+ Bevor Sie eine Datei bearbeiten, sollten Sie eine
+ Sicherheitskopie der Datei anlegen. Wenn Sie beispielsweise
+ /etc/rc.conf bearbeiten möchten,
+ wechseln Sie mit cd /etc nach
+ /etc und geben Folgendes ein:
+
+
+ &prompt.root; cp rc.conf rc.conf.orig
+
+
+ Dadurch wird eine Kopie von rc.conf
+ mit dem Namen rc.conf.orig angelegt, mit
+ der Sie notfalls das Original wiederherstellen können,
+ indem Sie etc.conf.orig nach
+ etc.conf kopieren. Noch besser ist es,
+ die Datei zuerst zu verschieben (umzubenennen) und dann zu
+ kopieren:
+
+
+ &prompt.root; mv rc.conf rc.conf.orig
+&prompt.root; cp rc.conf.orig rc.conf
+
+
+ weil bei der Verwendung von mv das Datum
+ und der Besitzer der Datei erhalten bleiben. Danach können
+ Sie die Datei rc.conf bearbeiten.
+ Möchten Sie die Originaldatei wiederherstellen, geben
+ Sie mv rc.conf rc.conf.myedit (falls
+ Sie die bearbeitete Version erhalten möchten), gefolgt
+ von:
+
+
+ &prompt.root; mv rc.conf.orig rc.conf
+
+
+ ein, um den Originalzustand wiederherzustellen.
+
+ Um eine Datei zu bearbeiten, geben Sie
+
+
+ &prompt.root; vi filename
+
+
+ ein.
+
+ Innerhalb des Textes können Sie sich mit den
+ Pfeiltasten bewegen. Mit der Esc-Taste
+ wechselt vi in den Kommandomodus. Einige
+ der wichtigsten Kommandos sind:
+
+
+
+ x
+
+
+ löscht den Buchstaben links vom Cursor
+
+
+
+
+ dd
+
+
+ löscht die komplette Zeile, auch wenn diese
+ am Bildschirm umgebrochen wird.
+
+
+
+
+ i
+
+
+ fügt Text an der Cursorposition ein.
+
+
+
+
+ a
+
+
+ fügt Text rechts vom Cursor ein.
+
+
+
+
+ Nachdem Sie i oder
+ a eingegeben haben, können Sie also
+ die Datei bearbeiten. Mit Esc kommen Sie
+ wieder in den Kommandomodus, wo Sie beispielsweise
+
+
+
+ :w
+
+
+ eingeben, um Ihre Änderungen zu
+ speichern und mit vi
+ weiterarbeiten können.
+
+
+
+
+ :wq
+
+
+ Speichern und Beenden.
+
+
+
+
+ :q!
+
+
+ Beenden, ohne die Änderungen zu
+ speichern.
+
+
+
+
+ /text
+
+
+ bewegt den Cursor an die Stelle des ersten
+ Vorkommens von text;
+ /Enter (die
+ Enter-Taste) findet dann das nächste Vorkommen von
+ text.
+
+
+
+
+ G
+
+
+ bewegt den Cursor ans Ende der Datei.
+
+
+
+
+ nG
+
+
+ bewegt den Cursor in die Zeile
+ n der Datei, wobei
+ n für eine Zahl
+ steht.
+
+
+
+
+ CtrlL
+
+
+ zeichnet den Bildschirm neu.
+
+
+
+
+ Ctrlb und
+ Ctrlf
+
+
+ eine Bildschirmseite zurück oder vorwärts
+ gehen, analog zu more und
+ view.
+
+
+
+
+ Am besten sammeln Sie praktische Erfahrungen mit
+ vi in Ihrem Heimatverzeichnis, indem Sie
+ eine Datei anlegen und danach bearbeiten, die Datei
+ speichern und wieder aufrufen. vi
+ birgt wirklich einige Überraschungen, da es sich um ein
+ komplexes Programm handelt. Manchmal werden Sie versehentlich
+ ein Kommando ausführen, das etwas anderes tut, als Sie
+ erwarten. (vi ist viel leistungsfähiger
+ als der DOS-Editor EDIT. Rufen Sie doch einmal das Kommando
+ :r auf.) Drücken Sie die
+ Esc-Taste ruhig öfter als einmal, um sicher
+ zu gehen, dass Sie sich im Kommandomodus befinden und arbeiten Sie
+ in diesem Modus weiter, falls Probleme auftreten. Speichern Sie
+ die Datei immer wieder mit :w, und geben Sie
+ :q! ein, um von vorne zu beginnen (genauer
+ gesagt, vom letzten :w-Kommando), falls dies
+ nötig sein sollte.
+
+ Danach können Sie mit cd nach
+ /etc wechseln, mit su
+ zu root werden, und mit
+ vi/etc/group
+ bearbeiten und einen Benutzer zur Gruppe
+ wheel hinzufügen, damit dieser
+ mit suroot-Rechte
+ erlangen kann. Fügen Sie dafür einfach ein Komma und
+ den Login-Namen des Benutzers an das Ende der ersten Zeile an,
+ drücken Sie Esc und :wq
+ (um die Datei zu speichern und den vi zu
+ verlassen). Sehr effizient, nicht wahr? (Sie haben hoffentlich
+ kein Leerzeichen nach dem Komma eingefügt?)
+
+
+
+ Dateien mit Hilfe von DOS ausdrucken
+
+ Bis zu diesem Zeitpunkt haben Sie wahrscheinlich noch keinen
+ Drucker eingerichtet, daher zeigen wir Ihnen, wie man eine Datei
+ aus einer Manualpage erzeugt, diese auf eine Diskette kopiert und
+ dann unter DOS ausdruckt. Möchten Sie etwa nachlesen, wie
+ Sie Dateirechte verändern können (was sehr wichtig ist),
+ rufen Sie mit man chmod die entsprechende
+ Manualpage auf. Der Befehl
+
+
+ &prompt.user; man chmod | col -b > chmod.txt
+
+
+ entfernt alle Formatierungen und leitet die Ausgabe der
+ Manualpage nach chmod.txt um, statt
+ diese auf dem Bildschirm anzuzeigen. Legen Sie danach eine
+ DOS-formatierte Diskette in Ihr Diskettenlaufwerk
+ a ein und geben Sie
+ su ein, um zu root
+ zu werden. Tippen Sie nun
+
+
+ &prompt.root; /sbin/mount -t msdos /dev/fd0 /mnt
+
+
+ ein, um das Diskettenlaufwerk unter
+ /mnt einzuhängen.
+
+ Da Sie ab nun keine root-Rechte mehr
+ benötigen, werden Sie durch die Eingabe von
+ exit wieder zu jack
+ und wechseln dann in das Verzeichnis, in dem sich
+ chmod.txt befindet, und kopieren diese Datei
+ mit
+
+
+ &prompt.user; cp chmod.txt /mnt
+
+
+ auf Ihre Diskette. Zeigen Sie mit
+ ls /mnt den Inhalt von
+ /mnt an. Als Ergebnis sollten Sie
+ chmod.txt erhalten.
+
+ Leiten Sie nun die Ausgabe von /sbin/dmesg
+ in eine Datei um, indem Sie
+
+
+ &prompt.user; /sbin/dmesg > dmesg.txt
+
+
+ eingeben und diese Datei ebenfalls auf die Diskette kopieren.
+ Mit /sbin/dmesg können Sie alle
+ während des Systemstarts angezeigten Meldungen ausgeben.
+ Es ist wichtig, dass Sie diese Meldungen verstehen, da hier
+ angezeigt wird, welche Hardware von FreeBSD beim Systemstart
+ gefunden wurde. Falls Sie Fragen auf der Mailingliste
+ &a.de.questions; oder im USENET stellen (etwa FreeBSD erkennt
+ mein Bandlaufwerk nicht, was soll ich tun?), wird man Sie
+ fragen, was dmesg ausgibt.
+
+ Anschließend können Sie das Diskettenlaufwerk
+ wieder aus dem Verzeichnisbaum aushängen (unmounten), um
+ die Diskette zu entfernen. Dies funktioniert natürlich
+ nur als root:
+
+
+ &prompt.root; /sbin/umount /mnt
+
+
+ Danach starten Sie DOS (&windows;). Kopieren Sie die
+ Dateien in ein Verzeichnis. Nun öffnen Sie die Dateien
+ mit DOS EDIT, &windows; Notepad, Wordpad oder einem anderen
+ Schreibprogramm, speichern die Datei, falls Sie kleinere
+ Änderungen vornehmen wollen, und drucken die Datei unter
+ DOS oder Windows aus. Manualpages werden unter DOS am besten
+ mit print ausgedruckt.
+
+ Um Ihren Drucker unter FreeBSD einzurichten, muss ein
+ entsprechender Eintrag in
+ /etc/printcap und ein Spool-Verzeichnis
+ unter /var/spool/output angelegt werden.
+ Falls der Drucker an lpt0 (entspricht
+ LPT1 unter DOS) angeschlossen ist, müssen Sie
+ wahrscheinlich nur nach /var/spool/output
+ wechseln und (als root) das Verzeichnis
+ lpd mit mkdir lpd
+ anlegen, falls es nicht schon vorhanden ist. Danach sollte
+ sich der Drucker, wenn er eingeschaltet ist, beim Booten melden
+ und lp oder lpr sollte
+ eine Datei zum Drucker schicken und ausdrucken. Ob die Datei
+ schließlich ausgedruckt wird, hängt von der
+ Konfiguration des Druckers ab, die im FreeBSD Handbuch
+ ausführlich beschrieben ist.
+
+
+
+
+ Weitere nützliche Befehle
+
+
+
+ df
+
+
+ zeigt den freien Speicherplatz und eingehängte
+ (gemountete) Partitionen
+ an.
+
+
+
+
+ ps aux
+
+
+ zeigt laufende Prozesse an. ps ax
+ schränkt diese Ausgabe etwas ein.
+
+
+
+
+ rm
+ dateiname
+
+
+ löscht
+ dateiname.
+
+
+
+
+ rm -R
+ dir
+
+
+ löscht das Verzeichnis
+ dir und alle
+ Unterverzeichnisse — Vorsicht!
+
+
+
+
+ ls -R
+
+
+ listet Dateien im aktuellen Verzeichnis und allen
+ Unterverzeichnissen auf. Die Variante
+ ls -AFR > where.txt kann dazu
+ verwendet werden, um eine Liste aller Dateien unter
+ / und (separat) unter
+ /usr zu erhalten. Allerdings
+ gibt es bessere Möglichkeiten, bestimmte Dateien
+ zu finden.
+
+
+
+
+ passwd
+
+
+ zum Ändern des Passworts eines Benutzers
+ (oder von root).
+
+
+
+
+ man hier
+
+
+ die Manualpage des
+ &unix;-Dateisystems.
+
+
+
+
+ Nutzen Sie find, um unter
+ /usr oder anderen
+ Verzeichnissen nach dateiname zu
+ suchen:
+
+
+ &prompt.user; find /usr -name "dateiname>"
+
+
+ Als Platzhalter können Sie bei
+ "dateiname"
+ einen * verwenden.
+ (dateiname muss dabei in
+ Hochkommata stehen.) Weisen Sie find an,
+ in / statt in /usr
+ zu suchen, werden alle eingehängten Dateisysteme
+ durchsucht, CD-ROM und DOS-Partitionen
+ eingeschlossen.
+
+ Ein ausgezeichnetes Buch, in dem sämtliche
+ &unix;-Befehle beschrieben werden, ist
+ Unix for the Impatient von
+ Abrahams & Larson (2nd ed., Addison-Wesley, 1996).
+ Auch im Internet finden Sie viele Informationen zu
+ &unix;.
+
+
+
+ Die nächsten Schritte
+
+ Sie sollten nun alle wichtigen Werkzeuge kennen, um sich auf Ihrem
+ System zurechtzufinden, Dateien zu editieren und alles am Laufen
+ zu halten. Viele nützliche Informationen finden sich im
+ FreeBSD-Handbuch (das vielleicht schon auf Ihrer
+ Festplatte ist) und auf der FreeBSD Webseite.
+ Viele Softwarepakte und Ports sind sowohl auf der FreeBSD-CD-ROM
+ als auch auf der Webseite verfügbar. Im Handbuch finden Sie
+ Hinweise, wie Sie mit diesen arbeiten können. Pakete
+ installieren Sie mit
+ pkg_add /cdrom/packages/All/Paketname,
+ wobei Paketname für den
+ Dateinamen des Paketes steht. Auf der CD-ROM finden Sie auch eine
+ Liste der Pakete und Ports inklusive einer kurzen Beschreibung.
+ Lesen Sie dazu
+ cdrom/packages/index,
+ cdrom/packages/index.txt sowie
+ cdrom/ports/index. Eine
+ ausführliche Beschreibung den jeweiligen Ports finden Sie
+ in /cdrom/ports/*/*/pkg-descr, wobei die
+ *-Zeichen für die Kategorie und das
+ Unterverzeichnis des jeweiligen Programms stehen.
+
+ Falls Ihnen die Beschreibung zur Installation von Ports
+ von der CD-ROM im Handbuch zu kompliziert erscheint (mit
+ Programmen wie lndir und anderen), finden Sie
+ hier eine alternative Beschreibung, die in der Regel problemlos
+ funktioniert:
+
+ Suchen Sie zuerst den Port, den Sie installieren möchten,
+ etwa kermit. Auf der CD-ROM sollte dafür
+ ein entsprechendes Verzeichnis vorhanden sein. Kopieren Sie
+ dieses Unterverzeichnis nach /usr/local
+ (ein guter Platz für Programme, die hinzugefügt werden
+ und allen Benutzern zugänglich sein sollen):
+
+
+ &prompt.root; cp -R /cdrom/ports/comm/kermit /usr/local
+
+
+ Danach wird das Verzeichnis
+ /usr/local/kermit angelegt, in dem sich alle
+ Dateien des Unterverzeichnisses kermit der
+ CD-ROM finden.
+
+ Danach legen Sie mit mkdir
+ das Verzeichnis /usr/ports/distfiles an,
+ falls dieses noch nicht existiert. Suchen Sie dann in
+ /cdrom/ports/distfiles nach der Datei,
+ die dem Namen des Ports gleicht, den Sie installieren
+ möchten. Kopieren Sie diese Datei nach
+ /usr/ports/distfiles. Unter neueren
+ Versionen können Sie diesen Schritt überspringen, da
+ FreeBSD dies automatisch erledigt.
+
+ Wechseln Sie nun mit cd nach
+ /usr/local/kermit. In diesem Verzeichnis
+ befindet sich bereits ein Makefile. Geben Sie
+ hier Folgendes ein:
+
+
+ &prompt.root; make all install
+
+
+ Während der Installation wird sich der Port
+ alle gepackten Dateien via FTP holen, die zur Installation
+ benötigt werden, aber nicht auf der CD-ROM oder unter
+ /usr/ports/distfiles vorhanden sind.
+ Falls Sie noch keine Internetverbindung haben und die
+ benötigten Dateien nicht in
+ /cdrom/ports/distfiles vorhanden sind,
+ müssen Sie sich die Dateien über einem anderen Rechner
+ besorgen und manuell nach /usr/ports/distfiles
+ kopieren (entweder über eine Diskette oder durch das
+ Einhängen einer DOS-Partition. Sehen Sie im
+ Makefile (mit cat,
+ more oder view) nach, wo
+ die Dateien zu finden sind (meist auf der Hauptseite des Programms)
+ und besorgen Sie sich die Datei. Laden Sie die Datei unter DOS
+ herunter, wird der Dateiname möglicherweise gekürzt. In
+ diesem Fall müssen Sie, nachdem die Datei nach
+ /usr/ports/distfiles kopiert wurde, den
+ ursprünglichen Namen mit mv
+ wiederherstellen, damit die Datei von der
+ Installationsroutine gefunden werden kann. Laden Sie die Datei
+ mit FTP herunter, müssen Sie den Binär-Modus verwenden.
+ Nun wechseln Sie zurück nach
+ /usr/local/kermit (hier befindet sich ja
+ das zur Installation nötige Makefile)
+ und installieren das Programm mit
+ make all install.
+
+ Beim Installieren von Ports oder Paketen kann es auch
+ passieren, dass andere Programme benötigt werden. Falls
+ die Installation beispielsweise mit
+ can't find unzip oder einer
+ ähnlichen Meldung abbricht, müssen Sie zuerst das
+ unzip-Paket oder den entsprechende Port installieren, bevor
+ Sie mit der Installation fortfahren können.
+
+ Ist die Installation abgeschlossen, geben Sie
+ rehash ein, damit FreeBSD den Pfad neu
+ einliest und weiß, wo welche Programme zu finden sind.
+ (Falls beim Ausführen von whereis oder
+ which viele Fehlermeldungen wie
+ path not found auftreten, müssen
+ Sie die Pfad-Anweisungen in Ihrer .cshrc
+ im Heimatverzeichnis erweitern. Die Pfad-Anweisung tut unter
+ &unix; dasselbe wie unter DOS. Das aktuelle Verzeichnis
+ ist allerdings aus Sicherheitsgründen nicht im
+ voreingestellten Ausführungspfad enthalten. Befindet
+ sich die auszuführende Datei im aktuellen Verzeichnis,
+ muss ./ vor dem Befehl eingegeben werden,
+ (wobei nach dem Slash kein Leerzeichen stehen darf), damit
+ die Datei ausgeführt wird.)
+
+ Vielleicht möchten Sie auch die neueste Version
+ des &netscape;-Browsers (zu finden auf der
+ FTP-Seite von
+ &netscape;) installieren, von der es auch eine FreeBSD-Version
+ gibt. Dazu müssen Sie allerdings das X Window-System
+ installiert haben. Nach dem Herunterladen verwenden Sie
+ gunzip dateiname
+ und
+ tar xvf dateiname,
+ um die Datei zu entpacken. Danach kopieren Sie die
+ Binärdatei nach /usr/local/bin oder ein
+ anderes Verzeichnis Ihres Pfades, und geben abschließend
+ rehash ein. Fügen Sie dann
+ in /etc/csh.cshrc, der systemweiten
+ Konfigurationsdatei von csh, folgende
+ Zeilen ein:
+
+
+ setenv XKEYSYMDB /usr/X11R6/lib/X11/XKeysymDB
+setenv XNLSPATH /usr/X11R6/lib/X11/nls
+
+
+ Dabei wird davon ausgegangen, dass
+ XKeysymDB und das Verzeichnis
+ nls sich unter
+ /usr/X11R6/lib/X11 befinden. Ist dies
+ auf Ihrem System nicht der Fall, müssen Sie diese finden
+ und dorthin kopieren.
+
+ Falls Sie &netscape; schon als Port von der CD-ROM oder
+ über FTP installiert haben, achten Sie unbedingt
+ darauf, nicht versehentlich
+ /usr/local/bin/netscape durch die neue
+ Binärdatei zu ersetzen, da es sich bei dieser Datei nur
+ um ein Shell-Skript handelt, das die Umgebungsvariablen für
+ Sie setzt. Nennen Sie die neue Binärdatei stattdessen
+ besser netscape.bin und ersetzen Sie die
+ alte Version
+ /usr/local/netscape/netscape.
+
+
+
+ Die Arbeitsumgebung
+
+ Die Shell ist das wichtigste Programm Ihrer
+ Arbeitsumgebung. Unter DOS heißt die Shell command.com.
+ Die Shell interpretiert die Befehle, die Sie auf der
+ Kommandozeile eingeben und kommuniziert so mit dem Rest des
+ Betriebssystems. Sie können auch Shellskripte schreiben,
+ die den DOS-Batchdateien ähnlich sind. Es handelt sich
+ dabei um eine Folge von Befehlen, die hintereinander
+ ausgeführt werden.
+
+ Zwei Shells werden von FreeBSD automatisch installiert:
+ csh und sh.
+ csh ist für die Arbeit auf der
+ Kommandozeile komfortabler, Skripten sollten allerdings für
+ sh (oder für
+ bash) geschrieben werden. Mit
+ echo $SHELL können Sie herausfinden,
+ welche Shell benutzt wird.
+
+ Die csh-Shell ist zwar nicht schlecht,
+ aber die tcsh-Shell kann alles, was die
+ csh kann und einiges mehr. Sie erlaubt es
+ Ihnen, ausgeführte Befehle mit den Pfeiltasten wieder
+ aufzurufen und diese sogar zu verändern. Dateinamen oder
+ Befehle können mit der Tabulator-Taste automatisch
+ vervollständigt werden (csh nutzt
+ dafür ESC) und mit
+ cd - können Sie schnell in das
+ zuletzt verwendete Verzeichnis wechseln. Auch der Prompt
+ lässt sich unter der tcsh-Shell
+ wesentlich einfacher anpassen. All diese Eigenschaften
+ erleichtern den Umgang mit dem Betriebssystem.
+
+ Wollen Sie eine neue Shell installieren, gehen Sie wie
+ folgt vor:
+
+
+
+ Installieren Sie die Shell als Port oder Paket genau
+ so, wie Sie jedes andere Programm als Port oder Paket
+ installieren würden. Rufen Sie dann
+ rehash sowie
+ which tcsh auf (wir nehmen hier an,
+ dass Sie tcsh installieren wollen),
+ um sicher zu gehen, dass alles korrekt installiert
+ wurde.
+
+
+
+ Als root editieren Sie nun
+ /etc/shells, und fügen eine
+ Zeile für die neue Shell ein, in unserem Fall also
+ /usr/local/bin/tcsh. Danach speichern
+ Sie die Datei (Einige Ports erledigen diesen Schritt
+ automatisch für Sie.).
+
+
+
+ Nutzen Sie chsh, um
+ tcsh dauerhaft als Ihre Shell zu
+ definieren. Alternativ geben Sie einfach
+ tcsh ein, ohne sich neu am System
+ anzumelden.
+
+
+
+
+ Bei früheren Versionen von FreeBSD und einigen
+ anderen Versionen von &unix; traten Probleme auf,
+ wenn root eine andere Shell
+ als sh oder csh
+ zugewiesen wurde; sie hatten dann keine funktionierende Shell,
+ wenn das System im Single-User-Modus ausgeführt wurde.
+ Die Lösung besteht darin, su -m
+ einzugeben, um root zu werden, weil
+ damit root die tcsh
+ zugewiesen wird, da diese Shell Teil der Umgebung ist. Dies
+ kann auch fest als Alias in .tcshrc
+ eingetragen werden:
+
+ alias su su -m
+
+
+ Wenn tcsh startet, werden
+ /etc/csh.cshrc und
+ /etc/csh.login eingelesen (analog zur
+ csh). Ebenfalls eingelesen werden
+ .login und .cshrc
+ des Heimatverzeichnisses, falls .tcshrc
+ nicht gefunden wurde. Sie können auch
+ einfach .cshrc nach
+ .tcshrc kopieren.
+
+ Da tcsh nun installiert ist, kann
+ der Prompt angepasst werden. Details dazu finden Sie in
+ &man.tcsh.1;. Die hier vorgeschlagene Zeile können Sie
+ in Ihre .tcshrc eintragen. Dadurch wird
+ angezeigt, wie viele Befehle bereits eingegeben wurden.
+ Außerdem erhalten Sie die aktuelle Uhrzeit sowie das
+ aktuelle Arbeitsverzeichnis. Für den
+ gewöhnlichen Benutzer wird ein > und
+ für root ein #
+ ausgegeben. Dabei handelt es sich um die Standardeinstellung
+ von tcsh:
+
+ set prompt = "%h %t %~ %# "
+
+ Diese Zeile sollte an derselben Stelle eingefügt
+ werden, wie die vorhandene "set prompt" Zeile oder nach
+ "if($?prompt) then". Kommentieren Sie die alte Zeile aus,
+ damit diese notfalls wieder benutzt werden kann.
+ Vergessen Sie auch auf keinen Fall die Leerzeichen und
+ Hochkommata. .tcshrc wird neu
+ eingelesen, wenn Sie source .tcshrc
+ eingeben.
+
+ Eine Liste aller Umgebungsvariablen erhalten Sie,
+ wenn Sie am Prompt env eingeben. Sie sehen
+ dann den Default-Editor, -Pager, -Terminaltyp und viele andere
+ Umgebungsvariablen. Falls Sie sich von einem entfernten Rechner
+ anmelden und ein Programm nicht starten können, weil das
+ Terminal dazu nicht in der Lage ist, kann die Eingabe von
+ setenv TERM vt100 sehr hilfreich sein.
+
+
+
+ Einige abschließende Bemerkungen
+
+ Als root können Sie das
+ CD-ROM-Laufwerk mit /sbin/umount /cdrom
+ abhängen, eine andere CD-ROM einlegen und mit
+ /sbin/mount_cd9660 /dev/cd0a /cdrom wieder
+ einhängen (falls cd0a der Devicename
+ Ihres CD-ROM-Laufwerkes ist). Bei neueren FreeBSD-Versionen
+ muss dafür nur /sbin/mount /cdrom
+ eingegeben werden.
+
+ Das Live-Filesystem (die zweite FreeBSD-CD-ROM) kann hilfreich
+ sein, wenn auf Ihrem System nur begrenzt Speicherplatz vorhanden
+ ist. Was genau auf dieser Live-CD enthalten ist, variiert von
+ Ausgabe zu Ausgabe. Vielleicht können verschiedene Spiele
+ von CD-ROM gespielt werden. Dazu muss aber auch
+ lndir vorhanden sein, damit diese Programme
+ wissen, wo sie die von ihnen benötigten Dateien finden, da
+ sich diese unter /cdrom und nicht unter
+ /usr und den entsprechenden
+ Unterverzeichnissen befinden, wie es diese Programme erwarten.
+ Lesen Sie dazu auch &man.lndir.1;.
+
+
+
+ Kommentare
+
+ Falls Sie diese einführende Anleitung benutzen,
+ würde es mich interessieren, ob Dinge schlecht erklärt
+ sind, was noch ergänzt werden sollte, und ob Ihnen diese
+ Einführung geholfen hat. Ich danke Eugene W. Stark,
+ Informatikprofessor am SUNY-Stony Brook, sowie John Fieber
+ für ihre hilfreichen Kommentare.
+
+ Annelise Anderson,
+ andrsn@andrsn.stanford.edu
+
+
+
+
diff --git a/de_DE.ISO8859-1/books/faq/book.sgml b/de_DE.ISO8859-1/books/faq/book.sgml
index 754c30f02e..677d1707bc 100644
--- a/de_DE.ISO8859-1/books/faq/book.sgml
+++ b/de_DE.ISO8859-1/books/faq/book.sgml
@@ -1,14426 +1,14429 @@
%books.ent;
]>
Häufig gestellte Fragen zu FreeBSD 3.X,
4.X, 5.X und 6.XFrequently Asked Questions für FreeBSD 3.X,
4.X, 5.X und 6.XThe FreeBSD German Documentation
ProjectDeutsche Übersetzung von Robert S. F.
Drehmel, Dirk Gouders und Udo Erdelhoff
- $FreeBSDde: de-docproj/books/faq/book.sgml,v 1.520 2005/01/16 17:22:50 mheinen Exp $
+ $FreeBSDde: de-docproj/books/faq/book.sgml,v 1.522 2005/02/15 17:02:06 jkois Exp $19951996199719981999200020012002200320042005The FreeBSD Documentation Project200020012002200320042005The FreeBSD German Documentation Project
&bookinfo.legalnotice;
&tm-attrib.freebsd;
&tm-attrib.3com;
&tm-attrib.adobe;
&tm-attrib.creative;
&tm-attrib.cvsup;
&tm-attrib.ibm;
&tm-attrib.ieee;
&tm-attrib.intel;
&tm-attrib.iomega;
&tm-attrib.linux;
&tm-attrib.microsoft;
&tm-attrib.mips;
&tm-attrib.netscape;
&tm-attrib.opengroup;
&tm-attrib.oracle;
&tm-attrib.sgi;
&tm-attrib.sparc;
&tm-attrib.sun;
&tm-attrib.usrobotics;
&tm-attrib.xfree86;
&tm-attrib.general;
Dies ist die FAQ für die FreeBSD-Versionen 3.X,
4.X, 5.X und 6.X. Alle Einträge sollten für FreeBSD
ab Version 3.0 relevant sein, andernfalls wird darauf explizit
hingewiesen. Falls Sie daran
interessiert sein sollten, an diesem Projekt mitzuhelfen,
senden Sie eine Mail an die Mailingliste &a.de.translators;. Die
aktuelle Version dieses Dokuments ist ständig auf dem
FreeBSD
World-Wide-Web-Server verfügbar. Es kann auch
per HTTP als eine große HTML-Datei heruntergeladen werden oder
als Textdatei, im &postscript;, PDF- und anderen Formaten vom
FreeBSD
FTP-Server. Sie können die FAQ auch
durchsuchen.EinleitungWillkommen zur FreeBSD 3.X-6.X FAQ!Wie auch bei den Usenet FAQs üblich, wird mit diesem
Dokument beabsichtigt, die am häufigsten gestellten Fragen
bezüglich des Betriebssystems FreeBSD zu erfassen und sie
natürlich auch zu beantworten. Obwohl FAQs
ursprünglich lediglich dazu dienen sollten, die
Netzbelastung zu reduzieren und das ständige Wiederholen
derselben Fragen zu vermeiden, haben sie sich als wertvolle
Informationsquellen etabliert.Wir haben uns die größte Mühe gegeben, diese
FAQ so lehrreich wie möglich zu gestalten; falls Sie
irgendwelche Vorschläge haben, wie sie verbessert werden
kann, senden Sie diese bitte an den &a.de.translators;.Was ist FreeBSD?FreeBSD ist, kurz gesagt, ein &unix; ähnliches
Betriebssystem für die Plattformen Alpha/AXP, AMD64
sowie Intel EM64T, &i386;, IA-64, PC-98 und &ultrasparc;,
das auf der 4.4BSD-Lite-Release
der University of California at Berkeley (UCB) basiert;
außerdem flossen einige Erweiterungen aus der
4.4BSD-Lite2-Release mit ein. Es basiert
außerdem indirekt auf der von William Jolitz unter
dem Namen 386BSD herausgebrachten
Portierung der Net/2-Release der UCB auf
die &i386;-Plattform - allerdings ist nur wenig vom
386BSD-Code übriggeblieben. Eine umfassendere
Beschreibung darüber, was FreeBSD ist und wie Sie es
für Ihre Zwecke verwenden können, finden Sie auf
den Internetseiten des
FreeBSD Projects.Unternehmen, Internet Service Provider, Forscher,
Computerfachleute, Studenten und Privatnutzer auf der
ganzen Welt benutzen FreeBSD für die Arbeit, die
Ausbildung oder zur Freizeitgestaltung.Ausführlichere Informationen zu FreeBSD, finden
Sie im FreeBSD
Handbuch.Welches Ziel hat das FreeBSD-Projekt?Die Ziel von FreeBSD ist es, Software zur Nutzung
für beliebige Zwecke, bedingungslos zur
Verfügung zu stellen. Viele von uns haben
erheblich zur Erstellung des Codes (und zum Projekt)
beigetragen und hätten jetzt oder in Zukunft
sicherlich nichts gegen einen geringen finanziellen
Ausgleich einzuwenden, aber wir beabsichtigen definitiv
nicht, darauf zu bestehen. Wir sind der Meinung,
dass unsere Mission zuerst und
vorderst darin besteht, allen und jedem Kommenden Code
für welchen Zweck auch immer zur Verfügung zu
stellen, damit der Code möglichst weit eingesetzt
wird und den größtmöglichen Nutzen
liefert. Das ist, so glauben wir, eines der
fundamentalsten Ziele von freier Software und eines, das
wir enthusiastisch unterstützen.Der Code in unserem Quellbaum, der der GNU General
Public License (GPL) oder der GNU
Library General Public License (LGPL) unterliegt,
ist mit zusätzlichen, geringfügigen Bedingungen
verknüpft, jedoch handelt es sich dabei lediglich um
erzwungene Bereitstellung statt des sonst üblichen
Gegenteils. Auf Grund der zusätzlichen
Komplexität, die durch den kommerziellen Einsatz von
GPL Software entstehen kann, bemühen wir uns jedoch,
solche Software, wo möglich, durch solche, die der
etwas lockereren FreeBSD
Lizenz unterliegt, zu ersetzen.Beinhaltet das FreeBSD-Copyright irgendwelche
Einschränkungen?Ja. Diese Einschränkungen regeln aber nicht, wie
Sie mit dem Sourcecode umgehen, sondern betreffen nur den
Umgang mit dem FreeBSD Project an sich. Wenn Sie sich
ernsthaft damit auseinandersetzen wollen, lesen Sie
einfach die
FreeBSD-Lizenz. Wenn Sie einfach nur neugierig
sind, sollte diese Zusammenfassung ausreichen:Behaupten Sie nicht, Sie hätten es
geschrieben.Verklagen Sie uns nicht, wenn irgend etwas nicht
funktioniert.Kann FreeBSD mein bisher verwendetes Betriebssystem
ersetzen?In den meisten Fällen lautet die Antwort ja.
Allerdings ist diese Frage nicht ganz so einfach, wie sie
scheint.Die meisten Anwender benutzen kein Betriebssystem,
sondern Anwendungen. Die Anwendungen sind es, die das
Betriebssystem benutzen. FreeBSD ist dazu gedacht, eine
stabile und vielfältige Umgebung für Anwendungen
bereitzustellen. Es unterstützt viele
unterschiedliche Web-Browser, Büroanwendungen,
E-Mail-Programme, Grafik-Programme, Entwicklungsumgebungen,
Netzwerk-Server, und so ziemlich alles andere, was Sie sich
wünschen können. Die meisten dieser Anwendungen
sind in der
Ports-Sammlung verfügbar.Wenn Sie Anwendung benutzen müssen, die es nur
für ein bestimmtes Betriebssystem gibt, dann kommen
Sie an diesem Betriebssystem nicht vorbei. Allerdings
stehen die Chancen nicht schlecht, dass es eine
vergleichbare Anwendung für FreeBSD gibt. Wenn Sie
einen verläßlichen Server für ihr
Büro oder das Internet brauchen, oder eine stabilen
Arbeitsplatz, oder einfach nur die Fähigkeit, ihre
Arbeit ohne dauernde Abstürze machen zu können,
dann kann FreeBSD genau das sein. Viele Anwender auf der
ganzen Welt, vom Anfänger bis zum erfahrenen
Administrator, benutzen an Ihren Arbeitsplätzen
ausschließlich FreeBSD.Wenn Sie von einem anderen &unix; System zu FreeBSD
wechseln, dürfte Ihnen vieles bekannt vorkommen.
Wenn Ihr Hintergrund ein Grafik-orientiertes
Betriebssystem wie &windows; oder ein älteres &macos;
ist, werden Sie zusätzliche Zeit investieren
müssen, um den &unix; Stil zu verstehen. Dieser FAQ
und das FreeBSD
Handbuch sind die besten Startpunkte.Warum heißt es FreeBSD?Es darf kostenlos genutzt werden - sogar von
kommerziellen Benutzern.Der komplette Quellcode für das
Betriebssystem ist frei verfügbar und die
Benutzung, Verbreitung und Einbindung in andere
(kommerzielle und nicht-kommerzielle) Arbeiten sind
mit den geringstmöglichen Einschränkungen
versehen worden.Jedem ist es freigestellt, Code für
Verbesserungen oder die Behebung von Fehlern
einzusenden und ihn zum Quellbaum hinzufügen zu
lassen (dies ist natürlich Gegenstand von ein
oder zwei offensichtlichen Klauseln).Es wird darauf hingewiesen, dass das englische
Wort free hier in den Bedeutungen
umsonst und Sie können tun, was
immer Sie möchten genutzt wird. Abgesehen
von ein oder zwei Dingen, die Sie mit dem FreeBSD-Code
nicht tun können (z.B. vorgeben,
ihn geschrieben zu haben), können Sie damit
tatsächlich tun, was auch immer Sie
möchten.Wie unterschieden sich FreeBSD, NetBSD, OpenBSD
und andere Open-Source BSD-Systeme?James Howards Artikel
The
BSD Family Tree, der in
DaemonNews
erschienen ist, beschreibt sehr gut die Geschichte und die
Unterschiede der BSD-Varianten.Welches ist die aktuelle FreeBSD-Version?Momentan gibt es drei Entwicklungszweige, von den zwei
für die Erstellung von Releases verwendet werden.
Die 4.X-Releases werden auf dem
4-STABLE-Zweig erstellt, die
5.X-RELEASES auf dem 5-STABLE-Zweig.
Das erste 6-CURRENT-Release soll in
der zweiten Jahreshälfte 2005 entstehen. Diese Version
(6.0) ist aber nur als Entwicklerversion gedacht.Bis zur Veröffentlichung von &os; 5.3 galt
die 4.X-Serie als -STABLE. Danach wurde
die Serie 5.X zur neuen -STABLE-Serie und
4.X wurde nicht mehr aktiv weiterentwickelt. Stattdessen gibt
es eine "erweiterte Unterstützung" in der Form
von Korrekturen von größeren Problemen, wie
neu entdeckten Sicherheitsheitslücken geben.Version &rel.current;
ist das aktuelle Release des
5-STABLE-Zweigs und ist im
&rel.current.date; erschienen.
Version &rel2.current;
ist das aktuelle Release aus dem
4-STABLE-Zweig und ist im
&rel2.current.date; erschienen.Kurz gesagt, -STABLE ist
für ISPs und andere Benutzer gedacht, die mehr Wert
auf Stabilität und eine niedrige
Änderungsfrequenz als auf die neuesten und
möglicherweise unstabilen Features im
aktuellen -CURRENT Snapshot legen.
Releases können aus jedem Zweig entstehen, Sie
sollten -CURRENT allerdings nur dann
benutzen, wenn Sie auf ein erhöhtes Fehlverhalten
im Vergleich zu -STABLE auch
vorbereitet sind.Releases entstehen nur alle paar Monate. Viele
Leute halten ihre Systeme aktueller (lesen Sie die Fragen
zu FreeBSD-CURRENT und
FreeBSD-STABLE), aber das
erfordert ein erhöhtes Engagement, da die Sourcen
sich ständig verändern.Weitere Informationen über Releases entnehmen
Sie der Seite Release
Engineering des FreeBSD Webauftritts.Was ist FreeBSD-CURRENT?
FreeBSD-CURRENT ist die Entwicklungsversion des
Betriebssystems, aus der zu gegebener Zeit &os.stable;
werden wird. Als solche ist sie lediglich für
Entwickler, die am System mitarbeiten und für
unentwegte Bastler von Interesse. Details zum Betrieb von
-CURRENT finden Sie im
entsprechenden Abschnitt des Handbuchs.Falls Sie nicht mit dem Betriebssystem vertraut sind
oder nicht in der Lage sein sollten, den Unterschied
zwischen einen echten und einem temporären Problem zu
erkennen, sollten Sie FreeBSD-CURRENT nicht verwenden.
Dieser Zweig entwickelt sich manchmal sehr schnell weiter
und kann gelegentlich für mehrere Tage hintereinander
nicht installierbar sein. Von Personen, die
FreeBSD-CURRENT verwenden, wird erwartet, dass Sie
dazu in der Lage sind, Probleme zu analysieren und nur
dann von ihnen berichten, wenn es sich um Fehler und nicht
um kurzzeitige Störungen handelt.
Fragen wie make world produziert Fehlermeldungen
bezüglich Gruppen werden in der -CURRENT
Mailingliste manchmal nicht beachtet.Jeden Tag wird der aktuelle Entwicklungsstand in den
Zweigen -CURRENT und -STABLE in einer Snapshot
Release festgehalten. Mittlerweile werden sogar CDROM
Distributionen dieser gelegentlichen Snapshots zur
Verfügung gestellt. Die Ziele dieser Snapshot
Releases sind:Die aktuelle Version der Installationssoftware zu
testen.Personen, die -CURRENT oder -STABLE benutzen
möchten, aber nicht über die nötige
Zeit oder Bandbreite verfügen, um
tagesaktuell zu bleiben, soll eine bequeme
Möglichkeit geboten werden, es auf ihr System zu
bringen.Die Erhaltung von Referenzpunkten des fraglichen
Codes, für den Fall, dass wir später
einmal ernsthaften Schaden anrichten sollten (obwohl
CVS verhindern sollte, dass solche Situationen
entstehen :)Sicherzustellen, dass alle zu testenden, neuen
Merkmale und Fehlerbehebungen zu möglichst vielen
potentiellen Testern gelangen.Von keinem -CURRENT Snapshot kann
Produktionsqualität für beliebige
Zwecke erwartet werden. Wenn Sie eine stabile und
ausgetestete Version benötigen, sollten Sie eine
vollständige Release oder einen -STABLE Snapshot
verwenden.Snapshot-Releases sind unter
ftp://current.FreeBSD.org/pub/FreeBSD/snapshots/
verfügbar.In der Regel wird jeden Tag ein Snapshot jedes zur
Zeit aktiven Zweiges erstellt.Was ist das Konzept von FreeBSD-STABLE?Zur der Zeit, als FreeBSD 2.0.5 herausgegeben wurde,
wurde entschieden, die Entwicklung von FreeBSD zweizuteilen.
Ein Zweig wurde -STABLE
der andere -CURRENT
genannt. FreeBSD-STABLE ist für Anbieter von
Internetdiensten und andere kommerzielle Unternehmen
gedacht, für die plötzliche Veränderungen
und experimentelle Features unerwünscht sind.
In diesem Zweige werden nur ausgetestete
Fehlerbehebungen und kleine, inkrementelle Änderungen
aufgenommen. FreeBSD-CURRENT ist eine ununterbrochene
Linie seitdem die Version 2.0 herausgegeben worden
ist. Sie führt zu 5.3-RELEASE (und darüber
hinaus). Unmittelbar vor der Veröffentlichung von
5.3-RELEASE wurde der 5-STABLE-Zweig erschaffen und
&os.current; wurde zu 6-CURRENT. Weitere Informationen zu
diesem Thema finden Sie unter
FreeBSD Release Engineering: Creating the Release
Branch.Der Zweig 2.2-STABLE wurde mit der
Veröffentlichung der Version 2.2.8 eingestellt. Der
Zweig 3-STABLE endete mit Version 3.5.1, der letzten
3.X-Version. Änderungen in diesen Zweigen
beschränken sich im allgemeinen auf die Korrektur von
sicherheitsrelevanten Fehlern. Der Zweig 4-STABLE wird
zwar noch unterstützt, die Unterstützung
beschränkt sich allerdings auf das Schließen von
neu entdeckten Sicherheitslücken und die Behebung
von anderen ernsten Problemen.5-STABLE ist der Zweig, auf den sich die Entwicklung
von -STABLE zurzeit konzentriert. Das neueste Release
aus dem 5-STABLE-Zweig ist &rel.current;-RELEASE, und ist
im &rel.current.date; erschienen.Aus dem 6-CURRENT-Zweig entsteht die nächste
&os;-Generation. Weitere Informationen über diesen
Zweig finden Sie unter Was ist FreeBSD-CURRENT?.Wann werden FreeBSD-Versionen erstellt?Im Schnitt gibt das &a.re; alle vier Monate eine neue
FreeBSD-Version frei. Das Erscheinungsdatum
einer neuer Version wird frühzeitig bekanntgegeben,
damit die am System arbeitenden Personen wissen, bis wann
ihre Projekte abgeschlossen und ausgetestet sein
müssen. Vor jedem Release gibt es eine Testperiode um
sicherzustellen, dass die neu hinzugefügten Features
nicht die Stabilität des Releases beeinträchtigen.
Viele Benutzer halten dies für einen
großen Vorteil von FreeBSD, obwohl es manchmal
frustrierend sein kann, so lange auf die
Verfügbarkeit der aktuellsten Leckerbissen zu
warten.Weitere Informationen über die Entwicklung von
Releases, sowie eine Übersicht über kommende Releases,
erhlaten Sie auf den release
engineering Seiten der FreeBSD Webseite.Für diejenigen, die ein wenig mehr Spannung
brauchen (oder möchten), werden täglich
Snapshots herausgegeben, wie oben beschrieben.Wer ist für FreeBSD verantwortlich?Schlüsseldiskussionen, die das FreeBSD-Projekt
betreffen, wie z.B. über die generelle Ausrichtung
des Projekts und darüber, wem es erlaubt sein soll,
Code zum Quellbaum hinzuzufügen, werden innerhalb
eines Core
Team von 9 Personen geführt. Es gibt
ein weitaus größeres Team von über 300
Committern,
die dazu autorisiert sind, Änderungen am FreeBSD
Quellbaum durchzuführen.Jedoch werden die meisten nicht-trivialen
Änderungen zuvor in den Mailinglisten diskutiert und es
bestehen keinerlei Einschränkungen darüber, wer
sich an diesen Diskussionen beteiligen darf.Wie kann ich FreeBSD beziehen?Jede bedeutende Ausgabe von FreeBSD ist per
Anonymous-FTP vom FreeBSD FTP
Server erhältlich:
- Das aktuelle Release, &rel.current;-RELEASE,
+ Das aktuelle 5-STABLE-Release, &rel.current;-RELEASE,
finden Sie im Verzeichnis &rel.current;-RELEASE.
Snapshots-Releases werden täglich aus dem
-CURRENT-Zweig erzeugt. Sie
sollten aber nur von Entwicklern und sehr erfahrenen Testern
verwendet werden.Das aktuelle Release von 4-STABLE,
&rel2.current;-RELEASE finden Sie im Verzeichnis &rel2.current;-RELEASE.5.X
Snapshots werden in der Regel
täglich erstellt.Wo und wie Sie FreeBSD auf CD, DVD, und anderen Medien
beziehen können, erfahren Sie im Handbuch.Wie wird ein FreeBSD-Spiegel eingerichtet?Der Artikel
Mirroring FreeBSD erklärt, wie ein FreeBSD-Spiegel
eingerichtet wird.Wie greife ich auf die Datenbank mit Problemberichten
zu?Die Datenbank mit Problemberichten (PR,
problem report)
Änderungsanfragen von Benutzern kann
über die Web-basierte PR-
Abfrage-Schnittstelle
abgefragt werden. Mit dem Programm &man.send-pr.1;
können Sie Problemberichte oder Änderungsanträge
per E-Mail einsenden.Über die Web-Schnittstelle können momentan
keine Problemberichte eingereicht werden. Wir haben die
Schnittstelle wegen wiederholtem Missbrauch
deaktiviert.Bevor Sie einen Fehler melden, sollten Sie sich zuerst
den Artikel Writing
FreeBSD Problem Reports durchlesen, damit Sie
wissen, wie Sie eine gute Fehlermeldung verfassen.Was muss ich tun, um einen FreeBSD-Web-Mirror
betreiben zu können?Es gibt mehrere Möglichkeiten, die Web-Seiten zu
spiegeln.Sie können die formatierten Dateien von einem
FreeBSD CVSUP-Server mit
net/cvsup beziehen.
Die Datei
/usr/share/examples/cvsup/www-supfile
enthält ein Beispiel für die Konfiguration,
die für einen Web-Mirror notwendig ist.Sie können sich die Quelldateien für die
Web-Seiten von jeden FreeBSD FTP-Server mit einem
FTP-Spiegelwerkzeug Ihrer Wahl herunterladen.
Allerdings müssen Sie diese Quelldateien erst
übersetzen, bevor Sie sie verwenden können.
Starten Sie einfach bei .Gibt es weitere Informationsquellen?Sie finden eine umfassende Liste unter Documentation
auf der FreeBSD-Webseite.Dokumentation und SupportGibt es gute Bücher über FreeBSD?Im Zuge des FreeBSD Projekts sind diverse gute
Dokumente entstanden, die unter der
folgenden URL abgerufen werden können:
.
Die Dokumente stehen auch als Pakete, die Sie leicht
installieren können, zur Verfügung. In den
nächsten Abschnitten erfahren Sie mehr über diese
Pakete.Zusätzlich enthalten die Bibliographien am Ende
dieser FAQ und im Handbuch Verweise auf weitere empfohlene
Bücher.Ist die Dokumentation auch in anderen Formaten
verfügbar? Zum Beispiel als einfacher Text (ASCII)
oder als &postscript;?Ja. Werfen Sie einen Blick auf das Verzeichnis /pub/FreeBSD/doc/
auf dem FreeBSD FTP-Server. Dort finden sie Dokumentation
in vielen verschiedenen Format.Die Dokumentation wurde nach vielen verschiedenen
Kriterien sortiert. Die Kriterien sind:Der Name des Dokumentes, z.B.
FAQ oder
Handbuch.Die Sprache und der Zeichensatz, die in dem
Dokument verwendet werden. Diese entsprechen den
Anpassungen, die Sie auf Ihrem FreeBSD-System im
Verzeichnis /usr/share/locale
finden. Zurzeit werden die folgenden Sprachen und
Zeichensätze benutzt:NameBedeutungen_US.ISO8859-1US Englisches_ES.ISO8859-1Spanischfr_FR.ISO8859-1Französischde_DE.ISO8859-1Deutschit_IT.ISO8859-15Italienischja_JP.eucJPJapanisch (EUC kodiert)ru_RU.KOI8-RRussisch (KOI8-R kodiert)zh_TW.Big5Chinesisch (Big5 kodiert)Einige Dokumente sind nicht in allen Sprachen
verfügbar.Das Format des Dokumentes. Die Dokumentation wird
in verschiedenen Formaten erzeugt, von denen jedes seine
eigenen Vor- und Nachteile hat. Einige Formate lassen sich
gut an einem Bildschirm lesen, während andere Formate
dafür gedacht sind, ein ansprechendes Druckbild zu
erzeugen. Das die Dokumentation in verschiedenen Formaten
verfügbar ist, stellt sicher, dass unsere Leser
die für sie relevanten Teile unabhängig vom
Ausgabemedium (Bildschirm oder Papier) lesen können.
Derzeit werden die folgenden Formate
unterstützt:FormatErklärunghtml-splitViele kleine HTML-Dateien, die sich
gegenseitig referenzieren.htmlEine große HTML-Datei, die das
komplette Dokument enthält.pdbPalm Pilot Datenbank für das
Programm iSilo.pdfAdobe's Portable Document Formatps&postscript;rtfMicrosoft's Rich Text Format
Die Seitennummern werden nicht
automatisch aktualisiert, wenn Sie diese
Datei in Word laden. Wenn Sie das
Dokument geladen haben, müssen Sie Sie
CtrlA,
CtrlEnd,
F9 eingeben, um die
Seitennummern aktualisieren zu
lassen.txtGanz normaler TextDas zur Komprimierung verwendete Programm. Zur
Zeit werden drei verschiedene Methoden
benutzt.Wenn die Dokumentation im Format
html-split vorliegt, werden die
Dateien mit &man.tar.1; zusammengefasst. Die
so entstandene .tar Datei
wird dann mit einer der unten genannten Methoden
komprimiert.Bei allen anderen Formaten existiert nur eine
Datei mit dem Namen
book.format
(z.B., book.pdb,
book.html, und so
weiter).Diese Dateien werden mit zwei verschiedenen
Programmen komprimiert.ProgrammBeschreibungzipDas Zip-Format. Wenn Sie diese
Dateien unter FreeBSD auspacken wollen,
müssen sie vorher den Port
archivers/unzip
installieren.bz2Das BZip2-Format. Es wird seltener
als das Zip-Format
benutzt, erzeugt aber normalerweise
kleinere Archive. Sie müssen den
Port archivers/bzip2
installieren, um diese Dateien entpacken
zu können.Ein Beispiel: Die mit BZip2 gepackte Version
des Handbuchs im &postscript;-Format hat den Namen
book.ps.bz2 und ist im
Verzeichnis handbook/ zu
finden.Nachdem Sie das Format und das Kompressionsverfahren
ausgewählt haben, müssen Sie sich entscheiden,
ob Sie das Dokument in Form eines FreeBSD
Package herunterladen
möchten.Der Vorteil dieser Variante, dass Sie die
Dokumentation mit normalen Tools wie &man.pkg.add.1; und
&man.pkg.delete.1; verwalten können.Wenn Sie das Package herunterladen und installieren
wollen, müssen Sie den richtigen Dateinamen kennen.
Die Dateien liegen in einem separaten Verzeichnis mit dem
Namen packages und werden nach dem Schema
Dokument-Name.Sprache.Zeichensatz.Format.tgz
benannt.Ein Beispiel: Die englische Version der FAQ im
PDF-Format ist in dem Package mit dem Namen
faq.en_US.ISO8859-1.pdf.tgz
enthalten.Sie können daher das englische PDF FAQ Package
mit den folgenden Befehlen installieren.&prompt.root; pkg_add ftp://ftp.de.FreeBSD.org/pub/FreeBSD/doc/packages/faq.en_US.ISO8859-1.pdf.tgzDanach können Sie mit &man.pkg.info.1; nachsehen,
wo die Datei installiert wurde.&prompt.root; pkg_info -f faq.en_US.ISO8859-1.pdf
Information for faq.en_US.ISO8859-1.pdf:
Packing list:
Package name: faq.en_US.ISO8859-1.pdf
CWD to /usr/share/doc/en_US.ISO8859-1/books/faq
File: book.pdf
CWD to .
File: +COMMENT (ignored)
File: +DESC (ignored)Wie Sie sehen können, wurde die Datei
book.pdf im Verzeichnis
/usr/share/doc/en_US.ISO8859-1/books/faq
installiert.Wenn sie die Packages nicht benutzen, müssen Sie
die komprimierten selber herunterladen, auspacken und die
richtigen Stellen kopieren.Wenn Sie zum Beispiel die mit &man.bzip2.1; gepackte
split HTMLVersion der englischen FAQ
herunterladen und installieren wollten, bräuchten
Sie die Datei
doc/en_US.ISO8859-1/books/faq/book.html-split.tar.bz2.
Um diese Datei herunterzuladen und auszupacken, wären
die folgenden Schritte notwendig.&prompt.root; fetch ftp://ftp.de.FreeBSD.org/pub/FreeBSD/doc/en_US.ISO8859-1/books/faq/book.html-split.tar.bz2
&prompt.root; gzip -d book.html-split.tar.bz2
&prompt.root; tar xvf book.html-split.tarDanach haben Sie eine Sammlung vieler kleiner
.html Datei. Die wichtigste Datei
hat Namen index.html und enthält
das Inhaltsverzeichnis, eine Einleitung und Verweise auf
die anderen Teile des Dokumentes. Falls notwendig,
können Sie die diversen Dateien jetzt an ihren
endgültigen Bestimmungsort verschieben oder
kopieren.Woher bekomme ich Informationen zu den FreeBSD
Mailinglisten?Vollständige Informationen finden Sie im Handbucheintrag
über Mailinglisten.Wo finde ich die FreeBSD-spezifischen Informationen
zum Jahr-2000-Problem?Vollständige Informationen finden Sie auf der
FreeBSD
Jahr-2000-Seite.Welche Newsgruppen existieren zu FreeBSD?Sie finden alle Informationen hierzu im Handbucheintrag zu
Newsgruppen.Gibt es FreeBSD IRC (Internet Relay Chat)
Kanäle?Ja, die meisten großen IRC Netze bieten einen
FreeBSD Chat-Channel:Channel FreeBSD im EFNet ist
ein FreeBSD-Forum, aber gehen Sie nicht dorthin, um
technische Unterstützung zu suchen, oder, um zu
versuchen, die Leute dort dazu zu bringen, Ihnen dabei
zu helfen, das mühselige Lesen von Manuals zu
ersparen oder eigene Nachforschungen zu betreiben. Es
ist in erster Linie ein Chat-Channel und die Themen
dort umfassen Sex, Sport oder Kernwaffen ebensogut,
wie FreeBSD. Sie wurden gewarnt! Der Channel ist auf
dem Server irc.chat.org
verfügbar.Der Channel #FreeBSDhelp im
EFNet hat
sich dagegen auf die Unterstützung der Benutzer
von FreeBSD spezialisiert. In diesem Channel sind
Fragen deutlich willkommener als im Channel
#FreeBSD.Der Channel #FreeBSD im DALNET ist in den
USA unter irc.dal.net und in Europa
unter irc.eu.dal.net
verfügbar.Der Channel #FreeBSD im UNDERNET ist in
den USA unter us.undernet.org und in
Europa unter eu.undernet.org
verfügbar. Es handelt sich hierbei um einen
Hilfe-Channel, man wird Sie daher auf Dokumente
verweisen, die Sie selbst lesen müssen.Der Channel #FreeBSD im HybNet. Dieser
Channel ist ein Hilfe-Channel.
Eine Liste der möglichen Server finden Sie auf
der Webseite von
HybNet.Alle diese Kanäle unterscheiden sich voneinander
und sind nicht miteinander verbunden. Ebenso
unterscheiden sich Ihre Chat-Stile, weshalb es sein kann,
dass Sie zunächst alle Kanäle ausprobieren
müssen, um den zu Ihrem Chat-Stil passenden zu
finden. Hier gilt, was für
jeden IRC-Verkehr gilt: falls sie
sich leicht angegriffen fühlen oder nicht mit vielen
jungen (und einigen älteren) Leuten, verbunden mit
dem nutzlosen Gezanke umgehen können, dann ziehen Sie
es gar nicht erst in Erwägung.Gibt es Firmen, die Training und Support für
FreeBSD anbieten?DaemonNews bietet Training und Support für
FreeBSD an. Weitergehende Informationen finden Sie in der
BSD
Mall.FreeBSD Services Ltd. bieten kommerzielle Unterstützung
für FreeBSD in Großbritannien an. Sie verkaufen
übrigens auch eine FreeBSD-DVD. Weitere Informationen
erhalten Sie auf der
Webseite von
FreeBSD Services Ltd..Die FreeBSD Mall bietet ebenfalls professionellen
FreeBSD support an. Weitergehende Informationen finden
Sie auf ihrer Webseite.Wenn Ihre Firma oder Organisation ebenfalls Training
und Support anbietet und hier genannt werden möchte,
wenden Sie sich bitte an das FreeBSD Project.NikClaytonnik@FreeBSD.orgInstallationWelche Dateien muss ich herunterladen, um FreeBSD
zu bekommen?Vor dem 3.1-RELEASE benötigte man nur ein
Floppy-Image, floppies/boot.flp, um
FreeBSD zu installieren. Seit dem 3.1-RELEASE haben wir
jedoch im initialen System Unterstützung für
eine Vielfalt von Hardware hinzugefügt, und
dafür wird mehr Platz benötigt. Aus diesem
Grund braucht man ab 3.X zwei Floppy-Images:
floppies/kernel.flp und
floppies/mfsroot.flp. Diese Images
müssen mit Hilfe von Werkzeugen wie
fdimage oder &man.dd.1; auf Disketten
kopiert werden. Seit &os; 5.3 weisen die Bootdisketten
eine neue Struktur auf. Sie benötigen nun das Image
floppies/boot.flp sowie alle Dateien
mit den Namen
floppies/kernX
(von denen es derzeit zwei gibt).Falls Sie selbst die einzelnen Distributionen
herunterladen müssen (um z.B. von einem
DOS-Dateisystem aus zu installieren), empfehlen wir, sich
die folgenden Distributionen zu besorgen:base/ (bin/ unter 4.X)manpagescompat*docsrc/ssys.*Vollständige Instruktionen für dieses
Vorgehen und ein wenig mehr zur Installation generell
finden Sie im Handbucheintrag zur
Installation von FreeBSD.Was soll ich tun, wenn das Floppy-Image nicht auf eine
Diskette passt?Eine 3,5-Zoll (1,44MB) Diskette kann 1474560 Byte an
Daten fassen und das Boot-Image ist exakt 1474560 Byte
groß.Häufige Fehler bei der Erstellung der
Boot-Diskette sind:Bei der Benutzung von FTP das
Floppy-Image nicht im
Binär-Modus
herunterzuladen.Einige FTP-Clients benutzen als Voreinstellung den
ASCII-Modus und versuchen, alle
Zeilenendezeichen an das Zielsystem anzupassen.
Dadurch wird das Boot-Image in jedem Fall unbrauchbar.
Überprüfen Sie die Größe des
heruntergeladenen Boot-Images: falls sie nicht
exakt mit der auf dem Server
übereinstimmt, hat das Herunterladen nicht
richtig funktioniert.Abhilfe: geben Sie binary an
der FTP-Eingabeaufforderung ein, nach dem Sie mit dem
Server verbunden sind und bevor Sie das Image
herunterladen.Die Benutzung des DOS-Befehls
copy (oder eines entsprechendes
Werkzeugs der grafischen Benutzeroberfläche), um
das Boot-Image auf die Diskette zu
übertragen.Programme wie copy sind hier
unbrauchbar, weil das Image zur direkten
Übertragung erstellt wurde. Das Image stellt den
gesamten Disketteninhalt dar, Spur für Spur, und
nicht eine gewöhnliche Datei. Sie müssen es
roh mit speziellen Werkzeugen (z.B.
fdimage oder
rawrite) übertragen, wie es in
der Installationsanleitung
zu FreeBSD beschrieben ist.Wo befinden sich die Instruktionen zur Installation
von FreeBSD?Installationsanleitungen finden Sie im Handbucheintrag zur
Installation von FreeBSD.Was benötige ich zum Betrieb von FreeBSD?Für &os;-Versionen vor 5.X benötigen Sie
mindestens einen 386er Prozessor mit mindestens 5 MB
Hauptspeicher und mindestens 60 MB Festplattenspeicher.
Es läuft mit einer einfachen MDA Grafikkarte, aber um
X11R6 zu benutzen, benötigen Sie eine VGA- oder bessere
Videokarte. Seit &os; 5.X benötigen Sie hingegen
mindestens einen 486 Prozessor und 8 MB Hauptspeicher
sowie mindestens 150 MB Festplattenspeicher.Lesen Sie auch den Abschnitt
Hardwarekompatibilität.Ich besitze nur 4 MB Hauptspeicher. Kann ich FreeBSD
installieren?FreeBSD 2.1.7 war die letzte FreeBSD-Version, die auf
einem 4MB-System installiert werden konnte. Seit FreeBSD
2.2 benötigten Sie mindestens 5MB, seit &os; 5.X
mindestens 8 MB für die Installation eines neuen
Systems.Alle FreeBSD-Versionen vor 5.X
laufen zwar mit 4MB Hauptspeicher,
lediglich ihr Installationsprogramm läuft nicht mit 4MB.
Wenn Sie möchten, können Sie für den
Installationsvorgang zusätzlichen Hauptspeicher
hinzufügen, und nachdem das System installiert ist,
wieder auf 4MB zurückgehen. Sie können Ihre
Festplatte auch in ein System, das mehr als 4MB besitzt, einbauen,
dort installieren und sie dann wieder umbauen.Wenn Sie nach der Installation einen
benutzerdefinierten Kernel generieren, wird er mit 4 MB
laufen. Irgend jemand hat es geschafft, mit 2 MB zu
booten, allerdings war das System nahezu
unbrauchbar.Wie kann ich eine angepasste
Installationsdiskette erstellen?Zurzeit gibt es keine Möglichkeit,
nur die angepassten
Installationsdisketten zu erstellen. Sie müssen sich
eine ganz neues Release erstellen, das Ihre
Installationsdiskette enthält.Wenn Sie eine modifizierte Ausgabe erstellen wollen,
finden Sie eine Anleitung im Artikel
FreeBSD Release Engineering.Kann ich mehr als ein Betriebssystem auf meinem PC
unterbringen?Sehen Sie sich Die
Multi-OS-Seite an.Kann &windows; neben FreeBSD existieren?Installieren Sie zuerst &windows;, dann FreeBSD.
Der Bootmanager von FreeBSD kann dann entweder &windows;
oder FreeBSD booten. Falls Sie &windows; nach FreeBSD
installieren, wird es, ohne zu fragen, Ihren Bootmanager
überschreiben. Lesen Sie den nächsten
Abschnitt, falls das passieren sollte.&windows; hat meinen Bootmanager zerstört!
Wie stelle ich ihn wieder her?Es gibt drei Möglichkeiten, den
FreeBSD-Bootmanager neu zu installieren:Unter DOS wechseln Sie in das Verzeichnis tools/
Ihrer FreeBSD-Distribution und suchen nach
bootinst.exe. Rufen sie es so
auf:...\TOOLS>bootinst.exe boot.binund der Bootmanager wird neu installiert.Booten Sie FreeBSD wieder mit der Bootdiskette und
wählen Sie den Menüeintrag Custom Installation.
Wählen Sie Partition. Wählen Sie das
Laufwerk, auf dem sich der Bootmanager befand
(wahrscheinlich der erste Eintrag) und wenn Sie in den
Partitioneditor gelangen, wählen Sie als aller
erstes (nehmen Sie z.B. keine Änderungen vor)
(W)rite. Sie werden nach einer Bestätigung
gefragt, antworten ja und vergessen Sie nicht, in der
Bootmanager-Auswahl Boot Manager
auszuwählen. Hierdurch wird der Bootmanager
wieder auf die Festplatte geschrieben. Verlassen Sie
nun das Installationsmenü und rebooten wie
gewöhnlich von der Festplatte.Booten Sie FreeBSD wieder mit der Bootdiskette
(oder der CDROM) und wählen Sie den
Menüpunkt Fixit. Wählen Sie
die für Sie passende Option, entweder die
Fixit-Diskette oder die CD Nummer 2 (die Option
live Filesystem). Wechseln Sie zur
Fixit-Shell und geben Sie den folgenden Befehl
ein:Fixit#fdisk -B -b /boot/boot0 bootdeviceAls bootdevice
müssen Sie das von Ihrem System verwendete
Gerät angeben, z.B. ad0
(erste IDE-Platte), ad4
(erste IDE-Platte an einem zusätzlichen
Controller), da0 (erste
SCSI-Platte), usw.Mein IBM Thinkpad Modell A, T oder X, hängt sich
auf, wenn ich FreeBSD zum ersten Mal starte. Was soll ich
machen?Ein Fehler in den ersten BIOS-Versionen dieser
Geräte führt dazu, dass sie die von FreeBSD
genutzte Partition für eine Suspend-To-Disk-Partition
halten. Wenn das BIOS dann versucht, diese Partition
auszuwerten, hängt sich das System auf.Laut IBM
In einer Mail von Keith Frechette
kfrechet@us.ibm.com.
wurde der Fehler wurde in den folgenden BIOS-Versionen
behoben:GerätBIOS VersionT20IYET49WW oder neuerT21KZET22WW oder neuerA20pIVET62WW oder neuerA20mIWET54WW oder neuerA21pKYET27WW oder neuerA21mKXET24WW oder neuerA21eKUET30WWEs ist möglich, dass neuere Version des IBM
BIOS den Fehler wieder enthalten.
Dieser Beitrag von Jacques Vidrine auf der
Mailingliste &a.mobile; beschreibt eine Technik,
die Ihnen weiterhelfen könnte, wenn Ihr IBM Laptop
mit FreeBSD nicht bootet und Sie eine neuere oder
ältere BIOS-Version einspielen können.Wenn Ihr Thinkpad über eine ältere
BIOS-Version verfügt und Sie das BIOS nicht
aktualisieren können, ist eine der möglichen
Lösungen, FreeBSD zu installieren, die Partitions-ID
zu ändern und danach neue Bootblocks zu installieren,
die mit der geänderten ID umgehen
können.Zunächst müssen Sie die Maschine so weit
wiederherstellen, dass sie über den Selbst-Test
hinauskommt. Dazu ist es erforderlich, dass das
System beim Start keine Partitions-ID auf seiner
primären Festplatte findet. Eine Variante ist, die
Platte auszubauen und vorübergehend in einem
älteren Thinkpad (z.B. dem Thinkpad 600) oder (mit
einem passenden Adapter) in einen normalen PC einzubauen.
Sobald dies erfolgt ist, können Sie die
FreeBSD-Partition löschen und die Festplatte wieder
in das Thinkpad einbauen. Das Thinkpad sollte jetzt
wieder starten können.Danach können Sie mit der nachfolgend
beschriebenen Anleitung eine funktionsfähige
FreeBSD-Installation erhalten.Beschaffen Sie sich boot1 und
boot2 von .
Legen Sie diese Dateien so ab, dass Sie
während der Installation darauf zugreifen
können.Installieren Sie ganz wie gewohnt FreeBSD auf dem
Thinkpad. Allerdings dürfen Sie den
Dangerously Dedicated-Modus
nicht benutzen. Nach dem
Abschluss der Installation dürfen Sie die
Maschine nicht neu
starten.Wechseln Sie zur Emergency Holographic
Shell (
AltF4)
oder starten Sie eine fixit
Shell.Benutzen Sie &man.fdisk.8;, um die Partitions-ID
von FreeBSD von 165 in
166 zu ändern (dieser Wert
wird von OpenBSD benutzt).Kopieren Sie die Dateien
boot1 und
boot2 auf die lokale
Festplatte.Installieren Sie boot1 und
boot2 mit &man.disklabel.8; auf
die FreeBSD-Slice.&prompt.root; disklabel -B -b boot1 -s boot2 ad0snSetzen Sie für n
die Nummer der Slice ein, auf der sie FreeBSD
installiert haben.Starten Sie das System neu. Am Boot-Prompt
sollten Sie die Auswahl OpenBSD
erhalten. Damit wird in Wirklichkeit FreeBSD
gestartet.Was Sie machen müssen, wenn Sie FreeBSD und
OpenBSD parallel installieren wollen, sollten Sie zu
Übungszwecken einfach einmal selbst
herausfinden.Kann ich auf einer Festplatte mit beschädigten
Blöcken installieren?Ältere Versionen von FreeBSD enthielten ein
Programm namens bad144, das die
defekten Sektoren automatisch verlagerte. Da diese
Funktion aber von modernen IDE-Platten selbstständig
durchgeführt wird, wurde bad144 in
der Version 3.0 aus dem System entfernt. Wenn Sie FreeBSD
3.0 oder neuer installieren wollen, sollten Sie sich eine
neue Festplatte zulegen. Falls Sie dazu nicht bereit
sind, müssen Sie FreeBSD 2.X verwenden.Wenn Ihnen bei einer modernen IDE-Platte defekte
Sektoren gemeldet werden, wird die Platte mit großer
Wahrscheinlichkeit innerhalb kurzer Zeit vollständig
ausfallen, da die Meldung ein Zeichen dafür ist,
dass die für die Korrektur reservierten Sektoren
bereits verbraucht wurden. Wir raten Ihnen, die Platte
auszutauschen.Falls Sie ein SCSI-Laufwerk mit beschädigten
Blöcken besitzen, lesen Sie diese Antwort.Ich habe mein System gerade von 3.X auf 4.X
aktualisiert und beim ersten Start erscheint die Meldung
bad sector table not
supportedBis einschließlich FreeBSD 3.X wurde
bad144 unterstützt, mit dem man
automatisch defekte Blöcke verlagern lassen konnte.
Dieses Programm ist in FreeBSD 4.X nicht mehr enthalten,
weil diese Tätigkeit von allen modernen IDE-Platten
automatisch vorgenommen wird. Weitere Informationen zum
Thema bad144 finden Sie bei in diesem
Abschnitt.Um dieses Problem zu lösen, müssen Sie ihre
Festplatte in ein funktionierendes System einbauen und
&man.disklabel.8; benutzen. Nähere Informationen
finden Sie weiter unten.Wie kann ich herausfinden, ob auf einer Festplatte
bad144 benutzt wurde, bevor mein Update
auf FreeBSD 4.0 fehlschlägt?Mit &man.disklabel.8;. disklabel -r
Laufwerk zeigt Ihnen
das disk label an. Achten Sie auf das Feld
flags. Wenn hier flags:
badsect steht, wurde auf dieser Festplatte
bad144 benutzt. Hier ein Beispiel
für eine solche Festplatte:&prompt.root; disklabel -r wd0
# /dev/rwd0c:
type: ESDI
disk: wd0s1
label:
flags: badsect
bytes/sector: 512
sectors/track: 63Wie kann ich die Daten von bad144
von meinen System entfernen, damit ich problemlos auf 4.X
updaten kann?Benutzen Sie disklabel -e -rwd0, um
das Disk label direkt auf der Platte zu bearbeiten. Sie
müssen lediglich das Wort badsect
aus dem Feld flags entfernen,
abspeichern, und den Editor verlassen. Die Daten von
bad144 werden zwar weiterhin Platz auf Ihrer Festplatte
belegen, Sie können die Festplatte aber trotzdem
benutzen.Wir raten Ihnen allerdings dringend, sich eine neue
Festplatte zuzulegen, wenn Sie eine große Anzahl
defekter Blöcke auf Ihrer Festplatte finden.Wenn ich von der Installationsdiskette boote,
geschehen merkwürdige Dinge! Was sollte ich
tun?Falls Sie beobachten, dass ihr Rechner sich bis
zum Stillstand abmüht oder spontan rebootet,
während Sie versuchen, von der Installationsdiskette
zu booten, sollten Sie sich drei Fragen stellen:Haben Sie eine brandneue, frisch formatierte,
fehlerfreie Diskette benutzt (günstigerweise eine
brandneue, direkt aus dem Karton und nicht eine
Diskette aus einem Magazin, das schon seit drei Jahren
unter Ihrem Bett lag)?Haben Sie das Floppy-Image im Binär- (oder
Image) Modus heruntergeladen? (Schämen Sie sich
nicht. Sogar die besten unter uns haben wenigstens
einmal Binärdateien versehentlich im ASCII-Modus
heruntergeladen!)Falls Sie &windows; 95 oder &windows; 98
benutzen, haben Sie es heruntergefahren und
fdimage bzw.
rawrite in einfachem, reinem DOS
neu gestartet? Es scheint, dass diese
Betriebssysteme Programme stören, die direkt auf
Hardware schreiben, wie es das Erstellungsprogramm
für die Diskette tut; selbst bei der
Ausführung des Programms in einem DOS-Fenster in
der grafischen Benutzeroberfläche kann dieses
Problem auftreten.Es wurde auch darüber berichtet, dass
&netscape; Probleme beim Herunterladen der Bootdisketten
verursacht. Es ist also wahrscheinlich besser, einen
anderen FTP-Client zu benutzen.Ich habe zur Installation von meinem ATAPI CDROM
gebootet, aber das Installationsprogramm sagt mir,
dass es kein CDROM gefunden hat. Was geht hier
ab?Dieses Problem wird üblicherweise durch ein
falsch konfiguriertes CDROM verursacht. Bei vielen PCs
ist das CDROM der Slave am zweiten IDE-Controller, ein
Master ist nicht vorhanden. Laut Spezifikation ist diese
Konfiguration illegal, aber &windows; verletzt die
Spezifikation und das BIOS ignoriert sie, wenn es von
einem CDROM booten soll. Daher konnten Sie zwar vom
CDROM booten, während FreeBSD es nicht für die
Installation benutzen kann.Um dieses Problem zu lösen, müssen Sie
entweder das CDROM als Master an den IDE-Controller
anschließen oder dafür sorgen, dass an dem
vom CDROM genutzten IDE-Controller das CD-ROM als Slave
und ein anderes Gerät als Master angeschlossen
ist.Kann ich auf meinem Laptop per PLIP (Parallel Line IP)
installieren?Ja, Sie brauchen dazu nur ein ganz normales
Laplink-Kabel. Weitere Informationen zum Thema Netzwerke
am Druckerport finden sie im Kapitel PLIP des
Handbuchs.Wenn Sie FreeBSD 3.X oder eine ältere Version
benutzen, sollten Sie einen Blick auf die Webseite Mobile-Computing
werfen.Welche Geometrie sollte ich für ein
Festplattenlaufwerk verwenden?Unter der Geometrie einer Festplatte
verstehen wir die Anzahl Zylinder,
Schreib-/Leseköpfen und Sektoren/Spur auf einer
Festplatte. Im folgenden wird dafür der
Übersichtlichkeit halber der Begriff C/H/S
verwendet. Das BIOS des PCs berechnet mit diesen
Angaben, auf welche Bereiche der Festplatte es für
Schreib-/Lesezugriffe zugreifen muss).Aus einigen Gründen scheint dies gerade bei
frischgebackenen Systemadministratoren für sehr viel
Verwirrung zu sorgen. Zunächst einmal ist die
physikalische Geometrie eines
SCSI-Laufwerks vollkommen irrelevant, da FreeBSD mit
Blöcken arbeitet. Tatsächlich gibt es
die physikalische Geometrie nicht, da die
Sektordichte auf einer Festplatte variiert. Was die
Hersteller als die wahre physikalische
Geometrie bezeichnen, ist im allgemeinen die Geometrie,
die aufgrund ihrer Ergebnisse im geringsten ungenutzten
Speicher resultiert. Bei IDE-Platten arbeitet FreeBSD mit
C/H/S-Angaben, aber alle modernen Laufwerke wandeln diese
intern ebenfalls in Blocknummern um.Wichtig ist nur die logische
Geometrie. Das BIOS kann die logische Geometrie der
Festplatte abfragen; die erhaltenen Daten werden dann vom
BIOS bei Zugriffen auf die Festplatte genutzt. Da FreeBSD
das BIOS benutzt, während es bootet, ist es sehr
wichtig, dass diese Angaben richtig sind.
Insbesondere müssen alle Betriebssysteme mit
derselben Geometrie arbeiten, falls Sie mehr als ein
Betriebssystem auf einer Festplatte haben. Andernfalls
werden Sie ernsthafte Bootprobleme bekommen!Bei SCSI-Festplatten hängt die zu verwendende
Geometrie davon ab, ob der Extended Translation Support
auf Ihrem Controller eingeschaltet ist (oft auch als
Unterstützung für DOS-Platten
>1GB oder ähnlich bezeichnet). Falls sie
ausgeschaltet ist, benutzen Sie
N Zylinder, 64 Köpfe und
32 Sektoren/Spur, wobei N die
Kapazität der Festplatte in MB ist. Zum Beispiel
sollten für eine 2GB Festplatte 2048 Zylinder, 64
Köpfe und 32 Sektoren/Spur angegeben werden.Falls sie eingeschaltet ist (was
oft der Fall ist, um bestimmte Einschränkungen von
&ms-dos; zu umgehen) und die Plattenkapazität mehr als
1GB beträgt, benutzen Sie M Zylinder, 63
Sektoren/Spur (nicht 64) und 255
Köpfe, wobei M der
Plattenkapazität in MB, dividiert durch 7,844238
entspricht (!). Also würde unsere 2GB Beispielplatte
261 Zylinder, 63 Sektoren/Spur und 255 Köpfe haben.Falls Sie sich hier nicht sicher sind oder FreeBSD
während der Installation die Geometrie nicht richtig
erkennt, hilft es normalerweise, eine kleine DOS-Partition
auf der Festplatte anzulegen. Das BIOS sollte dann in der
Lage sein, die richtige Geometrie zu erkennen. Sie
können die Partition jederzeit im Partitioneditor
entfernen, falls Sie sie nicht behalten möchten.
Allerdings kann Sie ganz nützlich sein, um
Netzwerkkarten zu programmieren und
ähnliches.Alternativ können Sie das frei verfügbare
Programm pfdisk.exe verwenden. Sie
finden es im Unterverzeichnis tools
auf der FreeBSD-CDROM und allen FreeBSD FTP-Servern). Mit
diesem Programm können Sie herausfinden, welche
Geometrie die anderen Betriebssysteme auf der Festplatte
verwenden. Diese Geometrie können Sie im
Partitioneditor eingeben.Gibt es irgendwelche Einschränkungen, wie ich die
Festplatte aufteilen darf?Ja. Sie müssen sicherstellen, dass Ihre
Rootpartition innerhalb der ersten 1024 Zylinder liegt, damit
das BIOS den Kernel von Ihr booten kann. (Beachten Sie,
dass es sich um eine Einschränkung durch das
BIOS des PCs handelt und nicht durch FreeBSD).Für ein SCSI-Laufwerk bedeutet dies
normalerweise, dass sich die Rootpartition in den
ersten 1024MB befindet (oder in den ersten 4096MB, falls
die Extended Translation eingeschaltet ist - siehe die
vorherige Frage). Der entsprechende Wert für IDE ist
504MB.Verträgt sich FreeBSD mit Plattenmanagern?FreeBSD erkennt den Ontrack Plattenmanager und
berücksichtigt ihn. Andere Plattenmanager werden
nicht unterstützt.Falls Sie die Festplatte nur mit FreeBSD benutzen
wollen, brauchen Sie keinen Plattenmanager. Wenn Sie Sie
die Platte einfach in der vom BIOS maximal
unterstützten Größe (normalerweise 504
Megabyte) konfigurieren, sollte FreeBSD erkennen, wie viel
Platz Sie tatsächlich haben. Falls Sie eine alte
Festplatte mit einem MFM-Controller verwenden, könnte
es sein, dass Sie FreeBSD explizit angeben
müssen, wie viele Zylinder es benutzen soll.Falls Sie die Festplatte mit FreeBSD und einem anderen
Betriebssystem benutzen wollen, sollten Sie auch in der Lage
sein, ohne einen Plattenmanager auszukommen: stellen sie
einfach sicher, dass sich die Bootpartition von
FreeBSD und der Bereich für das andere Betriebssystem
in den ersten 1024 Zylindern befinden. Eine 20 Megabyte
Bootpartition sollte völlig genügen, wenn Sie
einigermaßen sorgfältig arbeiten.Beim ersten Booten von FreeBSD erscheint
Missing Operating System. Was ist
passiert?Dies ist ein klassischer Fall von Konflikten bei den
verwendeten Plattengeometrien von FreeBSD
und DOS oder anderen Betriebssystemen. Sie werden FreeBSD
neu installieren müssen. Bei Beachtung obiger
Instruktionen wird in den meisten Fällen alles
funktionieren.Wieso komme ich nicht weiter als bis zum
F?-Prompt des Bootmanagers?Dies ist ein weiteres Symptom für das bereits in
der vorherigen Frage beschriebene Problem. Ihre
Einstellungen zur Geometrie im BIOS und in FreeBSD stimmen
nicht überein! Falls Ihr Controller oder BIOS
Zylinderumsetzung (oft als >1GB drive
support bezeichnet), probieren Sie eine Umsetzung
dieser Einstellung und Neuinstallation von
FreeBSD.Muss ich den vollständigen Quellcode
installieren?Im allgemeinen nicht. Wir empfehlen jedoch dringend
die Installation des base Source-Kit,
das viele der hier erwähnten Dateien enthält und
des sys (Kernel) Source-Kit, das den
Quellcode für den Kernel enthält. Außer
dem Programm zur Konfiguration des Kernels
(&man.config.8;) gibt es im System nichts, zu dessen
Funktion der Quellcode erforderlich ist. Mit Ausnahme der
Kernelquellen ist unsere Build-Struktur so aufgebaut,
dass Sie den Quellcode von überall her per NFS
read-only mounten und dennoch neue Binaries erstellen
können. (Wegen der Einschränkung bezüglich
der Kernelquellen empfehlen wir, diese nicht direkt nach
/usr/src zu mounten, sondern
irgendwoanders hin mit passenden symbolischen Links, um
die Toplevel-Struktur des Quellbaumes zu
duplizieren.)Die Quellen verfügbar zu haben und zu wissen, wie
man ein System mit ihnen erstellt, wird es Ihnen
wesentlich einfacher machen, zu zukünftigen Ausgaben
von FreeBSD zu wechseln.Um einen Teil der Quellen auszuwählen, verwenden
Sie den Menüpunkt Custom, wenn Sie sich im Menü
Distributions des Systeminstallationstools
befinden.Muss ich einen Kernel erstellen?Ursprünglich war die Erstellung eines neuen
Kernels bei fast jeder Installation von FreeBSD
erforderlich, aber neuere Ausgaben haben von der
Einführung weitaus benutzerfreundlicherer
Kernelkonfigurationswerkzeuge profitiert. Unter 4.X
und älter geben Sie am FreeBSD Boot-Prompt
(boot:) ein, um in ein visuelles
Konfigurationsmenü zu gelangen. Dieses
Programm ermöglicht Ihnen die Konfiguration der
Kerneleinstellungen für die gebräuchlichsten
ISA-Karten. Ab &os; 5.X wurde dieses Konzept durch
die deutlich flexibleren hints ersetzt,
die am Loader-Prompt eingegeben werden können.Es kann dennoch sinnvoll sein, einen neuen Kernel
zu erstellen, der nur die benötigten Treiber
enthält, um ein wenig Hauptspeicher zu sparen,
für die meisten Systeme ist dies aber nicht mehr
länger erforderlich.Soll ich DES, Blowfisch oder MD5 zur Verschlüsselung der
Passwörter benutzen?FreeBSD benutzt standardmäßig
MD5 zur Verschlüsselung der
Passwörter. Es wird angenommen, dass diese
Methode sicherer ist als das traditionell benutzte
Verfahren, das auf dem DES
Algorithmus basierte. Es ist immer noch möglich,
DES-Passwörter zu benutzen, wenn Sie die Datei
mit den Passwörtern mit älteren System
austauschen müssen. Ältere System verstehen
meist nur das unsichere Verfahren, dieses steht Ihnen zur
Verfügung, wenn Sie mit sysinstall die
crypto Distribution installieren. Sie
können auch die crypto Sourcecodes installieren, wenn
Sie Ihr System über die Sourcen aktualisieren. Die crypto
Bibliotheken erlauben es Ihnen das sichere Blowfisch Verfahren
für die Verschlüsselung der Passwörter
einzusetzen. Das für neue Passwörter benutzte
Verschlüsselungsverfahren wird über die
Einstellung passwd_format in
/etc/login festgelegt. Die
möglichen Werte sind entweder des,
blf (falls sie zur Verfügung stehen)
oder md5. Weitere
Informationen über die Einstellungen für den
Login erhalten Sie in &man.login.conf.5;.Woran kann es liegen, dass ich zwar von der
Diskette booten kann, aber nicht weiter als bis zur
Meldung Probing Devices...
komme?Falls Sie ein IDE &iomegazip;- oder &jaz;-Laufwerk
eingebaut haben, entfernen Sie es und versuchen Sie es erneut.
Solche Laufwerke könnten dem Bootvorgang stören.
Nach der Installation des Systems können Sie das
Laufwerk wieder einbauen. Dieser Fehler wird hoffentlich
in einer späteren Version behoben werden.Wieso wird mit der Fehler panic: cant mount
root gemeldet, wenn ich das System nach der
Installation reboote?Dieser Fehler beruht auf Unstimmigkeiten zwischen den
Festplatteninformationen im Bootblock und denen im Kernel.
Der Fehler tritt normalerweise auf IDE-Systemen mit zwei
Festplatten auf, bei denen die Festplatten als Master-
oder Single-Device auf separaten IDE-Controllern
angeschlossen sind und FreeBSD auf der Platte am zweiten
Controller installiert wurde. Der Bootblock vermutet,
dass das System auf wd1 (der zweiten BIOS-Platte)
installiert ist, während der Kernel der ersten Platte
auf dem zweiten Controller die Gerätekennung wd2
zuteilt. Der Kernel versucht nach der
Geräteüberprüfung die vom Bootblock
angenommene Bootdisk wd1 zu mounten, obwohl sie in
Wirklichkeit wd2 heißt - und scheitert.Tun Sie folgendes, um dieses Problem zu
beheben:Wenn Sie FreeBSD 3.3 oder neuer benutzen,
müssen Sie das System rebooten und
Enter drücken, wenn die
Meldung Booting kernel in 10 seconds; hit
[Enter] to interrupt erscheint. Dadurch
gelangen Sie in den Boot Loader.Geben Sie nun
root_disk_unit="disk_number"
ein. disk_number hat den Wert
0, wenn FreeBSD auf dem Master des
ersten IDE-Controllers installiert wurde;
1, wenn FreeBSD auf dem Slave des
ersten IDE-Controllers installiert wurde;
2, wenn FreeBSD auf dem Master des
zweiten IDE-Controllers installiert wurde; und
3, wenn FreeBSD auf dem Slave des
zweiten IDE-Controllers installiert wurde.Nach der Eingabe von boot
sollte Ihr System jetzt korrekt starten.Damit Sie dieses Ritual nicht bei jedem Start des
Systems durchführen müssen, sollten Sie die
Zeile
root_disk_unit="disk_number"
in die Datei
/boot/loader.conf.local
eintragen.Wenn Sie FreeBSD 3.2 oder eine ältere Version
benutzen, geben Sie am Prompt Boot:
1:wd(2,a)kernel ein und
betätigen Sie die Enter-Taste. Wenn
das System nun startet, führen Sie den Befehl
echo "1:wd(2,a)kernel" > /boot.config
aus, um diese Bootreihenfolge zur Voreinstellung zu
machen.Stellen Sie eine ununterbrochene Folge der
Festplatten her, indem Sie die FreeBSD-Platte am
ersten IDE-Controller anschließen.Erstellen Sie
einen neuen Kernel: modifizieren Sie die
wd-Konfigurationszeilen wie folgt:
controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr
disk wd0 at wdc0 drive 0
# disk wd1 at wdc0 drive 1 # Kommentieren Sie diese Zeile aus
controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr
disk wd1 at wdc1 drive 0 # Ändern Sie wd2 in wd1
disk wd2 at wdc1 drive 1 # Ändern Sie wd3 in wd2
Installieren Sie den neuen Kernel. Falls sie Ihre
Festplattenanschlüsse umgesteckt haben und die
alte Konfiguration wiederherstellen möchten,
stecken Sie die Anschlüsse wie gewünscht um
und rebooten Sie. Ihr System sollte nun fehlerfrei
booten.Gibt es eine Hauptspeicherbegrenzung?Bei einer &i386;-Standardinstallation werden maximal
4 Gigabyte Hauptspeicher unterstützt. Seit
&os; 4.9 und 5.1 wird auch ein größerer
Hauptspeicher unterstützt. Dazu müssen Sie die
zusätzliche Option PAE (&man.pae.4;) in Ihren Kernel
kompilieren:options PAE&os;/pc98 unterstützt maximal 4 GB Hauptspeicher,
daher kann PAE auf diesen Systemen nicht verwendet werden.
Unter &os;/alpha hängt dieses Limit von der verwendeten
Hardware ab - lesen Sie daher die Alpha Hardware Release
Notes für weitere Informationen. Sonstige von &os;
unterstützte Architekturen haben ein sehr viel
höheres theoretisches Speicherlimit (viele
Terabytes).Wo liegen die Grenzen für
ffs-Dateisysteme?Theoretisch liegt das Limit für ffs-Dateisysteme
bei 8 Terabyte (2G-Blöcke) oder 16TB für die
Standard-Blockgröße von 8k. In der Praxis
setzt die Software das Limit auf 1 Terabyte herab, aber
durch Modifikationen sind auch Dateisysteme mit 4 Terabyte
möglich (und existieren auch).Die maximale Größe einer einzelnen
ffs-Datei liegt bei ungefähr 1G Blöcken (4TB,
falls die Blockgröße 4k beträgt).
Wenn die im Dateisystem verwendete
Blockgröße 4k beträgt, wird mit dreifacher
Indirektion gearbeitet und die Limitierung sollte durch
die höchste Blocknummer erfolgen, die mit dreifacher
Indirektion dargestellt werden kann (ungefähr 1k^3 +
1k^2 + 1k). In Wirklichkeit liegt das Limit aber bei der
(falschen) Anzahl von 1G-1 Blocknummern im Dateisystem.
Die maximale Anzahl der Blocknummern müsste 2G-1
sein. Es gibt einige Fehler für Blocknummern nahe
2G-1, aber solche Blocknummern sind bei einer
Blockgröße von 4k unerreichbar.Bei Blocknummern von 8k und größer sollte
das Limit bei 2G-1 Blocknummern liegen, aber
tatsächlich liegt es bei bei 1G-1 Blocknummern.
Außer unter -STABLE sind Blöcke in der dritten
Indirektion unerreichbar, wodurch das Limit auf die durch
zweifache Indirektion maximal darstellbare Blocknummer
reduziert wird (ca. (Blockgröße/4)^2 +
(Blockgröße/4)). Unter -CURRENT könnte
die Überschreitung dieser Grenze Probleme
verursachen. Die Verwendung der korrekten Grenze von 2G-1
verursacht Probleme.Wieso erhalte ich die Fehlermeldung
archsw.readin.failed beim Start des
Systems, nachdem ich habe einen neuen Kernel erstellt
habe?Sie können den zu bootenden Kernel direkt im
zweiten Schritt angeben, indem Sie eine beliebige Taste
drücken, wenn das | erscheint und bevor der Loader
startet. Genauer: Sie haben die Kernelquellen erneuert,
und von dort ein neues Kernel-Builtin installiert,
ohne make world auszuführen.
Das geht nicht - führen Sie make world aus.Was sind die Sicherheits-Profile?In einem Sicherheits-Profil werden
verschiedene Einstellungen zusammengefasst, mit denen
das gewünschte Verhältnis zwischen Sicherheit und
Benutzerfreundlichkeit hergestellt werden soll. Um dies
zu erreichen, werden bestimmte Dienste und Features
entweder aktiviert oder deaktiviert. Die Details sind im
Abschnitt Security Profile
des Handbuch-Kapitels
Post-Installation enthalten.Hardware-KompatibilitätAllgemeinesIch will mir neue Hardware für mein
FreeBSD-System zulegen, was soll ich kaufen? Diese Frage wird ständig auf den
FreeBSD-Mailinglisten diskutiert. Da sich die Hardware
ständig ändert, ist das allerdings keine
Überraschung. Trotzdem sollten
Sie unbedingt die Hardware-Informationen von &os;
(&rel.current;
oder
&rel2.current;)
und die
Archive der Mailinglisten durchsehen, bevor Sie
nach der neuesten/besten Hardware fragen. Normalerweise
gab es kurz zuvor eine Diskussion über genau die
Hardware, die Sie sich zulegen wollen.Wenn Sie sich einen Laptop zulegen wollen, sollten Sie
einen Blick in das Archiv der Mailingliste FreeBSD-mobile
werfen. Ansonsten empfiehlt sich ein Blick in das Archiv
von FreeBSD-questions oder auch einer spezialisierte
Mailingliste für diese Art von Hardware.Architekturen und ProzessorenUnterstützt FreeBSD neben x86 auch andere
Architekturen?Ja. FreeBSD ist zurzeit für die Intel x86 und
DEC (jetzt Compaq) Alpha Architekturen verfügbar.
Seit FreeBSD 5.0 werden auch AMD64 sowie Intel EM64T,
IA-64 und &sparc64; unterstützt. Die Neuzugänge
auf der Liste der in Zukunft unterstützten Plattformen
sind &mips; und &powerpc;. Abonnieren Sie die Mailinglisten
&a.ppc; oder &a.mips; wenn Sie mehr über
den Stand der Entwicklung erfahren wollen. Schließen
Sie sich der Mailingliste &a.platforms; an, wenn Sie an
grundsätzlichen Diskussionen über neue Architekturen
interessiert sind.Falls Ihre Maschine eine andere Architektur aufweist
und Sie unbedingt sofort etwas benötigen, schlagen
wir vor, dass Sie sich einmal NetBSD oder OpenBSD
ansehen.Unterstützt FreeBSD Symmetric-Multiproccessing
(SMP)?Ja, seit &os;-Version 5.2 wurde SMP bereits im
GENERIC-Kernel aktiviert.Dies sollte eigentlich auch für &os; 5.3
gelten. Allerdings traten bei der Entwicklung des Kernels
auf einigen Rechnern Probleme auf. Daher entschloss man
sich, SMP in der Voreinstellung zu deaktivieren, bis diese
Probleme behoben sind. Dies ist eine der vordringlichen
Aufgaben für &os; 5.4.Unter &os; 4.X ist SMP im Standardkernel nicht
aktiviert. Sie müssen daher einen neuen Kernel
mit SMP-Unterstützung bauen. Die dazu nötigen
Optionen entnehmen Sie bitte der Datei
/sys/i386/conf/LINT.Ich habe keinen mathematischen Co-Prozessor - ist das
schlimm?Dies betrifft nur Besitzer von 386/486SX/486SLC -
andere Maschinen haben in ihrer CPU einen
integriert.Im allgemeinen wird das keine Probleme verursachen,
es gibt aber Situationen, in denen dies eine Rolle spielt
- entweder bei der Performance oder bei der Genauigkeit
der Emulation (lesen Sie den Abschnitt über Gleitpunkt-Emulation).
Insbesondere wird das Zeichnen von Bögen in X SEHR
langsam sein. Es wird dringend empfohlen, dass Sie
sich einen mathematischen Co-Prozessor kaufen - er ist
sein Geld wert.Einige Co-Prozessoren sind besser als andere. Es
tut uns weh, es zu sagen, aber es ist noch niemand
dafür entlassen worden, dass er bei Intel
eingekauft hat. Hüten Sie sich vor Clones, es sei
denn, Sie sind sicher, dass sie unter FreeBSD
funktionieren.Festplatten, Bandlaufwerke, sowie CD- und DVD-LaufwerkeWelche Arten von Festplatten werden von FreeBSD
unterstützt?FreeBSD unterstützt EIDE- und SCSI-Laufwerke (mit
kompatiblen Controllern - siehe folgenden Abschnitt),
sowie alle Laufwerke, die die original Western
Digital-Schnittstelle (MFM, RLL, ESDI und
natürlich IDE) benutzen. Ein paar Controller mit
proprietären Schnittstellen könnten nicht
laufen: halten Sie sich an WD1002/3/6/7-Schnittstellen und
Clones.Welche SCSI-Controller werden
unterstützt?Sie finden eine vollständige und aktuelle Liste
in den Hardware-Informationen zu &os;
(&rel.current; oder
&rel2.current;).Welche Arten von Bandlaufwerken werden
unterstützt?FreeBSD unterstützt SCSI-, QIC-36- (mit
QIC-02-Schnittstelle) und QIC-40/80-Bandlaufwerke
(diskettenbasiert). Hierzu gehören auch 8-mm (aka
Exabyte) und DAT-Laufwerke. Die QIC-40/80-Laufwerke sind
bekanntlich sehr langsam.Einige der frühen 8-mm-Laufwerke sind nicht
besonders kompatibel zu SCSI-2 und könnten unter
FreeBSD nicht einwandfrei funktionieren.Unterstützt FreeBSD Bandwechsler?Das Gerät &man.ch.4; und das Kommando
chio unterstützen Bandwechsler.
Details zum Betrieb des Wechslers finden Sie in der
Hilfeseite &man.chio.1;.Falls Sie nicht AMANDA oder
ein anderes Produkt benutzen, das den Wechsler bereits
kennt, bedenken Sie, dass die Programme nur wissen,
wie sie ein Band von einem Punkt zu einem anderen bewegen
müssen. Sie selbst müssen sich also merken, in
welchem Einschub sich ein Band befindet und zu welchem
Einschub das Band, das sich gerade im Laufwerk befindet,
zurück muss.Welche CDROM-Laufwerke werden von FreeBSD
unterstützt?Jedes an einem unterstützten Controller
angeschlossene SCSI-Laufwerk wird
unterstützt.Die folgenden proprietären CDROM-Schnittstellen
werden ebenfalls unterstützt:Mitsumi LU002 (8bit), LU005 (16bit) und FX001D
(16bit 2x Speed).Sony CDU 31/33ASound Blaster Non-SCSI CDROMMatsushita/Panasonic CDROMATAPI compatible IDE CDROMsVon allen Nicht-SCSI-Laufwerken ist bekannt, dass
sie im Vergleich zu SCSI-Laufwerken extrem langsam sind.
Einige ATAPI-CDROMs könnten nicht
funktionieren.FreeBSD kann direkt von der offiziellen &os; CD-ROM,
sowie den CD-ROMs von Daemon News und &os; Mall,
gebootet werden.Welche CD-Brenner werden von FreeBSD
unterstützt?FreeBSD unterstützt alle ATAPI-kompatiblen IDE
CD-R und CD-RW Brenner. Wenn Sie FreeBSD ab Version 4.0
benutzen, werfen Sie einen Blick in die Onlinehilfe zu
&man.burncd.8;. Wenn Sie eine ältere Version von
FreeBSD benutzen, sollten Sie sich die Beispiele in
/usr/share/examples/atapi
ansehen.FreeBSD unterstützt ebenfalls SCSI CD-R und CD-RW
Brenner. Installieren und benutzen Sie das Paket
cdrecord aus der Ports-Sammlung. Dazu
müssen Sie allerdings das Gerät
pass mit in Ihren Kernel
aufnehmen.Unterstützt FreeBSD &iomegazip;-Laufwerke?FreeBSD unterstützt natürlich alle
gängigen SCSI- und ATAPI-&iomegazip;-Laufwerke.
Ihr SCSI-ZIP-Laufwerk darf
nur mit den SCSI-Ziel-IDs 5 oder 6 laufen, aber Sie
können sogar davon booten, falls das BIOS Ihres
Hostadapters dies unterstützt. Es ist nicht bekannt,
welche Hostadapter das Booten von anderen Zielen als 0
oder 1 erlauben; daher werden Sie in ihren
Handbüchern nachsehen müssen, wenn Sie dieses
Merkmal benutzen möchten.FreeBSD unterstützt ZIP-Laufwerke, die an der
parallelen Schnittstelle angeschlossen sind. Der Kernel
sollte die folgenden Treiber enthalten:
scbus0,
da0,
ppbus0 und
vp0 (der GENERIC-Kernel
enthält alle, außer
vp0). Wenn diese Treiber
vorhanden sind, sollte das Laufwerk an der parallelen
Schnittstelle als /dev/da0s4
verfügbar sein. Zip-Datenträger können mit
mount /dev/da0s4 /mnt ODER
(DOS-formatierte) mount_msdos /dev/da0s4
/mnt gemountet werden.Lesen Sie auch den FAQ-Eintrag zu
Wechseldatenträgern und die Anmerkungen zum Thema
Formatierung im Kapitel
Administration.Unterstützt FreeBSD &jaz;, EZ und andere
Wechsellaufwerke?Abgesehen von der IDE-Version der EZ-Laufwerke,
handelt es sich ausschließlich um SCSI-Geräte.
Unter FreeBSD müssten sie sich also alle wie
SCSI-Platten und das IDE-EZ-Laufwerk müsste sich
wie ein IDE-Laufwerk verhalten.Ich bin mir nicht sicher, wie gut
FreeBSD den Wechsel der Datenträger während des
Betriebs unterstützt. Sie werden die Laufwerke vor
einem Datenträgerwechsel natürlich unmounten und
sicherstellen müssen, dass externe Einheiten
während des Bootens eingeschaltet sind, damit FreeBSD
sie erkennen kann.Lesen Sie auch diesen
Hinweis zur Formatierung.Tastaturen und MäuseUnterstützt FreeBSD meine Tastatur mit
USB-Anschluss?Ab FreeBSD 4.X werden USB-Tastaturen
unterstützt. Die Unterstützung für
USB-Geräte ist seit FreeBSD 3.1 Bestandteil des
Systems. Allerdings war die Unterstützung selbst
in FreeBSD 3.2 noch nicht ganz ausgereift. Wenn
Sie USB-Tastaturen mit FreeBSD 3.X ausprobieren
möchten, folgen Sie der nachstehenden Anleitung.Benutzen Sie eine spätere 3.X Version
als FreeBSD 3.2.Tragen Sie die folgenden Zeilen in die
Konfigurationsdatei Ihres Kernels ein und erzeugen Sie
einen neuen Kernel.
controller uhci0
controller ohci0
controller usb0
controller ukbd0
options KBD_INSTALL_CDEV
Erzeugen Sie im Verzeichnis
/dev die notwendigen
Dateien:&prompt.root; cd /dev
&prompt.root; ./MAKEDEV kbd0 kbd1Tragen Sie in der
/etc/rc.conf die folgenden Zeilen
ein:
usbd_enable="YES"
usbd_flags=""
Ab FreeBSD 4.X wird die USB-Unterstützung
in /etc/rc.conf aktiviert.Wenn Sie die Unterstützung für USB-Tastaturen
konfiguriert haben, ist die AT-Tastatur
als /dev/kbd0 und die USB-Tastatur
als /dev/kbd1 verfügbar. Dies
gilt natürlich nur, wenn beide Tastaturen
angeschlossen sind; falls nur die USB-Tastatur
angeschlossen ist, ist diese als
/dev/ukbd0 verfügbar.Wenn Sie die USB-Tastatur an der Systemkonsole
benutzen wollen, müssen Sie dies dem System explizit
mitteilen. Dazu muss das folgende Kommando
während des Systemstarts ausgeführt
werden:&prompt.root; kbdcontrol -k /dev/kbd1 < /dev/ttyv0 > /dev/nullWenn Sie nur die USB-Tastatur angeschlossen haben, ist
diese als /dev/kbd0 verfügbar;
daher muss in diesem Fall das folgende Kommando
benutzt werden:&prompt.root; kbdcontrol -k /dev/kbd0 < /dev/ttyv0 > /dev/nullTragen Sie dieses Kommando in Datei
/etc/rc.i386 ein.Sobald Sie diese Schritte durchgeführt haben,
sollte die USB-Tastatur ohne weitere Änderungen auch
unter X benutzbar sei.Zurzeit kann es noch Probleme geben, wenn Sie eine
USB-Tastatur im laufenden Betrieb einstecken oder
abziehen. Um Probleme zu vermeiden, sollten Sie die
Tastatur anschließen, bevor Sie das System
anschalten und die Tastatur nicht abziehen, solange das
System noch läuft.Weitere Informationen erhalten Sie in
&man.ukbd.4;.Ich habe eine unübliche Busmaus. Wie muss
ich sie konfigurieren?FreeBSD unterstützt die Busmaus und
InPort-Busmaus von Herstellern wie Microsoft, Logitech und
ATI. Der Bus-Gerätetreiber ist bei FreeBSD 2.X
standardmäßig im GENERIC-Kernel eingebunden; ab
Version 3.0 müssen Sie ihn selbst in die
Konfigurationsdatei für Ihren angepassten Kernel
einbinden. Fügen Sie die folgende Zeile in Ihre
Konfigurationsdatei ein, falls Sie sich einen
angepassten Kernel mit dem Busmaustreiber
erstellenFreeBSD 3.0 und ältere Versionendevice mse0 at isa? port 0x23c tty irq5 vector mseintrFreeBSD 3.X außer 3.0device mse0 at isa? port 0x23c tty irq5FreeBSD 4.Xdevice mse0 at isa? port 0x23c irq5Die Busmaus wird üblicherweise zusammen mit einer
speziellen Karte ausgeliefert. Sie könnte es Ihnen
ermöglichen, andere Werte für die Port-Adresse
und den Interrupt zu setzen. Weitere Informationen finden
Sie in Handbuch zu Ihrer Maus und in der &man.mse.4;
Manualpage.Wie benutze ich meine PS/2 (Mouse-Port
oder Tastatur)-Maus?PS/2 Mäuse laufen mit allen neueren
FreeBSD Versionen. Der notwendige Gerätetreiber,
psm, ist im
GENERIC-Kernel enthalten.Wenn Sie einen angepassten Kernel ohne diesen Treiber
benutzen, müssen Sie folgende Zeile in Ihre
Kernelkonfigurationsdatei einfügen und den Kernel neu
kompilieren.FreeBSD 3.0 und ältere Versionen:device psm0 at isa? port "IO_KBD" conflicts tty irq 12 vector psmintrFreeBSD 3.1 und neuere Versionen:device psm0 at isa? tty irq 12Ab FreeBSD 4.0:device psm0 at atkbdc? irq 12Lesen Sie den Handbucheintrag zur
Kernelkonfiguration, falls Sie sich mit der
Erstellung eines Kernels nicht auskennen.Wenn der Kernel das Gerät
psm0 beim Booten korrekt erkennt,
stellen Sie sicher, dass sich im Verzeichnis
/dev ein Eintrag für
psm0 befindet. Durch Eingabe von&prompt.root; cd /dev; sh MAKEDEV psm0können Sie einen erstellen, wenn Sie als
root angemeldet sind.Lassen Sie diesen Schritt aus, wenn Sie FreeBSD
5.0-RELEASE oder eine neuere Version mit &man.devfs.5;
verwenden. Die Gerätedateien werden in diesem Fall
automatisch in /dev erstellt.Kann man die Maus irgendwie außerhalb des X
Window Systems benutzen?Falls Sie den normalen Konsoltreiber &man.syscons.4; benutzen,
können Sie den Mauszeiger auf Textkonsolen zum
Kopieren und Einfügen von Text verwenden. Starten
Sie den Mausdämon &man.moused.8; und schalten Sie den
Mauszeiger auf der virtuellen Konsole ein:&prompt.root; moused -p /dev/xxxx -t yyyy
&prompt.root; vidcontrol -m onxxxx ist der
Gerätename der Maus und
yyyy ist das Protokoll.
Der Mausdämon erkennt die Protokolle der meisten
Mäuse (mit Ausnahme alter serieller Mäuse)
automatisch, wenn Sie auto für
das Protokoll angeben. Falls das Protokoll nicht
automatisch erkannt wird, finden Sie die
unterstützten Protokolle in der
&man.moused.8; Manualpage.Wenn Sie eine PS/2-Maus besitzen und diese beim
Systemstart aktivieren wollen, tragen Sie die Zeile
moused_enable="YES" in die Datei
/etc/rc.conf ein. Falls Sie den
Mausdämon auf allen virtuellen Bildschirmen anstatt
nur auf der Konsole benutzen wollen, tragen Sie außerdem
allscreens_flags="-m on" in
/etc/rc.conf ein.Während der Mausdämon läuft, muss
der Zugriff auf die Maus zwischen dem Mausdämon und
anderen Programmen, wie X Windows, koordiniert werden.
Die FAQ Warum funktioniert meine
meine Maus unter X nicht? enthält weitere
Details.Wie funktioniert das Kopieren und Einfügen von
Text mit der Maus auf einer Textkonsole?Wenn Sie es geschafft haben, den Mausdämon zu
starten (wie im vorherigen
Abschnitt gezeigt), halten Sie die linke Maustaste
gedrückt und bewegen Sie die Maus, um einen
Textabschnitt zu markieren. Dann drücken Sie die
mittlere Maustaste, um den Text an der
Cursorposition einzufügen.Wenn Sie keine 3-Tasten-Maus besitzen, können
Sie die mittlere Maustaste mit einer Tastenkombination
emulieren oder die Funktion der mittleren Taste auf
eine andere Taste legen. Einzelheiten dazu enthält
die Hilfeseite &man.moused.8;.Wird meine USB-Maus von FreeBSD
unterstützt?Experimentelle Treiber für USB-Geräte sind
seit FreeBSD 3.1 Bestandteil des Systems. Die
Unterstützung in FreeBSD 3.X war allerdings nicht
ganz ausgereift. Seit FreeBSD 4.0 sollten
USB-Geräten auf Anhieb funktionieren. Wenn Sie die
Treiber für USB-Mäuse in FreeBSD 3.X selbst
testen möchten, sollten Sie den unten
aufgeführten Anweisungen folgen:Benutzen Sie FreeBSD 3.2 oder eine neuere
Version.Tragen Sie die folgenden Zeilen in die
Konfigurationsdatei Ihres Kernels ein und erzeugen Sie
einen neuen Kernel.
device uhci
device ohci
device usb
device ukbd
options KBD_INSTALL_CDEV
Falls Sie eine ältere FreeBSD-Version als
FreeBSD 4.0 benutzen, müssen Sie diese
Einträge verwenden:
controller uhci0
controller ohci0
controller usb0
controller usm0
Erzeugen Sie im Verzeichnis
/dev die notwendigen
Dateien:&prompt.root; cd /dev
&prompt.root; ./MAKEDEV ums0Lassen Sie diesen Schritt aus, wenn Sie FreeBSD
5.0-RELEASE oder eine neuere Version mit &man.devfs.5;
verwenden. Die Gerätedateien werden in diesem Fall
automatisch in /dev erstellt.Tragen Sie in der
/etc/rc.conf die folgenden Zeilen
ein:
moused_enable="YES"
moused_type="auto"
moused_port="/dev/ums0"
moused_flags=""
usbd_enable="YES"
usbd_flags=""
Weitergehende Informationen zum Thema moused
finden sie im vorherigen
Abschnitt.Wenn Sie Ihre USB-Maus auch unter X benutzen
wollen, müssen sie die Datei
XF86Config ändern. Wenn Sie
&xfree86; 3.3.2 oder eine neuere Version benutzen,
müssen die folgenden Zeilen im Abschnitt
Pointer stehen:
Device "/dev/sysmouse"
Protocol "Auto"
Wenn sie eine ältere Version von &xfree86;
benutzen, müssen im Abschnitt
Pointer die folgenden Angaben
stehen:
Device "/dev/sysmouse"
Protocol "SysMouse"
Weitergehende Informationen zum Thema "Maus und X"
erhalten Sie hier.Zurzeit kann es noch Probleme geben, wenn Sie eine
USB-Maus im laufenden Betrieb einstecken oder abziehen.
Um Probleme zu vermeiden, sollten Sie die Maus
anschließen, bevor Sie das System anschalten und die
Maus nicht abziehen, solange das System noch
läuft.Meine Maus hat ein neumodisches Rad und mehr
Knöpfe. Kann ich sie in FreeBSD benutzen?Unglücklicherweise lautet die Antwort:
Vielleicht. Solche Mäuse mit
zusätzlichen Extras erfordern in den meisten
Fällen spezielle Treiber. Wenn der
Gerätetreiber für die Maus oder das
Anwendungsprogramm keine spezielle Unterstützung
für die Maus bietet, wird sie sich wie eine
gewöhnliche Maus mit zwei oder drei Knöpfen
verhalten.Ob und wie Sie das Rad unter X benutzen können,
können Sie im passenden
Abschnitt der FAQ erfahren.Wie benutze ich Maus/Trackball/Touchpad auf meinem
Laptop?Bitte lesen Sie die Antwort
zur vorherigen Frage und sehen Sie sich die
Webseite über Mobile
Computing an.Netzkarten und serielle GeräteWelche Netzwerkkarten unterstützt
FreeBSD?In den Hardware Informationen zu jedem FreeBSD Release
werden die unterstützten Karten aufgezählt.Wieso erkennt FreeBSD mein internes Plug &
Play-Modem nicht?Sie werden die PnP-ID Ihres Modems in die PnP-ID-Liste
des seriellen Treibers aufnehmen müssen. Erstellen
Sie einen neuen Kernel mit dem Eintrag controller
pnp0 in der Konfigurationsdatei und rebooten Sie
Ihr System, um die Plug & Play-Unterstützung zu
aktivieren. Der Kernel wird nun alle PnP-IDs der
gefundenen Geräte ausgeben. In der Datei
/sys/i386/isa/sio.c finden Sie ab
Zeile 2777 (ca.) eine Tabelle, in der Sie die PnP-ID des
Modems eintragen müssen. Suchen Sie die Zeichenfolge
SUP1310 in der Struktur
siopnp_ids[], um die Tabelle zu finden.
Erstellen Sie den Kernel nochmals, installieren Sie ihn,
rebooten Sie, und Ihr Modem sollte erkannt werden.Möglicherweise müssen Sie in der
boot-time-Konfiguration die PnP-Geräte manuell mit
einem pnp-Befehl ähnlichpnp 1 0 enable os irq0 3 drq0 0 port0 0x2f8konfigurieren, damit das Modem erkannt wird.Unterstützt FreeBSD Software Modems, wie die
Winmodems?FreeBSD unterstützt viele Software-Modems, wenn
Sie zusätzliche Software installieren. Der Port
comms/ltmdm bietet
Unterstützung für Modems, die auf dem oft
verwendeten Lucent LT Chipsatz basieren. Der Port
comms/mwavem
bietet Unterstützung für die Modems im IBM
Thinkpad 600 und 700.Sie können FreeBSD nicht über ein
Software-Modem installieren, diese Software kann nur
installiert werden, nachdem das Betriebssystem installiert
wurde.Gibt es einen FreeBSD-Treiber für die Karten der
Serie 43xx von Broadcom?Nein, und es wird wohl auch nie einen geben.Broadcom weigert sich, Informationen zu ihren drahtlosen
Chipsätzen zu veröffentlichen. Wahrscheinlich
liegt dies daran, dass Broadcom auch softwaregesteuerte
Radios herstellt. Damit ihre Produkte von der FCC
zugelassen werden, muss sichergestellt sein, dass Benutzer
nicht in der Lage sind, Betriebsfrequenzen,
Modulationsparameter, Ausgangsleistung und andere Werte
nach Belieben einzustellen. Ohne solche Informationen ist
es aber nahezu unmöglich, einen Treiber zu
programmieren.Welche seriellen Multi-Port-Karten werden von FreeBSD
unterstützt?Es existiert eine Liste der unterstützten Karten
im Abschnitt Verschiedene
Geräte des Handbuchs.Von einigen nicht NoName-Nachbauten ist ebenfalls
bekannt, dass sie funktionieren, speziell von den
AST-kompatiblen.In &man.sio.4; finden Sie weitere Informationen zur
Konfiguration solcher Karten.Wie kann ich den boot:-Prompt auf einer seriellen
Konsole erscheinen lassen?Erstellen Sie einen Kernel mit options
COMCONSOLE.Erstellen Sie /boot.config mit
als einzigem Text in der Datei.Ziehen Sie das Tastaturkabel aus dem
Rechner.Lesen Sie
/usr/src/sys/i386/boot/biosboot/README.serial
zur Information.SoundkartenWelche Soundkarten werden von FreeBSD
unterstützt?&os; unterstützt verschiedene Soundkarten wie
&soundblaster;, &soundblaster; Pro, &soundblaster; 16,
Pro Audio Spectrum 16, AdLib und Gravis UltraSound.
Lesen Sie die
&os; Release Informationen sowie &man.snd.4;,
wenn Sie genauere Informationen benötigen. MPU-401
und kompatible MIDI-Karten werden begrenzt unterstützt.
Ebenso unterstützt werden Karten, die der µsoft;
Sound System-Spezifikation entsprechen.Das gilt nur für Sound! Dieser Treiber
unterstützt keine CDROMs, SCSI oder Joysticks auf
diesen Karten, außer der &soundblaster;. Die
&soundblaster;-SCSI-Schnittstelle und einige
Nicht-SCSI-CDROMs werden unterstützt, Sie
können von diesen Geräten aber nicht
booten.Abhilfen für fehlenden Sound von es1370 mit dem
&man.pcm.4;-Treiber?Sie können den folgenden Befehl nach jedem
Bootvorgang ausführen:&prompt.root; mixer pcm 100 vol 100 cd 100Sonstige HardwareWelche Geräte werden noch von FreeBSD
unterstützt?Im Handbuch
finden Sie eine Liste von anderen unterstützten
Geräten.Unterstützt FreeBSD Power-Management auf meinem
Laptop?Auf einigen Rechnern unterstützt FreeBSD
APM. Suchen Sie bitte in der
Kernelkonfigurationsdatei LINT nach
dem Wort APM.Wieso hängt sich mein Micron-System beim Booten
auf?Einige Micron Motherboards besitzen eine
nicht-konforme PCI-BIOS-Implementierung. Sie bereitet
Kummer, wenn FreeBSD bootet, weil PCI-Geräte nicht an
der angegebenen Adresse konfiguriert werden.Deaktivieren Sie Plug and Play Operating
System im BIOS, um dieses Problem zu beheben.
Weitere Informationen können unter #micron
gefunden werden.Wenn ich ein System mit einem ASUS K7V Mainboard von
der Bootdiskette starte, hängt sich das System auf.
Wie kann ich dieses Problem lösen?Schalten Sie im BIOS die Option boot virus
protection aus.Warum arbeitet meine &tm.3com; PCI-Netzwerkkarte in meinem
Micron-Computer nicht?Einige Micron Motherboards besitzen eine
nicht-konforme PCI-BIOS-Implementierung, die die
PCI-Geräte nicht an den angegebenen Adressen
konfiguriert. Hierdurch entstehen Probleme, wenn FreeBSD
bootet.Deaktivieren Sie die Option Plug and Play
Operating System im BIOS, um das Problem zu
umgehen.Weitere Informationen zu diesem Problem gibt es unter
dem URL: .FehlerbehebungWas sollte ich tun, wenn auf meiner Festplatte
fehlerhafte Blöcke sind?SCSI-Laufwerke sollten in der Lage sein, diese
automatisch zu verlagern. Bei einigen Laufwerken ist
diese Eigenschaft jedoch aus unerfindlichen Gründen
bei der Auslieferung ausgeschaltet...Um sie einzuschalten, müssen Sie den Page-Mode
des ersten Gerätes editieren. Unter FreeBSD
können Sie das (als root) mit
folgendem Befehl tun&prompt.root; camcontrol modepage sd0 -m 1 -e -P 3und die Werte für AWRE und ARRE von 0 auf 1
ändern:-
AWRE (Auto Write Reallocation Enbld): 1
ARRE (Auto Read Reallocation Enbld): 1
Die folgenden Abschnitte wurden von Ted Mittelstaedt
tedm@toybox.placo.com eingesendet:Bei IDE-Laufwerken sind fehlerhafte Blöcke
normalerweise ein Zeichen für potentielle Probleme.
Bei allen modernen IDE-Laufwerken ist eine interne
Verlagerung von fehlerhaften Blöcken eingeschaltet.
Heutzutage bieten alle IDE-Festplattenhersteller eine
umfassende Garantie und tauschen Laufwerke mit
fehlerhaften Blöcken um.Falls Sie ein IDE-Laufwerk mit fehlerhaften
Blöcken trotzdem weiterbenutzen möchten,
können Sie versuchen, sich vom Hersteller ein
IDE-Diagnoseprogramm herunterzuladen und dies über
das Laufwerk laufen zu lassen. Manchmal können diese
Programme so eingestellt werden, dass sie die
Elektronik des Laufwerks dazu veranlassen, das Laufwerk
nochmals nach fehlerhaften Blöcken zu durchsuchen und
diese auszuschließen.Auf ESDI-, RLL- und MFM-Laufwerken sind fehlerhafte
Blöcke nichts ungewöhnliches und im allgemeinen
kein Zeichen für Probleme. Auf einem PC
übernehmen der Festplatten-Controller und das BIOS
die Aufgabe, fehlerhafte Sektoren auszuschließen,
was bei Betriebssystemen wie DOS, die das BIOS benutzen,
um auf die Platte zuzugreifen, auch gut funktioniert. Die
Festplattentreiber von FreeBSD benutzen allerdings nicht
das BIOS, weshalb ein Mechanismus bad144 existiert, der
diese Funktionalität ersetzt. bad144 arbeitet nur
mit dem wd-Treiber (und wird damit von FreeBSD 4.X nicht
unterstützt) und kann NICHT
für SCSI benutzt werden. bad144 arbeitet, indem es
alle gefundenen, fehlerhaften Sektoren in eine spezielle
Datei schreibt.Eine Einschränkung von bad144 ist, dass die
Datei mit den fehlerhaften Sektoren auf die letzte Spur
der Platte plaziert wird. Da diese Datei nun
möglicherweise eine Liste von fehlerhaften Sektoren
enthalten könnte, die am Anfang der Platte auftreten,
wo sich möglicherweise die /kernel-Datei befindet,
muss sie vom Bootstrap-Programm, das BIOS-Routinen
benutzt, um den Kernel zu lesen, erreichbar sein. Das
bedeutet, dass Platten, auf denen bad144 benutzt
wird, 1024 Zylinder, 16 Köpfe und 63 Sektoren nicht
überschreiten dürfen. Platten, die von bad144
verwaltet werden, sind also effektiv auf 500MB
begrenzt.Setzen Sie Bad Block Scanning
während der Installation im fdisk-Menü einfach auf
ON, um bad144 zu verwenden. Dies funktioniert bis zu
FreeBSD 2.2.7. Die Platte darf nicht mehr als 1024
Zylinder besitzen. Generell wird empfohlen, dass die
Festplatte vorher mindestens vier Stunden in Betrieb war,
um ihr die Möglichkeit zur thermischen Ausdehnung und
Spurversetzung zu geben.Falls eine Platte mehr als 1024 Zylinder besitzt (wie
z.B. große ESDI-Laufwerke), benutzt der Controller
einen speziellen Übersetzungsmodus, um den Betrieb
unter DOS zu ermöglichen. Der wd-Treiber kennt diese
Übersetzungsmodi, WENN Sie die
translated-Geometrie mit dem set
geometry-Befehl in fdisk eingeben. Sie
dürfen NICHT den dangerously dedicated
Modus zur Erstellung der FreeBSD-Partition verwenden,
weil dieser die Geometrie ignoriert und obwohl fdisk Ihre
überschriebene Geometrie benutzen wird, ist die wahre
Größe der Platte noch bekannt und es wird
versucht, eine zu große FreeBSD-Partition zu
erstellen. Wenn die Plattengeometrie in die
übersetzte Geometrie geändert worden ist, dann
muss die Partition manuell durch Angabe der
Blockanzahl erstellt werden.Sie können mit dem ESDI-Controller auch
kurzerhand eine große ESDI-Platte erstellen, diese
dann mit DOS booten und als DOS-Partition formatieren.
Anschließend booten Sie mit dem
FreeBSD-Installationsprogramm und im fdisk-Menü notieren
Sie sich die Blockgröße und die Anzahl
Blöcke der DOS-Partition. Dann ändern Sie die
Geometrie in die gleiche, wie die von DOS verwendete,
löschen die DOS-Partition und erstellen eine
kooperative FreeBSD-Partition mit der
gleichen Blockgröße, die Sie zuvor notiert
haben. Machen Sie die Partition nun bootfähig und
schalten Sie Bad Block Scanning ein. Während der
tatsächlichen Installation wird bad144 gestartet, bevor
irgendwelche Dateisysteme erstellt werden (Sie können
das mit AltF2 beobachten). Falls irgendwelche Probleme
bei der Erstellung der Datei mit den fehlerhaften Sektoren
auftreten sollten, haben Sie eine zu große
Plattengeometrie eingestellt - rebooten Sie Ihr System und
beginnen Sie von vorne (die Neupartitionierung und
Formatierung unter DOS eingeschlossen).Falls die Verlagerung fehlerhafter Blöcke
aktiviert ist und Sie trotzdem fehlerhafte Blöcke
bemerken, sollten Sie einen Austausch des Laufwerkes in
Erwägung ziehen, da die fehlerhaften Blöcke mit
der Zeit zunehmen werden.Wieso erkennt FreeBSD meinen SCSI-Controller vom Typ Bustek
742a EISA nicht?Diese Information ist speziell für die 742a,
könnte aber auch andere Buslogic-Karten
einschließen (Bustek = Buslogic)Es gibt zwei grundverschiedene
Versionen der 742a-Karte. Das sind die
Hardware-Revisionen A-G und Revisionen von H
aufwärts. Der Revisionsbuchstabe befindet sich
hinter der Fabriknummer am Rand der Karte. Auf der 742a
befinden sich zwei Chips. Einer ist der BIOS-Chip, der
andere der Firmware-Chip. FreeBSD achtet nicht darauf,
welche BIOS-Version Sie haben, aber es achtet auf die
Version des Firmware-Chips. Buslogic schickt Ihnen
Upgrade-ROMs, wenn Sie sich an den technischen Support
wenden. Die BIOS- und Firmware-Chips müssen als
passende Paare ausgeliefert werden. Für Ihre
Hardware-Revision benötigen Sie das aktuellste
Firmware-ROM auf Ihrer Adapter-Karte.Karten der Revision A-G akzeptieren
BIOS/Firmware-Paare bis zu 2.41/2.21. Die Karten der
Revisionen H und aufwärts akzeptieren die aktuellsten
BIOS/Firmware-Paare 4.70/3.37. Der Unterschied der
Firmware-Versionen ist, dass die 3.37-Firmware
round robin unterstützt.Auf den Buslogic-Karten befindet sich auch eine
Seriennummer. Falls Sie eine Karte mit einer alten
Hardwarerevisionsnummer besitzen, können Sie sich an
die RMA-Abteilung von Buslogic wenden, Ihre Seriennummer
angeben und versuchen, die Karte gegen eine neuere
Hardwarerevision auszutauschen. Falls Ihre Karte nicht zu
alt ist, wird dem Tausch zugestimmt werden.Von FreeBSD 2.1 werden nur Firmwarerevisionen ab 2.21
aufwärts unterstützt. Wenn Sie eine ältere
Firmwarerevision besitzen, wird Ihre Karte nicht als
Buslogic-Karte erkannt. Sie könnte jedoch als
&adaptec; 1540 erkannt werden. Die frühe Firmware von
Buslogic enthält eine AHA1540
Emulation, wovon bei EISA-Karten jedoch
abzuraten ist.Wenn sie eine Karte mit einer alten
Hardwarerevisionsnummer besitzen und die 2.21-Firmware
für sie bekommen, müssen Sie den Jumper W1 in
die Position B-C setzen; die Voreinstellung ist
A-B.Wieso wird der SCSI-Controller meines HP Netserver nicht
erkannt?Hierbei handelt es sich um ein bekanntes Problem. Der
auf dem Board befindliche EISA-SCSI-Controller auf dem HP
Netserver belegt die EISA-Slotnummer 11, wodurch sich alle
wirklichen EISA-Slots vor ihm befinden.
Leider kollidiert der Adressraum von EISA-Slots
>=10 mit dem Adressraum, der PCI zugeordnet ist und
die Autokonfiguration von FreeBSD kann mit dieser
Situation derzeit nicht besonders gut umgehen.Die einfachste Alternative ist, diese Kollision
einfach zu leugnen. Setzen Sie dazu die Kerneloption
EISA_SLOTS auf den Wert 12.
Konfigurieren und kompilieren Sie den Kernel, wie im
Handbucheintrag
zur Kernelkonfiguration beschrieben.Dies bringt Ihnen natürlich das klassische
Huhn-Ei-Problem, wenn Sie auf einer solchen Maschine
installieren wollen. Um dieses Problem zu umgehen,
existiert ein spezieller Hack in
UserConfig. Benutzen Sie nicht die
visuelle Schnittstelle, sondern die rohe
Kommandozeilenschnittstelle. Geben Sie einfach
eisa 12
quit
am Prompt ein und Sie können Ihr System ganz
normal installieren. Sie sollten auf jeden Fall einen
angepassten Kernel zu kompilieren und
installieren.Zukünftige Versionen werden hoffentlich eine
passende Lösung für dieses Problem
beinhalten.Sie können keine dangerously
dedicated Platte auf einem HP Netserver
verwenden. Lesen Sie weitere Informationen finden Sie
in diesem
Hinweis.Was bedeuten die ständigen Meldungen ed1:
timeout?Dies wird meistens durch einen Interruptkonflikt
verursacht (z.B., wenn zwei Karten den selben Interrupt
benutzen). Vor 2.0.5R war FreeBSD diesbezüglich
tolerant und die Treiber für Netzwerkkarten
funktionierten auch bei IRQ-Konflikten. Seit 2.0.5R
werden IRQ-Konflikte jedoch nicht länger toleriert.
Booten Sie mit der Option -c und ändern Sie die
Einträge zu ed0/de0/... Ihrem Board
entsprechend.Wenn Sie den BNC-Anschluss Ihrer Netzwerkkarte
benutzen, könnte es auch sein, dass es sich
Geräte-Timeouts aufgrund fehlerhafter Terminierung
handelt. Um dies zu überprüfen, verbinden Sie
einen Terminator direkt mit der Netzwerkkarte (ohne Kabel)
und beobachten Sie, ob die Fehlermeldungen
verschwinden.Einige NE2000 kompatible Karten melden diesen Fehler,
wenn keine Verbindung am UTP-Eingang existiert oder wenn
das Kabel nicht eingesteckt ist.Warum funktioniert meine &tm.3com; 3C509 plötzlich
nicht mehr?Diese Karte ist dafür berüchtigt, ihre
Konfiguration zu vergessen. Sie müssen die Karte mit
dem DOS-Programm 3c5x9.exe neu
konfigurieren.Mein an der parallel Schnittstelle angeschlossener
Drucker ist unglaublich langsam. Was kann ich
tun?Falls das einzige Problem ist, dass er
schrecklich langsam ist, dann sollte Sie versuchen, die
Kommunikationseinstellungen der parallelen Schnittstellen
zu ändern, wie es im Kapitel Drucken
des Handbuchs beschrieben ist.Wieso brechen meine Programme gelegentlich mit
Signal 11-Fehlern ab?Das Signal 11 wird generiert, wenn ein Prozess
versucht, auf Speicher zuzugreifen, obwohl er vom
Betriebssystem dazu nicht befugt wurde. Wenn Ihnen das
scheinbar zufällig immer wieder passiert, sollten Sie
der Sache einmal auf der Grund gehen.Das Problem hat in der Regel eine der folgenden
Ursachen:Wenn das Problem nur in einer bestimmten
Anwendung auftritt, die Sie selbst entwickeln, dann
ist es wahrscheinlich ein Fehler in Ihren
Sourcen.Wenn das Problem in einem Teil von FreeBSD
auftritt, könnte es natürlich auch ein
Fehler sein; aber in den meisten
Fällen werden diese Probleme gefunden und behoben,
bevor die typischen Leser der FAQ (wir) diese Teile
der Sourcen benutzen können (dafür gibt es
schließlich -CURRENT).Wenn der Fehler auftritt, wenn Sie ein Programm
compilieren aber dabei immer wieder an anderer Stelle
auftritt, dann ist das ein ganz eindeutiger Hinweis,
dass das Problem nicht bei
FreeBSD liegt.Nehmen wir zum Beispiel an, dass Sie make
buildworld ausführen und die Compilierung von
ls.c in ls.o
abbricht. Wenn Sie nochmal "make buildworld"
durchführen und die Compilierung an der gleichen
Stelle abbricht, handelt es sich um einen Fehler in den
Sourcen. Aktualisieren Sie Ihre Sourcen und versuchen Sie
es noch einmal. Wenn der Fehler jedoch an einer anderen
Stelle auftritt, liegt das Problem mit an Sicherheit
grenzender Wahrscheinlichkeit bei Ihrer Hardware.Was Sie tun sollten:Im ersten Fall können Sie einen Debugger wie z.B.
gdb benutzen, um die Stelle im Programm zu finden, an der
auf eine falsche Adresse zugegriffen wird und danach den
Fehler beheben.Im zweiten Fall müssen Sie sicherstellen,
dass das Problem nicht von Ihrer Hardware verursacht
wird.Typische Ursachen dafür sind unter
anderem:Es könnte sein, dass Ihren Festplatten
zu warm werden: Überprüfen Sie, ob die
Lüfter in Ihrem Gehäuse noch funktionieren,
damit Ihre Festplatten (und andere Hardware) nicht
heißlaufen.Der Prozessor überhitzt, weil Sie Ihn
übertaktet haben oder der CPU-Kühler
ausgefallen ist. Sie müssen sicherstellen,
dass Sie Ihre Hardware unter den Bedingungen
betreiben, für die sie spezifiziert ist,
zumindestens während Sie versuchen, das Problem
zu lösen. Mit anderen Worten: Betreiben Sie
Ihre CPU mit der normalen Taktfrequenz.Wenn Sie übertakten, sollten Sie daran
denken, dass ein langsames System deutlich
billiger ist als ein defektes System. Die große
Masse hat nicht sehr häufig Mitgefühl mit
Problemen bei übertakteten System, auch wenn Sie
es für ungefährlich halten.Unzuverlässiger Speicher: Wenn Sie mehr als
ein SIMM/DIMM installiert haben, sollten Sie sie alle
ausbauen und die Maschine testweise mit jedem SIMM
oder DIMM einzeln betreiben. So können Sie
feststellen, ob die Ursache ein einzelnes SIMM/DIMM
oder auch eine Kombination von Modulen ist.Zu optimistische Einstellung des Mainboards: In
Ihrem BIOS und mit den Jumpern auf dem Mainboard
können Sie diverse Timings ändern. In den
meisten Fällen reichen die Defaults aus, aber
manchmal kann es durch zu wenig wait states, die
Einstellung RAM Speed: Turbo oder
ähnliches zu merkwürdigen Problemen kommen.
Ein möglicher Ansatz ist, die BIOS defaults zu
laden, allerdings könnte es sinnvoll sein, die
aktuellen Einstellungen vorher zu notieren.Schlechte oder fehlerhafte Stromversorgung des
Mainboards: Wenn Sie unbenutzte Steckkarten, Platten
oder CDROMs in Ihrem System haben, sollten Sie sie
testweise ausbauen oder die Stromversorgung abziehen.
Dadurch können Sie prüfen, ob Ihr Netzteil
eventuell mit einer geringeren Last besser
zurechtkommt. Sie können auch testweise ein
anderes, am besten ein leistungsfähigeres,
Netzteil ausprobieren. Wenn Sie zurzeit ein
250W-Netzteil benutzen, sollten Sie testweise ein
300W-Netzteil einbauen.Die sollten ebenfalls die SIG11 FAQ (unten
aufgeführt) lesen, da sie gute Erklärungen
für alle diese Probleme enthält (allerdings aus
&linux;-Sicht). Sie erklärt ebenfalls, warum sowohl
Programme als auch Geräte zur Speicherprüfung
fehlerhaften Speicher teilweise nicht erkennen.Wenn alle diese Schritte nicht helfen, ist es
möglich, dass Sie einen Fehler in FreeBSD
gefunden haben. Folgen Sie einfach den Anweisungen
für die Erstellung eines Problem Reports.Es existiert eine ausführliche FAQ hierzu unter
der
SIG11-Problem-FAQMein System stürzt mit der Meldung
Fatal trap 12: page fault in kernel
mode oder panic: ab und
gibt eine Menge zusätzlicher Informationen aus. Was
kann ich tun?Die Entwickler von FreeBSD interessieren sich für
solchen Meldungen, allerdings brauchen Sie deutlich mehr
Informationen als die, die Ihnen angezeigt werden.
Kopieren Sie die komplette Meldungen und lesen Sie nun den
FAQ-Eintrag über kernel panics.
Erzeugen sie einen Kernel mit den zusätzlichen Daten
zur Fehlersuche, und dann einen backtrace. Das hört
sich komplizierter an, als es ist. Sie brauchen keine
Programmier-Erfahrung, Sie müssen einfach nur den
Anweisungen folgen.Wieso wird beim Booten der Bildschirm schwarz und reagiert
nicht mehr?Dies ist ein bekanntes Problem mit der ATI Mach 64
Videokarte. Das Problem besteht darin, dass diese
Karte die Adresse 2e8 benutzt und die
vierte serielle Schnittstelle ebenfalls. Aufgrund eines
Fehlers (einer Besonderheit?) im &man.sio.4;-Treiber wird
diese Schnittstelle angesprochen, auch wenn Sie gar keine
vierte serielle Schnittstelle besitzen und
sogar, wenn sie sio3 (die vierte
Schnittstelle), die normalerweise diese Adresse verwendet,
deaktivieren.Bis der Fehler behoben ist, können Sie folgende
Abhilfe verwenden:Geben Sie am Bootprompt ein.
(Dies bringt den Kernel in den
Konfigurationsmodus).Deaktivieren Sie sio0,
sio1,
sio2 und
sio3 (alle). Auf diese Weise
wird der sio-Treiber nicht aktiviert und das Problem
tritt nicht mehr auf.Geben Sie exit ein, um den Bootvorgang
fortzusetzen.Falls sie in der Lage sein wollen Ihre seriellen
Schnittstellen zu benutzen, müssen Sie einen neuen
Kernel mit folgenden Modifikationen erstellen: suchen Sie
in /usr/src/sys/i386/isa/sio.c nach
der Zeichenkette 0x2e8 und löschen
Sie sie und das vorhergehende Komma (nicht das folgende
Komma). Nun folgen Sie der normalen Prozedur zur
Erstellung eines neuen Kernels.Auch nach Anwendung dieser Maßnahmen könnte
es sein, dass Ihr X Windows-System nicht einwandfrei
funktioniert. Wenn dies der Fall ist, stellen Sie sicher,
dass es sich bei der von Ihnen benutzten
X Windows-Version mindestens um &xfree86; 3.3.3 oder
höher handelt. Diese Version und höhere
besitzen eine integrierte Unterstützung für
Mach64-Karten und sogar einen dedizierten X-Server
für sie.Wieso verwendet FreeBSD nur 64 MB Hauptspeicher,
obwohl in meinem Rechner 128 MB sind?Aufgrund der Art und Weise, wie FreeBSD die
Hauptspeichergröße vom BIOS mitgeteilt bekommt,
kann es lediglich 16-Bit Werte in kByte-Größe
(65535 kByte = 64MB) erkennen (oder weniger... einige
BIOSe setzen die Hauptspeichergröße auf 16MB).
Falls Sie mehr als 64MB besitzen, wird FreeBSD versuchen,
das zu erkennen, was aber nicht immer
funktioniert.Um dieses Problem zu umgehen, müssen Sie die
untenstehende Kerneloption verwenden. Es gibt einen Weg,
vollständige Hauptspeicherinformationen vom BIOS zu
erhalten, aber in den Bootblöcken ist nicht
genügend Platz dafür vorhanden. Wenn der
Platzmangel in den Bootblöcken eins Tages behoben
ist, werden wir die erweiterten BIOS-Funktionen dazu
nutzen, die vollständigen Hauptspeicherinformationen
zu erhalten... aber zurzeit sind wir auf die Kerneloption
angewiesen.options
"MAXMEM=n"Hierbei ist n Ihre
Hauptspeichergröße in Kilobyte. Bei einer 128
MB-Maschine müßten Sie
131072 benutzen.Wieso stürzt FreeBSD mit der Meldung
kmem_map too small! ab?Diese Meldung zeigt an, dass der virtuelle
Speicher für Netzwerkpuffer (spezieller mbuf-Cluster)
aufgebraucht ist. Sie können die für mbuf
verfügbare Größe an VM erhöhen, indem
Sieoptions
NMBCLUSTERS=nin Ihre Kernelkonfigurationsdatei einfügen, wobei
n, abhängig davon,
wie viele gleichzeitige TCP-Verbindungen Sie
unterstützen müssen, eine Zahl aus dem Bereich
512-4096 ist. Wir würden Ihnen empfehlen, 2048 zu
probieren - das sollte Sie von solchen Paniksituationen
vollkommen befreien. Sie können die Anzahl der
zugeordneten/benutzten mbuf-Cluster im System mit
netstat -m beobachten. Der
voreingestellte Wert für NMBCLUSTERS ist 1024
+ MAXUSERS * 64.Wieso erhalte ich die Meldung /kernel:
proc: table is full?Der FreeBSD-Kernel beschränkt die Anzahl der
gleichzeitig laufenden Prozesse. Die Anzahl errechnet
sich aus dem Wert der Variablen
MAXUSERS in der Konfigurationsdatei des
Kernels. Auch andere Einstellungen wie die Anzahl der
Puffer für Netzwerkoperationen (Details dazu
finden Sie in diesem
Abschnitt). werden durch
MAXUSERS beeinflusst. Wenn Ihr
System stark belastet ist, sollten Sie den Wert von
MAXUSERS erhöhen. Dadurch werden
diverse Einstellung des Systems angepasst und die
maximale Anzahl gleichzeitig laufender Prozesse
erhöht.Seit FreeBSD 4.4 kann der Wert von
MAXUSERS über die Variable
kern.maxusers in der Datei
/boot/loader.conf angepasst
werden. In älteren Versionen mussten Sie
MAXUSERS in der Konfigurationsdatei
für Ihren angepassten Kernel
ändern.Wenn Ihr System nicht besonders stark ausgelastet ist
und Sie einfach nur mehr gleichzeitig laufende Prozesse
erlauben wollen, können Sie den Wert des sysctl
kern.maxproc erhöhen.
Wenn diese Prozesse von einem einzigen Benutzer
ausgeführt werden, müssen Sie den Wert von
kern.maxprocperuid ebenfalls
erhöhen. Dieser Wert muss immer mindestens um
eins geringer sein als der Wert von
kern.maxproc value. (Der Grund
für diese Einschränkung ist, dass ein
Systemprogramm, &man.init.8;, immer ausgeführt werden
muss.)Damit Änderungen eines sysctl auch bei einem
Neustart des Systems erhalten bleiben, müssen Sie
diese bei aktuellen FreeBSD-Versionen in
/etc/sysctl.conf eintragen. In
älteren Versionen wurden sie in
/etc/rc.local eingetragen.Wieso erhalte ich die Meldung CMAP busy
panic, wenn ich mein System mit einem neuen
Kernel starte?Die Logik, die versucht, veraltete
/var/db/kvm_*.db-Dateien zu erkennen,
versagt manchmal und die Benutzung einer unpassenden Datei
kann zu Paniksituationen führen.Falls das passiert, rebooten Sie im Single-User-Modus
und löschen Sie die Dateien:&prompt.root; rm /var/db/kvm_*.dbWas soll mir die Meldung ahc0: brkadrint,
Illegal Host Access at seqaddr 0x0
sagen?Dies ist ein Konflikt mit einem Ultrastor SCSI
Hostadapter.Rufen Sie während des Bootprozesses das
Kernelkonfigurationsmenü auf und deaktivieren Sie
uha0, welches das Problem
verursacht.Wenn ich mein System starte, erhalte ich die Meldung
ahc0: illegal cable configuration,
obwohl die Verkabelung korrekt ist. Woran liegt
das?Auf Ihrem Mainboard fehlen ein paar Logikbausteinen,
die für die Unterstützung der automatischen
Terminierung notwendig sind. Stellen Sie in Ihrem
SCSI-BIOS manuell die korrekte Terminierung für Ihr
System ein, anstatt sich auf die automatische Terminierung
zu verlassen. Der Treiber für den AIC7XXX kann nicht
erkennen, ob die externen Logikbausteine für die
Erkennung der Kabel (und damit automatische Terminierung)
vorhanden sind. Der Treiber muss sich darauf
verlassen, dass diese vorhanden sind, wenn in der
Konfiguration automatische Terminierung
eingestellt ist. Ohne die externen Bausteine ist es sehr
wahrscheinlich, dass der Treiber die Terminierung
falsch einstellt, was die Zuverlässigkeit des
SCSI-Busses herabsetzen kann.Wieso meldet Sendmail mail loops back to
myself?Dies wird in der Sendmail-FAQ wie folgt
beantwortet:- * Ich erhalte "Local configuration error" Meldungen, wie:
553 relay.domain.net config error: mail loops back to myself
554 <user@domain.net>... Local configuration error
Wie kann ich dieses Problem lösen?
Sie haben durch die Benutzung einer MX-Zeile eingestellt, dass
Mail für die Domäne (z.B. domain.net) an einen speziellen
Host (in diesem Fall relay.domain.net) weitergeleitet wird,
aber der Relay-Host erkennt sich selbst nicht als
domain.net. Fügen Sie domain.net in /etc/mail/local-host-names
(falls Sie FEATURE(use_cw_file) benutzen) oder "Cw domain.net"
in /etc/mail/sendmail.cf ein.
Die aktuelle Version der Sendmail-FAQ
wird nicht mehr mit dem Sendmail-Release verwaltet. Sie
wird jedoch regelmäßig nach comp.mail.sendmail,
comp.mail.misc,
comp.mail.smail,
comp.answers und
news.answers
gepostet. Sie können auch eine Kopie per E-Mail
bekommen, indem Sie eine Mail mit dem Inhalt send
usenet/news.answers/mail/sendmail-faq an
mail-server@rtfm.mit.edu schicken.Wieso funktionieren bildschirmorientierte Anwendungen beim
Zugriff über ein Netzwerk nicht richtig?Die entfernte Maschine scheint den Terminaltyp auf
etwas anderes als den Typ cons25, der
von FreeBSD verlangt wird, zu setzen.Es gibt mehrere mögliche Abhilfen für dieses
Problem:Setzen Sie die Shell-Variable TERM nach dem
Einloggen auf der entfernten Maschine auf
ansi oder sco,
sofern die entfernte Maschine diese Terminaltypen
kennt.Benutzen Sie einen VT100-Emulator wie
screen auf der
FreeBSD-Console. screen
bietet Ihnen die Möglichkeit, mehrere
gleichzeitige Sitzungen von einem Bildschirm aus
laufen zu lassen. Es ist ein sehr nettes Programm.
Jedes screen-Fenster
verhält sich, wie ein VT100-Terminal, weshalb die
Variable TERM am entfernten Ende auf
vt100 gesetzt werden
sollte.Installieren Sie den Eintrag
cons25 in der Bildschirmdatenbank
der entfernten Maschine. Wie das zu geschehen hat,
hängt vom Betriebssystem der entfernten Maschine
ab. Das Systemadministrationshandbuch für das
entfernte System sollte Ihnen hierbei helfen
können.Starten Sie einen X-Server auf der FreeBSD-Seite
und benutzen Sie einen X-basierten Terminalemulator
wie xterm oder
rxvt, um sich auf der entfernten
Maschine einzuloggen. Die Variable TERM auf dem
entfernten Host sollte auf xterm
oder vt100 gesetzt werden.Wieso meldet mein Rechner calcru: negative
time...?Dies kann durch verschiedene Hardware- oder
Softwareprobleme in Verbindung mit Interrupts verursacht
werden. Das kann aufgrund von Fehlern sein, aber es kann
auch durch die Eigenarten bestimmter Geräte
passieren. TCP/IP über die parallele Schnittstelle
mit einer großen MTU laufen zu lassen, ist ein
sicherer Weg, um dieses Problem hervorzurufen.
Grafikbeschleuniger können es auch verursachen. In
diesem Fall sollten Sie zunächst die
Interrupteinstellungen der Karte
überprüfen.Ein Seiteneffekt dieses Problems sind Prozesse, die
mit der Meldung SIGXCPU exceeded cpu time
limit abbrechen.Für FreeBSD 3.0 und spätere ab dem 29. Nov.
1998: Falls das Problem nicht anders gelöst werden
kann, besteht die Lösung darin, diese sysctl-Variable
zu setzen:&prompt.root; sysctl -w kern.timecounter.method=1Die Option von &man.sysctl.8;
sollte nicht mehr benutzt werden. Ab FreeBSD 4.4
wird die Option ignoriert. Sie können die Option
auch weglassen, wenn Sie mit sysctl
Variablen setzen.Das bedeutet zwar Performanceeinbußen, aber in
Anbetracht der Ursache für dieses Problem werden Sie
das wahrscheinlich nicht bemerken. Fall das Problem
weiter bestehen bleibt, lassen sie die sysctl-Variable auf
1 stehen und setzen Sie die Option
NTIMECOUNTER im Kernel auf immer
höhere Werte. Wenn Sie irgendwann
NTIMECOUNTER=20 erreicht haben sollten,
ist das Problem nicht gelöst. Die Interrupts auf
Ihrer Maschine sind für eine verlässliche
Zeiterhaltung nicht zu gebrauchen.Ich erhalte die Meldung pcm0 not
found oder meine Soundkarte wird als
pcm1 eingebunden, obwohl in meiner
Kernelkonfiguration device pcm0
steht. Was ist passiert?Dieser Effekt tritt auf, wenn Sie &os; 3.X und eine
PCI Soundkarte haben. Das Gerät
pcm0 ist für ISA Soundkarten
reserviert; wenn Sie eine PCI Soundkarte haben, werden Sie
diese Meldung erhalten und Ihre Karte wird als
pcm1 eingebunden.Sie können das Problem nicht lösen, indem
Sie einfach in der Konfigurationsdatei für Ihnen
Kernel die Zeile device pcm1
eintragen. Wenn Sie dies tun, wird
pcm1 für ISA-Karten
reserviert und Ihre PCI-Karte wird zu
pcm2. Zusätzlich erhalten
Sie den Hinweis pcm1 not
found.Wenn Sie eine PCI Sounkarte haben, müssen Sie das
Gerät snd1 statt des
üblichen snd0
verwenden:&prompt.root; cd /dev
&prompt.root; ./MAKEDEV snd1Dieses Problem tritt in FreeBSD 4.X nicht mehr auf, da
große Anstrengungen unternommen wurden, diese
Version PnP-orientiert zu machen. In
FreeBSD 4.X ist das Gerät
pcm0 nicht mehr für
ISA-Karten reserviert.Warum wird meine PnP-Karte nicht mehr (oder nur noch als
unknown) erkannt, seit ich FreeBSD 4.X
benutze?FreeBSD 4.X ist deutlich
PnP-orientierter und das führt
leider dazu, dass einige PnP-Geräte (wie z.B.
Soundkarten und interne Modems) nicht mehr funktionieren,
obwohl Sie von FreeBSD 3.X noch erkannt wurden.Die Gründe für dieses Verhalten werden in
der unten zitierten Mail von Mail von Peter Wemm
erklärt. Diese Mail stammt von der Mailingliste
freebsd-questions und war eine Antwort auf eine Frage
bezüglich eines internen Modem, das nach dem Update
auf FreeBSD 4.X nicht mehr erkannt wurde.Die mit [] gekennzeichneten Kommentare
wurden eingefügt, um an einigen Stellen die Bezüge
klarstellen.
Das PnP-BIOS hat es [das Modem] vorkonfiguriert und
es dann im Adressraum liegenlassen, daher haben es
die alten ISA-Erkennungsroutinen [in 3.X]
gefunden.In 4.0 sind die ISA-Routinen deutlich
PnP-orientierter. Es war möglich [in 3.X],
dass eine ISA-Erkennungsroutinen ein
zugelaufenes Gerät fand;
während die PnP-Treiber zwar die ID erkannten, das
Gerät aber wegen des Ressourcekonfliktes nicht
benutzen konnten. Daher werden die programmierbaren
Karten zunächst einmal abgeschaltet, um diese
doppelte Erkennung vermeiden zu können. Das
bedeutet allerdings auch, dass die Treiber die
PnP-ID kennen muss, um PnP-Hardware
unterstützen zu können. Wir haben uns
vorgenommen, den Benutzern eine einfachere
Möglichkeit zur Manipulation dieser Informationen
zur Verfügung zu stellen.
Damit Ihr Gerät wieder funktioniert, müssen
Sie seine PnP-ID herausfinden und die ID in die Listen
eintragen, die zur Erkennung von PnP-Geräten
genutzten werden. Zu diesem Zweck wird das Gerät mit
&man.pnpinfo.8; analysiert. Das Beispiel zeigt die
Ausgaben von &man.pnpinfo.8; für ein internes
Modem:&prompt.root; pnpinfo
Checking for Plug-n-Play devices...
Card assigned CSN #1
Vendor ID PMC2430 (0x3024a341), Serial Number 0xffffffff
PnP Version 1.0, Vendor Version 0
Device Description: Pace 56 Voice Internal Plug & Play Modem
Logical Device ID: PMC2430 0x3024a341 #0
Device supports I/O Range Check
TAG Start DF
I/O Range 0x3f8 .. 0x3f8, alignment 0x8, len 0x8
[16-bit addr]
IRQ: 4 - only one type (true/edge)[weitere TAG Zeilen gestrichen]TAG End DF
End Tag
Successfully got 31 resources, 1 logical fdevs
-- card select # 0x0001
CSN PMC2430 (0x3024a341), Serial Number 0xffffffff
Logical device #0
IO: 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8
IRQ 5 0
DMA 4 0
IO range check 0x00 activate 0x01Sie benötigen die Information aus der Zeile
Vendor ID ganz im Anfang. Die in Klammern
ausgegebene hexadezimale Zahl (0x3024a341 in diesem
Beispiel) ist die PnP ID und die unmittelbar davor
stehende Zeichenkette (PMC2430) ist eine eindeutige
Herstellerkennung.Benutzen Sie &man.pciconf.8; wenn &man.pnpinfo.8; die Karte
nicht anzeigt. Der Teil der Ausgabe von
pciconf -vl für eine auf dem
Motherboard integrierte Soundkarte sieht zum Beispiel so
aus:&prompt.root; pciconf -vl
chip1@pci0:31:5: class=0x040100 card=0x00931028 chip=0x24158086 rev=0x02 hdr=0x00
vendor = 'Intel Corporation'
device = '82801AA 8xx Chipset AC'97 Audio Controller'
class = multimedia
subclass = audioSie benötigen die Chip-ID 0x24158086,
die hinter chip aufgeführt ist.Die Herstellerkennung oder die Chip-ID müssen in die
Datei /usr/src/sys/isa/sio.c
eingetragen werden.Sie sollten zunächst ein Backup von
sio.c anlegen, falls etwas schief
gehen sollte. Sie werden auch einen Patch erzeugen
müssen, um ihn zusammen mit Ihrem PR einzusenden.
(Sie wollten doch einen PR schreiben, oder etwa nicht?)
Öffnen Sie nun sio.c mit einem
Editor und suchen Sie nach der Zeilestatic struct isa_pnp_id sio_ids[] = {und blättern Sie dann nach unten, um die passende
Stelle für Ihr Gerät zu finden. Unten finden
Sie Beispiel für die Einträge, diese sind nach
der Herstellerkennung sortiert. Diese sollte in dem
Kommentar auf der rechten Seite aufgenommen werden, dazu
kommt die Gerätebeschreibung (Device
Description) aus der Ausgabe von
&man.pnpinfo.8;:
{0x0f804f3f, NULL}, /* OZO800f - Zoom 2812 (56k Modem) */
{0x39804f3f, NULL}, /* OZO8039 - Zoom 56k flex */
{0x3024a341, NULL}, /* PMC2430 - Pace 56 Voice Internal Modem */
{0x1000eb49, NULL}, /* ROK0010 - Rockwell ? */
{0x5002734a, NULL}, /* RSS0250 - 5614Jx3(G) Internal Modem */
Fügen Sie die hexadezimale Gerätekennung an
der richtigen Stelle ein, speichern Sie die Datei ab,
erzeugen Sie einen neuen Kernel und starten Sie Ihr System
neu. Ihr Gerät sollte nun wie bei FreeBSD 3.X als
sio Gerät erkannt werden.Warum erhalte ich die Meldung nlist
failed, wenn ich Programme wie
top oder systat
benutze?Das Programm sucht nach einem speziellen Symbol im
Kernel, kann es aber aus irgendeinem Grunde nicht finden.
Dieser Fehler wird von einem dieser Probleme
verursacht:Ihr Kernel und die sonstigen Programme (das
Userland) sind nicht mehr auf dem
gleichen Stand. Mit anderen Worten, Sie haben zwar
einen neuen Kernel erzeugt, aber kein
installworld (oder
umgekehrt); darum weicht die Symboltabelle von dem
ab, was die Anwendung erwartet. Wenn dies der Fall ist,
müssen Sie lediglich die noch fehlenden Schritte
des Upgrades durchführen. Die richtige
Vorgehensweise kann
/usr/src/UPDATING entnommen
werden.Um Ihren Kernel zu laden, benutzen Sie nicht
/boot/loader, sondern laden ihn
direkt mit boot2 (siehe &man.boot.8;). Es ist zwar
nicht immer ein Fehler,
/boot/loader zu umgehen; allerdings
ist er in der Regel besser dazu geeignet, die Symbole des
Kernels für normale Anwendungen verfügbar zu
machen.Wieso dauert es so lange, bis eine Verbindung
(&man.ssh.1; oder &man.telnet.1;) aufgebaut wird?Das Symptom: Nach dem Aufbau des TCP-Verbindung
vergeht einige Zeit, bis endlich die Abfrage des
Passwortes (bzw. der Login-Prompt bei Telnet)
erscheint.Das Problem: In den meisten Fällen versucht der
Server in der Zwischenzeit, die IP-Adresse des Clients in
einen Rechnernamen zu übersetzen. Viele Server
(darunter die Telnet und SSH Server von FreeBSD) machen
das, um den Hostnamen z.B. für spätere
Verwendung durch den Systemadministrator in eine
Protokolldatei schreiben zu können.Die Lösung: wenn das Problem bei jedem Server
auftritt, den Sie von Ihrem Computer (dem Client)
ansprechen, dann wird das Problem vom Client verursacht.
Wenn das Problem aber nur auftritt, wenn jemand Ihren
Rechner (den Server) anspricht, dann liegt die Ursache
beim Server.Wenn das Problem vom Client verursacht wird,
müsssen Sie die Einträge im DNS korrigieren,
damit der Server Ihre IP-Adresse übersetzen kann.
Wenn das Problem in Ihrem lokalen Netzwerk auftritt,
sollten Sie es als Problem des Servers behandeln und
weiterlesen; wenn es allerdings im Internet auftritt,
werden Sie sich wahrscheinlich an Ihrem ISP wenden
müssen, damit dieser das Problem für Sie
korrigiert.Wenn das Problem vom Server verursacht wird und Sie
sich in einem lokalen Netzwerk befinden, dann müssen
Sie Ihren Server so konfigurieren, dass er die lokal
genutzten IP-Adressen in Rechnernamen übersetzen kann.
Weitere Informationen erhalten Sie in den Onlinehilfen zu
&man.hosts.5; und &man.named.8;. Wenn dieses Problem im
Internet auftritt, könnte die Ursache auch darin
liegen, dass die Namensauflösung auf dem Server
nicht funktioniert. Versuchen Sie, einen anderen
Hostnamen wie z.B. www.yahoo.com
aufzulösen. Wenn das nicht funktioniert, liegt das
Problem bei Ihrem System.Was bedeutet stray IRQ?Stray IRQs sind ein Zeichen für Probleme bei der
Behandlung von Hardware-IRQs. Sie werden meistens von
Geräten verursacht, die ihren Interrupt Request
zurückziehen, obwohl gerade der interrupt request
acknowledge-Zyklus läuft.Sie können drei Dinge tun:Ertragen Sie die Warnungen. Sie erhalten nur die
ersten 5 für jeden IRQ, alle anderen werden
unterdrückt.Eliminieren Sie die Meldungen, indem Sie in
isa_strayintr() den Wert 5 auf 0
ändern, um alle Meldungen zu
unterdrücken.Eliminieren Sie die Meldungen, indem Sie Hardware
für den Parallelport installieren, die IRQ 7
nutzt und vom PPP Treiber verwendet wird (das passiert
auf den meisten Systemen), und installieren Sie eine
IDE-Platte oder andere Hardware sowie einen dazu
passenden Treiber, um IRQ 15 zu nutzen.Warum sehe ich in der Ausgabe von dmesg häufig
die Meldung file: table is
full?Diese Fehlermeldung besagt, dass Sie die zur
Verfügung stehenden File-Handles des Systems
verbraucht haben. Was das genau bedeutet und wie Sie
dieses Problem lösen können, steht im Abschnitt
kern.maxfiles im Kapitel Anpassung
der Kernelkonfiguration des Handbuchs.Warum ist die Uhrzeit auf meinem Laptop immer
falsch?Ihr Laptop verfügt über mehr als eine Uhr
und FreeBSD benutzt leider die falsche.Starten Sie &man.dmesg.8; und achten Sie auf die
Zeilen, in denen das Wort Timecounter
vorkommt. Die von FreeBSD benutzte Uhr steht in der
letzten Zeile, mit an Sicherheit grenzender
Wahrscheinlichkeit wird es TSC
sein.&prompt.root; dmesg | grep Timecounter
Timecounter "i8254" frequency 1193182 Hz
Timecounter "TSC" frequency 595573479 HzSie können das überprüfen, indem Sie
den Wert der Systemvariablen
kern.timecounter.hardware
abfragen.&prompt.root; sysctl kern.timecounter.hardware
kern.timecounter.hardware: TSCEs ist durchaus möglich, dass das BIOS die
TSC Uhr ändert, um beispielsweise den CPU-Takt zu
während des Batteriebetrieb zu ändern, oder im
Stromsparmodus; leider bemerkt FreeBSD diese
Änderungen nicht und daher scheint die Uhr falsch zu
gehen.In diesem Beispiel ist die Uhr
i8254 ebenfalls verfügbar; um sie
auszuwählen, muss ihr Name in die Systemvariable
kern.timecounter.hardware geschrieben
werden.&prompt.root; sysctl -w kern.timecounter.hardware=i8254
kern.timecounter.hardware: TSC -> i8254Die Uhrzeit Ihres Laptops sollte nun genauer
funktionieren.Damit diese Änderung automatisch beim Start des
Systems durchgeführt wird, müssen Sie die
folgende Zeile in die
/etc/sysctl.conf eintragen.kern.timecounter.hardware=i8254Warum erkennt mein Laptop PC-Cards nicht?Dieses Problem tritt häufig auf Laptops mit mehreren
Betriebssystemen auf. Einige nicht-BSD Betriebssysteme lassen
die Hardware in einem inkonsistenten Zustand. Die Karte wird
dann von pccardd als
"(null)""(null)" anstelle des
tatsächlichen Modells gefunden.Um dies zu beheben, müssen Sie die Hardware
zurücksetzen, das heißt der PC-Card Einschub
muss stromlos sein. Gehen Sie dazu nicht in den Standby-
oder Suspend-Modus und stellen Sie sicher, dass der Laptop
wirklich ausgeschaltet ist. Warten Sie einen Moment und booten
dann, Ihre PC-Card sollte jetzt funktionieren.Einige Laptops schalten sich nicht wirklich aus. Wenn der
obige Vorschlag nichts genutzt hat, entfernen Sie bitte die
Batterie, warten einen Moment und booten erneut.Wieso hängt sich FreeBSD nach dem BIOS-Bildschirm
mit der Meldung Read error
auf?Der Bootloader von FreeBSD erkennt die Geometrie Ihrer
Festplatte nicht richtig. Sie müssen die Geometrie
manuell festlegen, wenn sie mit fdisk FreeBSD-Bereiche
erzeugen oder ändern.Die richtigen Werte für die Geometrie können
Sie im BIOS des Rechners ablesen. Achten Sie auf die
Anzahl der Zylinder, Köpfe und Sektoren für Ihre
Festplatte.Im fdisk von &man.sysinstall.8; müssen Sie
G eingeben, um die Geometrie zu
definieren.Sie erhalten eine Dialogbox, in der Sie die Anzahl der
Zylinder, Köpfe und Sektoren eingeben können.
Verwenden Sie die Angaben des BIOS und setzen Sie
Schrägstriche zwischen die Zahlen. 5000 Zylinder,
250 Köpfe und 60 Sektoren würden also als
5000/250/60 eingegeben.Schließen Sie die Eingabe mit Enter
ab und drücken Sie W, um die neue
Partitionstabelle auf die Festplatte schreiben zu
lassen.Ein anderes Betriebssystem hat meinen Bootmanager
zerstört. Wie kann ich ihn wiederherstellen?Starten Sie &man.sysinstall.8; und wählen Sie
Configure, dann Fdisk. Wählen Sie die Platte, auf
der sich der Boot Manager befand, mit der
Leertaste aus. Drücken Sie
W, um die Änderungen auf die Platten
schreiben zu lassen. Nun erscheint eine Abfrage, welcher
Bootmanager installiert werden soll. Wählen Sie
diesen an und er wird wieder installiert.Was soll mir die Meldung swap_pager: indefinite
wait buffer: sagen?Ein Programm wollte Speicher auf Platte auslagern, und
dieser Vorgang konnte nicht innerhalb von 20 Sekunden
durchgeführt werden. Mögliche Gründe sind
defekte Blöcke auf der Platte, falsche oder
fehlerhafte Verkabelung sowie Probleme mit anderen
Komponenten, die am Zugriff auf die Festplatte beteiligt
sind. Wenn die Festplatte selbst fehlerhaft sind, sollten
Sie entsprechende Meldungen in
/var/log/messages und den Ausgaben
von dmesg finden. Andernfalls sollten
Sie die Kabel und Verbindungen
überprüfen.Was sind UDMA ICRC Fehler und wie behebe ich
sie?Der &man.ata.4;-Treiber meldet UDMA ICRC
Fehler wenn eine DMA-Übertragung zu oder von einem
Laufwerk fehlgeschlagen ist. Der Treiber versucht die
Übertragung mehrmals durchzuführen und schaltet,
wenn die Versuche fehlschlagen, vom DMA-Modus auf den
langsameren PIO-Modus um.Der Fehler kann viele Ursachen haben, häufig ist ein
Kabel kaputt oder die Geräte sind falsch verkabelt.
Prüfen Sie, ob die ATA-Kabel unbeschädigt sind und
für den verwendeten Ultra-DMA-Modus tauglich sind. Ebenso
müssen Wechselrahmen für den verwendeten Modus geeignet
sein. Stellen Sie sicher, dass alle Kabel fest
angeschlossen sind. Es gab auch schon Probleme, wenn ein altes
Laufwerk zusammen mit einem Ultra-DMA-66 oder einem schnelleren
Laufwerk auf einem Kanal betrieben wurde. Es kann aber auch
sein, dass das Laufwerk kaputt ist. Die meisten Hersteller
stellen Test-Programme für ihre Laufwerke zur
Verfügung. Überprüfen Sie damit Ihr Laufwerk und
wenn nötig, sichern Sie Ihre Daten und ersetzen das
Laufwerk.&man.atacontrol.8; zeigt für jedes ATA-Gerät den
verwendeten DMA- oder PIO-Modus an. Das Kommando
atacontrol mode
Kanal
zeigt die auf einem Kanal verwendeten Modi (die Kanäle
werden von 0 an nummeriert).Was ist ein lock order
reversal?&a.rwatson; hat diese Frage auf der Mailingliste
freebsd-current ausführlich beantwortet. Das Original
seiner Antwort finden Sie über den Thread
lock order reversals - what do they mean?.
&a.rwatson; am 14. Dezember 2003 auf
freebsd-currentDiese Warnungen werden von Witness, einem
Diagnosesystem, das Verklemmungen
(deadlocks) zur Laufzeit
erkennen kann, ausgegeben. Dieses System ist in
FreeBSD -CURRENT-Kerneln vorhanden (aber nicht in
Release-Kerneln) und wird in &man.witness.4; beschrieben.
Unter anderem ist Witness in der Lage, die korrekte
Reihenfolge von bekannten sowie zur Laufzeit entdeckten
Ressource-Locks zu überprüfen, und eine Warnung
auszugeben, wenn diese Reihenfolge verletzt wird. Dadurch
wird es möglich, potentielle Verklemmungen
(deadlocks) zu entdecken.
Beachten Sie, dass Witness sehr vorsichtig ist und daher
Falschmeldungen ausgeben kann. Falls Witness ein
Verklemmungsproblem meldet, bedeutet dies: Wenn
Sie Pech gehabt hätten, wäre es jetzt zu einer
Verklemmung gekommen. Es sind einige falsch
positive Meldungen bekannt, die noch besser dokumentiert
werden müssten, um unnötige Problemmeldungen zu
vermeiden. Neu auftretende Meldungen beruhen in der Regel
auf Bugs in neu hinzugefügten Ressource-Locks, und
werden meist rasch behoben, weil Witness laufend
Fehlermeldungen produziert. :-).
Lesen Sie auch die lock
order reversal page von Bjoern Zeeb, um sich
über den Status bekannter lock order
reversals zu informieren.Kommerzielle AnwendungenDieser Abschnitt ist immer noch sehr dürftig, aber
wir hoffen natürlich, dass Unternehmen einen Beitrag
leisten werden! :) Die FreeBSD-Gruppe hat keinerlei
finanzielle Interessen an einem der hier aufgelisteten
Unternehmen, sondern listet sie lediglich als
öffentlichen Service auf (und ist der Meinung, dass
ein kommerzielles Interesse an FreeBSD sehr positiven
Einfluss auf ein langfristiges Bestehen von FreeBSD haben
kann). Wir möchten Anbieter kommerzieller Software dazu
aufrufen, ihren Eintrag hier aufnehmen zu lassen. Auf der
Anbieter-Seite finden Sie eine längere
Liste.Wo bekommen ich FreeBSD-Versionen der klassischen
Büro-Anwendungen?Die FreeBSD Mall
bietet eine FreeBSD-Version von VistaSource
ApplixWare 5 an.ApplixWare ist eine umfassende Sammlung von
Büroanwendungen, die eine Textverarbeitung, eine
Tabellenkalkulation, ein Programm für
Vorträge, ein Vektorzeichenprogramm und diverse
andere Programme beinhaltet.Die FreeBSD-Version von ApplixWare ist Bestandteil
der BSD Desktop Edition, die von FreeBSD Mall
vertrieben wird.Die &linux;-Version von StarOffice
läuft unter FreeBSD problemlos. Die einfachste
Möglichkeit zur Installation der &linux;-Version
von Staroffice ist die Benutzung der FreeBSD Ports.
Das gilt auch für die Open Source-Variante
OpenOffice, die
in der Ports-Sammlung enthalten ist.Woher kann ich &motif; für FreeBSD
bekommen?Der Quelltext für &motif; 2.2.2 wurde von der
Open Group herausgegeben. Sie können
entweder das Package open-motif
installieren oder es mit dem entsprechenden Port selbst
compilieren. Weitere Informationen über die
Benutzung der Ports erhalten Sie im Kapitel Ports des
Handbuchs.Die Open &motif; Distribution darf nur weitergegeben
werden, wenn sie auf einem Open Source
Betriebssystem benutzt wird.Weiterhin gibt es auch kommerzielle &motif;-Paket, die
zwar nicht kostenlos sind, aber dafür auch mit
closed source Software benutzt werden
dürfen. Um die günstigste ELF-&motif; 2.1.20
Distribution für FreeBSD (entweder &i386; oder Alpha)
zu bekommen, wenden Sie sich bitte an Apps2go.Es gibt zwei Distributionen, die development
edition und die runtime edition
(wesentlich günstiger). Diese Distributionen
enthalten:OSF/&motif; manager, xmbind, panner, wsm.Development-Kit mit uil, mrm, xm, xmcxx, Include-
und Imake-Dateien.Statische und dynamische ELF-Bibliotheken (zur
Benutzung mit FreeBSD 3.0 und höher).Demonstrations-Applets.Achten Sie darauf, dass Sie bei der Bestellung
angeben, dass Sie die FreeBSD-Version von &motif;
möchten (vergessen Sie auch nicht, die Architektur
anzugeben)! Von Apps2go werden auch
Versionen für NetBSD und OpenBSD verkauft. Dieses
Produkt ist zurzeit nur zum Download per FTP
verfügbar.Weitere InformationenApps2go
Web-Seiteodersales@apps2go.com oder
support@apps2go.comoderTelefon (817) 431 8775 oder +1 817
431-8775Eine &motif; 2.1-Distribution für FreeBSD im ELF-
oder a.out-Format ist bei Metro
Link erhältlich.Diese Distribution enthält:OSF/&motif; manager, xmbind, panner, wsm.Development-Kit mit uil, mrm, xm, xmcxx, Include-
und Imake-Dateien.Statische und dynamische Bibliotheken (verlangen
Sie ELF zur Verwendung unter FreeBSD ab 3.0 und oder
a.out zur Verwendung unter FreeBSD bis
einschließlich 2.2.8).Demonstrations-Applets.Vorformatierte Manualpages.Achten Sie darauf, bei der Bestellung anzugeben,
dass Sie die FreeBSD-Version von &motif; möchten!
Metro Link vertreibt auch Versionen
für &linux;. Dieses Produkt ist entweder als CDROM
oder zum Download per FTP erhältlich.Eine &motif; 2.0 Distribution für FreeBSD im
a.out-Format gibt es bei Xi
Graphics.Diese Distribution enthält:/OSF/&motif; manager, xmbind, panner, wsm.Development-Kit mit uil, mrm, xm, xmcxx, Include-
und Imake-Dateien.Statische und dynamische Bibliotheken (zur
Verwendung unter FreeBSD 2.2.8 und
frühere).Demonstrations-Applets.Vorformatierte Manualpages.Achten Sie darauf, bei der Bestellung anzugeben,
dass Sie die FreeBSD-Version von &motif; möchten!
Xi Graphics verkauft auch Versionen
für BSDI und &linux;. Dieses Produkt ist derzeit ein
Satz von vier Disketten... zukünftig wird es eine
einheitliche CD-Distribution geben, wie beim CDE.Woher kann ich CDE für FreeBSD bekommen?Xi Graphics hat einmal CDE
für FreeBSD verkauft, tut es aber nicht mehr.KDE ist ein
Open-Source X11-Desktop, der CDE in vielen Punkten
ähnelt. Eventuell gefällt Ihnen auch das "Look
and Feel" von xfce. KDE und xfce
sind über die Ports-Sammlung
von FreeBSD verfügbar.Gibt es irgendwelche kommerzielle leistungsfähige
X-Server?Ja, Xi
Graphics und Metro Link
vertreiben beschleunigte X-Produkte für FreeBSD und
andere Intel-basierte Systeme.Das Angebot von Metro Link besteht aus einem
leistungsfähigen X-Server, der einfache Konfiguration
unter Verwendung von Werkzeugen aus der
FreeBSD-Paketsammlung und Unterstützung für den
parallelen Einsatz mehrerer Videokarten bietet. Es wird
nur in binärer Form über ein bequemes
FTP-Download vertrieben. Ganz zu schweigen davon,
dass das Angebot von Metro Link zum sehr
günstigen Preis von 39 Dollar erhältlich
ist.Metro Link bietet auch &motif; für FreeBSD sowohl
im ELF-, als auch im a.out-Format an (siehe oben).Weitere InformationenMetro
Link Web-Seiteodersales@metrolink.com oder
tech@metrolink.comoderTelefon (954) 938-0283 oder +1 954
938-0283Das Angebot von Xi Graphics besteht aus einem
leistungsfähigen X-Server, der einfache Konfiguration
und Unterstützung für den parallelen Einsatz
mehrerer Videokarten bietet. Es wird in binärer Form
in einer einheitlichen Diskettendistribution für
FreeBSD und Linux vertrieben. XI Graphics bietet auch
leistungsfähige X-Server, die auf die
Unterstützung von Laptops zugeschnitten sind.
Es gibt ein kostenloses
Kompatibilitäts-Demo der Version
5.0.Xi Graphics vertreibt auch &motif; und CDE für
FreeBSD (siehe oben).Weitere InformationenXi Graphics
Web-Seiteodersales@xig.com oder
support@xig.comoderTelefon (800) 946 7433 oder +1 303
298-7478.Gibt es irgendwelche Datenbanksysteme für
FreeBSD?Ja! Lesen Sie den Abschnitt
kommerzielle Anbieter auf der FreeBSD-Web-Seite.Schauen Sie auch im Abschnitt Datenbanken
der Ports-Sammlung nach.Kann ich &oracle; unter FreeBSD laufen lassen?Ja. Die folgenden Seiten beschreiben genau, wie sich
&linux;-&oracle; unter FreeBSD installieren lässt:Gibt es für &os; auch kommerzielle Webbrowser?Ja. Opera ist für verschiedene Plattformen,
darunter auch &os;, verfügbar. Informieren Sie sich
bitte auf
www.opera.com.
Eine werbefinanzierte Version von Opera ist in der
Portssammlung enthalten.BenutzerprogrammeNun, wo sind die ganzen Benutzerprogramme?Werfen Sie bitte einen Blick auf die Ports-Seite,
um Informationen über die nach FreeBSD
portierten Softwarepakete zu erhalten. Die Liste
enthält zurzeit &os.numports; Einträge und
wächst täglich. Schauen Sie hier also
öfter nach oder melden Sie sich bei der Mailinglistefreebsd-announce
an, um sich regelmäßig über
Änderungen zu informieren.Die meisten Ports sollten auf den 4.X, 5.X und
6.X-Systemen laufen. Jedes Mal, wenn ein FreeBSD-Release
erstellt wird, wird auch ein Snapshot des Port-Baumes vom
Zeitpunkt des Releases in das Verzeichnis
ports/ eingefügt.Wir unterstützen auch das Konzept von
Packages - im Grunde genommen nicht mehr
als komprimierte Binärdistributionen mit ein wenig
zusätzlicher Intelligenz zur Ermöglichung
angepasster Installationen. Ein Package kann leicht
installiert und wieder deinstalliert werden, ohne,
dass man etwas über wissen muss, welche
Dateien es enthält.Benutzen Sie das Paketinstallationsmenü in
/stand/sysinstall (unter dem
Menüpunkt post-configuration) oder führen Sie den
Befehl &man.pkg.add.1; mit den speziellen
Paketdateien aus, die Sie installieren möchten.
Paketdateien können für gewöhnlich an der
Endung .tgz oder
.tbz erkannt werden und
diejenigen, die über eine CDROM-Distribution
verfügen, haben auf ihrer CD ein Verzeichnis
packages/All, das solche Dateien
enthält. Für verschiedene FreeBSD-Versionen
können sie von folgenden Adressen auch über das
Netz heruntergeladen werden:für 4.X-RELEASE/4-STABLE
ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stablefür 5.X-RELEASE/5-STABLE
ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-currentfür 6-CURRENT
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-6-currentoder von Ihrem nächstgelegenen Mirror.Beachten Sie, dass nicht alle Ports als Package
verfügbar sind, da ständig neue hinzugefügt
werden. Es ist immer eine gute Idee, sich
regelmäßig auf der ftp.de.FreeBSD.org
Masterseite darüber zu informieren, welche Packages
verfügbar sind.Warum produziert ghostscript auf meinem 386/486SX so
viele Fehlermeldungen?Sie haben keinen mathematischen Co-Prozessor, richtig?
Sie werden den alternativen mathematischen Emulator zu
Ihren Kernel hinzufügen müssen; tun Sie das,
indem Sie die folgende Zeile in Ihre
Kernelkonfigurationsdatei einfügen, wodurch der
Emulator in den Kernel kompiliert wird:options GPL_MATH_EMULATESie müssen die Option
MATH_EMULATE hierzu entfernen.Wie konfiguriere ich INN (Internet News) für
meine Maschine?Ein idealer Startpunkt nach der Installation des
Packages oder Ports news/inn
ist Dave
Barr's INN-Seite, wo Sie die INN-FAQ
finden.Unterstützt FreeBSD &java;?Ja. Informieren Sie sich bitte unter http://www.de.FreeBSD.org/java/.Warum kann ich manche Ports auf meiner
4.X-STABLE-Maschine nicht erstellen?Wenn Sie eine FreeBSD-Version benutzen, die deutlich
älter als das aktuelle -CURRENT oder -STABLE ist,
könnte es sein, dass Sie vorher Ihre Ports-Sammlung
aktualisieren müssen. Lesen Sie dazu den Abschnitt
Keeping Up des Porters-Handbuch. Ist Ihre
Ports-Sammlung aktuell, könnte es sein, dass jemand
eine Änderung am Port durchgeführt hat, die
für -CURRENT funktioniert, den Port für
-STABLE aber unbrauchbar gemacht hat.
Bitte senden Sie einen Fehlerbericht mit dem
Befehl &man.send-pr.1;. Von der Ports-Sammlung
wird nämlich erwartet, dass sie sowohl auf
-CURRENT als auch auf -STABLE funktioniert.Ich habe gerade versucht, INDEX
mit make index zu bauen, und es hat nicht
geklappt. Woran liegt das?Stellen Sie zuerst sicher, dass Ihre Ports-Sammlung
aktuell ist. Fehler, die einen Bau von
INDEX aus einer aktuellen Ports-Sammlung
verhindern, sind sofort sichtbar und werden daher fast immer
umgehend behoben.Ist Ihre Ports-Sammlung jedoch aktuell, haben Sie
vielleicht ein anderes Problem.
make index hat einen Bug im Umgang mit
unvollständigen Kopien der Ports-Sammlung. Es nimmt
an, dass Sie über eine lokale Kopie aller Ports
verfügen, von denen jeder lokale Port abhängt.
Wenn Sie also beispielsweise eine Kopie von
foo/bar auf Ihrem System haben, und
foo/bar ist von
baz/quux abhängig, dann muss auch
eine Kopie von baz/quux auf Ihrem
System vorhanden sein, sowie eine Kopie aller Ports, von
denen baz/quux abhängt.
Anderenfalls ist make index aufgrund
fehlender Informationen nicht in der Lage, den
Abhängigkeitsbaum zu erzeugen.Dieses Problem tritt vor allem dann auf, wenn
&os;-Benutzer &man.cvsup.1; verwenden, um die Ports-Sammlung
zu aktualisieren und dabei verschiedene Kategorien durch die
Datei refuse von der Aktualisierung
ausschließen. Theoretisch ist es zwar möglich,
Kategorien auszuschließen, in der Praxis gibt es aber
zu viele Ports, die von Ports in anderen Kategorien
abhängen. Wenn Sie also INDEX
bauen wollen, müssen Sie über
eine komplette Kopie der Ports-Sammlung verfügen.Es gibt seltene Fälle, in denen
INDEX nicht gebaut werden kann, wenn
bestimmte
WITH_* oder
WITHOUT_*
Variablen in make.conf gesetzt sind.
Wenn Sie dieses Problem haben, sollten Sie diese
make-Variablen deaktivieren und INDEX
erneut bauen, bevor Sie das Problem an &a.ports;
melden.Warum ist CVSup nicht im FreeBSD-Basisquellbaum
enthalten?Das Basissystem von FreeBSD soll
selbstverwaltend sein. Es soll also
möglich sein, das komplette Betriebssystem mit einer
beschränkten Anzahl von Werkzeugen zu starten. Daher
werden die zum Bau von FreeBSD nötigen Werkzeuge mit
dem Quelltext gekoppelt. Zu diesen Werkzeugen gehören
ein C-Compiler (&man.gcc.1;), &man.make.1;, &man.awk.1; und
andere.Da CVSup in Modula-3 geschrieben wurde, müsste ein
Modula-3-Compiler ins Basissystem aufgenommen und auch
gewartet werden. Dies würde einen gestiegenen
Speicherbedarf für die FreeBSD-Quellen sowie einen
erhöhten Wartungsaufwand verursachen. Daher ist es
sowohl für Entwickler als auch Benutzer einfacher,
CVSup bei Bedarf als Port oder als Paket von einer
Installations-CD zu installieren.Ich habe die Sourcen aktualisiert, wie aktualisiere
ich jetzt die installierten Ports?FreeBSD enthält zwar kein Programm, das die
installierten Ports aktualisiert, allerdings existieren
diverse Programme, die diesen Prozess etwas
vereinfachen. Weiterhin können Sie zusätzliche
Programme installieren, die Sie dabei
unterstützen.Sie können mit &man.pkg.version.1; ein Script
erzeugen, das die installieren Ports mit einer neueren
Version aus der Ports-Sammlung ersetzt:&prompt.root; pkg_version -c > /tmp/myscriptDas so erzeugte Script muss
manuell geändert werden, bevor es benutzt wird.
Neuere Versionen von &man.pkg.version.1; erzwingen dies,
indem sie ein &man.exit.1; an den Anfang des Scripts
setzen.Sie sollten die Ausgaben des Scripts abspeichern, da
sie Ihnen melden werden, welche Ports von den dem gerade
aktualisierten Port abhängen. Es ist möglich,
dass diese auch aktualisiert werden müssen. Der
typische Fall, in dem ein Update erforderlich ist, ist
eine Änderung der Versionsnummer einer shared
library; in diesem Fall müssen die abhängigen
Ports neu übersetzt werden, damit sie die neue
Library benutzen.Ab FreeBSD 5.0 steht die Option
in &man.pkg.version.1; nicht
mehr zur Verfügung.Falls Sie über genügend freien Plattenplatz
verfügen, können Sie diesen Prozess mit
portupgrade automatisieren.
portupgrade umfasst diverse
Programme, die die Arbeit mit Packages erleichtern und ist
als sysutils/portupgrade
verfügbar. Da portupgrade in Ruby
geschrieben wurde, wird es wahrscheinlich nie ein Bestandteil
von FreeBSD werden. Allerdings sollte das niemanden davon
abhalten, es trotzdem zu benutzen.Wenn Ihr System rund um die Uhr läuft, kann es
jede Woche automatisch eine Liste der Ports erzeugen, die
wahrscheinlich aktualisiert werden müssen. Fügen
Sie dazu weekly_status_pkg_enable="YES"
in /etc/periodic.conf ein.Warum ist /bin/sh so spartanisch?
Warum benutzt FreeBSD nicht die bash
oder eine ähnliche Shell?Weil der &posix;-Standard definiert, dass es so
eine Shell geben muss.Die ausführlichere Antwort: Viele Leute
müssen Shell-Programme schreiben, die auf vielen
verschiedenen Systemen nutzbar sein müssen. Aus
diesem Grund enthält der &posix;-Standard eine sehr
detaillierte Definition der Shell und der Hilfsprogramme.
Die meisten Programme werden für die Bourne Shell
geschrieben; außerdem nutzen mehrere wichtige
Schnittstellen (&man.make.1;, &man.system.3;,
&man.popen.3; und ihre Entsprechungen in höheren
Programmiersprachen wie Perl und Tcl) die Bourne Shell, um
Befehle auszuführen. Da die Bourne Shell an so
vielen Stellen und so häufig genutzt wird, muss
sie die folgenden Anforderungen erfüllen: Schneller
Start, ein klar definiertes Verhalten und ein
möglichst geringer Speicherverbrauch.Wir haben bei der vorliegenden Implementierung
versucht, möglichst viele dieser Anforderungen zu
erfüllen. Um /bin/sh nicht zu
groß werden zu lasen, haben wir viele der
Annehmlichkeiten der anderen Shells weggelassen. Aus
diesem Grund gibt es in den Ports die luxuriöseren
Shells wie bash, scsh, tcsh und zsh. Vergleichen Sie
einfach mal den Speicherverbrauch der verschiedenen
Shells, indem Sie ps -u aufrufen und
sich die Angaben in den Spalten VSZ und
RSS ansehen.Wieso dauert es so lange, bis &netscape; und Opera
starten?In den meisten Fällen liegt es daran, dass
Ihre DNS-Einstellungen fehlerhaft sind. Sowohl &netscape;
als auch Opera stellen Anfragen an DNS, wenn Sie gestartet
werden. Das Fenster des Browsers erscheint erst, wenn das
Programm eine Antwort erhalten hat oder es festgestellt
hat, dass Ihr System nicht an ein Netzwerk
angeschlossen ist.Ich habe die Ports-Sammlung mit
CVSup aktualisiert. Viele
Ports lassen sich danach nicht mehr bauen und geben
seltsame Fehlermeldungen aus. Was ist passiert? Ist
die Ports-Sammlung kaputt?Sie sollten immer die Teilsammlung
ports-base aktualisieren, wenn Sie
nur Teile der Ports-Sammlung mit Hilfe der
CVSup-Teilsammlungen
aktualisieren. Die Erklärung dazu finden Sie im
Handbuch.Wie erzeuge ich Audio-CDs aus MIDI-Dateien?Installieren Sie zuerst den Port audio/timidity++. Danach
müssen Sie manuell die GUS-Patche von
Eric A. Welsh von
installieren. Wenn timidity++
richtig installiert wurde, können Sie mit dem folgenden
Kommando MIDI-Dateien in das WAV-Format konvertieren:&prompt.user; timidity -Ow -s 44100 -o /tmp/juke/01.wav 01.midDie WAV-Dateien können dann in andere Formate
konvertiert werden oder auf Audio-CDs, wie im FreeBSD-Handbuch
beschrieben, gebrannt werden.KernelkonfigurationIch möchte meinen Kernel anpassen. Ist das
schwierig?Überhaupt nicht! Lesen Sie den Abschnitt zur
Kernelkonfiguration im Handbuch.Sie sollten einen datierten Snapshot Ihres Kernels
als kernel.YYMMDD zu erstellen,
nachdem Sie alles zum Laufen gebracht haben.
Außerdem sollten Sie eine Kopie des Verzeichnisses
/modules erstellen, die den Namen
/modules.YYMMDD hat. Auf diese
Weise können Sie diesen Kernel hochfahren, anstatt
den ganzen Weg zurück zu
kernel.GENERIC gehen zu
müssen, wenn Sie das nächste Mal mit Ihrer
Konfiguration herumexperimentieren und dabei etwas
falsch machen sollten. Das ist besonders wichtig, wenn
Sie nun von einem Controller booten, der vom
GENERIC-Kernel nicht unterstützt wird.Was kann ich machen, wenn meine Kernel-Kompilierungen
fehlschlagen, weil _hw_float
fehlt?Lassen Sie mich raten. Sie haben
npx0 aus Ihrer
Konfigurationsdatei entfernt, weil Sie keinen
mathematischen Co-Prozessor besitzen, richtig? Falsch! :-)
npx0 ist zwingend
erforderlich. Auch, wenn Sie keinen
mathematischen Co-Prozessor besitzen,
müssen Sie das Gerät
npx0 einbinden.Warum ist mein Kernel so groß (über 10
MByte)?Sie haben Ihren Kernel wahrscheinlich im
Debug Modus erstellt. Ein
Debug-Kernel enthält viele zusätzliche
Informationen für die Fehlersuche, daher ist er so
groß. Bitte beachten Sie, dass die Verwendung
eines Debug-Kernels bei FreeBSD 3.0 und neueren Version
die Performance des Systems nicht oder nur minimal
reduziert; außerdem ist es für den Fall einer
system panic sehr praktisch, einen Debug-Kernel zur Hand
zu haben.Wenn Ihnen allerdings der Plattenplatz ausgeht oder
Sie einfach rein prinzipiell keinen Debug-Kernel benutzen
wollen, müssen die beiden folgenden Bedingungen
erfüllt sein:Die Konfigurationsdatei für Ihren Kernel darf
die folgende Zeile nicht enthalten:makeoptions DEBUG=-gSie dürfen &man.config.8; nicht mit dem
Parameter starten.Sollten Sie sich nicht an diese Einschränkungen
halten, wird Ihr Kernel im Debug-Modus erstellt. Solange
Sie sich an diese Einschränkungen halten, können
Sie Ihren Kernel ganz normal erstellen und die
Größe des Kernels sollte deutlich sinken. Ein
normaler Kernel ist nur 1.5 MByte bis 2 MByte
groß.Wieso erhalte ich Meldungen über Interrupt-Konflikte,
wenn ich eine Karte mit mehreren seriellen Schnittstellen
einsetzen will?Wenn ich einen Kernel mit Unterstützung für
serielle Multi-Port-Schnittstellen kompiliere, bekomme ich
den Hinweis, dass nur der erste Port geprüft
wird und die restlichen auf Grund von Interrupt-Konflikten
übersprungen werden. Wie kann ich das
Beheben?Das Problem besteht darin, dass in FreeBSD Code
integriert ist, um den Kernel vor Abstürzen aufgrund
von Hardware- oder Software-Konflikten zu bewahren.
Behoben wird es, indem die IRQ-Angaben für alle
Ports, bis auf einen ausgelassen werden. Hier ist ein
Beispiel:
#
# Multiport high-speed serial line - 16550 UARTS
#
device sio2 at isa? port 0x2a0 tty irq 5 flags 0x501 vector siointr
device sio3 at isa? port 0x2a8 tty flags 0x501 vector siointr
device sio4 at isa? port 0x2b0 tty flags 0x501 vector siointr
device sio5 at isa? port 0x2b8 tty flags 0x501 vector siointr
Wieso kann ich nicht einmal den Standard-Kernel
(GENERIC) bauen?Es gibt eine Reihe von möglichen Ursachen
für dieses Problem:Sie benutzen die neuen Kommandos make
buildkernel und make
installkernel nicht, obwohl die Sourcen auf
Ihrem System nicht zum laufenden System passen (z.B.
benutzen Sie die Sourcen von 4.3-RELEASE auf einem
System mit 4.0-RELEASE). Wenn Sie ein Upgrade
durchführen wollen, sollten Sie
/usr/src/UPDATING lesen, beachten
Sie insbesondere den Abschnitt COMMON
ITEMS gegen Ende des Dokuments.Sie benutzen zwar make
buildkernel und make
installkernel, aber Sie haben nicht darauf
geachtet, dass vorher ein komplettes
make buildworld durchgelaufen sein
muss. Um seine Arbeit erledigen zu können,
benötigt make buildkernel
Dateien, die von make buildworld
erzeugt werden.Auch wenn Sie FreeBSD-STABLE verwenden, ist
es durchaus möglich, dass Sie die Sourcen
genau zum falschen Zeitpunkt aktualisiert haben:
Während Sie gerade modifiziert wurden oder
kurzzeitig fehlerhaft waren. Eine absolute und
vollständige Garantie, dass Sie die Sourcen
compilieren können, gibt es nur für die
Releases, bei FreeBSD-STABLE ist das nicht
immer so. Wenn Sie es noch nicht versucht haben,
sollten Sie ihre Source nochmals aktualisieren. Es
ist denkbar, dass der von Ihnen genutzte Server
zurzeit Probleme hat, benutzten Sie daher testweise
auch einmal einen anderen Server.Wie kann ich prüfen, welchen Scheduler das
System benutzt?Wenn Sie &os; 5.2.1 oder älter verwenden,
überprüfen Sie dazu, ob auf Ihrem System die
sysctl-Variable kern.quantum
existiert. Ist dies bei Ihnen der Fall, werden Sie eine
Ausgabe ähnlich der folgenden sehen:&prompt.user; sysctl kern.quantum
kern.sched.quantum: 99960Wenn die sysctl-Variable kern.quantum
existiert, dann verwenden Sie den 4BSD-Scheduler. Existiert
sie nicht, erzeugt &man.sysctl.8; eine Fehlermeldung (die Sie
aber ignorieren können):&prompt.user; sysctl kern.sched.quantum
sysctl: unknown oid 'kern.sched.quantum'Seit &os; 5.3-RELEASE wird der Name des verwendeten
Schedulers direkt als Wert der sysctl-Variable
kern.sched.name ausgegeben:&prompt.user; sysctl kern.sched.name
kern.sched.name: 4BSDWas bedeutet kern.quantum?kern.quantum ist die maximale
Anzahl Ticks, die ein Prozess ununterbrochen laufen kann.
Die Variable ist charakteristisch für den
4BSD Scheduler, somit kann der verwendete Scheduler
über die Existenz dieser Variablen bestimmt werden.
Seit &os; 5.X wird kern.quantum als
kern.sched.quantum bezeichnet.Was ist kern.sched.quantum?Lesen Sie den Abschnitt
Platten, Dateisysteme und Boot LoaderWie kann ich meine neue Festplatte in mein
FreeBSD-System einbinden?Lesen Sie das Tutorial zur Festplattenformatierung
unter www.de.FreeBSD.org.Wie verschiebe ich mein System auf meine neue,
große Platte?Die beste Methode ist, das Betriebssystem auf der
neuen Platte neu zu installieren und danach die Daten zu
verschieben. Wenn Sie -STABLE über eine Release
hinaus genutzt haben oder eine Release aktualisiert haben,
ist das sehr empfehlenswert. Sie können auf beiden
Platten &man.boot0cfg.8; installieren und die beiden
Versionen so lange parallel betreiben, bis Ihnen die neue
Konfiguration gefällt. Wenn Sie dies tun wollen,
können Sie im übernächsten Absatz erfahren,
wie sie Ihre Daten verschieben können.Falls Sie sich entscheiden, das nicht zu tun,
müssen Sie Ihre neue Platte partitionieren und
labeln. Benutzen Sie dafür entweder
/stand/sysinstall oder &man.fdisk.8;
und &man.disklabel.8;. Weiterhin sollten Sie mit
&man.boot0cfg.8; auf beiden Platten booteasy installieren,
damit Sie in der Lage sind, das alte und das neue System
abwechselnd zu starten, nachdem der Kopiervorgang
abgeschlossen ist. Im Formatting-Media
Tutorial finden Sie weitere Informationen zu
diesen Schritten.Nachdem Sie die neue Platte eingerichtet haben,
können Sie Ihre Daten verschieben. Dummerweise
können Sie die Daten nicht einfach kopieren. Dinge wie
Gerätedateien (in /dev),
erweiterte Dateiattribute und symbolische Links führen
dazu, dass das in die Hose geht. Sie müssen
ein Programm benutzen, das damit umgehen kann, und das
ist &man.dump.8;. Es wird oft empfohlen, die Daten im
Single-User Modus zu verschieben, aber das ist nicht
unbedingt notwendig.Sie sollten auf gar keinen Fall etwas anderes als
&man.dump.8; und &man.restore.8; benutzen, um Ihr Root-Filesystem
zu verschieben. Es könnte auch mit
&man.tar.1; funktionieren - oder auch nicht. Sie sollten
ebenfalls &man.dump.8; und &man.restore.8; benutzen, wenn
Sie eine komplette Partition auf eine andere, leere
Partition verschieben wollen. Um die Daten einer Partition mit
dump auf eine andere Partition zu verschieben, müssen
Sie die folgenden Schritte ausführen:Richten Sie in der neuen Partition mit newfs ein
Dateisystem ein.Mounten Sie die Partition temporär an einer
geeigneten Stelle.Wechseln Sie mit cd in dieses Verzeichnis.Lesen Sie die alte Partition mit dump aus und
lenken Sie die Ausgabe auf die neue Partition
um.Wenn Sie zum Beispiel root auf
/dev/ad1s1a verschieben wollen und
diese derzeit auf /mnt gemountet
ist, bedeutet das:&prompt.root; newfs /dev/ad1s1a
&prompt.root; mount /dev/ad1s1a /mnt
&prompt.root; cd /mnt
&prompt.root; dump 0af - / | restore xf -Wenn Sie Ihre Partitionen mit &man.dump.8;
umorganisieren wollen, steht Ihnen etwas mehr Arbeit
bevor. Wenn Sie eine Partition wie
/var in die übergeordnete Partition
verschieben wollen, müssen Sie zunächst eine neue
Partition erzeugen, die die beiden alten Partitionen
aufnehmen kann. Der zweite Schritt ist, wie oben
beschrieben die übergeordnete Partition in die neue
Partition zu verschieben. Im dritten und letzten Schritt
verschieben Sie dann die untergeordnete Partition in das
leere Verzeichnis, das im zweiten Schritt entstanden
ist:&prompt.root; newfs /dev/ad1s1a
&prompt.root; mount /dev/ad1s1a /mnt
&prompt.root; cd /mnt
&prompt.root; dump 0af - / | restore xf -
&prompt.root; cd var
&prompt.root; dump 0af - /var | restore xf -Wenn Sie ein Verzeichnis aus einer Partition
herauslösen wollen, also z.B.
/var auf eine eigene Partition
verlegen wollen, dann müssen Sie zunächst beide
Partitionen anlegen. Danach müssen Sie die
untergeordnete Partition im passenden Verzeichnis
unterhalb des temporären mount points mounten und zum
Abschluß die alte Partition verschieben:&prompt.root; newfs /dev/ad1s1a
&prompt.root; newfs /dev/ad1s1d
&prompt.root; mount /dev/ad1s1a /mnt
&prompt.root; mkdir /mnt/var
&prompt.root; mount /dev/ad1s1d /mnt/var
&prompt.root; cd /mnt
&prompt.root; dump 0af - / | restore xf -Eventuell sagen Ihnen für Benutzerdaten
&man.cpio.1;, &man.pax.1; oder &man.tar.1; eher zu als
&man.dump.8;. Allerdings haben alle diese Programme den
Nachteil, dass sie die erweiterten Dateiattribute
nicht verstehen, daher sollten Sie bei ihrem Einsatz
aufpassen.Gefährdet eine dangerously
dedicated Festplatte meine Gesundheit?Die Installationsprozedur bietet
Ihnen zwei verschiedene Methoden, Ihre Festplatte(n) zu
partitionieren. Die Standardmethode macht sie kompatibel
zu anderen Betriebssystemen auf derselben Maschine, indem
fdisk-Tabelleneinträge (unter FreeBSD
slices genannt) mit einem FreeBSD-Eintrag,
in dem eigene Partitionen untergebracht werden, benutzt
werden. Optional kann ausgewählt werden, ob ein
Boot-Selektor installiert werden soll, um zwischen den
möglichen Betriebssystemen auf der/den Platte(n)
wechseln zu können. Bei der zweiten Methode wird die
gesamte Platte für FreeBSD genutzt und nicht
versucht, kompatibel zu anderen Betriebssystemen zu
sein.Nun, warum wird es gefährlich
genannt? Eine Platte in diesem Modus enthält nichts,
was von normalen PC-Hilfsprogrammen als gültige
fdisk-Tabelle betrachtet werden würde. Abhängig
von der Qualität ihres Designs werden sie sich bei
Ihnen beschweren, sobald sie mit einer solchen Platte in
Kontakt kommen, oder noch schlimmer, sie könnten den
Bootstrap von FreeBSD beschädigen, ohne Sie zu fragen
oder darauf hinzuweisen. Hinzu kommt, dass vom
Layout von dangerously dedicated Platten
bekannt ist, dass es viele BIOSe verwirrt,
einschließlich solcher von AWARD (wie es z.B. im HP
Netserver oder Micronics-Systemen, sowie vielen anderen zu
finden ist) und Symbios/NCR (für die bekannte
53C8xx-Reihe von SCSI-Controllern). Dies ist keine
vollständige Liste - es gibt weitere. Symptome
für diese Verwirrung sind read
error-Meldungen, die vom FreeBSD-Bootstrap
ausgegeben werden, wenn es sich selbst nicht finden kann,
sowie Systemabstürze beim Booten.Warum gibt es diesen Modus dann überhaupt? Es
spart ein paar kByte an Plattenplatz und kann echte
Probleme verursachen, die zu einer Neuinstallation
führen. Die Ursprünge des Dangerously
dedicated Modus liegen in der Absicht, eines der
häufigsten Probleme, das Erstinstallierer von FreeBSD
plagt, zu verhindern - die BIOS-Werte für die
Geometrie einer Festplatte auf der
Festplatte selbst anzupassen.Geometrie ist ein veraltetes Konzept,
das aber immer noch die Grundlage für die Interaktion
zwischen dem PC-BIOS und den Festplatten ist. Wenn das
Installationsprogramm von FreeBSD Slices erstellt,
muss es sich die Lage dieser Slices auf der
Festplatte in einer Art merken, die damit
übereinstimmt, wie das BIOS erwartet, sie zu finden.
Wenn das falsch geschieht, werden Sie nicht in der Lage
sein, zu booten.Durch den Dangerously dedicated Modus
wird versucht, dies zu umgehen, indem das Problem
vereinfacht wird. In einigen Fällen klappt das zwar,
aber er ist eher als allerletzter Ausweg gedacht - in 99
von 100 Fällen gibt es bessere Möglichkeiten,
das Problem zu lösen.Wie vermeiden Sie also die Notwendigkeit zum
DD Modus, wenn Sie installieren? Beginnen
Sie, indem Sie sich notieren, welche Geometrie das BIOS
für Ihre Platten benutzt. Sie können erreichen,
dass der Kernel sie beim Booten ausgibt, indem Sie
an der Eingabeaufforderung
boot: angeben, oder boot
-v im Loader verwenden. Kurz bevor das
Installationsprogramm startet, wird der Kernel eine Liste
mit den BIOS-Geometrien ausgeben. Keine Panik - warten
Sie, bis das Installationsprogramm gestartet wurde und
benutzen Sie Scrollback, um die Zahlen zu lesen.
Typischerweise befinden sich die BIOS-Platten in derselben
Reihenfolge, wie FreeBSD Ihre Platten auflistet - zuerst
IDE, dann SCSI.Wenn Sie Ihre Festplatte in Slices unterteilen,
überprüfen Sie, ob die Plattengeometrie, die im
FDISK-Menü angegeben ist, korrekt ist (das heißt
mit den Einstellungen im BIOS übereinstimmen). Falls
die Werte nicht stimmen, benutzen Sie g, um
sie zu korrigieren. Diese Schritte sind nötig, wenn
sich absolut nichts auf der Festplatte befindet, oder,
wenn die Festplatte vorher in einem anderen System benutzt
worden ist. Beachten Sie, dass dies nur für die
Festplatte nötig ist, von der Sie booten wollen. Mit
weiteren vorhandenen Platten wird FreeBSD sich problemlos
zurechtfinden.Wenn Sie es geschafft haben, dass das BIOS und
FreeBSD in der Festplattengeometrie übereinstimmen,
dann sind Ihre Probleme ziemlich sicher vorüber -
ohne, dass es nötig gewesen wäre, den
DD-Modus zu benutzen. Falls sie jedoch
immer noch mit der gefürchteten read
error-Meldung begrüßt werden sollten,
wenn Sie versuchen, zu booten, wird es Zeit, dass Sie
Ihre Finger kreuzen und es einfach versuchen - es gibt
nichts mehr zu verlieren.Um eine dangerously dedicated
Festplatte wieder für einen normalen PC brauchbar zu
machen, gibt es zwei Möglichkeiten. Die erste ist,
ausreichend viele NULL-Bytes in den MBR zu schreiben, um
irgendwelche nachfolgenden Installation glauben zu machen,
dass es sich um eine leere Festplatte handelt. Sie
können das zum Beispiel so tun:&prompt.root; dd if=/dev/zero of=/dev/rda0 count=15Alternativ installiert der undokumentierte
DOS-BefehlC:\>fdisk /mbreinen neuen Master-Boot-Record, das heißt der
BSD-Bootstrap wird zerstört.Auf welchen Partitionen kann ich problemlos
Soft Updates einsetzen? Ich habe gehört, das der
Einsatz von Soft Updates auf /
Probleme verursachen kann.Die schnelle Antwort: Sie können Soft Updates
bedenkenlos auf alle Partitionen benutzen.Die ausführliche Antwort: Es gab lange Zeit
Bedenken, was den Einsatz von Soft Updates auf der
root-Partition betrifft. Der Grund sind zwei
Charakteristika der Soft Updates: Zum einen kann es bei
einem Absturz des System auf einer Partition mit
Soft Updates zum Datenverlust kommen. Die Partition ist
zwar noch brauchbar, aber einige Daten können
verloren gehen. Weiterhin kann es durch Soft Updates zu
einem zeitweisen Mangel an Plattenplatz kommen.Bei der Benutzung von Soft Updates kann es bis zu
dreißig Sekunden dauern, bis der Kernel
Änderungen auf das physikalische Speichermedium
schreibt. Wenn Sie eine große Datei löschen,
ist diese Datei noch auf der Platte vorhanden, bis der
Kernel die Löschoperation tatsächlich
durchführt. Das kann zu einem sehr einfachen Problem
führen: Stellen Sie sich vor, Sie löschen eine
große Datei und legen gleich darauf eine andere
große Datei an. Da die erste Datei noch nicht
wirklich gelöscht wurde, ist eventuell nicht genug
Platz für die zweite große Datei. Sie erhalten
die Fehlermeldung, dass nicht genug freier Platz
vorhanden ist, obwohl Sie ganz genau wissen, dass Sie
gerade eben Platz geschaffen haben. Wenn Sie die
Operation ein paar Sekunden später wiederholen,
funktioniert alles wie von Geisterhand. Dieser Effekt hat
mehr als einen Benutzer verwirrt und Zweifel an seiner
geistigen Stabilität oder dem FreeBSD-Dateisystem
aufkommen lassen.Wenn der Kernel ein Datenpaket annimmt und das System
abstürzt, bevor er dies Daten auf die Platte
geschrieben hat, kann es zum Verlust oder zur
Zerstörung von Daten kommen. Dieses Risiko ist nur
sehr gering und normalerweise tragbar. Wenn Sie
allerdings einen IDE-Write-Cache verwenden, steigt das
Risiko; daher wird normalerweise empfohlen, auf den
Einsatz dieser Technik zu verzichten, wenn Sie Soft Updates
benutzen.Diese beiden Probleme betreffen alle Partitionen, die
Soft Updates verwenden. Was bedeutet das für die
Root-Partition?Die wichtigen Daten auf der Root-Partition ändern
sich nur sehr selten. Dateien wie
/kernel und der Inhalt
/etc werden nur bei der Wartung des
Systems geändert, oder wenn Benutzer ihre
Passwörter ändern. Wenn das System in den
30 Sekunden nach einer solchen Änderung
abstürzt, ist es möglich, das Daten verloren
gehen. Dieses Risiko ist in den meisten Fällen
unerheblich, aber es ist vorhanden. Wenn das zu viel
Risiko ist, dann sollten Sie Soft Updates nicht auf der
Root-Partition einsetzen./ war schon immer eine der
kleinsten Partitionen. Standardmäßig legt
FreeBSD das Verzeichnis /tmp direkt
auf /. Wenn in Ihrem
/tmp viel Betrieb ist, kann es
gelegentlich zu den oben beschriebenen Platzproblemen
kommen. Um das Problem zu lösen, sollten sie einen
symbolischen Link von /tmp nach
/var/tmp legen.Was stimmt mit meinem ccd nicht?Das Symptom hierfür ist:&prompt.root; ccdconfig -C
ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or formatDas geschieht für gewöhnlich, wenn Sie
versuchen, die c Partitionen, die
standardmäßig vom Typ
unbenutzt sind, zu verbinden. Der
ccd-Treiber verlangt Partitionen vom Typ FS_BSDFFS.
Editieren Sie den Plattenlabel der Platten, die Sie zu
verknüpfen versuchen und ändern Sie die Typen
der Partitionen in 4.2BSD.Warum kann ich den Plattenlabel meines ccd nicht
editieren?Das Symptom hierfür ist:&prompt.root; disklabel ccd0
(hier wird etwas vernünftiges ausgegeben; versuchen wir nun, es zu editieren)
&prompt.root; disklabel -e ccd0
(editiern, speichern, beenden)
disklabel: ioctl DIOCWDINFO: No disk label on disk;
use "disklabel -r" to install initial labelDer Grund ist, dass der von ccd
zurückgelieferte Plattenlabel ein
vorgetäuschter ist, der sich nicht
wirklich auf der Platte befindet. Sie können das
Problem beheben, indem Sie ihn explizit
zurückschreiben, wie z.B. hier:&prompt.root; disklabel ccd0 > /tmp/disklabel.tmp
&prompt.root; disklabel -Rr ccd0 /tmp/disklabel.tmp
&prompt.root; disklabel -e ccd0
(nun wird es funktionieren)Kann ich andere fremde Dateisysteme unter FreeBSD
mounten?Digital UNIXUFS-CDROMs können unter FreeBSD direkt
gemountet werden. Das Mounten von Partitionen von
Digital &unix; und anderen Systemen, die UFS
unterstützen, könnte schwieriger sein,
abhängig von den Details der
Plattenpartitionierung des betreffenden
Betriebssystems.&linux;FreeBSD unterstützt
ext2fs-Partitionen. Unter
&man.mount.ext2fs.8; finden Sie weitere
Informationen.&windowsnt;Ein NTFS-Treiber, der nur Lesezugriffe gestattet,
ist Teil von &os;. Weitere Informationen entnehmen
Sie bitte der Hilfeseite &man.mount.ntfs.8;.Für weitere Informationen zu diesem Thema
wären wir sehr dankbar.Wie mounte ich eine erweiterte DOS-Partition?Die erweiterten DOS-Partitionen befinden sich hinter
ALLEN primären Partitionen. Wenn sich zum Beispiel
eine Partition E als sekundäre
DOS-Partition auf Ihrem zweiten SCSI-Laufwerk befindet,
müssen Sie die speziellen Dateien für
Slice 5 im Verzeichnis
/dev erstellen und dann
/dev/da1s5 mounten:&prompt.root; cd /dev
&prompt.root; ./MAKEDEV da1s5
&prompt.root; mount -t msdos /dev/da1s5 /dos/eLassen Sie diesen Schritt aus, wenn Sie FreeBSD
5.0-RELEASE oder eine neuere Version mit &man.devfs.5;
verwenden. Die Gerätedateien werden in diesem Fall
automatisch in /dev erstellt.Gibt es ein verschlüsselndes Dateisystem
für &os;?
- Ja, security/cfs.
+ Verwenden Sie FreeBSD 5.0 oder neuer, sollten Sie
+ &man.gbde.8; lesen. Für ältere Versionen gibt es
+ den Port
+ security/cfs.Wie kann ich den &windowsnt;-Loader zum Booten von
FreeBSD verwenden?Das grundsätzliche Vorgehen besteht darin,
dass Sie den ersten Sektor Ihrer eigentlichen
FreeBSD-Rootpartition in eine Datei auf der
DOS/&windowsnt;-Partition kopieren. Angenommen, sie nennen
die Datei etwa c:\bootsect.bsd (durch
c:\bootsect.dos inspiriert), dann
können Sie die Datei c:\boot.ini
etwa wie folgt editieren:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows NT"
C:\BOOTSECT.BSD="FreeBSD"
C:\="DOS"
Falls FreeBSD auf derselben Platte, wie die
&windowsnt;-Bootpartition installiert ist, kopieren Sie
einfach /boot/boot1 nach
C:\BOOTSECT.BSD. Falls FreeBSD auf
einer anderen Platte installiert ist, wird
/boot/boot1 nicht funktionieren; Sie
brauchen in diesem Fall
/boot/boot0./boot/boot0 muss mit
sysinstall installiert werden. Wählen Sie dazu den
FreeBSD-Bootmanager aus, wenn Sie gefragt werden, ob sie
einen Bootmanager installieren wollen. Dieser Schritt ist
notwendig, weil /boot/boot0 eine
leere Partitionstabelle enthält, die von sysinstall
ausgefüllt wird, bevor
/boot/boot0 in den MBR kopiert
wird.Sie dürfen auf gar keinen Fall einfach
/boot/boot0 statt
/boot/boot1 kopieren. Wenn Sie das
doch tun sollten, wird Ihre Partitionstabelle
überschrieben und Ihr Rechner wird nicht mehr
starten!Wenn der Bootmanager von FreeBSD gestartet wird, merkt
er sich das zuletzt gestartet Betriebssystem, indem er
dessen Partition als aktiv markiert. Danach kopiert er
sich selbst (alle 512 Bytes) in den MBR. Wenn Sie also
einfach /boot/boot0 nach
C:\BOOTSECT.BSD kopieren, würde
der Bootmanager eine leere Partitionstabelle (mit einem
als aktiv markiertem Eintrag) in den MBR kopieren.Wie boote ich FreeBSD und &linux; mit LILO?Falls sich FreeBSD und &linux; auf derselben Platte
befinden, folgen Sie einfach den Installationsanweisungen
von LILO zum Booten eines Nicht-&linux;-Betriebssystems.
Ganz knapp sind dies:Booten Sie &linux; und fügen Sie die folgenden
Zeilen in die Datei /etc/lilo.conf
ein:other=/dev/hda2
table=/dev/hda
label=FreeBSD(hierbei wird angenommen, dass Ihre
FreeBSD-Partition &linux; unter
/dev/hda2 bekannt ist; ändern
Sie dies entsprechend Ihren Einstellungen). Führen
Sie nun als root den Befehl
lilo aus und Sie sind fertig.Falls FreeBSD sich auf einer anderen Platte befindet,
müssen Sie loader=/boot/chain.b zu
den LILO-Angaben hinzufügen. Zum Beispiel:other=/dev/dab4
table=/dev/dab
loader=/boot/chain.b
label=FreeBSDIn einigen Fällen könnte es sein, dass
Sie beim FreeBSD-Bootloader die BIOS-Laufwerksnummer
angeben müssen, um von der zweiten Platte booten zu
können. Wenn Ihre FreeBSD-SCSI-Platte vom BIOS zum
Beispiel als BIOS-Platte 1 erkannt wird, müssen Sie
am Prompt des FreeBSD-Bootloaders eingeben:Boot: 1:da(0,a)/kernelSeit Version 2.2.5 können Sie &man.boot.8; so
konfigurieren, dass das beim Booten automatisch
geschieht.Das
&linux;+FreeBSD mini-HOWTO ist ein guter Ratgeber bei
Fragen zur Interaktion von FreeBSD und &linux;.Wie boote ich FreeBSD und &linux; mit BootEasy?Installieren Sie LILO am Anfang Ihrer
&linux;-Bootpartition, anstatt im Master Boot Record. Sie
können LILO dann von BootEasy aus booten.Wenn Sie &windows; 95 und &linux; benutzen, wird das
ohnehin empfohlen, um es einfacher zu machen, &linux; wieder
zu booten, wenn es nötig werden sollte, dass Sie
&windows; 95 neu installieren (&windows; 95 ist ein
eifersüchtiges Betriebssystem, das kein anderes
Betriebssystem im Master Boot Sektor duldet).Wie kann ich das ??? des
Boot-Managers durch etwas Sinnvolles ersetzen?Solange Sie den Boot-Manager nicht komplett neu
schreiben, gar nicht. Allerdings gibt es in der Kategorie
sysutils der Ports diverse
Boot-Manager, die diese Funktionalität
bieten.Ich habe ein Wechsellaufwerk. Wie benutze ich
es?Ob es sich um ein Wechsellaufwerk handelt, um ein
&iomegazip; oder ein EZ-Laufwerk (oder sogar ein
Diskettenlaufwerk, wenn Sie es auf diese Weise benutzen
möchten), oder um eine neue Festplatte - wenn es
einmal installiert und vom System erkannt ist und Sie Ihre
Kassette/Diskette/was_auch_immer eingelegt haben, ist das
Vorgehen bei allen Geräten ziemlich
ähnlich.(dieser Abschnitt basiert auf
Mark
Mayo's ZIP-FAQ)Wenn es sich um ein ZIP- oder Diskettenlaufwerk
handelt, und sich bereits ein DOS-Dateisystem darauf
befindet, können Sie einen Befehl wie diesen für
eine Diskette benutzen:&prompt.root; mount -t msdos /dev/fd0c /floppyoder diesen:&prompt.root; mount -t msdos /dev/da2s4 /zipfür eine ZIP-Disk mit der
Herstellerkonfiguration.Benutzen Sie bei anderen Platten &man.fdisk.8; oder
&man.sysinstall.8;, um herauszufinden, wie sie
konfiguriert sind.Die restlichen Beispiele sind für ein
ZIP-Laufwerk unter da2, der dritten SCSI-Platte.Wenn es sich nicht um eine Diskette oder eine
Wechselplatte handelt, die Sie mit anderen Leuten
austauschen wollen, ist es wahrscheinlich besser, ein
BSD-Dateisystem darauf zu installieren. Hierdurch
bekommen Sie Unterstützung für lange Dateinamen,
eine mindestens doppelt so hohe Leistungsausnutzung und
wesentlich höhere Stabilität. Zunächst
müssen Sie die Partitionen/Dateisysteme auf DOS-Ebene
nochmals erstellen. Sie können entweder
&man.fdisk.8; oder /stand/sysinstall
benutzen, oder, bei einem kleinen Laufwerk, dem Sie eine
Unterstützung für mehrere Betriebssysteme nicht
zumuten wollen, entfernen Sie einfach die komplette FAT
Partitionstabelle (Slices) und benutzen Sie einfach die
BSD-Partitionierung:&prompt.root; dd if=/dev/zero of=/dev/rda2 count=2
&prompt.root; disklabel -Brw da2 autoSie können disklabel oder
/stand/sysinstall benutzen, um mehrere
BSD-Partitionen zu erstellen. Dies werden Sie sicherlich
bei einer fest eingebauten Platte wollen, aber bei einem
Wechsellaufwerk wie einem ZIP ist das wahrscheinlich
irrelevant.Zum Schluß erstellen Sie ein neues Dateisystem -
dieses befindet sich auf unserem ZIP-Laufwerk und belegt
die gesamte Platte:&prompt.root; newfs /dev/rda2canschließend mounten Sie es:&prompt.root; mount /dev/da2c /zipUnd sicherlich ist es keine schlechte Idee, eine Zeile
ähnlich der folgenden in die Datei
/etc/fstab einzufügen, damit Sie
in Zukunft nur mount /zip einzugeben
brauchen:/dev/da2c /zip ffs rw,noauto 0 0Wieso erhalte ich die Meldung Incorrect
super block beim Mounten einer CDROM?Sie müssen &man.mount.8; mitteilen, was für
ein Gerät Sie mounten wollen. Genauere Informationen
dazu finden Sie im Kapitel Optische
Speichermedien des Handbuch, genauer gesagt im
Abschnitt Benutzung
von Daten-CDs.Wieso erhalte ich die Meldung Device not
configured, wenn ich eine CDROM
mounte?Das bedeutet im allgemeinen, dass sich keine
CDROM im Laufwerk befindet, oder, dass das Laufwerk
auf dem Bus nicht sichtbar ist. Dieses Problem wird im
Kapitel Benutzung
von Daten-CDs des Handbuchs ausführlich
diskutiert.Wieso werden alle Sonderzeichen in den Dateinamen auf
meinen CDs durch ? ersetzt, wenn ich die CD
unter FreeBSD benutze?Wahrscheinlich werden auf der CDROM die
Joliet Erweiterungen für die
Speicherung von Datei- und Verzeichnisnamen benutzt.
Werfen Sie einen Blick in das Kapitel Erzeugung von
CD-ROMs im Handbuch, speziell in den Abschnitt
über Benutzung
von Daten-CDs.[Anmerkung des Übersetzers: Es geht hier nicht um
die deutschen Sonderzeichen, da diese schon im normalen
ISO8859-1 enthalten sind. Die Probleme treten auf, wenn
man z.B. russische CDs (ISO8859-5) verwendet.]Ich habe eine CD mit FreeBSD gebrannt und kann sie
nicht mit anderen Betriebssystemen lesen. Warum?Sie haben wahrscheinlichste eine Datei direkt auf CD
geschrieben, statt ein ISO 9660-Dateisystems erzeugt zu
haben. Werfen Sie einen Blick in das Kapitel Erzeugung von
CD-ROMs im Handbuch, speziell in den Abschnitt
über reine
Daten-CDs.Wie kann ich ein Image einer Daten-CD erzeugen?Diese Information finden Sie im Abschnitt Kopieren
von CD-ROMs des Handbuchs. Weitere Informationen
über die Arbeit mit CD-ROMs finden Sie im Abschnitt
Erzeugen von
CD-ROMs im Kapitel Speichermedien des
Handbuchs.Wieso kommt mount nicht meiner
Audio-CD zurecht?Wenn Sie versuchen sollten, eine Audio-CD zu mounten,
erhalten Sie die Meldung cd9660: /dev/acd0c:
Invalid argument. Der Grund dafür ist,
dass mount nur für
Dateisysteme vorgehen ist. Audio CDs habe kein
Dateisystem, sondern nur Daten. Wenn Sie eine Audio CD
auslesen wollen, brauchen Sie ein entsprechendes Programm
wie z.B. audio/xmcd
aus den Ports.Wie nutze ich mount für eine
Multi-Session CD?Standardmäßig benutzt &man.mount.8; den
letzten (aktuellsten) Daten-Track der CD. Wenn Sie eine
ältere Session benutzen wollen, müssen Sie diese
mit der Option definieren. Weitere
Informationen finden Sie in der Onlinehilfe zu
&man.mount.cd9660.8;Wie lasse ich normale Benutzer Disketten, CDROMs und
andere Wechseldatenträger mounten?Normale Benutzer können dazu berechtigt werden,
Geräte zu mounten. Das geht so:Setzen Sie als root die
sysctl-Variable vfs.usermount auf
1:&prompt.root; sysctl -w vfs.usermount=1Ordnen Sie als root den
Block-Geräten, die den Wechsellaufwerken
zugeordnet sind, die entsprechenden Zugriffsrechte
zu.Wenn Sie zum Beispiel den Benutzer den Zugriff auf
das erste Diskettenlaufwerk zu erlauben
wollen:&prompt.root; chmod 666 /dev/fd0Um den Mitgliedern der Gruppe
operator den Zugriff auf das
CDROM zu gestatten:&prompt.root; chgrp operator /dev/cd0c
&prompt.root; chmod 640 /dev/cd0cFügen Sie zum Abschluss die Zeile
vfs.usermount=1
in die Datei /etc/sysctl.conf
ein, damit die Einstellung bei einem Neustart des
Systems automatisch erhalten bleibt.Alle Benutzer können nun
/dev/fd0 auf ein Verzeichnis, das
ihnen gehört, mounten:&prompt.user; mkdir ~/my-mount-point
&prompt.user; mount -t msdos /dev/fd0 ~/my-mount-pointDie zur Gruppe operator
gehörenden Benutzer können nun
/dev/cd0c auf ein Verzeichnis, das
ihnen gehört, mounten:&prompt.user; mkdir ~/my-mount-point
&prompt.user; mount -t cd9660 /dev/cd0c ~/my-mount-pointDas Unmounten des Gerätes ist simpel:&prompt.user; umount ~/my-mount-pointDie Aktivierung von vfs.usermount
hat jedoch negative Auswirkungen auf Sicherheitsaspekte.
Ein besserer Weg, um auf &ms-dos;-formatierte
Datenträger zuzugreifen, ist die Benutzung des
Packages
emulators/mtools.Wieso geben die Befehle du und
df unterschiedliche Werte für den
freien Plattenplatz aus?Der Grund ist die Funktionsweise von
du und df.
du geht durch einen Dateibaum,
ermittelt die Größe jeder einzelnen Datei, und
gibt die Summe aus. df fragt lediglich
das Dateisystem wie viel Platz noch frei ist. Das
scheint zwar auf den ersten Blick sehr ähnlich zu
sein; allerdings wird sich ein leeres Verzeichnis auf die
Ausgabe von df auswirken, während
es auf das Ergebnis von du keinen
Einfluss hat.Wenn Sie eine Datei löschen, während sie von
einem Programm genutzt wird, wird diese Datei erst
gelöscht, wenn sie vom Programm freigegeben wird.
Allerdings wird die Datei sofort aus dem Verzeichnis
entfernt. Sie können dieses Verhalten mit einem
Programm wie more sehr einfach
nachvollziehen. Dazu brauchen Sie nur eine Datei, die
groß genug ist, um die Ausgabe von
du und df zu
beeinflussen. Bei der Größe aktueller Platten
muss diese Datei schon sehr
groß sein! Wenn Sie diese Datei löschen,
während Sie sie sich in more
anzeigen lassen, hat more kein Problem.
Der Eintrag für die Datei wird lediglich aus dem
Verzeichnis entfernt, damit kein anderes Programm mehr
darauf zugreifen kann. Laut du ist die
Datei verschwunden – es hat das Verzeichnis
untersucht und die Datei nicht gefunden. Laut
df ist die Datei aber vorhanden, da sie
im Dateisystem immer noch Platz belegt. Sobald Sie
more beenden, werden die Ergebnisse von
du und df wieder
übereinstimmen.Bitte beachten Sie, dass die Freigabe des
Plattenplatzes durch die Soft Updates um bis zu 30 Sekunden
verzögert werden kann.Die oben beschriebene Situation tritt sehr häufig
auf Web-Servern auf. Viele Anwender installieren einen
FreeBSD Web-Server und vergessen die Rotation der
Logfiles, bis irgendwann die Partition
/var überläuft. Der
Administrator löscht die Datei, aber das System
beschwert sich immer noch über fehlenden
Plattenplatz. Die Datei wird erst freigegeben, wenn der
Web-Server beendet und neu gestartet wird; dadurch kann
das System den Plattenplatz freigeben. Um solche und
ähnliche Unfälle zu verhindern, sollten Sie
&man.newsyslog.8; einsetzen.Wie kann ich den Swap-Bereich
vergrößern?Im Kapitel Konfiguration und
Tuning des Handbuches gibt es einen Abschnitt
mit einer Schritt-für-Schritt Anleitung.Warum kann eine Partition zu mehr als 100% gefüllt
sein?Ein Teil jeder UFS Partition, in der Vorgabe sind das 8%,
ist für das Betriebssystem und den Benutzer
root reserviert. &man.df.1; rechnet
diesen Teil bei der Ausgabe der Capacity
Spalte nicht ein, so dass dort Werte über 100%
angezeigt werden können. Die Anzahl der Blöcke in
der blocks Spalte ist ebenfalls um 8%
größer als die Summe der benutzten und
verfügbaren Blöcke (die Spalten
Used und Avail).Wie viel Platz reserviert wird, können Sie mit der
Option von &man.tunefs.8; einstellen.SystemadministrationWo befinden sich die Konfigurationsdateien für
den Systemstart?/etc/defaults/rc.conf (siehe
&man.rc.conf.5;) ist die primäre Konfigurationsdatei.
Die Startskripten des Systems, wie /etc/rc
und /etc/rc.d (siehe &man.rc.8;)
inkludieren diese Datei.
Ändern Sie diese Datei nicht!
Wenn Sie den Wert einer der in
/etc/defaults/rc.conf gesetzten
Variablen ändern wollen, fügen Sie die
entsprechende Zeile in die Datei
/etc/rc.conf ein und ändern
die Zeile dort.Wenn Sie zum Beispiel den mitgelieferten DNS-Server
named aktivieren wollen,
müssen Sie lediglich das folgende Kommando
eingeben:&prompt.root; echo named_enable="YES" >> /etc/rc.confWenn Sie lokale Server starten wollen, müssen
Sie passende Shellskripten im Verzeichnis
/usr/local/etc/rc.d/ ablegen. Die
Dateien müssen als ausführbar markiert sein und
die Endung .sh haben.Wie kann ich am Einfachsten einen Benutzer
hinzufügen?Benutzen Sie den Befehl &man.adduser.8; und für
kompliziertere Fälle den Befehl &man.pw.8;.Benutzen Sie den Befehl &man.rmuser.8;, um einen
Benutzer wieder zu löschen. Sie können, wenn
nötig. auch &man.pw.8; benutzen.Warum erhalte ich Meldungen wie root: not
found, nachdem ich meine crontab geändert
habe?Die übliche Ursache dieses Problems ist,
dass Sie die crontab des Systems
(/etc/crontab) geändert und dann
mit &man.crontab.1; installiert haben:&prompt.root; crontab /etc/crontabDiese Vorgehensweise ist falsch. Die crontab des
Systems hat ein anderes Format als die crontabs für
die einzelnen Benutzer, die mit &man.crontab.1;
aktualisiert werden (genauere Informationen über die
Unterschiede erhalten Sie in &man.crontab.5;).Wenn Sie so vorgegangen sind, ist die zweite crontab
einfach nur eine Kopie von
/etc/crontab, allerdings im falschen
Format. Löschen Sie sie mit dem folgenden
Befehl:&prompt.root; crontab -rWenn Sie /etc/crontab wieder
ändern müssen, sollten Sie einfach gar nichts
tun, um &man.cron.8; über die Änderung zu
informieren, er erkennt die Änderung
automatisch.Wenn Sie ein Kommando jeden Tag, jede Woche oder jeden
Monat ausführen lassen wollen, ist es wahrscheinlich
einfacher, wenn Sie entsprechende Shell-Scripte in
/usr/local/etc/periodic ablegen.
Diese werden dann von &man.periodic.8; zusammen mit den
anderen regelmäßigen Tätigkeiten
ausgeführt.Der eigentliche Grund für den Fehler ist die
Tatsache, dass die crontab des Systems ein
zusätzliches Feld enthält; dieses Feld gibt an,
mit welcher Benutzerkennung der Befehl ausgeführt
werden soll. In der mitgelieferten crontab ist das bei
allen Einträgen die Benutzerkennung
root. Wenn diese Datei als die
crontab des Benutzers username (die
nicht mit der crontab des Systems
identisch ist) verwendet wird, hält &man.cron.8; die
Zeichenkette root für den Namen
des zu startenden Programmes, aber dieses Programm gibt es
nicht.Wieso meldet mir &man.su.1; you are not in
the correct group to su root, wenn ich mit
&man.su.1; root werden will?Das ist ein Sicherheits-Feature. Wenn Sie mit
&man.su.1; zum Account root (oder
jedem anderen Account mit Super-User-Privilegien) wechseln
wollen, müssen Sie ein Mitglied der Gruppe
wheel sein. Wenn es dieses Feature
nicht gäbe, könnte jeder, der einen Account auf
dem System hat und zufällig das Passwort
für root erfährt, mit
Super-User-Rechten auf das System zugreifen. Durch dieses
Feature ist die Lage anders, wenn Sie nicht Mitglied von
wheel sind, können Sie nicht
einmal versuchen, dass Passwort
einzugeben.Um einem Benutzer zu erlauben, mit &man.su.1;
root zu werden, müssen Sie ihn
nur in die Gruppe wheel
eintragen.Ich habe einen Fehler in der
rc.conf oder einer der anderen
Dateien für den Systemstart und jetzt kann ich sie
nicht ändern, weil das Dateisystem
read-only ist. Was kann ich tun?Wenn Sie aufgefordert werden, den Pfadnamen der Shell
einzugeben, drücken Sie einfach
ENTER. Geben Sie danach mount
/ ein, um das Root-Dateisystem im
Schreib/Lese-Modus zu mounten. Sie werden wahrscheinlich
auch mount -a -t ufs ausführen
müssen, um das Dateisystem mit Ihrem Lieblingseditor
zu mounten. Wenn Ihr Lieblingseditor auf einem
Netzwerklaufwerk liegt, müssen Sie entweder das
Netzwerk von Hand konfigurieren oder einen Editor
benutzen, der auf einem lokalen Laufwerk vorhanden ist,
z.B. &man.ed.1;.Wenn Sie einen bildschirmorientierten Editor wie zum
Beispiel &man.vi.1; oder &man.emacs.1; benutzen wollen,
werden Sie auch den Befehl export
TERM=cons25 ausführen müssen, damit
diese Editoren die richtigen Einstellungen aus der
Datenbank &man.termcap.5; übernehmen.Sobald Sie diese Schritte ausgeführt, können
Sie den Fehler in der /etc/rc.conf
ganz normal beheben. Die Fehlermeldungen, die Ihnen
unmittelbar nach den Startmeldungen des Kernels angezeigt
wurden, sollten Ihnen die Nummer der Zeile mit dem Fehler
melden.Wieso habe ich habe Probleme, meinen Drucker
einzurichten?Bitte sehen Sie im Handbucheintrag über Drucker
nach. Es sollte die meisten Ihrer Probleme behandeln.
Lesen sie den Handbucheintrag über
Drucker.Einige Drucker benötigen einen auf dem Rechner
laufenden Treiber, um drucken zu können. Diese
so genannten WinPrinter oder
GDI-Drucker werden von FreeBSD nicht
unterstützt und an diesem Zustand wird sich wohl auch
nichts ändern. Wenn Ihr Drucker nicht unter DOS oder
&windowsnt; 4.0 verwendet werden kann, handelt es sich um
einen WinPrinter und wird in der Regel auch
nicht unter FreeBSD funktionieren. Ihre einzige Chance,
einen dieser Drucker benutzen können, ist der Port
ports/print/pnm2ppa.Wie kann ich die Tastaturbelegung meines Systems
korrigieren?Informationen dazu finden Sie im Kapitel länderspezifische
Einstellungen des Handbuchs, insbesondere im
Abschnitt Konfiguration
der Konsole.Wieso erhalte ich beim Start des Systems Meldungen wie
unknown: <PNP0303> can't assign
resources?Die nachfolgende Erklärung stammt aus einer Mail
auf der Mailingliste freebsd-current.
&a.wollman;, 24 April 2001Die Geräte, für die can't assign
resources-Meldungen ausgegeben werden, sind
Legacy ISAGeräte, für die ein nicht
PNP-fähiger Treiber in den Kernel eingebunden
wurde. Dabei handelt es sich um Geräte wie den
Tastaturkontroller, den programmierbaren
Interrupt-Kontroller und diverse andere
Standardkomponenten. Die Ressourcen können nicht
zugewiesen werden, weil es schon einen Treiber gibt, der
diese Ressourcen benutzt.
Wieso funktionieren die Benutzer-Quotas nicht
richtig?Benutzen Sie keine Quotas für
/.Erstellen Sie die Quotas-Datei in dem Dateisystem,
für das die Quotas gelten sollen, z.B.:FilesystemQuota file/usr/usr/admin/quotas/home/home/admin/quotas……Unterstützt FreeBSD IPC-Grundfunktionen von
System V?Ja, FreeBSD unterstützt IPC im Stil von System V
einschließlich gemeinsamen Speicher, Nachrichten und
Semaphoren. Ab &os; 3.2 ist System V
IPC im GENERIC-Kernel
enthalten. Frühere FreeBSD-Versionen benötigen
die folgenden Zeilen in der Kernelkonfigurationsdatei:
options SYSVSHM
options SYSVSHM # enable shared memory
options SYSVSEM # enable for semaphores
options SYSVMSG # enable for messaging
Kompilieren und installieren Sie einen neuen
Kernel.Welchen Mail-Server kann ich an Stelle von Sendmail
benutzen?Sendmail
ist zwar der Mail-Server, der bei FreeBSD
standardmäßig installiert wird, aber Sie
können Ihn problemlos durch einen anderen MTA (z.B.
aus den Ports) ersetzen.In der Port-Sammlung gibt es bereits viele
verschiedene MTAs, mail/exim,
mail/postfix,
mail/qmail, sowie
mail/zmailer
sind einige der beliebteren Alternativen.Konkurrenz belebt das Geschäft und die Tatsache,
dass Sie die Qual der Wahl haben, ist ein Vorteil.
Daher sollten Sie Fragen wie Ist Sendmail besser
als Qmail? besser nicht auf den Mailinglisten
stellen. Wenn Sie dieses Thema interessiert, sollten sie
zunächst die Archive durchsehen. Die Vorteile und
Nachteile jedes einzelnen der verfügbaren MTAs sind
schon mehrere Male bis zur Erschöpfung diskutiert
worden.Was kann ich machen, wenn ich das Rootpasswort
vergessen habe?Keine Panik! Starten Sie Ihr System einfach neu und
geben Sie boot -s an der
Eingabeaufforderung Boot: ein (bei FreeBSD-Versionen vor
3.2 nur -s), um in den
Einzelbenutzermodus zu gelangen. Bei der Frage danach,
welche Shell benutzt werden soll, drücken Sie einfach
ENTER. Nun erscheint die Eingabeaufforderung
&prompt.root;. Geben Sie mount -u /
ein, um Ihr Root-Dateisystem für Lese- und
Schreibzugriffe zu remounten und dann mount
-a, um alle Dateisysteme zu remounten. Mit
passwd root können Sie das
Rootpasswort ändern und mit &man.exit.1;
können Sie mit dem Booten fortfahren.Wie verhindere ich, dass das System mit
CtrlAltDelete
rebootet werden kann?Falls Sie syscons (den Standard-Treiber für die
Konsole) benutzen, fügen Sie folgende Zeile in Ihre
Kernelkonfigurationsdatei ein:options SC_DISABLE_REBOOTFalls Sie den Konsolen-Treiber PCVT verwenden, benutzen
Sie stattdessen die folgende Zeile:options PCVT_CTRL_ALT_DELWie kann ich Textdateien von DOS Systemen auf &unix;
Systemen verwenden?Benutzen Sie einfach diesen Perl-Befehl:&prompt.user; perl -i.bak -npe 's/\r\n/\n/g' file ...file ist/sind die zu verarbeitende(n) Datei(en). Die
Änderungen erfolgen in der Originaldatei, die zuvor
mit der Erweiterung .bak gesichert wird.Alternativ können Sie den Befehl &man.tr.1;
benutzen:&prompt.user; tr -d '\r' < dos-text-file > unix-filedos-text-file ist die
Datei, die den Text im DOS-Format enthält und
unix-file wird die konvertierte
Ausgabe enthalten. Diese Möglichkeit könnte
etwas schneller sein, als die Benutzung von Perl.Wie beende ich Prozesse namentlich?Benutzen Sie &man.killall.1;.Warum nervt su mich damit, dass ich nicht in der
ACL von root bin?Der Fehler stammt vom verteilten
Authentifizierungssystem Kerberos. Das Problem ist nicht
ernsthaft, aber störend. Sie können entweder su
mit der Option -K benutzen, oder Kerberos deinstallieren,
wie in der nächsten Frage beschrieben.Wie deinstalliere ich Kerberos?Um Kerberos aus dem System zu entfernen, müssen
Sie die bin-Distribution der von Ihnen benutzen RELEASE
neu installieren. Wenn Sie die CDROM besitzen,
können Sie sie mounten (wir nehmen an, unter /cdrom)
und folgende Schritte ausführen:&prompt.root; cd /cdrom/bin
&prompt.root; ./install.shAlternativ können Sie alle Zeilen mit
MAKE_KERBEROS aus der
/etc/make.conf entfernen und dann ein
make world durchführen.Wo ist /dev/MAKEDEV hin?Ab FreeBSD 5.X werden Geräte automatisch
von &man.devfs.8; zur Verfügung gestellt. Die
Gerätetreiber erstellen die Gerätedateien,
wenn diese benötigt werden. Das Skript
/dev/MAKEDEV wird nicht mehr
gebraucht.Wenn Sie FreeBSD 4.X oder eine frühere
Version benutzen und /dev/MAKEDEV
fehlt, dann haben Sie ein Problem. Kopieren Sie das
Skript aus den Systemquellen. Es liegt wahrscheinlich
unter /usr/src/etc/MAKEDEV.Wie füge ich Pseudo-Terminals zum System
hinzu?Wenn Sie viele Benutzer von telnet, ssh, X oder
screens haben, könnte es sein, dass Ihnen die
Pseudo-Terminals ausgehen. So fügen Sie weitere
hinzu:Erstellen und installieren Sie einen neuen Kernel
mit der Zeilepseudo-device pty 256in der Konfigurationsdatei.Führen Sie die Befehle&prompt.root; cd /dev
&prompt.root; ./MAKEDEV pty{1,2,3,4,5,6,7}aus, um 256 Geräteeinträge für die
neuen Terminals zu erstellen.Editieren Sie die Datei
/etc/ttys und fügen Sie
Zeilen für jeden der 256 Terminals ein. Sie
sollten so aussehen, wie die existierenden
Einträge, also etwa so:ttyqc none networkDie Reihenfolge der Buchstabenzuordnung lautet mit
einem regulären Ausdruck
tty[pqrsPQRS][0-9a-v].Starten Sie das System mit dem neuen Kernel
erneut, wenn Sie bereit sind.Warum kann ich das Gerät snd0 nicht
erstellen?Es gibt kein Gerät snd.
Diese Bezeichnung ist nur ein Sammelbegriff für die
diversen Geräte, die zusammen das Soundsystem von
FreeBSD bilden, wie zum Beispiel
mixer,
sequencer, und
dsp.So erzeugen Sie diese Geräte:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV snd0Lassen Sie diesen Schritt aus, wenn Sie FreeBSD
5.0-RELEASE oder eine neuere Version mit &man.devfs.5;
verwenden. Die Gerätedateien werden in diesem Fall
automatisch in /dev erstellt.Wie lade ich /etc/rc.conf und
starte /etc/rc neu, ohne zu
rebooten?Gehen Sie in den Einzelbenutzermodus und dann
zurück in den Mehrbenutzermodus.Geben Sie auf der Konsole folgendes ein:&prompt.root; shutdown now
(Hinweis: ohne -r oder -h)
&prompt.root; return
&prompt.root; exitIch wollte auf das aktuelle -STABLE updaten, und
plötzlich läuft hier ein -BETAx, -RC oder
-PRERELEASE. Was ist passiert?Kurze Antwort: Das ist nur ein anderer Name. RC ist
die Abkürzung für Release
Candidate. Es bedeutet, dass eine neue
Release bevorsteht. Und -PRERELEASE bedeutet bei FreeBSD
normalerweise, dass die Sourcen zur Vorbereitung auf eine
Release eingefroren wurden (in einigen
Releases wurde -BETA anstelle von -PRERELEASE
verwendet).Ausführliche Antwort: Bei FreeBSD gibt es zwei
Quellen für Releases. Die Major Releases wie
3.0-RELEASE und 4.0-RELEASE werden aus dem aktuellen Stand
des Hauptzweiges der Entwicklung (besser und kürzer
als -CURRENT bekannt)
erzeugt. Minor Releases wie 3.1-RELEASE or 4.2-RELEASE
stammen aus dem aktiven -STABLE Zweig. Seit 4.3-RELEASE
gibt es es nun auch einen eigenen Zweig für jede
Release, der für die Leute gedacht ist, die ein sehr
konservativ weiterentwickeltes System benötigen (im
Normalfall also nur Updates aus dem Bereich
Sicherheit).Bevor in einem Zweig eine Release erfolgt, muss
in diesem Zweig ein bestimmter Prozess ablaufen. Ein
Teil dieses Prozesses ist der code freeze,
der Stop der Weiterentwicklung. Sobald dieser Schritt
erfolgt ist, wird der Name des Zweiges geändert, um
anzuzeigen, dass demnächst eine Release erfolgen
wird. Wenn der Zweig zum Beispiel 4.5-STABLE genannt
wurde, wird der Name in 4.6-PRERELEASE geändert, um
dies zu verdeutlichen. Weiterhin ist das ein Zeichen, dass
jetzt besonders intensiv getestet werden sollte. In
dieser Phase können Fehler im Sourcecode noch
korrigiert werden. Wenn der Sourcecode so weit
gereift ist, dass eine Release
erstellt werden kann, wird der Name in 4.6-RC
geändert, um genau dies anzuzeigen. In dieser Phase
können nur noch extrem wichtige Korrekturen
aufgenommen werden. Sobald die Release (in diesem Beispiel
4.6-RELEASE) erfolgt ist, wird der Zweig in 4.6-STABLE
umbenannt.Weitere Informationen über Versionsnummern und die
verschiedenen Entwicklungszweige enthält der Artikel
Release
Engineering.Als ich versucht habe, einen neuen Kernel zu
installieren, ist das chflags fehlgeschlagen. Was mache
ich jetzt?Kurze Antwort: Ihre Sicherheitseinstellung (der
securelevel) ist wahrscheinlich größer als 0.
Sie müssen das System neu starten und den Kernel im
Single-User Modus installierten.Ausführliche Antwort: Wenn die
Sicherheitseinstellung größer als 0 ist,
erlaubt Ihnen FreeBSD nicht, die Systemflags zu
ändern. Um den aktuellen Securelevel zu ermitteln,
können Sie das folgende Kommando benutzen:&prompt.root; sysctl kern.securelevelSie können die Sicherheitseinstellung nicht
verringern, Sie müssen das System neu starten und den
Kernel im Single-User Mode installieren oder die
Sicherheitseinstellung in
/etc/rc.conf ändern und dann das
System neu starten. Weitere Detail zur
Sicherheitseinstellung erhalten Sie in &man.init.8;,
weitere Informationen zur rc.conf erhalten Sie in
/etc/defaults/rc.conf und
&man.rc.conf.5;.Ich kann die Systemzeit nicht um mehr als eine Sekunde
verstellen. Was mache ich jetzt?Kurze Antwort: Ihre Sicherheitseinstellung (der
securelevel) ist wahrscheinlich größer als 1.
Sie müssen das System neu starten und die Systemzeit
im Single-User Modus verstellen.Ausführliche Antwort: Wenn die
Sicherheitseinstellung größer als 1 ist,
erlaubt Ihnen FreeBSD nicht, die Systemzeit zu
ändern. Um den aktuellen Securelevel zu ermitteln,
können Sie das folgende Kommando benutzen:&prompt.root; sysctl kern.securelevelSie können die Sicherheitseinstellung nicht
verringern, Sie müssen das System neu starten und die
Systemzeit im Single-User Mode ändern oder die
Sicherheitseinstellung in
/etc/rc.conf ändern und dann das
System neu starten. Weitere Detail zur
Sicherheitseinstellung erhalten Sie in &man.init.8;,
weitere Informationen zur rc.conf erhalten Sie in
/etc/defaults/rc.conf und
&man.rc.conf.5;.Warum braucht &man.rpc.statd.8; 256 MByte
Speicher?Nein, das Programm hat keinen Fehler und es verbraucht
auch nicht 256 MByte Speicher. Das Programm hat nur eine
Vorliebe dafür, einen übertrieben großen
Speicherbereich in seinen eigenen Adressraum zu
projizieren. Von einem rein technischen Standpunkt aus
ist das nichts verwerfliches, allerdings verwirrt es
Programme wie &man.top.1; und &man.ps.1;.&man.rpc.statd.8; projiziert seine Statusdatei (die in
/var liegt) in seinen
Adressraum. Um die Probleme zu vermeiden, die bei
einer Vergrößerung dieser Projektion entstehen
könnte, wird gleich ein möglichst großer
Speicherbereich benutzt. Dies kann man sehr schön im
Sourcecode sehen: Die Längenangabe beim Aufruf von
&man.mmap.2; ist 0x10000000, ein
sechzehntel des Adressraums bei IA32, oder genau 256
MByte.Warum kann ich das Dateiattribut
schg nicht löschen?Sie betreiben Ihr System mit einer erhöhten
Sicherheitsstufe. Senken Sie die Sicherheitsstufe und
versuchen Sie es dann noch einmal. Weitere Informationen
erhalten Sie im FAQ Eintrag
über Sicherheitsstufen und in der Online-Hilfe
&man.init.8;.Warum funktioniert die .shosts
Authentifizierung von SSH in neueren Version von FreeBSD
nicht mehr?Die .shosts
Authentifizierung funktioniert nicht mehr, weil
&man.ssh.1; in neueren Versionen von FreeBSD nicht mehr
SUID-root installiert wird. Um dieses
Problem zu lösen, gibt es die folgenden
Möglichkeiten:Um das Problem für immer zu lösen,
müssen Sie in /etc/make.conf
die Variable ENABLE_SUID_SSH auf
true setzen und ssh neu
übersetzen (oder make world
ausführen.Übergangsweise können Sie auch die
Dateirechte von /usr/bin/ssh auf
4555 setzen, indem Sie den Befehl
chmod 4555 /usr/bin/ssh als
root ausführen. Fügen
Sie anschließend ENABLE_SUID_SSH=
true in die Datei
/etc/make.conf ein, damit diese
Änderung erhalten bleibt, wenn Sie das
nächste Mal make world
ausführen.Was ist vnlru?vnlru schreibt vnodes auf Platte
und gibt sie wieder frei, falls das System die Grenzwert
kern.maxvnodes erreicht. Dieser Thread
des Kernel tut meistens gar nichts und wird nur aktiv,
wenn Sie extrem viel RAM haben und gleichzeitig auf viele
zehntausende kleine Dateien zugreifen.Was bedeuten die Zustände, die
top für Speicherseiten ausgibt?Speicherseiten werden vom Kernel in
verschiedenen Listen verwaltet:Active: Seiten, die vor
Kurzem benutzt wurden.Inactive: Seiten, die
länger nicht benutzt wurden.Cache: Meistens
Seiten, die vorher im Zustand Inactive
waren und noch gültige Daten enthalten. Diese
Seiten können sofort in ihrem alten Kontext oder
in einem neuen Kontext verwendet werden. Wenn eine
Seite unverändert
(clean) ist, kann
ein Zustandswechsel direkt von Active
nach Cache erfolgen.
Ob dieser Zustandswechsel möglich ist, wird durch
die Seitenersetzungsstrategie bestimmt, die der
Entwickler des VM-Systems festgelegt hat.Free: Seiten, die
keine Daten enthalten. Diese Seiten können
sofort benutzt werden, wenn Seiten im Zustand
Cache nicht benutzt werden
können. Seiten im Zustand Free
können auch während eines Interrupts
angefordert werden.Wired: Seiten, die
fest im Speicher liegen und nicht ausgelagert werden
können. Normalerweise werden solche Seiten vom
Kernel benutzt, manchmal werden Sie aber auch für
spezielle Zwecke von Prozessen verwendet.Seiten im Zustand Inactive
werden oft auf Plattenspeicher geschrieben (sozusagen
ein sync des VM-Systems). Wenn
die CPU erkennen kann, das eine Seite unmodifiziert
(clean) ist, kann
auch eine Active-Seite auf den
Plattenspeicher ausgeschrieben werden. In bestimmten
Situationen ist es von Vorteil, wenn ein Block von
VM-Seiten, unabhängig von seinem Zustand,
ausgeschrieben werden kann. Die
Inactive-Liste enthält wenig
benutzte Seiten, die ausgeschrieben werden könnten.
Seiten im Zustand Cached sind
schon ausgeschrieben und stehen Prozessen für
die Verwendung im alten oder in einem neuen Kontext
zur Verfügung. Seiten im Zustand
Cache sind nicht ausreichend
geschützt und können während Unterbrechungen
nicht benutzt werden.Die eben beschriebene Behandlung von Speicherseiten
kann durch weitere Zustände (wie das
das Busy-Flag) verändert werden.Wie viel freien Speicher hat mein System?Es gibt verschiedene Arten von freiem
Speicher. Eine Art ist die Speichermenge,
die sofort, ohne etwas auszulagern, zur Verfügung
steht. Der gesamte VM-Bereich
ist eine weitere Art des freien Speichers.
Die Betrachtung ist komplex, hängt aber von
der Größe des Swap-Bereichs und der
Größe des Arbeitsspeichers ab. Es gibt
weitere Definitionen für freien Speicher,
die aber alle relativ nutzlos sind. Wichtig ist
hingegen, dass wenig Seiten ausgelagert
werden (paging) und der
Swap-Bereich ausreichend groß ist.Ich kann /var/empty nicht
löschen!Das Verzeichnis /var/empty
wird von &man.sshd.8; benötigt, wenn es mit
Privilege Separation läuft.
Das Verzeichnis /var/empty ist
leer, gehört root und
ist durch das Dateiattribut schg
geschützt.Wir empfehlen Ihnen, das Verzeichnis zu belassen.
Sollten Sie es aber trotzdem löschen wollen,
müssen Sie zuerst das schg-Attribut
entfernen. Schauen Sie sich dazu die Hilfeseite
&man.chflags.1; an und beachten Sie die Antwort auf
die Frage wie das
schg-Attribut entfernt wird.Das X Window System und virtuelle KonsolenWas ist das X Window System?Das X Window System ist das am häufigsten verwendete
Window System für &unix; oder ähnliche Systeme,
zu denen auch &os; gehört.
Der X
Protokollstandard wird von der
X.org Foundation definiert.
Die aktuelle Version 11.6 dieser Spezifikation wird als
X11R6 oder auch nur als
X11 bezeichnet.Das X Window System wurde für viele verschiedene
Architekturen und Betriebssysteme implementiert. Eine
serverseitige Implementierung wird dabei als
X-Server bezeichnet.Welche X-Implementierungen sind für &os;
verfügbar?Früher war &xfree86;, die X-Implementierung des
XFree86
Projects, Inc., der Standard unter &os;. Dieser
X-Server wurde bis einschließlich &os;
Version 4.10 und 5.2 als Standard-X-Server installiert.
Die von &xorg; veröffentlichte Implementierung diente
nur als Referenzplattform, weil der verwendete Code
über die Jahre sehr ineffizient geworden war.Anfang 2004 verließen einige Entwickler das
XFree86 Project, um fortan &xorg; direkt zu
unterstützen. Der Grund dafür waren
Meinungsverschiedenheiten über die Geschwindigkeit
der Weiterentwicklung, die zukünftige Ausrichtung des
Projekts sowie persönliche Differenzen. Zur gleichen
Zeit aktualisierte &xorg; ihren Quellcodebaum auf die
&xfree86;-Version 4.3.99.903,
brachte viele Änderungen, die bisher getrennt verwaltet
worden waren, in das Projekt ein und veröffentlichte
das Paket als X11R6.7.0, bevor
&xfree86; die Lizenz änderte. Ein seperates, aber
mit &xorg; verbundenes Projekt,
freedesktop.org
(oder fd.o), arbeitet an einer
Überarbeitung des ursprünglichen &xfree86;-Codes,
um einerseits mehr Rechenarbeit an die Grafikkarten zu
übertragen (mit dem Ziel einer deutlich erhöhten
Geschwindigkeit) und andererseits den Code zu modularisieren
(mit dem Ziel einer verbesserten Wartung, einer schnelleren
Entwicklung sowie einer vereinfachten Konfiguration). &xorg;
plant, die Weiterentwicklungen von freedesktop.org in seine
zukünftigen Versionen zu integrieren.Seit Juli 2004 ist &xorg; der Standard-X-Server für
&os.current;. Die &xfree86;-Ports
(x11/XFree86-4)
verbleiben in der Ports-Sammlung und sind nach wie der
Standard für &os.stable;.Der letzte Absatz beschreibt nur die
Standardeinstellung. Es ist nach wie vor möglich,
beide Implementierung unter &os; zu verwenden. Lesen
Sie dazu die Anweisungen im Eintrag vom 23.07.2004 in
der Datei /usr/ports/UPDATING.Beachten Sie, dass es derzeit nicht möglich ist,
Teile aus beiden Implementierungen parallel zu verwenden.
Sie müssen sich also für eine der beiden
Implementierungen entscheiden.Die folgenden Abschnitte beziehen sich zwar auf die
&xfree86;-Implementierung, sie sollten aber auch für
die &xorg;-Implementierung anwendbar sein. Die
Standardkonfigurationsdatei von &xorg; heißt
xorg.conf. Ist diese nicht
vorhanden, wird die Datei XF86Config
verwendet.Funktionieren meine Programme auch mit der
&xorg;-Implementierung noch?Der &xorg;-Server basiert auf der gleichen
X11R6-Spezifikation, die auch &xfree86; verwendet, daher
sollte ein Großteil der Anwendungen problemlos
funktionieren. Einige selten verwendete Protokolle werden
allerdings nicht mehr unterstützt
(XIE, PEX, sowie
lbxproxy). Die beiden ersten Protokolle
wurden allerdings auch vom &xfree86;-Port nicht
unterstützt.Warum hat sich das X Project überhaupt
aufgespalten?Diese Frage ist nicht &os;-spezifisch. Es gibt zu
diesem Thema umfangreiche Postings in diversen
Mailinglist-Archiven. Suchen Sie daher über eine
Suchmaschine danach, statt diese Frage auf einer
&os;-Mailingliste zu stellen.Warum hat sich &os; für &xorg; als Standard-X-Server
entschieden?Die Entwickler von &xorg; geben an, dass sie neue
Versionen rascher veröffentlichen und neue Eigenschaften
schneller implementieren wollen. Außerdem verwenden
sie nach wie vor die traditionelle X-Lizenz, während
&xfree86; nun eine veränderte Version benutzt.Diese Entscheidung wird nach wie vor heftig
diskutiert. Nur die Zeit wird zeigen, welche
Implementierung technisch überlegen ist. Jeder
&os;-Benutzer hat aber die freie Wahl zwischen den
beiden Implementierungen.Ich möchte X benutzen, was muss ich
tun?Der einfachste Weg ist der, dass Sie während
der Installation angeben, dass Sie X benutzen
möchten.Lesen Sie dann die Dokumentation zum Tool
xf86config, das Sie bei der
Konfiguration von &xfree86; speziell für Ihre
Grafikkarte/Maus/etc. unterstützt.Evtl. möchten Sie sich auch den Xaccel-Server
ansehen. Nähere Details finden Sie in den
Abschnitten über Xi
Graphics oder Metro
Link.Ich habe versucht, X zu starten,
aber wenn ich startx eingebe, erhalte
ich die Fehlermeldung KDENABIO failed
(Operation not permitted). Was soll ich jetzt
machen?Das System läuft auf einer erhöhten
Sicherheitsstufe (securelevel).
X kann auf einer erhöhten Sicherheitsstufe
nicht gestartet werden. Warum das so ist,
können Sie in &man.init.8; nachlesen.Die Frage ist also eigentlich, was Sie anders machen
sollten. Sie haben zwei Möglichkeiten: Setzen Sie
die Sicherheitsstufe wieder zurück auf 0 (die
Einstellung erfolgt in der Regel in
/etc/rc.conf) oder starten Sie
&man.xdm.1; während des Starts des Systems, bevor die
Sicherheitsstufe erhöht wird.Der Abschnitt enthält
Informationen darüber, wie Sie &man.xdm.1; beim Start
des Systems starten können.Warum funktioniert meine Maus unter X nicht?Wenn Sie syscons (den Standard-Konsoltreiber)
benutzen, können Sie FreeBSD so konfigurieren,
dass auf jedem virtuellen Bildschirm ein Mauszeiger
unterstützt wird. Um Konflikte mit X zu vermeiden,
unterstützt syscons ein virtuelles Gerät mit dem
Namen /dev/sysmouse. Über
dieses virtuelle Gerät können andere Programme
alle Mausbewegungen und Mausclicks im MouseSystems-Format
mitlesen. Falls Sie Ihre Maus auf einer oder mehreren
virtuellen Konsolen und X
benutzen wollen, sollten Sie zunächst lesen und dann
moused installieren.Die Datei /etc/XF86Config sollte
die folgenden Einträge enthalten:Section Pointer
Protocol "SysMouse"
Device "/dev/sysmouse"
.....
Diese Variante kann für &xfree86; 3.3.2 und
neuere Versionen benutzt werden. Wenn Sie eine ältere
Versionen verwenden, muss als
Protocol dagegen
MouseSystems benutzt werden.Einige Leute ziehen es vor, unter X
/dev/mouse zu benutzen. Hierzu
sollte /dev/mouse nach
/dev/sysmouse gelinkt werden:&prompt.root; cd /dev
&prompt.root; rm -f mouse
&prompt.root; ln -s sysmouse mouseKann ich meine Rad-Maus auch unter X benutzen?Ja. Allerdings müssen Sie die X-Anwendungen
anpassen. Weitere Informationen erhalten Sie auf der
Homepage von Colas
Nahaboo
(http://www.inria.fr/koala/colas/mouse-wheel-scroll/).Wenn Sie das Programm
imwheel benutzen wollen,
müssen Sie folgenden Arbeiten
durchführen.Umsetzung der Rad-BewegungDas Programm imwheel
übersetzt die Maustasten 4 und 5 in normale
Tastaturkommandos. Sie müssen also nur
dafür sorgen, dass die Bewegung des Rades
vom Maustreiber als Betätigung der Maustasten 4
und 5 übersetzt werden. Es gibt zwei
Möglichkeiten, dieses Ziel zu erreichen. Zum
einen kann die Übersetzung von &man.moused.8;
durchgeführt werden, zum zweiten kann der
X-Server diese Aufgabe übernehmen.Umsetzung durch &man.moused.8;Damit &man.moused.8; die Umsetzung vornimmt,
müssen Sie ihn lediglich mit dem
zusätzlichen Parametern
starten. Wenn Sie zum Beispiel &man.moused.8; mit
dem Befehl moused -p /dev/psm0
gestartet haben, würde der neue Befehl
moused -p /dev/psm0 -z 4
lauten. Wenn Sie &man.moused.8; über einen
Eintrag in der Datei
/etc/rc.conf automatisch beim
Start des Systems starten lassen, müssen Sie
in der /etc/rc.conflediglich
die Einstellung moused_flags um
ergänzen.Nun müssen Sie X darüber
informieren, dass Sie eine Maus mit 5 Tasten
haben. Fügen sie dazu die Zeile
Buttons 5 in den Abschnitt
Pointer der Datei
/etc/XF86Config ein. Das
Beispiel zeigt, wie ein solcher Abschnitt aussehen
könnte.Abschnitt Pointer für
&xfree86; 3.3.X für Mäuse mit Rad und
Umsetzung durch
mousedSection "Pointer"
Protocol "SysMouse"
Device "/dev/sysmouse"
Buttons 5
EndSection Abschnitt InputDevice für
Rad-Mäuse in der XF86Config von &xfree86; 4.X
mit Umsetzung durch den X ServerSection "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/sysmouse"
Option "Buttons" "5"
EndSection .emacs Konfiguration
für seitenweises Blättern mit einer
Rad-Maus;; wheel mouse
(global-set-key [mouse-4] 'scroll-down)
(global-set-key [mouse-5] 'scroll-up)Umsetzung durch den X-ServerWenn Sie &man.moused.8; nicht benutzen oder
die Umsetzung nicht von &man.moused.8; vornehmen
lassen wollen, kann diese Aufgabe auch vom
X-Server übernommen werden. Dazu sind einige
Änderungen an der Datei
/etc/XF86Config notwendig.
Zunächst müssen Sie das von Ihrer Maus
verwendete Protokoll herausfinden. Die meisten
Radmäuse verwenden das
&intellimouse; Protokoll. &xfree86;
unterstützt allerdings auch andere
Protokolle, zum Beispiel das von der Logitech
Mouseman+ verwendete
MouseManPlusPS/2. Wenn Sie das
Protokoll ermittelt haben, müssen Sie eine
entsprechende Protocol-Zeile in
den Abschnitt Pointer
aufnehmen.Zum zweiten müssen Sie dem X-Server
mitteilen, dass er die Bewegung des Rades in
Betätigungen der Tasten 4 und 5 umsetzen
soll. Dazu dient die Option
ZAxisMapping.Wenn Sie zum Beispiel &man.moused.8; nicht
verwenden und eine &intellimouse; an den PS/2
Mausport angeschlossen haben, müssten in
Ihrer /etc/XF86Config die
folgenden Angaben stehen:Abschnitt Pointer der Datei
XF86Config für eine
Rad-Maus und Umsetzung durch den
X-ServerSection "Pointer"
Protocol "IntelliMouse"
Device "/dev/psm0"
ZAxisMapping 4 5
EndSection Abschnitt InputDevice der
Datei XF86Config von &xfree86; 4.X mit
Umsetzung durch den X ServerSection "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psm0"
Option "ZAxisMapping" "4 5"
EndSection .emacs Beispiel für
seitenweises Blättern mit einer
Rad-Maus;; wheel mouse
(global-set-key [mouse-4] 'scroll-down)
(global-set-key [mouse-5] 'scroll-up)Installation von
imwheelDer nächste Schritt ist die Installation von
imwheel über die
Ports. Das Programm ist ein Teil der Kategorie
x11.
imwheel übersetzt die
Bewegungen des Rades in Tastendrücken. Es
könnte zum Beispiel Bild auf an
ein Programm senden, wenn Sie das Rad nach vorne
bewegen. Imwheel benutzt
eine Konfigurationsdatei, die den Bewegungen des Rades
die zu simulierenden Tastendrücke zuordnet.
Damit ist es möglich, verschiedenen Anwendungen
die jeweils "richtigen" Tastendrücke zu
senden. Ein Prototyp der Konfigurationsdatei für
imwheel wird unter dem
Namen /usr/X11R6/etc/imwheelrc
installiert. Wenn Sie die Konfiguration von
imwheel an die von Ihnen
verwendeten Programme anpassen wollen, erzeugen Sie
eine Kopie der Datei mit dem Namen
~/.imwheelrc und tragen Sie ihre
Anpassungen dort ein. Das Format der Datei wird in
&man.imwheel.1; erklärt.Anpassung von Emacs an
Imwheel
(Optional)Wenn Sie emacs oder
XEmacs benutzen,
müssen Sie einen kleinen Abschnitt in die Datei
~/.emacs einfügen. Für
emacs müssen Sie die
folgenden Zeilen anfügen:Nutzung von Emacs
mit Imwheel
;;; For imwheel
(setq imwheel-scroll-interval 3)
(defun imwheel-scroll-down-some-lines ()
(interactive)
(scroll-down imwheel-scroll-interval))
(defun imwheel-scroll-up-some-lines ()
(interactive)
(scroll-up imwheel-scroll-interval))
(global-set-key [?\M-\C-\)] 'imwheel-scroll-up-some-lines)
(global-set-key [?\M-\C-\(] 'imwheel-scroll-down-some-lines)
;;; end imwheel section
Wenn Sie XEmacs
verwenden, müssen stattdessen die folgenden
Zeilen an Ihre ~/.emacs
anfügen:Nutzung von XEmacs
mit Imwheel
;;; For imwheel
(mwheel-install)
(setq mwheel-follow-mouse t)
;;; end imwheel section
Imwheel
ausführenSie brauchen nach der Installation einfach nur
imwheel in einem xterm einzugeben,
um das Programm zu starten. Das Programm läuft
dann im Hintergrund und ist sofort aktiv. Wenn Sie
imwheel ständig
benutzen wollen, sollten Sie es einfach in Ihre
.xinitrc oder
.xsession eintragen. Falls
imwheel Warnungen über
PID files ausgeben sollte, können Sie
diese ignorieren, da Sie nur die &linux;-Version von
imwheel betreffen.X verbietet Verbindungen von entfernten Systemen!Aus Sicherheitsgründen verbietet der X-Server
in der Voreinstellung Verbindungen von entfernten
Systemen.Starten Sie den X-Server mit der Option
, wenn Sie Verbindungen von
entfernten Systemen erlauben wollen:&prompt.user; startx -listen_tcpWieso funktionieren Menüs und Dialoge in X nicht
richtig?Versuchen Sie, die Num Lock-Taste
auszustellen.Falls Ihre Num Lock-Taste beim Booten
standardmäßig eingeschaltet ist, sollten Sie
die folgende Zeile in den Abschnitt
Keyboard der Datei
XF86Config einfügen:
# Let the server do the NumLock processing. This should only be
# required when using pre-R6 clients
ServerNumLock
Was ist eine virtuelle Konsole und wie erstelle ich
mehr?Mit virtuellen Konsolen können Sie mehrere
simultane Sitzungen auf einer Maschine laufen lassen, ohne
so komplizierte Dinge wie die Einrichtung eines Netzwerkes
oder die Benutzung von X zu benötigen.Wenn das System startet, wird es nach der Anzeige
aller Bootmeldungen eine Eingabeaufforderung auf dem
Bildschirm anzeigen. Sie können dann auf der ersten
virtuellen Konsole Ihren Benutzernamen und das Passwort
eingeben und anfangen, zu arbeiten (oder zu
spielen!).Gelegentlich möchten Sie möglicherweise eine
weitere Sitzung starten wollen, vielleicht, um die
Dokumentation zu einem Programm, das Sie gerade benutzen,
einzusehen, oder, um Ihre Mails zu lesen, während Sie
auf das Ende einer FTP-Übertragung warten.
Drücken Sie einfach AltF2 (halten Sie die Alt-Taste
gedrückt und drücken Sie die Taste F2)
und Sie gelangen zur Anmelde-Aufforderung auf der zweiten
virtuellen Konsole! Wenn Sie zurück
zur ersten Sitzung möchten, drücken Sie
AltF1.Die standard Installation von FreeBSD bietet drei
aktivierte virtuelle Konsolen (acht ab der Version 3.3) und
AltF1,
AltF2,
AltF3
wechseln zwischen diesen
virtuellen Konsolen.Um mehr von ihnen zu aktivieren, editieren Sie
/etc/ttys und fügen
Einträge für ttyv4 bis
zu ttyvc nach dem Kommentar zu
virtuellen Terminals ein:
# Edit the existing entry for ttyv3 in /etc/ttys and change
# "off" to "on".
ttyv3 "/usr/libexec/getty Pc" cons25 on secure
ttyv4 "/usr/libexec/getty Pc" cons25 on secure
ttyv5 "/usr/libexec/getty Pc" cons25 on secure
ttyv6 "/usr/libexec/getty Pc" cons25 on secure
ttyv7 "/usr/libexec/getty Pc" cons25 on secure
ttyv8 "/usr/libexec/getty Pc" cons25 on secure
ttyv9 "/usr/libexec/getty Pc" cons25 on secure
ttyva "/usr/libexec/getty Pc" cons25 on secure
ttyvb "/usr/libexec/getty Pc" cons25 on secure
Benutzen Sie so wenig oder soviele, wie Sie
möchten. Je mehr virtuelle Terminals Sie benutzen,
desto mehr Ressourcen werden gebraucht; das kann wichtig
sein, wenn Sie 8MB RAM oder weniger besitzen. Sie
können auch secure in
insecure ändern.Wenn Sie einen X-Server benutzen möchten,
müssen Sie mindestens ein
virtuelles Terminal unbenutzt (oder ausgeschaltet)
lassen damit der Server es benutzen kann. Das
heißt, dass Sie Pech haben, wenn Sie für
jede Ihrer 12 Alt-Funktionstasten eine
Anmeldeaufforderung haben möchten - Sie können
das nur für elf von ihnen tun, wenn Sie einen
X-Server auf derselben Maschine laufen lassen
möchten.Der einfachste Weg, eine Konsole zu deaktivieren, ist,
sie auszuschalten. Wenn Sie zum Beispiel die oben
erwähnte volle Zuordnung aller 12 Terminals
hätten, müssten Sie die Einstellung
für das virtuelle Terminal 12 von:ttyvb "/usr/libexec/getty Pc" cons25 on securein:ttyvb "/usr/libexec/getty Pc" cons25 off secureändern.Wenn Ihre Tastatur nur über zehn Funktionstasten
verfügt, bedeutet das:
ttyv9 "/usr/libexec/getty Pc" cons25 off secure
ttyva "/usr/libexec/getty Pc" cons25 off secure
ttyvb "/usr/libexec/getty Pc" cons25 off secure
(Sie können diese Zeilen auch einfach
löschen.)Nachdem Sie die Datei /etc/ttys
geändert haben, besteht der nächste Schritt
darin, sicherzustellen, dass Sie genügend
Geräte für virtuelle Terminal haben. Der
einfachste Weg, dies zu tun, ist:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV vty12Wenn Sie FreeBSD 5.X oder neuer mit
DEVFS benutzen, brauchen Sie die
Gerätedateien nicht manuell anzulegen, da sie
automatisch in
/dev erstellt
werden.Die einfachste (und sauberste) Möglichkeit, die
virtuellen Konsolen zu aktivieren, ist, zu rebooten. Wenn
Sie jedoch auf keinen Fall rebooten möchten,
können Sie auch einfach das X Window System
herunterfahren und als root&prompt.root; kill -HUP 1ausführen.Es ist unbedingt erforderlich, dass Sie das X
Window System vollständig herunterfahren, falls es
läuft. Falls Sie es nicht tun, könnte es sein,
dass sich ihr System nach der Eingabe des
kill-Befehls aufhängt.Wie greife ich von X aus auf virtuelle Konsolen
zu?Benutzen Sie
CtrlAltFn
um auf eine virtuelle Konsole umzuschalten. Mit
CtrlAltF1
würden Sie zur ersten virtuellen Konsole
umschalten.Sobald Sie auf eine virtuelle Konsole umgeschaltet
haben, können Sie ganz normal
AltFn
benutzen, um zwischen den einzelnen virtuellen Konsolen
umzuschalten.Um zu Ihrer X-Sitzung zurückzukehren, müssen
Sie auf die virtuelle Konsole umschalten, auf der X
läuft. Wenn Sie X über der Eingabeaufforderung
gestartet haben (z.B. mit startx),
benutzt X die nächste freie virtuelle Konsole und
nicht die Konsole, von der es gestartet wurde. Wenn Sie
acht aktive virtuelle Konsole haben, dann wird X die
neunte benutzen und Sie können mit AltF9
umschalten.Wie starte ich XDM beim Booten?Es gibt zwei Denkansätze, wie
&man.xdm.1; zu starten ist. Bei dem einen wird
xdm unter Nutzung des mitgelieferten
Beispiels über /etc/ttys
(&man.ttys.5;) gestartet, während beim zweiten Ansatz
rc.local (&man.rc.8;) oder das
Skript X.sh im Verzeichnis
/usr/local/etc/rc.d verwendet wird.
Beide Ansätze sind gleichwertig und der eine
wird in Situationen funktionieren, in denen der andere es
nicht tut. In beiden Fällen ist das Ergebnis das
gleiche: X liefert eine graphische
Anmeldeaufforderung.Die ttys-Methode hat den Vorteil, dass
dokumentiert ist, auf welchem vty X gestartet wird und der
Neustart des X-Servers beim Abmelden an init
übergeben wird. Die rc.local-Methode erleichtert ein
Killen von xdm, falls Probleme beim Start des X-Servers
auftreten sollten.Beim Laden von rc.local sollte xdm
ohne irgendwelche Argumente (das heißt als Daemon)
gestartet werden. xdm muss gestartet werden NACHDEM getty
läuft, andernfalls entsteht ein Konflikt zwischen
getty und xdm und die Konsole bleibt gesperrt. Der beste
Weg, um dies zu vermeiden, ist, das Skript für etwa
zehn Sekunden anzuhalten und dann xdm zu starten.Wenn Sie xdm durch einen Eintrag in
/etc/ttys starten lassen, kann es zu
einem Konflikt zwischen xdm und
&man.getty.8; kommen. Um dieses Problem zu
vermeiden, sollten Sie die Nummer des
vt in die Datei
/usr/X11R6/lib/X11/xdm/Xservers
eintragen.:0 local /usr/X11R6/bin/X vt4Diese Zeile führt dazu, dass der X Server
/dev/ttyv3 nutzt. Die beiden Zahlen
weichen voneinander ab: Der X-Server beginnt die
Zählung der vty bei 1, während der
FreeBSD-Kernel bei 0 beginnt.Wieso erhalte ich die Meldung Couldn't open
console, wenn ich xconsole benutze?Wenn Sie X mit
startx starten, werden die
Zugriffsrechte für
/dev/console leider
nicht geändert, was dazu
führt, dass Dinge wie xterm
-C und xconsole nicht
funktionieren.Das hängt damit zusammen, wie die Zugriffsrechte
für die Konsole standardmäßig gesetzt
sind. Auf einem Mehrbenutzersystem möchte man nicht
unbedingt, dass jeder Benutzer einfach auf die
Systemkonsole schreiben kann. Für Benutzer, die sich
auf einer Maschine direkt mit einem VTY anmelden,
existiert die Datei &man.fbtab.5;, um
derartige Probleme zu lösen.In Kürze: sorgen Sie dafür, dass sich
eine nicht auskommentierte Zeile der Form/dev/ttyv0 0600 /dev/consolein der Datei /etc/fbtab befindet.
Das sorgt dafür, dass wer auch immer sich auf
/dev/ttyv0 anmeldet, auch die Konsole
besitzt.Früher konnte ich &xfree86; als normaler User
starten. Warum sagt mir das System jetzt, dass ich
root sein muss?Alle X-Server müssen mit der ID
root laufen, um direkt auf die
Videohardware zuzugreifen. Die älteren Versionen von
&xfree86; (bis einschließlich 3.3.6) installierten
alle mitgelieferten Server so, dass sie automatisch
unter ID root ausgeführt werden
(setuid to root). Dies stellt
natürlich eine Gefahrenquelle dar, da die X-Server
große, komplexe Programme sind. Alle neueren
Versionen von &xfree86; installieren die Server aus genau
diesem Grund nicht mehr "setuid
root".Es ist natürlich nicht tragbar, den X-Server
immer mit der ID root laufen zu
lassen; auch aus Gründen der Sicherheit ist es keine
gute Idee. Es gibt zwei Möglichkeiten, um X auch als
normaler Benutzer starten zu können. Die erste ist
die Verwendung von xdm oder eines
ähnlichen Programms; die zweite ist die Benutzer von
Xwrapper.xdm ist ein ständig laufendes
Programm, mit dem Logins über eine graphische
Benutzeroberfläche sind. Es wird normalerweise beim
Systemstart initialisiert und für die
Authentifizierung der Benutzer und den Start ihrer
Sitzungen verantwortlich. Es ist also die graphische
Entsprechung von &man.getty.8; und &man.login.1;.
Weitere Informationen zum Thema xdm
finden Sie in der &xfree86;
Dokumentation und dem entsprechenden FAQ-Eintrag.Xwrapper ist eine
Hülle für den X-Server. Mit
diesem kleinen Utility ist es möglich, manuell den
X-Server zu starten und weiterhin eine annehmbare
Sicherheit zu haben. Das Tools prüft, ob die per
Kommandozeile übergebenen Argumente halbwegs sinnvoll
sind. Wenn dies der Fall ist, startet es den
entsprechenden X-Server. Wenn Sie (aus welchem Grund auch
immer) keine graphische Anmeldung wollen, ist
Xwrapper die optimale Lösung.
Wenn Sie die vollständige Ports-Sammlung installiert
haben, finden Sie das Tool im Verzeichnis
/usr/ports/x11/wrapper.Warum funktioniert meine PS/2-Maus nicht
richtig?Ihre Maus und der Maustreiber sind etwas aus der
Synchronisation geraten.In seltenen Fällen kann es jedoch sein,
dass der Treiber fälschlicherweise
Synchronisationsprobleme meldet und Sie in den
Kernelmeldungen folgendes sehen:psmintr: out of sync (xxxx != yyyy)und Ihre Maus nicht richtig zu funktionieren
scheint.Falls das passiert, deaktivieren Sie den Code zur
Überprüfung der Synchronisation, indem Sie die
Treiberangaben für den PS/2-Maustreiber auf 0x100
setzen. Rufen Sie UserConfig durch
Angabe der Option am Boot-Prompt
auf:boot: -cGeben sie dann in der Kommandozeile von
UserConfig folgendes ein:UserConfig> flags psm0 0x100
UserConfig> quitMeine PS/2-Maus von MouseSystems scheint nicht zu
funktionieren.Es wurde berichtet, dass einige Modelle der
PS/2-Mäuse von MouseSystems nur funktionieren, wenn
sie im hochauflösenden Modus betrieben
werden. Andernfalls springt der Mauszeiger sehr oft in
die linke obere Ecke des Bildschirms.Das Flag 0x04 des Maustreibers bringt die Maus
in den hochauflösenden Modus. Rufen Sie
UserConfig durch Angabe der Option
am Boot-Prompt auf:boot: -cGeben sie dann in der Kommandozeile von
UserConfig folgendes ein:UserConfig> flags psm0 0x04
UserConfig> quitLesen Sie den vorigen Abschnitt über eine andere
mögliche Ursache für Probleme mit der
Maus.Wenn ich eine X-Anwendung erstellen will, kann
imake die Datei
Imake.tmpl nicht finden. Wo befindet
sie sich?Imake.tmpl ist Teil des
Imake-Paketes, ein Standardwerkzeug zur Erstellung von
X-Anwendungen. Imake.tmpl ist
ebenso, wie viele Header-Dateien, die zur Erstellung von
X-Anwendungen benötigt werden, in der Distribution
xprog enthalten. Sie können Sie
per sysinstall oder aber manuell mit den X
Distributionsdateien installieren.Was kann ich tun, wenn ich &xfree86; 4.X installiert
habe und eine X-Anwendung compilieren will, die
&xfree86; 3.3.X braucht?Sie können dem Port mitteilen, dass er die
Bibliotheken von &xfree86; 4.X benutzen soll, indem Sie
die folgende Zeile in die Datei
/etc/make.conf eintragen:XFREE86_VERSION= 4Wenn die Datei noch nicht existieren sollte, legen Sie
sie einfach an.Wie vertausche ich die Maustasten?Benutzen Sie den Befehl xmodmap -e "pointer =
3 2 1" in Ihrer .xinitrc
oder .xsession.Wie installiere ich einen Splash-Screen und wo finde
ich sie?Kurz vor der Herausgabe von FreeBSD 3.1 wurde ein
neues Feature eingefügt, das die Anzeige von
Splash-Screens während der
Bootmeldungen erlaubt. Die Splash-Screens dürfen
derzeit nur Bitmaps mit 256-Farben
(*.BMP) oder ZSoft-PCX-Dateien
*.PCX) sein. Damit sie mit normalen
VGA-Karten dargestellt werden können, darf die
Größe 320x200 Bildpunkte nicht
überschreiten. Wenn Sie in ihrem Kernel die
VESA-Unterstützung eingebunden haben, beträgt
die maximale Größe 1024x768 Pixel.
Die derzeitige VESA-Unterstützung kann entweder direkt
durch die Kernelkonfigurationsoption
VESA in den Kernel eingebunden werden,
oder durch das Laden des VESA-Moduls kld während des
Bootens.Um eine Splash-Screen zu benutzen, müssen Sie die
Startdateien, die den Bootprozess von FreeBSD
kontrollieren, modifizieren. Diese Dateien haben sich vor
der Herausgabe von FreeBSD 3.2 geändert, so dass
nun zwei Möglichkeiten zum Laden einer Splash-Screen
existieren:FreeBSD 3.1Der erste Schritt besteht darin, eine
Bitmap-Version Ihrer Splash-Screen zu finden. Von
Version 3.1 werden nur &windows;-Bitmap Splash-Screens
unterstützt. Wenn Sie die Splash-Screen Ihrer
Wahl gefunden haben, kopieren Sie sie nach
/boot/splash.bmp. Als
nächstes benötigen Sie eine Datei
/boot/loader.rc, die die
folgenden Zeilen enthält:load kernel
load -t splash_image_data /boot/splash.bmp
load splash_bmp
autoboot seit FreeBSD 3.2Außer der zusätzlichen
Unterstützung von PCX Splash-Screens bietet
FreeBSD 3.2 eine einfachere Möglichkeit, den
Bootprozess zu konfigurieren. Wenn Sie
möchten, können Sie auch die obige Methode
für FreeBSD 3.1 benutzen. Falls Sie das tun und
PCX verwenden möchten, dann ersetzen Sie
splash_bmp durch
splash_pcx. Falls Sie aber die
neuere Bootkonfiguration benutzen möchten,
müssen Sie eine Datei
/boot/loader.rc erstellen, die
die folgenden Zeilen enthält:include /boot/loader.4th
start
und eine Datei
/boot/loader.conf, die die
folgenden Zeilen enthält:splash_bmp_load="YES"
bitmap_load="YES"Dies setzt voraus, dass Sie
/boot/splash.bmp als Ihren
Splash-Screen benutzen. Wenn Sie lieber eine
PCX-Datei benutzen wollen, dann kopieren Sie sie nach
/boot/splash.pcx, erstellen Sie
eine Datei /boot/loader.rc, wie
oben beschrieben und eine Datei
/boot/loader.conf, die folgendes
enthält:splash_pcx_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.pcx"Alles, was Sie nun brauchen, ist ein Splash-Screen.
Hierzu können Sie durch die Gallerie bei
surfen.Kann ich die &windows;-Tasten unter X
benutzen?Ja, Sie müssen lediglich mit &man.xmodmap.1;
festlegen, welche Aktion diese Tasten auslösen
sollen.Unter der Annahme, dass alle &windows;
Tastaturen dem Standard entsprechen, lauten die Keycodes
für die drei Tasten115 - &windows;-Taste zwischen den
Alt- und
Strg-Tasten auf der linken Seite116 - &windows;-Taste rechts von der
AltGr-Taste117 - Menü-Taste, links von der
rechten Strg-TasteNach der folgenden Anweisung erzeugt die linke
&windows;-Taste ein Komma.&prompt.root; xmodmap -e "keycode 115 = comma"Sie werden Ihren Window Manager wahrscheinlich neu
starten müssen, damit diese Einstellung wirksam
wird.Um die neue Belegung der &windows;-Tasten automatisch
beim Start von X zu erhalten, könnten Sie
entsprechende xmodmap Anweisungen in
ihre ~/.xinitrc einfügen. Die
bevorzugte Variante ist aber, eine Datei mit dem Namen
~/.xmodmaprc zu erzeugen, die nur die
Parameter für den Aufruf von
xmodmap enthält. Wenn Sie mehrere
Tasten umdefinieren wollen, muss jede Definition in
eine eigene Zeile gesetzt werden. Weiterhin müssen
Sie in Ihrer ~/.xinitrc noch die
folgende Zeile einfügen:xmodmap $HOME/.xmodmaprcSie könnten die drei Tasten zum Beispiel mit den
Funktionen F13, F14 und
F15 belegen. Dadurch ist es sehr
einfach, diese Tasten mit nützlichen Funktionen eines
Programmes oder Desktops zu verknüpfen.Falls Sie das auch tun wollen, sollten in Ihrer
~/.xmodmaprc die folgenden
Anweisungen stehen.
keycode 115 = F13
keycode 116 = F14
keycode 117 = F15
Falls Sie zum Beispiel fvwm2
benutzen, können Sie ihn so einstellen, dass
F13 das Fenster unter dem Mauszeiger
minimiert bzw. maximiert. F14 holt das
Fenster unter dem Mauszeiger in den Vordergrund bzw.
ganz nach hinten, wenn es bereits im Vordergrund ist.
F15 öffnet das Arbeitsplatz
(Programme) Menü, auch wenn der Cursor nicht auf den
Hintergrund zeigt. Dies ist extrem praktisch, wenn der
gesamte Bildschirm von Fenster belegt wird; als kleiner
Bonus gibt es sogar einen Zusammenhang zwischen dem Symbol
auf der Taste und der durchgeführten Aktion.Dieses Verhalten kann man mit den folgenden
Einträgen in der Datei ~/.fvwmrc
erhalten:
Key F13 FTIWS A Iconify
Key F14 FTIWS A RaiseLower
Key F15 A A Menu Workplace Nop
Wird 3D Hardware Beschleunigung für &opengl;
unterstützt?Dies hängt davon ab, welche Version von &xfree86;
oder &xorg; und welche Grafikkarte Sie verwenden.
Wenn Sie eine Karte mit NVIDIA-Chipsatz besitzen, benutzen
Sie die binären Treiber für FreeBSD, die Sie auf der
Drivers-Seite von NVIDEA finden.
Wenn Sie &xfree86;-4 oder &xorg; mit Grafikkarten wie
der Matrox G200/G400, ATI Rage 128/Radeon, oder 3dfx
Voodoo 3, 4, 5, und Banshee einsetzen, erhalten Sie
weitere Informationen auf der Webseite &xfree86;-4
Direct Rendering on FreeBSD. Wenn Sie &xfree86; in
der Version 3.3 einsetzen, erhalten Sie
eingeschränkte Unterstützung von die
Hardware-Beschleunigung bei &opengl; für die Matrox
Gx00, ATI Rage Pro, SiS 6326, i810, Savage, und Karten,
die auf älteren NVIDIA Chipsätzen beruhen, wenn
Sie den Port graphics/utah-glx
installieren.NetzwerkeWoher kann ich Informationen über Diskless
Booting bekommen?Diskless Booting bedeutet, dass
die FreeBSD-Maschine über ein Netzwerk gebootet wird
und die notwendigen Dateien von einem Server anstatt von
der Festplatte liest. Vollständige Details finden
Sie im Handbucheintrag
über den plattenlosen Betrieb.Kann eine FreeBSD-Maschine als Netzwerkrouter genutzt
werden?Ja. Genaue Informationen zu diesem Thema finden Sie
im Abschnitt
Gateways und Routen des Handbuchkapitels
Weiterführende Netzwerkthemen.Kann ich meine &windows;-Maschine über FreeBSD ans
Internet anbinden?Personen, die diese Frage stellen, haben
typischerweise zwei PCs zu Hause: einen mit FreeBSD und
einen mit einer &windows;-Variante. Die Idee ist, die
FreeBSD-Maschine an das Internet anzubinden, um in der
Lage zu sein, von der &windows;-Maschine über die
FreeBSD-Maschine auf das Internet zuzugreifen. Das
ist tatsächlich nur ein Spezialfall der vorherigen
Frage.Das User-Mode &man.ppp.8; von &os; kennt die Option
. Wenn Sie &man.ppp.8; mit der Option
starten, in
/etc/rc.conf die Variable
gateway_enable auf
YES setzen und Ihre &windows;-Maschine
korrekt konfigurieren, sollte das hervorragend
funktionieren. Weitere Informationen erhalten Sie
in der Hilfeseite &man.ppp.8; oder im
Abschnitt
User-PPP des Handbuchs.Wenn Sie Kernel-Mode PPP verwenden oder ihre
Verbindung zum Internet über Ethernet erstellt
wurde, müssen Sie &man.natd.8; verwenden. Weitere
Informationen dazu finden Sie im natd-Abschnitt
des Handbuchs.Unterstützt FreeBSD SLIP und PPP?Ja. Lesen Sie die Manualpages &man.slattach.8;,
&man.sliplogin.8;, &man.pppd.8; und &man.ppp.8;.
&man.ppp.8; und &man.pppd.8; liefern Unterstützung
sowohl für eingehende, als auch ausgehende
Verbindungen. &man.sliplogin.8; behandelt
ausschließlich eingehende Verbindungen und
&man.slattach.8; behandelt ausschließlich ausgehende
Verbindungen.Diese Programme werden im Abschnitt PPP und SLIP
des Handbuchs beschrieben.Falls Sie nur durch einen Shell-Account
Zugang zum Internet haben, sehen Sie sich einmal das
Package net/slirp an.
Es kann Ihnen (eingeschränkten) Zugang zu Diensten
wie ftp und http direkt von Ihrer lokalen Maschine aus
ermöglichen.Unterstützt FreeBSD NAT oder
Masquerading?Ja. Wenn Sie NAT über eine User-PPP-Verbindung
einsetzen wollen, lesen Sie bitte den User-PPP Abschnitt
des Handbuchs. Wollen Sie NAT über eine andere
Verbindung einsetzen, lesen Sie bitte den
NATD Abschnit
des Handbuchs.Wie verbinde ich zwei FreeBSD-Maschinen mit PLIP
über die parallele Schnittstelle?Dieses Thema wird im Handbuch-Kapitel PLIP
behandelt.Wieso kann ich das Gerät
/dev/ed0 nicht erstellen?Weil das nicht notwendig ist. Bei Berkeley-basierten
Netzwerkimplementationen kann nur vom Kernel-Code aus
direkt auf Netzwerkkarten zugegriffen werden. Zur
weiteren Information lesen Sie bitte die Datei
/etc/rc.network und die Manualpages
zu den unterschiedlichen Netzwerkprogrammen, die dort
erwähnt werden. Falls Sie danach total verwirrt
sind, sollten Sie sich ein Buch besorgen, das die
Netzwerkadministration auf einem anderen
BSD-ähnlichen Betriebssystem beschreibt; mit wenigen
signifikanten Ausnahmen gleicht die Netzwerkadministration
auf FreeBSD im Grunde der auf &sunos; 4.0 oder
Ultrix.Wie kann ich Ethernet-Aliase einrichten?Wenn sich die zweite Adresse im gleichen Subnetz
befindet wie eine der Adressen, die bereits auf dem
Interface konfiguriert sind, benutzen Sie netmask
0xffffffff in Ihrer &man.ifconfig.8;
Befehlszeile, wie z.B.:&prompt.root; ifconfig ed0 alias 204.141.95.2 netmask 0xffffffffAndernfalls geben sie die Adresse und die Netzmaske so
an, wie sie es bei einem normalen Interface auch tun
würden:&prompt.root; ifconfig ed0 alias 172.16.141.5 netmask 0xffffff00Wie bringe ich meine 3C503 dazu, den anderen
Anschluss zu benutzen?Wenn Sie die anderen Anschlüsse benutzen
möchten, müssen Sie einen zusätzlichen
Parameter in der &man.ifconfig.8;-Befehlszeile
spezifizieren. Der Standard-Anschluss ist
link0. Um den AUI-Anschluss
anstelle des BNC-Anschlusses zu verwenden, benutzen Sie
link2. Diese Angaben sollten durch
Benutzung der Variablen ifconfig_* in der Datei
/etc/rc.conf spezifiziert
werden.Warum habe ich Probleme mit NFS und FreeBSD?Gewisse PC-Netzwerkkarten sind (um es gelinde
auszudrücken) besser als andere und können
manchmal Probleme mit netzwerkintensiven Anwendungen wie
NFS verursachen.Weitere Informationen zu diesem Thema finden Sie
im
Handbucheintrag zu NFS.Warum kann ich per NFS nicht von einer &linux;-Maschine
mounten?Einige Versionen des NFS-Codes von &linux; akzeptieren
Mount-Requests nur von einem privilegierten Port.
Versuchen Sie&prompt.root; mount -o -P linuxbox:/blah /mntWarum kann ich per NFS nicht von einer Sun-Maschine
mounten?Sun Workstations mit &sunos; 4.X akzeptieren
Mount-Requests nur von einem privilegierten Port.
Versuchen Sie&prompt.root; mount -o -P sunbox:/blah /mntWarum meldet mir mountd auf meinem
FreeBSD NFS-Server ständig can't change
attributes und bad exports
list?Die häufigste Ursache für dieses Problem
ist, dass Sie den Aufbau der &man.exports.5; nicht
oder nicht richtig verstanden haben. Überprüfen
Sie Ihre &man.exports.5; und lesen das Kapitel NFS im
Handbuch, speziell den Abschnitt
Konfiguration.Warum habe ich Probleme, per PPP mit NeXTStep-Maschinen zu
kommunizieren?Versuchen Sie, die TCP-Erweiterung in
/etc/rc.conf zu deaktivieren, indem
Sie die folgende Variable auf NO setzen:tcp_extensions=NOXylogic's Annex-Maschinen arbeiten hier auch
fehlerhaft und Sie müssen die obige Änderung
benutzen, um über Sie Verbindungen
herzustellen.Wie aktiviere ich die Unterstützung für
IP-Multicast?Multicast-Host-Funktionen werden standardmäßig
unterstützt. Wenn Sie Ihre Maschine als Multicast-Router
betreiben wollen, müssen Sie Ihren Kernel mit der Option
MROUTING neu kompilieren und
&man.mrouted.8; starten. Wenn Sie die Variable
mrouted_enable in der Datei
/etc/rc.conf auf
"YES" setzen, wird &man.mrouted.8;
während des Systemstart automatisch gestartet.MBONE-Tools sind in ihrer eigenen Ports-Kategorie
mbone
verfügbar. Schauen Sie dort nach, wenn Sie die
Konferenztools vic und
vat suchen!Welche Netzwerkkarten basieren auf dem
DEC-PCI-Chipsatz?Hier ist eine von Glen Foster
gfoster@driver.nsta.org zusammengetragene
Liste mit einigen aktuellen Ergänzungen:
Warum muss ich für Hosts auf meiner Site den
FQDN benutzen?Sie werden wahrscheinlich feststellen, dass der
Host sich tatsächlich in einer anderen Domäne
befindet; wenn Sie sich zum Beispiel in foo.example.org
befinden und einen Host namens mumble in
der Domäne example.org erreichen wollen,
werden Sie den fully-qualified Domainnamen mumble.example.org, anstatt nur
mumble benutzen müssen.Traditionell war dies bei BSD-BIND-Resolvern erlaubt.
Die aktuelle Version von bind,
die mit FreeBSD ausgeliefert wird, ermöglicht jedoch
nicht mehr die standardmäßige Abkürzung
von nicht-fully-qualified Domainnamen für andere als
ihre eigene Domäne. Ein nicht-qualifizierter Host
mumble muss also entweder als
mumble.foo.example.org gefunden
werden, oder er wird in der Hauptdomäne
gesucht.Dies unterscheidet sich vom vorherigen Verhalten, wo
die Suche über mumble.example.org und mumble.edu fortgesetzt wurde.
Werfen Sie einen Blick in RFC 1535, um zu erfahren, warum
dies als schlechter Stil oder sogar als eine
Sicherheitslücke betrachtet wurde.Als Abhilfe können Sie die Zeilesearch foo.example.org example.organstelle der vorherigendomain foo.example.orgin Ihre Datei /etc/resolv.conf
einfügen. Stellen Sie jedoch sicher, dass die
Suchreihenfolge nicht über die Grenze zwischen
lokaler und öffentlicher Administration, wie
RFC 1535 sie nennt, hinausreicht.Wieso erhalte ich bei allen Netzwerkoperationen die
Meldung Permission denied?Dieses Problem kann auftreten, wenn Sie einen Kernel
mit der Option IPFIREWALL erstellt
haben. In der Voreinstellung werden alle Pakete, die
nicht explizit erlaubt wurden, blockiert.Falls sie Ihr System unbeabsichtigt als Firewall
konfiguriert haben, können Sie die
Netzwerkfunktionalität wiederherstellen, indem Sie
als root folgendes eingeben:&prompt.root; ipfw add 65534 allow all from any to anySie können in /etc/rc.conf
auch firewall_type="open"
setzen.Weitere Informationen über die Konfiguration
einer FreeBSD-Firewall finden Sie im Handbuch-Abschnitt.Wie viele Einbußen zieht IPFW nach sich?Diese Frage wird im Handbuch-Kapitel Firewalls im
Abschnitt IPFW
Overhead und Optimierung ausführlich
behandelt.Warum kann ich bei &man.ipfw.8; einen Dienst nicht mit
fwd auf eine andere Maschine
umlenken?Der wahrscheinlichste Grund ist, dass Sie Network
Address Translation (NAT) brauchen und nicht die einfache
Weiterleitung von Pakete. Die fwd
Anweisung macht genau das, was da steht: Sie leitet
Pakete weiter; die Daten in den Paketen werden aber nicht
verändert. Ein Beispiel:01000 fwd 10.0.0.1 from any to foo 21Wenn ein Paket mit dem Ziel
foo die Maschine mit dieser
Regel erreicht, wird das Paket an
10.0.0.1 weitergeleitet; die
Zieladresse im Paket lautet aber immer noch
foo! Die Zieladresse wird
nicht in
10.0.0.1 geändert. Die
meisten Rechner werden allerdings Pakete verwerfen, wenn
die Zieladresse des Paketes nicht mit der Adresse des
Rechners übereinstimmt. Das ist der Grund, warum
eine fwd Regel oft nicht den Effekt hat,
den der Benutzer wollte. Dieses Verhalten ist aber kein
Fehler, sondern erwünscht.Wenn Sie einen Dienst auf eine andere Maschine
umleiten wollen, sollten Sie sich den FAQ-Eintrag über die
Umleitung von Diensten oder die Online-Hilfe zu
&man.natd.8; durchlesen. Auch in der Ports Sammlung sind diverse
Hilfsprogramme für diesen Zweck enthalten.Wie kann ich Service-Requests von einer Maschine auf
eine andere umleiten?Sie können FTP-Requests (und andere Dienste) mit
dem Package socket umleiten, das im
Ports-Tree in der Kategorie sysutils
verfügbar ist. Ersetzen sie die Befehlszeile
für den Dienst einfach so, dass stattdessen
socket aufgerufen wird, zum Beispiel so:ftp stream tcp nowait nobody /usr/local/bin/socket socket ftp.example.comftpwobei ftp.example.com und
ftp entsprechend der Host und
der Port sind, wohin umgeleitet werden soll.Woher kann ich ein Bandbreiten-Managementtool
bekommen?Für FreeBSD gibt es drei
Bandbreiten-Managementtools. &man.dummynet.4; ist in
FreeBSD (um genau zu sein, in &man.ipfw.4;) integriert.
ALTQ
gibt es umsonst; Bandwidth Manager von Emerging Technologies
ist ein kommerzielles Produkt.Warum erhalte ich die Meldung /dev/bpf0:
device not configured?Der Berkeley-Paket-Filter (&man.bpf.4;) muss in
den Kernel eingebunden werden, bevor er von einem
Programme aus genutzt werden kann. Fügen Sie
folgendes zu Ihrer Kernelkonfigurationsdatei hinzu und
erstellen Sie einen neuen Kernel:pseudo-device bpf # Berkeley Packet FilterUnter FreeBSD 4.X und früheren Versionen
müssen Sie noch die Gerätedateien erstellen.
Wechseln Sie dazu nach dem Neustart in das Verzeichnis
/dev und führen Sie den folgenden
Befehl aus:&prompt.root; sh MAKEDEV bpf0Weitere Informationen über den Umgang mit Geräten
finden Sie im Handbucheintrag
über Device Nodes.Habe ich, analog zum smbmount von &linux;, eine
Möglichkeit, auf ein freigegebenes Laufwerk einer
&windows;-Maschine in meinem Netzwerk zuzugreifen?Benutzen Sie die Kernel-Erweiterungen und Benutzerprogramme
aus dem Programmpaket SMBFS. Das
Paket und weitergehende Informationen sind unter
net/smbfs in den Ports
verfügbar; ab der Version 4.5 ist
SMBFS Bestandteil
des Basissystems.Was bedeutet die Meldung icmp-response
bandwidth limit 300/200 pps in meinen
Logfiles?Mit dieser Meldung teilt Ihnen der Kernel mit,
dass irgend jemand versucht, ihn zur Generierung von
zu vielen ICMP oder TCP reset (RST) Antworten zu
provozieren. ICMP Antworten sind oft das Ergebnis von
Verbindungsversuchen zu unbenutzten UDP Ports. TCP Resets
werden generiert, wenn jemand versucht, eine Verbindung zu
einem ungenutzten TCP Port aufzubauen. Die Meldungen
können unter anderem durch die folgenden Ereignisse
ausgelöst werden:Denial of Service (DoS) Angriffe mit der
Brechstange (und nicht durch Angriffe mit einzelnen
Paketen, die gezielt eine Schwachstelle des Systems
ausnutzen sollen).Port Scans, bei denen versucht wird, Verbindungen
zu einer großen Anzahl von Ports (und nicht nur
einigen bekannten Ports) herzustellen.Die erste Zahl gibt an, wie viele Pakete vom Kernel
ohne das Limit versendet worden wären; die zweite
Zahl gibt das Limit an. Sie können das Limit mit
Hilfe der sysctl-Variable
net.inet.icmp.icmplim einstellen. Im
Beispiel wird das Limit auf 300 Pakete
pro Sekunde gesetzt:&prompt.root; sysctl -w net.inet.icmp.icmplim=300Wenn Sie zwar die Begrenzung benutzen möchten, aber
die Meldungen nicht in Ihren Logfiles sehen möchten,
können Sie die Meldungen mit der sysctl-Variable
net.inet.icmp.icmplim_output
abschalten:&prompt.root; sysctl -w net.inet.icmp.icmplim_output=0Falls Sie die Begrenzung ganz abschalten wollen,
können Sie die Sysctl-Variable
net.inet.icmp.icmplim auf
0. Wir raten Ihnen aus den oben
genannten Gründen dringend von diesem Schritt
ab.Was bedeutet die Meldung arp: unknown
hardware address format?Ein Gerät im lokalen Ethernet verwendet eine
MAC-Adresse in einem Format, das FreeBSD nicht kennt. Der
wahrscheinlichste Grund ist, dass jemand Experimente
mit einer Ethernet-Karte anstellt. Die Meldung tritt sehr
häufig in Netzwerken mit Cable Modems auf. Die
Meldung ist harmlos und sollte die Performance Ihres
Systems nicht negativ beeinflussen.Ich habe gerade CVSup installiert, aber das Programm bricht
mit Fehlermeldungen ab. Was ist da schief gelaufen?Schauen Sie bitte zuerst nach, ob Sie eine Fehlermeldung
wie die unten gezeigte erhalten./usr/libexec/ld-elf.so.1: Shared object "libXaw.so.6" not foundSolche Fehlermeldungen erhalten Sie, wenn Sie den
net/cvsup Port auf einer
Maschine installieren, die kein
&xfree86;-System besitzt. Wenn Sie
das GUI von CVSup
benutzen wollen, müssen Sie
&xfree86; installieren. Wenn Sie
CVSup nur auf der Kommandozeile
benutzen wollen, entfernen Sie bitte den Port, den Sie gerade
installiert haben. Installieren Sie stattdessen den Port
net/cvsup-without-gui.
Genauere Informationen finden Sie im
CVSup Abschnitt
des Handbuchs.SicherheitWas ist ein Sandkasten (sandbox)?Sandkasten (sandbox) ist ein Ausdruck
aus dem Bereich Sicherheit. Er hat zwei
Bedeutungen:Ein Programm, das innerhalb virtueller Wände
ausgeführt wird. Wenn ein Angreifer über
eine Sicherheitslücke in diesen Programm
einbricht, verhindern diese Wände ein tieferes
Vordringen in das System.Man sagt: Der Prozess kann innerhalb der
Wände spielen, das heißt nichts,
was der Prozess in Bezug auf die Ausführung von
Code tut, kann die Wände durchbrechen. Es ist
also keine detailierte Revision des Codes
erforderlich, um gewisse Aussagen über seine
Sicherheit machen zu können.Die Wände könnten z.B. eine
Benutzerkennung sein. Dies ist die Definition, die in
den Hilfeseiten &man.security.7; und &man.named.8; benutzt
wird.Nehmen Sie zum Beispiel den Dienst
ntalk (siehe auch /etc/inetd.conf).
Dieser Dienst ist früher mit der Benutzerkennung
root gelaufen; nun läuft er mit der
Benutzerkennung tty. Der Benutzer tty ist ein
Sandkasten, der dazu gedacht ist, es jemandem, der
über ntalk erfolgreich in das System eingebrochen
ist, schwer zu machen, über diese Benutzerkennung
hinaus vorzudringen.Ein Prozess, der sich innerhalb einer
simulierten Maschine befindet. Dies ist etwas
fortgeschrittener; grundsätzlich bedeutet es,
dass jemand, der in der Lage ist, in einen
Prozess einzudringen, annehmen könnte, er
könnte weiter in die Maschine eindringen,
tatsächlich aber nur in eine Simulation der
Maschine einbricht und keine echten Daten
verändert.Der gängigste Weg, dies zu erreichen, ist, in
einem Unterverzeichnis eine simulierte Umgebung zu
erstellen und den Prozess in diesem Verzeichnis
mit chroot auszuführen (für diesen
Prozess ist / dieses
Verzeichnis und nicht das echte /
des Systems).Eine weitere gebräuchliche Anwendung ist, ein
untergeordnetes Dateisystem nur mit Leserechten zu
mounten, und dann darüber eine Dateisystemebene
zu erstellen, die einem Prozess einen scheinbar
schreibberechtigten Blick in das Dateisystem gibt.
Der Prozess mag glauben, dass er in der Lage
ist, diese Dateien zu verändern, aber nur der
Prozess sieht diesen Effekt - andere Prozess
im System natürlich nicht.Es wird versucht, diese Art von Sandkasten so
transparent zu gestalten, dass der Benutzer (oder
Hacker) nicht merkt, dass er sich in ihm
befindet.Ein &unix; System implementiert zwei Arten von
Sandkästen - eine auf Prozessebene und die andere auf
der Ebene der Benutzerkennung.Jeder Prozess auf einem &unix; System ist komplett von
allen anderen Prozessen abgeschirmt. Ein Prozess
kann den Adressraum eines anderen Prozesses nicht
modifizieren. Das ist anders als bei &windows;, wo ein
Prozess leicht den Adressraum eines anderen
überschreiben kann, was zu einem Absturz
führt.Ein Prozess gehört einer bestimmten
Benutzerkennung. Falls die Benutzerkennung nicht die von
root ist, dient sie dazu, den
Prozess von Prozessen anderer Benutzer abzuschirmen.
Die Benutzerkennung wird außerdem dazu genutzt,
Daten auf der Festplatte abzuschirmen.Was sind die Sicherheitsstufen?Die Sicherheitsstufen sind ein Sicherheitsmechanismus,
der im Kernel angesiedelt ist. Wenn die Sicherheitsstufe
einen positiven Wert hat, verhindert der Kernel die
Ausführung bestimmter Tätigkeiten; nicht einmal
der Super-User (also root) darf sie
durchführen. Zurzeit können über die
Sicherheitsstufen unter anderem die folgenden
Tätigkeiten geblockt werden:Änderungen bestimmter Dateiattribute, wie zum
Beispiel schg (das "system immutable"
Attribut)Schreibender Zugriff auf die Speicherbereiche des
Kernels mittels /dev/mem und
/dev/kmem.Laden von Kernel-Modulen.Änderungen an den Firewall-Regeln.Um die eingestellte Sicherheitsstufe eines aktiven
Systems abzufragen, reicht das folgende einfache
Kommando:&prompt.root; sysctl kern.securelevelDie Ausgaben wird den Namen der
&man.sysctl.8;-Variablen (in diesem Fall
kern.securelevel) und eine Zahl
enthalten. Die Zahl ist der aktuelle Wert der
Sicherheitsstufe. Wenn die Zahl positiv
(größer als Null) ist, sind zumindestens einige
der Schutzmaßnahmen aktiviert.Sie können die Sicherheitsstufe eines laufenden
Systems nicht verringern, da dies den Mechanismus wertlos
machen würden. Wenn Sie eine Tätigkeit
ausführen müssen, bei der die Sicherheitsstufe
nicht-positiv sein muss (z.B. ein
installworld oder eine
Änderung der Systemzeit), dann müssen Sie die
entsprechende Einstellung in
/etc/rc.conf ändern (suchen Sie
nach den Variablen kern_securelevel und
kern_securelevel_enable) und das System
rebooten.Weitere Informationen über die Sicherheitsstufen
und genaue Informationen, was die Einstellungen bewirken,
können Sie der Online-Hilfe &man.init.8;
entnehmen.Die Sicherheitsstufen sind kein magischer
Zauberstab, der alle Ihre Problem löst; es gibt
viele bekannte Probleme. Und in der Mehrzahl der
Fälle vermitteln sie ein falsches Gefühl der
Sicherheit.Eines der größten Probleme ist, dass
alle für den Start des Systems benötigten
Dateien geschützt sein müssen, damit die
Sicherheitsstufe effektiv sein können. Wenn es ein
Angreifer schafft, seine eigenen Programme
ausführen zu lassen, bevor die Sicherheitsstufe
gesetzt wird (was leider erst gegen Ende des
Startvorgangs erfolgen kann, da viele der notwendigen
Tätigkeiten für den Systemstart nicht mit
einer gesetzten Sicherheitsstufe möglich
wären), werden die Schutzmechanismen ausgehebelt.
Es ist zwar nicht technisch unmöglich, alle beim
Systemstart genutzten Dateien zu schützen;
allerdings würde in einem so geschützten
System die Administration zu einem Alptraum, da man das
System neu starten oder in den Single-User Modus bringen
müsste, um eine Konfigurationsdatei
ändern zu können.Dieses und andere Probleme werden häufig auf
den Mailinglisten diskutiert, speziell auf auf der
Mailingliste &a.security;. Das verfügbare Archiv
enthält ausgiebige Diskussionen. Einige Benutzer
sind guter Hoffnung, dass das System der Sicherheitsstufen
bald durch ein besser konfigurierbares System ersetzt
wird, aber es gibt noch keine definitiven Aussagen.Fühlen Sie sich gewarnt.Wieso wartet BIND (named) sowohl auf Port
53 als auch auf einem hohen Port auf Anfragen?FreeBSD benutzt seit Version 3.0 eine Version von
BIND, die einen Port mit einer hohen, zufälligen
Nummer für den Versand von Anfragen nutzt. Wenn Sie
Port 53 für abgehende Anfragen benutzen wollen, um
durch eine Firewall zu kommen oder sich einfach nur besser
zu fühlen, können die folgenden Zeilen in
/etc/namedb/named.conf
eintragen.options {
query-source address * port * 53;
}; Wenn Sie möchten, können Sie statt
* auch eine einzelne IP-Adresse
eintragen, um die Dinge noch weiter
einzuschränken.Ach übrigens, herzlichen Glückwunsch. Es
ist eine sehr gute Angewohnheit, die Ausgaben von
&man.sockstat.1; durchzusehen und auf merkwürdige
Dinge zu achten.Wieso wartet Sendmail neuerdings sowohl auf Port 587
als auch auf dem Standard-Port 25 auf Anfragen?Aktuelle Sendmail-Versionen unterstützen eine
neue Technik zur Einlieferung von Mails, die Port 587
nutzt. Diese Technik wird zwar noch nicht oft angewendet,
erfreut sich aber ständig steigenden
Popularität,Woher kommt dieser Benutzer toor
mit UID 0? Ist mein System gehackt worden?Keine Panik. toor ist ein
alternativer Account für den
Super-User (wenn man root rückwärts schreibt,
erhält man toor). Früher wurde er nur erzeugt,
wenn die Shell &man.bash.1; installiert wurde, heute wird
er auf jeden Fall erzeugt. Dieser Account ist für
die Verwendung mit einer alternativen Shell vorgesehen;
damit ist es nicht mehr erforderlich, die Shell von
root zu ändern. Dies ist
wichtig, wenn eine Shell verwendet wird, die nicht zum
Lieferumfang von FreeBSD gehört, zum Beispiel aus
einem Port oder einem Package. Diese Shells werden in der
Regel in /usr/local/bin installiert
und dieses Verzeichnis liegt standardmäßig auf
einem anderem Filesystem. Wenn die Shell von
root in
/usr/local/bin liegt und
/usr (oder das Filesystem, auf dem
/usr/local/bin liegt) nicht gemountet
werden kann, kann sich root nicht
mehr einloggen, um das Problem zu beheben. Es ist
allerdings möglich, das System zu rebooten und das
Problem im Single-User Modus zu lösen, da man hier
gefragt wird, welche Shell benutzt werden soll.Einige Anwender benutzen toor mit
einer alternativen Shell für die tägliche Arbeit
und benutzen root (mit der
Standard-Shell) für den Single-User Modus und
für Notfälle. Standardmäßig kann man
sich nicht als toor anmelden, da der
Account kein gültiges Passwort hat; Sie
müssen sich also als root
anmelden und ein Passwort für
toor setzen, wenn Sie diesen Account
benutzen wollen.Warum funktioniert suidperl nicht
richtig?Aus Sicherheitsgründen wird suidperl
standardmäßig ohne das SUID-Bit installiert.
Der Systemadministrator kann das normale Verhalten mit dem
folgenden Befehl herstellen:&prompt.root; chmod u+s /usr/bin/suidperlWenn Sie wollen, dass suidperl
auch beim Update via Sourcecode das SUID-Bit erhält,
müssen Sie in /etc/make.conf die
Zeile ENABLE_SUIDPERL=true
einfügen, bevor Sie make
buildworld starten.PPPIch bekomme &man.ppp.8; nicht zum Laufen. Was mache
ich falsch?Sie sollten zuerst &man.ppp.8; (die Manualpage zu ppp)
und den Abschnitt zu
PPP im Handbuch lesen. Aktivieren Sie das Logging
mit folgendem Befehl:set log Phase Chat Connect Carrier lcp ipcp ccp commandDieser Befehl kann an der Eingabeaufforderung von
&man.ppp.8; eingegeben oder in die Konfigurationsdatei
/etc/ppp/ppp.conf eingetragen werden
(der beste Ort hierfür ist der Anfang des Abschnitts
default. Stellen Sie sicher, dass
die Datei /etc/syslog.conf die
folgenden Zeilen enthält:
!ppp
*.* /var/log/ppp.log
und, dass die Datei
/var/log/ppp.log existiert. Sie
können nun über die Logfiles eine Menge
darüber herausfinden, was geschieht. Es macht
nichts, wenn die Einträge in den Logfiles Ihnen gar
nichts sagen. Wenn Sie jemandem um Hilfe bitten
müssen, könnten sie für ihn von Nutzen
sein.Warum hängt sich ppp auf, wenn ich es
benutze?Das liegt meistens daran, dass Ihr Rechnername
nicht aufgelöst werden kann. Um dieses Problem zu
lösen, müssen Sie sicherstellen, dass die
Datei /etc/hosts von Ihrem Resolver
zuerst genutzt wird. Dazu muss in der Datei
/etc/host.conf der Eintrag
hosts an die erste Stelle gesetzt
werden. Erstellen Sie dann einfach für Ihren lokalen
Rechner einen Eintrag in der Datei
/etc/hosts. Falls Sie kein lokales
Netzwerk besitzen, ändern Sie die
localhost-Zeile:127.0.0.1 foo.example.com foo localhostAndernfalls fügen Sie einfach einen weiteren
Eintrag für Ihren lokalen Rechner hinzu. Weitere
Details finden Sie in den betreffenden
Manualpages.Wenn Sie fertig sind sollten Sie ping -c1
`hostname` erfolgreich ausführen
können.Warum wählt &man.ppp.8; im
-auto-Modus nicht?Überprüfen Sie zunächst, ob Sie einen
Standard-Gateway eingestellt haben. Wenn Sie
netstat -rn ausführen, sollten Sie
zwei Einträge ähnlich den folgenden
sehen:
Destination Gateway Flags Refs Use Netif Expire
default 10.0.0.2 UGSc 0 0 tun0
10.0.0.2 10.0.0.1 UH 0 0 tun0
Hier wird angenommen, dass Sie die Adressen aus
dem Handbuch, der Manualpage oder aus der Datei
ppp.conf.sample benutzt haben. Falls Sie keine
Standardroute haben, kann es daran liegen, dass Sie
eine alte Version von &man.ppp.8; benutzen, die das Wort
HISADDR in der Datei ppp.conf nicht
versteht.Ein weiterer Grund dafür, dass die Zeile
für die Standardroute fehlt, könnte der sein,
dass Sie fälschlicherweise eine Standardroute in
der Datei /etc/rc.conf eingetragen
und die folgende Zeile in ppp.conf
ausgelassen haben:delete ALLLesen Sie in diesem Fall den Abschnitt
Abschließende Systemkonfiguration des
Handbuchs.Was bedeutet No route to
host?Dieser Fehler beruht für gewöhnlich auf
einem fehlenden Abschnitt
MYADDR:
delete ALL
add 0 0 HISADDR
in Ihrer Datei
/etc/ppp/ppp.linkup. Er ist nur
notwendig, wenn Sie eine dynamische IP-Adresse besitzen
oder die Adresse Ihres Gateways nicht kennen. Wenn Sie
den interaktiven Modus benutzen, können Sie folgendes
eingeben, nachdem Sie in den packet
mode gelangt sind (den Paket Modus erkennen Sie
an PPP im Prompt):
delete ALL
add 0 0 HISADDR
Weitere Details finden Sie im Abschnitt PPP
und Dynamische IP-Adressen des Handbuchs.Wieso werden meine Verbindungen nach ca. drei Minuten
beendet?Der Standardtimeout für &man.ppp.8; beträgt
drei Minuten. Er kann durch die Zeileset timeout NNNeingestellt werden, wobei
NNN die Inaktivität in
Sekunden, bevor die Verbindung geschlossen wird, angibt.
Falls NNN Null ist, wird die
Verbindung niemals aufgrund eines Timeouts geschlossen.
Es ist möglich, diesen Befehl in die Datei
ppp.conf einzubinden, oder ihn an der
Eingabeaufforderung im interaktiven Modus einzugeben.
Durch eine Verbindung zum Server-Socket von
ppp über &man.telnet.1;
oder &man.pppctl.8; ist es auch möglich, den Timeout
bei aktiver Verbindung anzupassen. Weitere Details finden
Sie in der Manualpage &man.ppp.8;.Wieso bricht meine Verbindung bei hoher Auslastung
ab?Falls Sie Link-Quality-Reporting (LQR) konfiguriert
haben, ist es möglich, dass zu viele LQR-Pakete
zwischen Ihrer Maschine und dem verbundenen Rechner
verloren gehen. ppp folgert daraus, dass die
Verbindung nicht in Ordnung ist und schließt sie.
Vor FreeBSD Version 2.2.5 war LQR standardmäßig
aktiviert; nun ist es standardmäßig
deaktiviert. Es kann durch folgende Zeile deaktiviert
werden:disable lqrWarum brechen meine Verbindungen nach unbestimmter
Zeit zusammen?Wenn die Qualität Ihrer Telefonleitung zu
schlecht oder bei Ihrem Anschluss die Option
(Telekomdeutsch: das Leistungsmerkmal) Anklopfen aktiviert
ist, kann es manchmal vorkommen, dass Ihr Modem
auflegt, weil es (fälschlicherweise) annimmt,
dass es das Trägersignal verloren hat.Bei den meisten Modems gibt es eine
Einstellmöglichkeit, um anzugeben, wie tolerant es
gegenüber vorübergehenden Verlusten des
Trägersignals sein soll. Bei einem USR &sportster;
wird dies zum Beispiel im Register S10 in Zehntelsekunden
angegeben. Um Ihr Modem toleranter zu machen, können
Sie zu Ihrem Wählbefehl die folgende
Sende-Empfangs-Sequenz hinzufügen:set dial "...... ATS10=10 OK ......"Weitere Information sollten Sie dem Handbuch Ihres
Modems entnehmen können.Warum hängen meine Verbindung nach einer
unbestimmten Zeit?Viele Leute machen Erfahrungen mit hängenden
Verbindungen ohne erkennbaren Grund. Als erstes muss
festgestellt werden, welche Seite der Verbindung
hängt.Wenn Sie ein externes Modem benutzen, können Sie
einfach versuchen, &man.ping.8; zu benutzen, um zu sehen,
ob die TD-Anzeige aufleuchtet, wenn Sie
Daten übertragen. Falls sie aufleuchtet (und die
RD-Anzeige nicht), liegt das Problem am
anderen Ende. Falls TD nicht
aufleuchtet, handelt es sich um ein lokales Problem. Bei
einem internen Modem müssen Sie den Befehl
set server in Ihrer Datei
ppp.conf benutzen. Stellen Sie
über &man.pppctl.8; eine Verbindung zu &man.ppp.8;
her, wenn die Verbindung hängt. Falls Ihre
Netzwerkverbindung plötzlich wieder funktioniert (ppp
wurde durch die Aktivität auf dem Diagnose-Socket
wiederbelebt) oder Sie keine Verbindung bekommen
(vorausgesetzt, der Befehl set socket
wurde beim Start erfolgreich ausgeführt), handelt es
sich um ein lokales Problem. Falls Sie eine Verbindung
bekommen und die externe Verbindung weiterhin hängt,
aktivieren Sie lokales asynchrones Logging mit
set log local async und benutzen Sie
&man.ping.8; von einem anderen Fenster oder Bildschirm
aus, um die externe Verbindung zu benutzen. Das
asynchrone Logging zeigt Ihnen, welche Daten über die
Verbindung gesendet und empfangen werden. Falls Daten
hinausgehen, aber nicht zurückkommen, handelt es sich
um ein externes Problem.Wenn Sie festgestellt haben, ob es sich um ein lokales
oder um ein externes Problem handelt, haben Sie zwei
Möglichkeiten:Wenn es ein externes Problem ist, lesen Sie bitte bei
weiter.Handelt es sich um ein lokales Problem, lesen Sie bitte
.Was kann ich machen, wenn die Gegenstelle nicht
antwortet?Hier können Sie wenig tun. Die meisten ISPs
werden ablehnen, Ihnen zu helfen, wenn Sie kein
Betriebssystem von Microsoft benutzen. Sie können
enable lqr in Ihrer Datei
ppp.conf angeben, wodurch &man.ppp.8;
ermöglicht wird, ein externes Versagen zu erkennen
und aufzulegen, aber diese Erkennung ist relativ langsam
und deshalb nicht besonders nützlich. Evtl. sagen
Sie Ihrem ISP nicht, dass Sie user-PPP
benutzen...Versuchen Sie zunächst, jegliche Datenkompression
auszuschalten, indem Sie folgendes zu Ihrer Konfiguration
hinzufügen:
disable pred1 deflate deflate24 protocomp acfcomp shortseq vj
deny pred1 deflate deflate24 protocomp acfcomp shortseq vj
Stellen Sie nun wieder eine Verbindung her, um
festzustellen, ob sich etwas geändert hat. Falls es
nun besser läuft oder falls das Problem
vollständig behoben ist, versuchen Sie durch
schrittweises Ändern der Einstellungen festzustellen,
welche Einstellung den Unterschied bewirkt. Hierdurch
erhalten Sie schlüssige Fakten für ein Gespräch
mit Ihrem ISP (andererseits wird hierdurch offensichtlich,
dass Sie kein Microsoft-Produkt benutzen).Aktivieren Sie asynchrones Logging und warten Sie, bis
die Verbindung wieder hängt, bevor Sie sich an Ihren
ISP wenden. Hierzu kann einiges an Plattenplatz
nötig sein. Die Daten, die als letztes von dem Port
gelesen wurden, könnten von Interesse sein. Für
gewöhnlich handelt es sich um ASCII-Text, der sogar
den Fehler beschreiben kann (Memory fault, core
dumped).Falls Ihr ISP hilfsbereit ist, sollte er in der Lage
sein, an seinem Ende das Logging zu aktivieren und wenn
das nächste Mal die Verbindung abbricht, könnte
er Ihnen mitteilen, worin das Problem auf seiner Seite
besteht. Gerne können Sie Details auch an &a.brian;
schicken, oder Ihren ISP bitten, sich direkt an ihn zu
wenden.Was kann ich tun, wenn sich &man.ppp.8;
aufhängt?In diesem Fall erstellen Sie am besten &man.ppp.8;
neu, indem Sie CFLAGS+=-g und
STRIP= am Ende des Makefiles
einfügen und dann make clean && make
&& make install ausführen. Suchen
Sie die Prozessnummer von &man.ppp.8; mit ps
ajxww | fgrep ppp, wenn &man.ppp.8; sich
aufhängt und führen Sie gdb ppp
PID aus. Am
gdb-Prompt können Sie bt benutzen,
um einen Auszug von Stack zu erhalten.Senden Sie die Ergebnisse an &a.brian;.Warum passiert nach der Nachricht Login
OK! nichts?Bei Freebsd-Versionen vor 2.2.5 wartete &man.ppp.8;
darauf, dass der Partner das Line Control Protocol
(LCP) initiiert. Viele ISPs starten nicht mit der
Initiierung, sondern erwarten dies vom Client. Benutzen
Sie die folgende Zeile, um &man.ppp.8; zu veranlassen, LCP
zu initiieren:set openmode activeFür gewöhnlich schadet es nicht, wenn
beide Seiten versuchen, Verhandlungen einzuleiten.
Deshalb ist openmode nun standardmäßig aktiv.
Im nächsten Abschnitt wird allerdings erklärt,
in welchen Fällen es doch
schadet.Ich sehe ständig Fehlermeldungen über
gleiche Magic Numbers Was heißt
das?Nach dem Aufbau einer Verbindung kann es sein,
dass Sie in der Logdatei gelegentlich Meldungen mit
dem Hinweis magic is the same sehen.
Manchmal sind diese Meldungen harmlos und manchmal bricht
die eine oder andere Seite die Verbindung ab. Die meisten
Implementationen von PPP können dieses Problem nicht
handhaben und Sie werden wiederholte
Konfigurationsanforderungen und -bestätigungen in der
Logdatei finden, bis &man.ppp.8; schließlich aufgibt
und die Verbindung beendet.Dies geschieht normalerweise auf Servern mit langsamen
Festplatten, bei denen ein getty auf dem Port
ausgeführt und &man.ppp.8; nach dem Einloggen von
einem Login-Skript oder einem Programm aus gestartet wird.
Ich habe auch davon gehört, dass dies bei der
Benutzung von slirp regelmäßig auftritt. Der
Grund hierfür ist, dass das ppp auf der
Client-Seite in der Zeit, die benötigt wird, getty zu
beenden und ppp zu starten, bereits beginnt, Line Control
Protocol (LCP) Pakete zu senden. Da ECHO auf dem
Serverport weiterhin eingeschaltet ist, werden diese
Pakete zum &man.ppp.8; auf der Client-Seite
reflektiert.Ein Teil der LCP-Verhandlungen ist die Einrichtung
einer Magic Number für jede Seite der
Verbindung, damit Echos erkannt werden können.
Das Protokoll besagt, dass, wenn der Partner
versucht, die gleiche Magic Number auszuhandeln,
ein NAK zurückgesendet und eine neue "Magic Number"
gewählt werden soll. Während der Server das
ECHO eingeschaltet hat, sendet der Client LCP Pakete,
sieht die gleiche Magic Number im reflektierten
Paket und erzeugt ein NAK. Er sieht auch das reflektierte NAK
(was bedeutet, dass &man.ppp.8; seine "Magic Number"
ändern muss). Hierdurch wird eine Vielzahl von
Änderungen der Magic Number hervorgerufen,
die sich allesamt im tty-Puffer des Servers ansammeln. Sobald
&man.ppp.8; auf dem Server startet, wird es mit
Änderungen der Magic Number überflutet
und entscheidet, dass es sich zur Genüge mit den
LCP-Verhandlungen beschäftigt hat und gibt auf. Und
während sich der Client noch darüber freut,
dass er keine weiteren Reflexionen sieht, wird ihm
gemeldet, dass der Server auflegt.Dies kann verhindert werden, indem dem Partner durch
die folgende Zeile in der Datei
ppp.conf erlaubt wird, mit der
Verhandlung zu beginnen:set openmode passiveHierdurch wird &man.ppp.8; mitgeteilt, darauf zu
warten, dass der Server mit den LCP-Verhandlungen
beginnt. Einige Server starten jedoch nie mit der
Verhandlungen; falls dies der Fall ist, können Sie
folgendes tun:set openmode active 3Hierdurch bleibt &man.ppp.8; für drei Sekunden
passiv und fängt dann erst an, LCP-Anforderungen zu
senden. Falls der Partner während dieser Zeit
beginnt, Anforderungen zu senden, wird &man.ppp.8; direkt
antworten und nicht erst, nachdem die drei Sekunden
abgelaufen sind.Die LCP-Verhandlungen dauern an, bis die Verbindung
geschlossen wird. Was mache ich falsch?Es gibt eine Fehlfunktion in der Implementierung von
&man.ppp.8;, die darin besteht, dass LCP-, CCP- &
IPCP-Antworten nicht mit den ursprünglichen
Anforderungen assoziiert werden. Für den Fall,
dass eine Implementation von PPP mehr als sechs
Sekunden langsamer ist, als die andere Seite, resultiert
das darin, dass die andere Seite zwei weitere
LCP-Konfigurationsanforderungen sendet, was fatale
Auswirkungen hat.Stellen Sie sich vor, wir hätten es mit zwei
Implementierungen A und
B zu tun. A beginnt
unmittelbar nach der Verbindung, LCP-Anforderungen zu
senden und B benötigt sieben
Sekunden, zu starten. Wenn B startet,
hat A bereits drei LCP-Anforderungen
gesendet. Wir nehmen an, dass ECHO ausgeschaltet
ist; andernfalls würden wir Probleme mit der "Magic
Number" beobachten, wie bereits im vorherigen Abschnitt
beschrieben. B sendet eine Anforderung
und anschließend eine Bestätigung der ersten
Anforderung von A. Dies führt dazu,
dass A in den Zustand
OPENED übergeht und eine
Bestätigung (die erste) zurück an
B sendet. In der Zwischenzeit sendet
B zwei weitere Bestätigungen als
Antwort auf die zusätzlichen Anforderungen, die von
A gesendet worden sind, bevor
B gestartet ist. B
empfängt dann die erste Bestätigung von
A und geht in den Zustand
OPENED über. A
empfängt die zweite Bestätigung von
B, geht zurück in den Zustand
REQ-SENT und sendet eine
weitere (vierte) Anforderung entsprechend dem RFC.
A empfängt dann die dritte
Bestätigung und geht in den Zustand
OPENED über. In der Zwischenzeit
empfängt B die vierte Anforderung
von A, wechselt in den Zustand
ACK-SENT und sendet eine weitere
(zweite) Anforderung und (vierte) Bestätigung
entsprechend dem RFC. A erhält die
Anforderung, geht in den Zustand
REQ-SENT über, sendet eine weitere
Anforderung, erhält unverzüglich die
nächste Bestätigung und geht in
OPENED über.Das geht so weiter, bis eine Seite erkennt, dass
man zu keinem Ergebnis gelangt und aufgibt.Am besten verhindert man solche Situationen, indem man
eine Seite als passiv konfiguriert,
also dafür sorgt, dass eine Seite darauf
wartet, dass die andere mit den Verhandlungen beginnt. Das
kann durch den Befehlset openmode passivegeschehen. Diese Option sollten Sie mit Vorsicht
genießen. Folgenden Befehl sollten Sie benutzen, um
die Wartezeit auf den Beginn der Verhandlungen des
Partners von &man.ppp.8; zu begrenzen:set stopped NAlternativ kann der Befehlset openmode active N(wobei N die Wartezeit in
Sekunden vor Beginn der Verhandlungen angibt) benutzt
werden. Weitere Details finden Sie in den
Manualpages.Warum reagiert &man.ppp.8; nicht mehr, wenn ich es mit
shell verlassen habe?Wenn Sie den Befehl shell oder
! benutzen, führt &man.ppp.8; eine
Shell aus (falls Sie Argumente übergeben haben,
führt &man.ppp.8; diese Argumente aus). &man.ppp.8;
wartet auf die Beendigung des Befehls, bevor es seine
Arbeit fortsetzt. Falls Sie versuchen, die PPP-Verbindung
während der Programmausführung zu benutzen, wird
es so aussehen, als wäre die Verbindung eingefroren.
Das liegt daran, dass &man.ppp.8; auf die
Beendigung des Befehls wartet.Falls Sie solche Befehle verwenden möchten,
benutzen Sie stattdessen den Befehl
!bg. Hierdurch wird der angegebene
Befehl im Hintergrund ausgeführt und &man.ppp.8; kann
fortfahren, die Verbindung zu bedienen.Warum wird &man.ppp.8; niemals beendet, wenn ich es
über ein Null-Modem-Kabel benutze?Es gibt keine Möglichkeit für &man.ppp.8;,
automatisch festzustellen, ob eine direkte Verbindung
beendet worden ist. Das liegt an den Leitungen, die bei
einem seriellen Null-Modem-Kabel benutzt werden. Wenn Sie
diese Art der Verbindung verwenden, sollte LQR immer
aktiviert werden:enable lqrLQR wird standardmäßig akzeptiert, wenn es
vom Partner ausgehandelt wird.Warum wählt &man.ppp.8; im Modus -auto ohne
Grund?Falls &man.ppp.8; unerwarteterweise wählt,
müssen Sie den Grund herausfinden und Wählfilter
(dfilters) einsetzen, um dies zu verhindern.Benutzen Sie die folgende Zeile, um den Grund
herauszufinden:set log +tcp/ipDadurch wird jeglicher Verkehr über die
Verbindung geloggt. Wenn das nächste mal unerwartet
eine Verbindung hergestellt wird, werden Sie den Grund
zusammen mit einer hilfreichen Zeitangabe in der Logdatei
finden.Sie können nun das Wählen aufgrund dieser
Bedingungen verhindern. Normalerweise wird diese Art von
Problemen durch Anfragen an den DNS verursacht. Um zu
verhindern, dass DNS-Anfragen den Aufbau der
Verbindung hervorrufen (das verhindert
nicht, dass Pakete über
eine bestehende Verbindung gesendet werden), benutzen Sie
die folgenden Zeilen:
set dfilter 1 deny udp src eq 53
set dfilter 2 deny udp dst eq 53
set dfilter 3 permit 0/0 0/0
Dies ist nicht immer brauchbar, weil es effektiv Ihre
Fähigkeit, auf Anforderung wählen zu können
einschränkt - die meisten Programme müssen eine
DNS-Anfrage durchführen, bevor Sie andere, das
Netzwerk betreffenden Dinge tun können.Im Fall von DNS sollten Sie versuchen, herauszufinden,
welches Programm tatsächlich versucht, einen
Hostnamen aufzulösen. Sehr oft handelt es sich hier
um &man.sendmail.8;. Sie sollten
sicherstellen, dass Sie sendmail in der
Konfigurationsdatei sagen, dass keine DNS-Anfragen
durchführen soll. Weitere Details enthält
der Abschnitt
E-Mail
über Einwahl-Verbindungen des Handbuchs.
Sie könnten z.B. die folgende Zeile in
Ihre .mc-Datei einfügen:define(`confDELIVERY_MODE', `d')dnlDas veranlasst sendmail dazu, alles in eine
Warteschlange einzureihen, bis die Warteschlange
verarbeitet wird (normalerweise wird sendmail mit
aufgerufen, was besagt,
dass die Warteschlange alle 30 Minuten abgearbeitet
wird) oder, bis ein sendmail -q
ausgeführt wird (z.B. aus Ihrer Datei ppp.linkup
heraus).Was bedeuten diese CCP-Fehler?Ich sehe ständig folgende Fehler in meiner
Logdatei:
CCP: CcpSendConfigReq
CCP: Received Terminate Ack (1) state = Req-Sent (6)
Das liegt daran, dass &man.ppp.8; versucht, die
Komprimierung Predictor1 auszuhandeln und der Partner
über keinerlei Komprimierung verhandeln will. Die
Meldungen sind harmlos, aber wenn Sie sie beseitigen
möchten, können Sie die Komprimierung Predictor1
auch lokal ausschalten:disable pred1Warum loggt ppp die Geschwindigkeit meiner Verbindung
nicht?Um alle Zeilen Ihrer Modemkonversation
mitzuloggen, müssen Sie folgendes einstellen:set log +connectDies veranlasst &man.ppp.8; dazu, alles bis zur
letzten angeforderten expext-Zeile
mitzuloggen.Falls Sie die Geschwindigkeit Ihrer Verbindung
erfahren möchten und PAP oder CHAP (und deshalb nach
dem CONNECT im Wählskript nichts mehr zu
chatten haben - kein set
login-Skript), müssen Sie sicherstellen,
dass Sie &man.ppp.8; anweisen, die gesamte
CONNECT-Zeile zu erwarten, etwa so:set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 4 \"\" ATZ OK-ATZ-OK ATDT\\T TIMEOUT 60 CONNECT \\c \\n"Hier bekommen wir unser CONNECT, senden nichts,
erwarten dann einen Line-Feed, der &man.ppp.8; zwingt, die
gesamte CONNECT-Antwort zu lesen.Warum ignoriert &man.ppp.8; das Zeichen
\ in meinem Chat-Skript?ppp analysiert jede Zeile in Ihrer
Konfigurationsdatei, damit es Zeichenketten wie z.B.
set phone "123 456 789" korrekt
interpretieren kann (und erkennen, dass es sich bei
der Nummer tatsächlich nur um
ein Argument handelt). Um das
Zeichen " anzugeben, müssen
Sie ihm einen Backslash (\)
voranstellen.Wenn der Chat-Interpreter jedes Argument analysiert,
reinterpretiert er die Argumente, um irgendwelche
speziellen Escape-Sequenzen wie z.B. \P
oder \T (sehen Sie in die Manualpage)
zu finden. Das Ergebnis dieser Doppelanalyse ist,
dass Sie daran denken müssen, die richtige
Anzahl an Escape-Zeichen zu verwenden.Falls Sie tatsächlich das Zeichen
\ z.B. zu Ihrem Modem senden
möchten, brauchen Sie etwas ähnliches,
wie:set dial "\"\" ATZ OK-ATZ-OK AT\\\\X OK"woraus sich folgende Zeichen ergeben:
ATZ
OK
AT\X
OK
oder
set phone 1234567
set dial "\"\" ATZ OK ATDT\\T"
was folgende Zeichen ergibt:
ATZ
OK
ATDT1234567
Warum gibt es die Datei ppp.core
nicht, wenn &man.ppp.8; einen Segmentation Fault erzeugt
hat?Weder &man.ppp.8; noch andere Programme sollten
Core-Dumps erzeugen. Da &man.ppp.8; mit der effektiven
Benutzerkennung 0 ausgeführt wird, wird das
Betriebssystem &man.ppp.8;'s Coreimage nicht auf die
Festplatte schreiben, bevor es &man.ppp.8; beendet hat.
Falls &man.ppp.8; jedoch tatsächlich aufgrund einer
Speicherverletzung abbricht und Sie
die aktuellste Version (siehe Anfang dieses Kapitels)
benutzen, dann sollten Sie folgendes tun:&prompt.user; tar xfz ppp-*.src.tar.gz
&prompt.user; cd ppp*/ppp
&prompt.user; echo STRIP= >>Makefile
&prompt.user; echo CFLAGS+=-g >>Makefile
&prompt.user; make clean all
&prompt.user; su
&prompt.root; make install
&prompt.root; chmod 555 /usr/sbin/pppNun ist die installierte Version von &man.ppp.8; mit
einem Debugger ausführbar. Sie können
&man.ppp.8; nun nur noch als root
ausführen, da alle vorherigen Zugriffsrechte
aufgehoben worden sind. Achten Sie darauf, in welchem
Verzeichnis Sie sich gerade befinden, wenn Sie &man.ppp.8;
starten.Wenn nun wieder eine Speicherverletzung auftreten
sollte, wird &man.ppp.8; einen Speicherauszug erzeugen,
den Sie in der Datei ppp.core finden.
Sie sollten dann folgendes tun:&prompt.user; su
&prompt.root; gdb /usr/sbin/ppp ppp.core(gdb)bt
.....
(gdb)f 0
....
(gdb)i args
....
(gdb)l
.....Mit Hilfe all dieser Informationen sollte es
möglich sein, das Problem zu diagnostizieren.Falls Sie mit dem Umgang mit gdb vertraut sind,
könnten Sie weitere Einzelheiten herausfinden, z.B.
wodurch der Fehler tatsächlich hervorgerufen wurde
und die Adressen & Werte der betreffenden
Variablen.Warum bekommt das Programm, das eine automatische
Anwahl ausgelöst hat, keine Verbindung?Dies war ein bekanntes Problem bei
&man.ppp.8;-Konfigurationen, bei denen automatisch
dynamische, lokale IP-Adressen mit dem Partner
ausgehandelt werden. In der aktuellsten Version ist das
Problem behoben - suchen Sie in den Manualpages nach
iface.Das Problem bestand darin, dass, wenn das erste
Programm &man.connect.2; aufruft, die IP-Adresse der
tun-Schnittstelle dem Socketendpunkt zugeordnet wird. Der
Kernel erstellt das erste ausgehende Paket und schreibt es
in das tun-Gerät. &man.ppp.8; liest dann das Paket
und baut eine Verbindung auf. Falls die
Schnittstellenadresse sich nun aufgrund &man.ppp.8;s
dynamischer Adresszuordnung ändert, wird der
originale Socketendpunkt ungültig. Alle weiteren
Pakete, die zum Partner gesendet werden, werden für
gewöhnlich verworfen. Selbst wenn sie nicht
verworfen werden würden, würden alle Antworten
nicht an den betreffenden Rechner gelangen, weil die
IP-Adresse nicht mehr zu diesem Rechner
gehört.Theoretisch gibt es mehrere Möglichkeiten, dieses
Problem anzugehen. Am schönsten wäre es, wenn
der Partner die gleiche IP-Adresse wieder zuordnen
würde, wenn möglich :-) Die
derzeitige Version von &man.ppp.8; tut das, aber die
meisten anderen Implementierungen nicht.Die einfachste Maßnahme von unserer Seite
wäre die, niemals die IP-Adresse der
tun-Schnittstelle zu ändern, sondern stattdessen alle
ausgehenden Pakete so zu ändern, dass als
Absender-IP-Adresse anstelle der IP-Adresse der
Schnittstelle die ausgehandelte IP-Adresse gesetzt wird.
Das ist im wesentlichen das, was durch die Option
iface-alias in der aktuellsten Version
von &man.ppp.8; bewirkt wird (mit Unterstützung von
&man.libalias.3; und &man.ppp.8;'s
Schalter) - alle Schnittstellenadressen werden beibehalten
und auf die letzte ausgehandelte Adresse
umgesetzt.Eine andere Alternative (und wahrscheinlich die
zuverlässigste) wäre die, einen Systemaufruf zu
implementieren der die IP-Adressen aller verbundenen
Sockets von einer Adresse in eine andere ändert.
&man.ppp.8; würde diesen Aufruf benutzen, um die
Sockets aller laufenden Programme zu ändern, nachdem
eine neue IP-Adresse ausgehandelt worden ist. Der gleiche
Systemaufruf könnte von DHCP-Clients benutzt werden,
wenn sie gezwungen werden, einen re-bind() auf ihren
Sockets auszuführen.Noch eine andere Möglichkeit wäre die, das
Aktivieren von Schnittstellen ohne IP-Adresse zu erlauben.
Ausgehende Paketen würde die IP-Adresse
255.255.255.255 gegeben, bis der erste ioctl() mit
SIOCAIFADDR erfolgt. Dies würde in der
vollständigen Verbindung des Sockets resultieren. Es
wäre die Aufgabe von &man.ppp.8;, die
Absender-IP-Adresse zu ändern, allerdings nur dann,
wenn sie 255.255.255.255 lautet und nur die IP-Adresse und
IP-Prüfsumme müssten geändert werden.
Dies wäre allerdings keine besonders elegante
Lösung, da der Kernel fehlerhafte Pakete an eine
unzureichend konfigurierte Schnittstelle senden
würde, in der Annahme, dass andere Mechanismen
in der Lage sind, diese Dinge rückwirkend zu
beheben.Warum laufen die meisten Spiele mit dem
Schalter nicht?Der Grund dafür, dass Spiele und andere
Programme nicht funktionieren, wenn libalias benutzt wird,
ist der, dass der Rechner außerhalb des lokalen
Netzes versucht, eine Verbindung aufzubauen und
(unaufgefordert) UDP-Pakete an den Rechner innerhalb des
lokalen Netzes zu senden. Die Software, die für die
NAT zuständig ist, weiß nicht, dass sie
diese Pakete an den internen Rechner weiterleiten
soll.Um dies zu beheben, stellen Sie zunächst sicher,
dass die Software, mit der Sie Probleme haben, die
einzige ist, die gerade läuft. Benutzen Sie dann
entweder tcpdump auf der tun-Schnittstelle des Gateways
oder aktivieren Sie auf dem Gateway das Logging von TCP/IP
(set log +tcp/ip) unter
&man.ppp.8;.Wenn Sie nun das betreffende Programm starten, sollten
Sie sehen, wie Pakete den Gateway-Rechner passieren. Wenn
von außen etwas zurückkommt, wird es ignoriert
(das ist das Problem). Merken Sie sich die Portnummer
dieser Pakete und beenden Sie das betreffende Programm.
Wiederholen Sie diesen Schritt einige Male, um
festzustellen, ob die Portnummern konsistent sind. Falls
dem so ist, wird die folgende Zeile im entsprechenden
Abschnitt von /etc/ppp/ppp.conf
dafür sorgen, dass das Programm
funktioniert:nat port protointernalmachine:portportwobei für proto
entweder tcp oder
udp zu setzen ist,
internalmachine den Rechner
bezeichnet, an den die Pakete geschickt werden sollen und
port die betreffende
Portnummer.Sie können das Programm nicht auf einem anderen
Rechner benutzen, ohne die obige Zeile abzuändern und
die Benutzung des Programms auf zwei internen Rechnern
steht außer Frage - schließlich sieht die
Außenwelt Ihr gesamtes internes Netz so, als
wäre es ein einzelner Rechner.Falls die Portnummern nicht konsistent sind, gibt es
drei weitere Optionen:Ermöglichen Sie die Unterstützung durch
libalias. Beispiele für spezielle
Fälle finden Sie in
/usr/src/lib/libalias/alias_*.c
(alias_ftp.c ist ein schöner
Prototyp). Hierzu gehört für
gewöhnlich das Lesen bestimmter, erkannter,
ausgehender Pakete, die Identifizierung der
Instruktion, die den entfernten Rechner dazu
veranlasst, auf einem bestimmten (wahlfreien)
Port eine Verbindung zurück zum lokalen Rechner
herzustellen, sowie das Erstellen einer
Route in der Aliastabelle, so dass
nachfolgende Pakete wissen, wohin sie
gehören.Dieses ist zwar die komplizierteste Lösung,
aber die beste, die auch dafür sorgt, dass
die Software auf mehreren Rechnern
funktioniert.Benutzen Sie einen Proxy. Die Anwendung
könnte z.B. socks5 unterstützen, oder (wie
im Fall von cvsup) eine Option
passiv besitzen, die stets verhindert,
dass verlangt wird, dass der Partner eine
Verbindung zurück zur lokalen Maschine
aufbaut.Leiten Sie mit nat addr alles
zur lokalen Maschine um. Dieses Vorgehen ähnelt
dem mit einem Vorschlaghammer.Hat jemand eine Liste mit nützlichen Portnummern
erstellt?Noch nicht, aber hieraus könnte eine solche
entstehen (falls Interesse besteht). In jedem Beispiel
sollte internal durch die
IP-Adresse der Maschine ersetzt werden, auf der das Spiel
laufen soll.Asheron's Callnat port udp
internal:65000
65000Konfigurieren Sie das Spiel manuell auf Port 65000
um. Wenn Sie von mehreren Rechner aus spielen wollen,
weisen Sie jedem eine eindeutige Portnummer zu (also
65001, 65002, u.s.w.) und fügen Sie für jede
Maschine eine eigene nat port Zeile
ein.Half Lifenat port udp
internal:27005
27015PCAnywhere 8.0nat port udp
internal:5632
5632nat port tcp
internal:5631
5631Quakenat port udp
internal:6112
6112Alternativ können sie wegen
Proxyunterstützung für Quake unter www.battle.net
nachsehen.Quake 2nat port udp
internal:27901
27910nat port udp
internal:60021
60021nat port udp
internal:60040
60040Red Alertnat port udp
internal:8675
8675nat port udp
internal:5009
5009Was sind FCS-Fehler?FCS steht für Frame
Check Sequence.
Jedes PPP-Paket besitzt eine Checksumme, um
sicherzustellen, dass die empfangenen Daten dieselben
sind, wie die versendeten. Falls die FCS eines
ankommenden Paketes fehlerhaft ist, wird das Paket
verworfen und der Zähler HDLC FCS wird erhöht.
Der HDLC-Fehlerwert kann durch den Befehl show
hdlc angezeigt werden.Falls Ihre Leitung schlecht ist (oder falls Ihr
serieller Treiber Pakete verwirft), werden sie
gelegentliche FCS-Fehler sehen. Normalerweise lohnt es
sich nicht, sich hierüber Gedanken zu machen, obwohl
das Kompressionsprotokoll hierdurch wesentlich langsamer
wird. Wenn Sie ein externes Modem besitzen, stellen Sie
sicher, dass Ihr Kabel ausreichend gegen
Interferenzen abgeschirmt ist - das könnte das
Problem beseitigen.Falls Ihre Leitung einfriert, sobald die Verbindung
steht, und viele FCS-Fehler auftreten, könnte das
daran liegen, dass Ihre Leitung nicht 8-Bit-rein ist.
Stellen Sie sicher, dass Ihr Modem keinen
Software-Flow-Control (XON/XOFF) verwendet. Falls Ihre
Datenschnittstelle Software-Flow-Control verwenden
muss, benutzen Sie den Befehl
set accmap 0x000a0000, um &man.ppp.8;
zu sagen, dass es die Zeichen ^Q
und ^S maskieren soll.Ein weiterer Grund dafür, dass zu viele
FCS-Fehler auftreten, könnte der sein, dass das
andere Ende aufgehört hat, ppp zu
sprechen. Aktivieren Sie async
Logging, um festzustellen, ob es sich bei den eingehenden
Daten tatsächlich um einen login- oder Shell-Prompt
handelt. Wenn Sie am anderen Ende einen Shell-Prompt
haben, ist es möglich, durch den Befehl
close lcp &man.ppp.8; zu beenden, ohne
die Verbindung zu beenden (ein folgender
term-Befehl wird Sie wieder mit der
Shell auf dem entfernten Rechner verbinden.Falls nichts in Ihrer Logdatei darauf hindeutet, warum
die Verbindung beendet wurde, sollten Sie den
Administrator des externen Rechners (Ihren ISP?) fragen,
warum die Sitzung beendet worden ist.Wieso hängen die Verbindungen meiner &macos;- und
&windows; 98-Maschinen (und eventuell auch andere
µsoft; Betriebssysteme), wenn auf meinem Gateway
PPPoE läuft?Vielen Dank an Michael Wozniak
mwozniak@netcom.ca für die
Erklärung und an Dan Flemming
danflemming@mac.com für die
Lösung für &macos;.Die Ursache des Problems ist ein so genannter
Black Hole Router. &macos; und &windows; 98
(und wahrscheinlich auch die anderen Betriebssysteme von
Microsoft) senden TCP Pakete, bei denen zum einen die
angeforderte Segmentgröße zu groß
für einen PPPoE-Rahmen ist (die Default-MTU für
Ethernet beträgt 1500 Byte) und
bei denen das don't fragment Bit gesetzt
ist (das ist bei TCP allerdings Standard). Außerdem
sendet der Router beim Provider nicht die eigentlich
notwendigen must fragment-Meldungen zu dem
Webserver, von dem Sie gerade eine Seite laden wollen. Es
ist auch möglich, dass diese Meldung zwar
erzeugt, aber danach von einem Firewall vor dem Webserver
abgefangen wird. Wenn Ihnen dieser Webserver nun ein
Paket schickt, das nicht in einen PPPoE-Rahmen passt,
dann verwirft der Router dieses Paket und die Seite wird
nicht geladen (einige Seiten/Grafiken werden geladen, weil
ihre Größe kleiner ist als die MSS). Dies
scheint leider der Normalfall zu sein (wenn die Leute doch
nur wüssten, wie man einen Router
konfiguriert... stöhn...)Eine der möglichen Lösungen für dieses
Problem ist die Erzeugung des folgenden Schlüssels in
der Registry des Windows-Clients:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000\MaxMTUDer Schlüssels sollte vom Typ String sein und den
Wert 1436 haben, da einige ADSL-Router
nicht mit größeren Paketen umgehen können.
Wenn Sie &windows; 2000 verwenden, müssen Sie
hingegen den Schlüssel
Tcpip\Parameters\Interfaces\ID der
Netzwerkkarte\MTU benutzen,
außerdem müssen Sie als Typ DWORD
verwenden.Die Knowledge Base von µsoft; enthält weitere
Informationen darüber, wie sie die MTU einer
&windows;-Maschine ändern, damit diese mit einem
NAT-Router korrekt zusammenarbeitet. Vom besonderen
Interesse sind die Artikel Q158474
- &windows; TCPIP Registry Entries und Q120642
- TCPIP & NBT Configuration Parameters for
&windowsnt;.Bei &windows; 2000 können Sie alternativ auch, wie
im Artikel 120642 beschrieben, mit regedit das DWORD
Tcpip\Parameters\Interfaces\ID der
Netzwerkkarte\EnablePMTUBHDetect
auf 1 setzen.Mit den Bordmitteln von &macos; ist es leider nicht
möglich, die TCP/IP-Einstellungen zu verändern.
Es gibt jedoch kommerzielle Lösungen wie zum Beispiel
OTAdvancedTuner (OT steht für OpenTransport, den
TCP/IP-Stack von &macos;) von Sustainable
Softworks, mit denen man die TCP/IP-Einstellungen
bearbeiten kann. Wenn Sie als &macos;-Anwender NAT
benutzen, sollten Sie im entsprechenden drop-down
Menü den Punkt ip_interface_MTU
auswählen und in der Dialogbox
1450 statt 1500
eingeben. Aktivieren Sie den Punkt Save as Auto
Configure und klicken Sie danach auf
Make Active.&man.ppp.8; kennt seit Version 2.3 den Befehl
enable tcpmssfixup, mit dem die MSS
automatisch korrigiert wird. Wenn Sie einen ältere
Version von &man.ppp.8; benutzen müssen, könnte
der Port tcpmssd für Sie
interessant sein.Nichts von alledem hilft - ich bin
verzweifelt! Was soll ich machen?Falls alles andere fehlschlägt, senden Sie
möglichst umfangreiche Informationen,
einschließlich Ihrer Konfigurationsdateien, wie Sie
&man.ppp.8; starten, die relevanten Teile Ihrer Logdateien
und die Ausgabe des Befehls netstat -rn
(vor und nach Aufbau der Verbindung) an die
Mailingliste &a.de.questions; oder die Newsgroup de.comp.os.unix.bsd.
Irgend jemand sollte Ihnen dann weiterhelfen.Serielle VerbindungenDieses Kapitel beantwortet häufig gestellte Fragen zu
seriellen Verbindungen mit FreeBSD. PPP und SLIP werden im
Abschnitt Netzwerke behandelt.Wie kann ich feststellen, ob FreeBSD meine seriellen
Schnittstellen gefunden hat?Wenn der FreeBSD Kernel bootet, testet er die
seriellen Schnittstellen, für die er konfiguriert
wurde. Sie können entweder Ihrem System aufmerksam
beim Booten zusehen und die angezeigten Nachrichten lesen,
oder Sie führen den Befehl&prompt.user; dmesg | grep sioaus, nachdem Ihr System hochgefahren ist und
läuft.Hier ist ein Beispiel einer Ausgabe nach dem oben
genannten Befehl:
sio0: at 0x3f8-0x3ff irq 4 on isa
sio0: type 16550A
sio1: at 0x2f8-0x2ff irq 3 on isa
sio1: type 16550A
Es zeigt zwei serielle Schnittstellen. Die erste
verwendet Port-Adresse 0x3f8, IRQ 4 und
hat einen 16550A UART Chip. Die zweite benutzt ebenfalls
einen 16550A UART, jedoch Port-Adresse
0x2f8 und IRQ 3. Modemkarten werden
wie serielle Schnittstellen behandelt. Der einzige
Unterschied ist, dass an diesen Schnittstellen immer
ein Modem angeschlossen ist.Der GENERIC Kernel beinhaltet
Unterstützung für zwei serielle Schnittstellen,
die den im Beispiel genannten Port und IRQ verwenden.
Wenn diese Einstellungen nicht richtig für Ihr System
sind, Sie Modemkarten hinzugefügt oder mehr serielle
Schnittstellen haben als Ihre Kernelkonfiguration
zulässt, konfigurieren Sie Ihren Kernel einfach
neu. In dem Kapitel über die Kernelkonfiguration finden
Sie mehr Details.Wie kann ich feststellen, ob FreeBSD meine Modemkarten
gefunden hat?Die vorherige Frage sollte darauf eine Antwort
geben.Wie kann ich auf die seriellen Schnittstellen in
FreeBSD zugreifen?Die in &man.sio.4; beschriebene serielle Schnittstelle
sio2 (COM3
unter &ms-dos;/&windows;), ist
/dev/cuaa2 für
Geräte mit abgehenden Verbindungen und
/dev/ttyd2 für Geräte mit
eingehenden Verbindungen. Was ist der Unterschied
zwischen den beiden Geräteklassen?Sie benutzen
ttydX
für eingehende Verbindungen. Wird
/dev/ttydX
im blockierenden Modus geöffnet, wartet ein
Prozess darauf, dass das entsprechende
cuaaX
Gerät inaktiv und der Empfangssignalpegel
Mit Empfangssignalpegel oder
Trägersignalerkennung wird hier
die carrier detect
Leitung bezeichnet.
aktiv ist. Wird das
cuaaX
Gerät geöffnet, vergewissert es sich, dass
die serielle Schnittstelle nicht bereits von dem
ttydX
Gerät in Gebrauch ist. Sollte die Schnittstelle
verfügbar sein, stiehlt es sie von dem
ttydX
Gerät. Das
cuaaX
Gerät kümmert sich nicht um
Trägersignalerkennung. Mit diesem Schema und einem
automatisch antwortenden Modem, können sich Benutzer
von aussen einloggen, Sie können weiterhin mit
demselben Modem wählen und das System kümmert
sich um die Konflikte.Wie kann ich die Unterstützung für eine
Karte mit mehreren seriellen Schnittstellen
aktivieren?Die Sektion über die Kernelkonfiguration bietet
Informationen darüber, wie Sie Ihren Kernel
konfigurieren. Für eine Karte mit mehreren seriellen
Schnittstellen, schreiben Sie eine &man.sio.4; Zeile
für jede serielle Schnittstelle auf der Karte in die
Kernelkonfigurationsdatei. Aber achten Sie darauf, den
IRQ und die Vektorbezeichnung nur in einem der
Einträge zu plazieren. Alle seriellen Schnittstellen
auf der Karte sollten sich einen IRQ teilen. Daher
sollten Sie den IRQ nur beim letzten Eintrag angeben.
Aktivieren Sie auch die COM_MULTIPORT
Option.Das folgende Beispiel ist geeignet für eine AST
Karte mit 4 seriellen Schnittstellen, die IRQ 7
benutzt:
options "COM_MULTIPORT"
device sio4 at isa? port 0x2a0 tty flags 0x781
device sio5 at isa? port 0x2a8 tty flags 0x781
device sio6 at isa? port 0x2b0 tty flags 0x781
device sio7 at isa? port 0x2b8 tty flags 0x781 irq 7 vector siointr
Die Flags zeigen an, dass die
Master-Schnittstelle die Minor-Nummer 7
(0x700) hat, Diagnosen während des
Bootens ermöglicht sind (0x080),
und dass sich alle Schnittstellen einen IRQ teilen
(0x001).Kann FreeBSD mehrere Karten mit mehreren seriellen
Schnittstellen mit den gleichen IRQs verwalten?Noch nicht. Sie müssen für jede Karte einen
anderen IRQ verwenden.Kann ich die vorgegebenen seriellen Parameter für
eine Schnittstelle einstellen?Das
ttydX
(oder
cuaaX)
Gerät ist das reguläre Gerät, das man in
Anwendungen öffnet. Wenn ein Prozess es
öffnet, hat es die voreingestellten Terminal
Eingabe/Ausgabe-Einstellungen. Sie können diese
Einstellungen mit dem Befehl&prompt.root; stty -a -f /dev/ttyd1ansehen. Wenn Sie die Einstellungen für dieses
Gerät ändern, sind die Einstellungen
gültig, bis das Gerät geschlossen wird. Wird es
danach geöffnet, hat es wieder die vorgegebenen
Einstellungen. Um Änderungen an den vorgegebenen
Einstellungen vorzunehmen, können Sie das
Anfangsstatus-Gerät öffnen und dessen
Einstellungen anpassen. Um zum Beispiel den
CLOCAL Modus, 8 Bits und
XON/XOFF Datenflusskontrolle als
Standard für ttyd5 einzustellen, geben Sie&prompt.root; stty -f /dev/ttyid5 clocal cs8 ixon ixoffein. Eine gute Stelle um dies zu tun ist in
/etc/rc.serial. Jetzt hat eine
Anwendung diese Einstellungen als Standardwerte, wenn sie
ttyd5 öffnet. Die Anwendung
kann die Einstellungen jedoch immer noch nach Belieben
verändern.Man aber kann auch bestimme Einstellungen davor
schützen, von einer Anwendung verändert zu
werden, indem man Veränderungen am lock
state Gerät vornimmt. Um beispielsweise die
Geschwindigkeit von ttyd5 auf 57600
bps festzusetzen:&prompt.root; stty -f /dev/ttyld5 57600Wenn jetzt eine Anwendung ttyd5
öffnet und versucht die Geschwindigkeit zu
verändern, wird diese bei 57600 bps bleiben.Natürlich sollten Sie das Schreiben auf die
Anfangsstatus- und lock state-Geräte nur
root erlauben. Das &man.MAKEDEV.8;
Skript tut dies nicht, wenn es die
Geräte-Einträge erstellt.Wie kann ich Einwahl-Logins über mein Modem
aktivieren?Also Sie wollen ein Internet Service Provider werden,
ja? Als erstes brauchen Sie eines oder mehrere Modems,
die automatisches Antworten beherrschen. Ihr Modem sollte
auf Trägersignalerkennung reagieren und nicht fortlaufend
die Leitung offen halten. Es muss auflegen und sich
neu initialisieren können, wenn die Data
Terminal Ready (DTR) Leitung
ausgeschaltet wird. Es sollte wahrscheinlich
RTS/CTS oder gar keine lokale
Datenflusskontrolle benutzen. Zuletzt muss es
eine konstante Geschwindigkeit zwischen dem Computer und
sich selbst verwenden, aber es sollte (um die Anrufer
freundlich zu behandeln) eine Geschwindigkeit zwischen
sich und dem entfernten Modem aushandeln können.Für viele Modems, die mit dem Hayes Befehlssatz
kompatibel sind, erzeugt der folgende Befehl diese
Einstellungen und legt sie im nicht-flüchtigen
Speicher ab:AT &C1 &D3 &K3 &Q6 S0=1 &WDie Sektion über das
Senden von AT-Befehlen bietet weitere
Informationen, wie man diese Einstellungen vornimmt, ohne
zu einem &ms-dos; Terminalprogramm zu flüchten.Als nächstes erstellen Sie einen Eintrag in
/etc/ttys für das Modem. Diese
Datei listet alle Schnittstellen auf, auf denen das
Betriebssystem Einlogversuche erwartet. Fügen Sie
eine solche Zeile hinzu:ttyd1 "/usr/libexec/getty std 57600" dialup on insecureDiese Zeile bedeutet, dass an der zweiten
seriellen Schnittstelle (/dev/ttyd1)
ein Modem angeschlossen ist, das mit 57600 bps läuft
und keine Parität besitzt
(std.57600 aus
/etc/gettytab). Der Terminal-Typ
für diese Schnittstelle ist dialup
(Einwahl). Die Schnittstelle ist
eingeschaltet (on) und
unsicher (insecure) –
das bedeutet, man kann sich über diese Schnittstelle
nicht als root einloggen. Für
Einwahlanschlüsse wie diesen, benutzen Sie den
ttydX Eintrag.Es ist relativ geläufig,
dialup als Terminal-Typ zu verwenden.
Viele Benutzer richten in ihren
.profile oder
.login Dateien eine Abfrage für
das eigentliche Terminal ein, wenn der Start-Typ
dialup ist. Das Beispiel zeigt die
Schnittstelle als unsicher und um über diese
Schnittstelle root zu werden,
müssen Sie sich als normaler Benutzer einloggen und
&man.su.1;. Wenn sie
secure (sicher) als
Einstellung verwenden, kann sich root
direkt einloggen.Nachdem Sie Modifikationen in
/etc/ttys vorgenommen haben,
müssen Sie ein hangup oder
HUP Signal an &man.init.8;
senden:&prompt.root; kill -HUP 1Das bringt &man.init.8; dazu, die Datei
/etc/ttys neu einzulesen.
init startet dann an allen als
eingeschaltet (on) markierten
Schnittstellen die getty-Prozesse. Sie können
herausfinden ob noch Logins für Ihre Schnittstelle
verfügbar sind, wenn Sie folgendes eingeben:&prompt.user; ps -ax | grep '[t]tyd1'Sie sollten etwas sehen, das so ähnlich aussieht
wie:747 ?? I 0:00:04 /usr/libexec/getty std.57600 ttyd1Wie kann ich ein Hardware-Terminal mit meiner FreeBSD
Box verbinden?Wenn Sie einen anderen Computer als Terminal für
Ihr FreeBSD System verwenden wollen, verbinden Sie die
beiden seriellen Schnittstellen mit einem Nullmodem-Kabel.
Wenn Sie ein echtes (Hardware-)Terminal
benutzen, lesen Sie die Begleitinformationen.Ändern Sie /etc/ttys wie
oben angegeben. Wenn Sie zum Beispiel ein WYSE-50
Terminal mit der fünften seriellen Schnittstelle
verbinden wollen, schreiben Sie einen Eintrag wie
diesen:ttyd4 "/usr/libexec/getty std.38400" wyse50 on secureDas Beispiel zeigt, dass die Schnittstelle an
/dev/ttyd4 mit einem wyse50 Terminal
mit 38400 bps und ohne Parität
(std.38400 aus
/etc/gettytab) verbunden ist und
root Logins möglich sind
(secure).Warum kann ich tip oder
cu nicht laufen lassen?Vielleicht sind auf Ihrem System die Programme
&man.tip.1; und &man.cu.1; nur von
uucp und der Gruppe
dialer ausführbar. Sie
können die Gruppe dialer
verwenden, um zu kontrollieren wer Zugriff auf Ihr Modem
oder entfernte Systeme hat. Fügen Sie sich einfach
selbst zur Gruppe dialer
hinzu.Als Alternative können Sie jeden Benutzer auf
Ihrem System &man.tip.1; und &man.cu.1; verwenden lassen,
dazu müssen Sie das folgende eingeben:&prompt.root; chmod 4511 /usr/bin/cu
&prompt.root; chmod 4511 /usr/bin/tipMein Hayes Modem wird nicht unterstützt – was
kann ich tun?Eigentlich ist die Onlinehilfe für &man.tip.1;
nicht mehr aktuell. Es gibt einen eingebauten,
allgemeinen Hayes Wähler. Verwenden Sie einfach
at=hayes in
/etc/remote.Der Hayes Treiber ist nicht schlau genug, um ein paar
der erweiterten Merkmale von neueren Modems zu erkennen –
Nachrichten wie BUSY, NO
DIALTONE oder CONNECT 115200
verwirren ihn nur. Sie sollten diese Nachrichten mit
Hilfe von ATX0&W abschalten, wenn
Sie tip benutzen.Das Anwahl-Timeout von &man.tip.1;
beträgt 60 Sekunden. Ihr Modem sollte weniger
verwenden, oder tip denkt, dass
ein Kommunikationsfehler vorliegt. Versuchen Sie es mit
ATS7=45&W.Tatsächlich unterstützt die ausgelieferte
Version von &man.tip.1; es noch nicht
vollständig. Die Lösung ist,
tipconf.h im Verzeichnis
/usr/src/usr.bin/tip/tip zu
editieren. Dafür benötigen Sie natürlich
die Quellcode Distribution.Editieren Sie die Zeile #define HAYES
0 in #define HAYES 1 um.
Dann führen Sie make und
make install aus. Es sollte jetzt
funktionieren.Wie soll ich die AT Befehle eingeben?Erstellen Sie einen so genannten
direct Eintrag in
/etc/remote. Wenn Ihr Modem zum
Beispiel an der ersten seriellen Schnittstelle,
/dev/cuaa0, angeschlossen ist, dann
fügen Sie die folgende Zeile hinzu:cuaa0:dv=/dev/cuaa0:br#19200:pa=noneVerwenden Sie die höchste bps Rate, die Ihr Modem
in der br Fähigkeit unterstützt. Geben Sie dann
tip cuaa0 ein
und Sie sind mit Ihrem Modem verbunden.Wenn auf Ihrem System keine
/dev/cuaa0 Datei existiert, geben Sie
folgendes ein:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV cuaa0Oder benutzen Sie cu als
root mit dem folgenden Befehl:&prompt.root; cu -lline -sspeedline steht für die
serielle Schnittstelle (/dev/cuaa0)
und speed für die
Geschwindigkeit (57600). Wenn Sie mit
dem Eingeben der AT Befehle fertig sind, beenden Sie mit
~..Wieso funktioniert das <@>
Zeichen für die pn Fähigkeit nicht?Das <@> Zeichen in der
Telefonnummerfähigkeit sagt tip, dass es in der
Datei /etc/phones nach einer Nummer
suchen soll. Aber <@> ist auch
ein spezielles Zeichen in den Dateien, in denen
Fähigkeiten beschrieben werden, wie
/etc/remote. Schreiben Sie es mit
einem '\' (backslash):pn=\@Wie kann ich von der Kommandozeile eine Telefonnummer
wählen?Stellen Sie einen allgemeinen Eintrag
in /etc/remote. Zum
Beispiel:
tip115200|Dial any phone number at 115200 bps:\
:dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du:
tip57600|Dial any phone number at 57600 bps:\
:dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du:
Mit einem Befehl wie tip -115200
5551234 können Sie dann wählen.
Sollten Sie &man.cu.1; im Gegensatz zu &man.tip.1;
bevorzugen, verwenden Sie einen allgemeinen
cu-Eintrag:
cu115200|Use cu to dial any number at 115200bps:\
:dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du:
Zum Wählen können Sie dann cu
5551234 -s 115200 eingeben.Muss ich dabei jedes Mal die bps Rate
angeben?Schreiben Sie einen tip1200 oder
einen cu1200 Eintrag, aber geben Sie
auch die bps Rate an, die Ihr Modem wirklich
unterstützt. Leider denkt &man.tip.1;, dass
1200 bps ein guter Standardwert ist und deswegen sucht es
nach einem tip1200-Eintrag.
Natürlich müssen Sie nicht wirklich 1200 bps
benutzen.Wie kann ich möglichst komfortabel über
einen Terminal-Server auf verschiedene Rechner
zugreifen?Sie müssen nicht warten bis Sie verbunden sind,
und jedes Mal CONNECT
Rechner eingeben,
benutzen Sie tip's cm Fähigkeit.
Sie können diese Einträge in
/etc/remote verwenden:
pain|pain.deep13.com|Forrester's machine:\
:cm=CONNECT pain\n:tc=deep13:
muffin|muffin.deep13.com|Frank's machine:\
:cm=CONNECT muffin\n:tc=deep13:
deep13:Gizmonics Institute terminal server:\
:dv=/dev/cuaa2:br#38400:at=hayes:du:pa=none:pn=5551234:
Mit den Befehlen tip pain oder
tip muffin können Sie eine
Verbindungen zu den Rechnern pain oder
muffin herstellen; mit tip
deep13 verbinden Sie sich mit dem Terminal
Server.Kann tip mehr als eine Verbindung für jede Seite
ausprobieren?Das ist oft ein Problem, wenn eine Universität
mehrere Telefonleitungen hat und viele tausend Studenten
diese benutzen wollen.Erstellen Sie einen Eintrag für Ihre
Universität in /etc/remote und
benutzen Sie <\@> für die
pn Fähigkeit:
big-university:\
:pn=\@:tc=dialout
dialout:\
:dv=/dev/cuaa3:br#9600:at=courier:du:pa=none:
Listen Sie die Telefonnummern der Universität
in /etc/phones auf:
big-university 5551111
big-university 5551112
big-university 5551113
big-university 5551114
&man.tip.1; probiert jede der Nummern in der
aufgelisteten Reihenfolge und gibt dann auf. Möchten
Sie, dass tip beim Versuchen eine
Verbindung herzustellen nicht aufgibt, lassen Sie es in
einer while-Schleife laufen.Warum muss ich zweimal
CtrlP tippen, um ein
CtrlP zu senden?CtrlP ist das voreingestellte Zeichen, mit dem eine
Übertragung erzwungen werden kann und wird benutzt,
um &man.tip.1; zu sagen, dass das nächste
Zeichen direkt gesendet werden soll und nicht als
Fluchtzeichen interpretiert werden soll. Mit Hilfe der
~s Fluchtsequenz, mit der man Variablen
setzen kann, können Sie jedes andere Zeichen als
force-Zeichen definieren.Geben Sie
~sforce=zeichen
ein und drücken Sie Enter. Für
zeichen können Sie ein
beliebiges einzelnes Zeichen einsetzen. Wenn Sie
zeichen weglassen, ist das
force-Zeichen nul, das Sie mit
Ctrl2 oder
CtrlSPACE eingeben können. Ein
guter Wert für zeichen ist
ShiftCtrl6, welches ich erst auf ein paar
Terminal-Servern in Benutzung gesehen habe.Sie können das force-Zeichen auch
bestimmen, indem Sie in $HOME/.tiprc
das folgende einstellen:force=single-charWarum ist auf einmal alles was ich schreibe in
GROSSBUCHSTABEN??Sie müssen
CtrlA eingegeben haben, das
raise-Zeichen von &man.tip.1; das speziell
für Leute mit defekten Caps Lock Tasten
eingerichtet wurde. Benutzen Sie ~s wie
oben und setzen Sie die Variable raisechar auf
etwas, das Ihnen angemessen erscheint. Tatsächlich
kann die Variable auf das gleiche Zeichen wie das
force-Zeichen gesetzt werden, wenn Sie
diese Fähigkeiten niemals benutzen wollen.Hier ist ein Muster der .tiprc
Datei, perfekt für Emacs
Benutzer, die oft
Ctrl2 und
CtrlA tippen müssen:
force=^^
raisechar=^^
Das ^^ steht für
ShiftCtrl6.Wie kann ich Dateien mit tip
übertragen?Wenn Sie mit einem anderen &unix; System kommunizieren,
können Sie Dateien senden und empfangen – mit
~p (put) und ~t
(take). Diese Befehle lassen &man.cat.1; und &man.echo.1;
auf dem entfernten System laufen, um Dateien zu
akzeptieren und zu senden. Die Syntax ist:
~p <local-file> [<remote-file>]
~t <remote-file> [<local-file>]
Es gibt keine Fehlerkontrolle, deshalb sollten Sie
besser ein anderes Protokoll benutzen, wie zmodem.Wie kann ich zmodem mit tip
laufen lassen?Zuerst installieren Sie ein zmodem Programm aus der
Ports-Sammlung (eines der beiden aus der comms-Kategorie,
lrzsz oder
rzsz).Um Dateien zu empfangen, starten Sie das Programm zum
Senden auf dem entfernten Computer. Drücken Sie dann
Enter gefolgt von ~C rz (oder
~C lrz, wenn Sie lrzsz installiert
haben), um diese lokal zu empfangen.Um Dateien zu senden, starten Sie das Programm zum
Empfangen auf dem entfernten Computer. Drücken Sie
dann Enter gefolgt von ~C sz
Dateien (oder
~C lsz
Dateien), um sie zum
entfernten System zu senden.Verschiedene FragenFreeBSD benutzt viel mehr Swap-Speicher als &linux;.
Warum?Es sieht nur so aus, als ob FreeBSD mehr Swap benutzt,
als &linux;. Tatsächlich ist dies nicht der Fall. In
dieser Hinsicht besteht der Hauptunterschied zwischen
FreeBSD und &linux; darin, dass FreeBSD vorbeugend
vollkommen untätige, unbenutzte Seiten aus dem
Hauptspeicher in den Swap-Bereich auslagert, um mehr
Hauptspeicher für die aktive Nutzung zur
Verfügung zu stellen. &linux; tendiert dazu, nur als
letzten Ausweg Seiten in den Swap-Bereich auszulagern.
Die spürbar höhere Nutzung des Swap-Speichers
wird durch die effizientere Nutzung des Hauptspeichers
wieder ausgeglichen.Beachten Sie, dass FreeBSD in dieser Hinsicht
zwar vorbeugend arbeitet, es entscheidet jedoch nicht
willkürlich, Seiten auszulagern, wenn das System
vollkommen untätig ist. Deshalb werden Sie
feststellen, dass nicht alle Seiten Ihres Systems
ausgelagert wurden, wenn Sie morgens aufstehen, nachdem
das System eine Nacht lang nicht benutzt worden
ist.Warum zeigt mir &man.top.1; so wenig freien Speicher
an, obwohl nur wenige Programme laufen?Die Antwort ist ganz einfach: Freier Speicher ist
verschwendeter Speicher. Der FreeBSD Kernel verwendet den
von den Programmen nicht genutzten Speicher automatisch
für den Plattencache. Die in &man.top.1; für
Inact, Cache und
Buf gemeldeten Werte stehen alle
für zwischengespeicherte Daten mit unterschiedlichem
Alter. Wenn das System wiederholt auf Daten zugreifen
muss, braucht es nicht auf die langsame Platte
zuzugreifen, da die Daten noch zwischengespeichert sind.
Dadurch erhöht sich die Performance. Ganz generell
ist es ein gutes Zeichen, wenn &man.top.1; einen kleinen
Wert bei Free anzeigt, solange der Wert
nicht extrem klein ist.Anmerkung des Übersetzers: Mit extrem
klein sind hier Werte unterhalb 512 KByte
gemeint.Warum ändert chmod die
Zugriffsrechte auf symbolische Links nicht?Für symbolische Links gibt es keine separaten
Zugriffsrechte und standardmäßig folgt
&man.chmod.1; dem Link nicht; die Zugriffsrechte für
die Datei, auf die der symbolische Link zeigt, werden also
nicht verändert. Wenn Sie eine Datei mit dem Namen
foo und einen auf diese Datei
zeigenden symbolischen Link mit dem Namen
bar haben, wird das folgende Kommando
niemals einen Fehler melden.&prompt.user; chmod g-w barTrotzdem werden die Zugriffsrechte für
foo nicht geändert.Hierzu müssen Sie entweder
oder zusammen mit der Option
benutzen. Weitere Informationen
finden Sie in den Manualpages &man.chmod.1; und
&man.symlink.7;.Die Option bewirkt ein
rekursives &man.chmod.1;.
Seien Sie vorsichtig, wenn Sie bei
&man.chmod.1; Verzeichnisse oder symbolische
Links zu Verzeichnissen angeben. Wenn Sie die
Zugriffsrechte eines Verzeichnisses ändern
möchten, das durch einen symbolischen Link
referenziert wird, benutzen Sie &man.chmod.1;
ohne irgendwelche Optionen und folgen dem symbolischen
Link durch einen abschließenden Schrägstrich
(/). Falls z.B.
foo ein symbolischer Link zum
Verzeichnis bar ist und Sie die
Zugriffsrechte von foo
(tatsächlich bar) ändern
möchten, dann benutzen Sie etwas ähnliches
wie:&prompt.user; chmod 555 foo/Durch den abschließenden Schrägstrich folgt
&man.chmod.1; dem symbolischen Link
foo, um die Zugriffsrechte für
das Verzeichnis bar zu
ändern.Kann ich DOS-Programme unter FreeBSD
ausführen?Ja. Sie können
emulators/doscmd
verwenden, das über die Ports-Sammlung verfügbar
ist.doscmd war früher
Teil des Basissystems von &os;, es wurde aber vor der
Veröffentlichung von &os; 5.3 daraus
entfernt.Falls doscmd nicht ausreicht,
können Sie den Port
emulators/pcemu
verwenden, der einen 8088 und genug BIOS-Funktionen emuliert,
um DOS-Textanwendungen laufen zu lassen. Der Port
benötigt das X-Window-System.Was muss ich tun, um die FreeBSD-Dokumentation in
meine Muttersprache zu übersetzen?Informationen zu diesem Thema finden Sie in der FAQ
des FreeBSD German Documentation Project.Warum kommen alle meine Mails, die ich an @FreeBSD.org
schicke, wieder zurück?Das Mailsystem von FreeBSD.org verwendet einige der
strengeren Überprüfungen von
Postfix für eingehende Mails.
Mails, bei denen es Anzeichen für Konfigurationsprobleme
oder Spam gibt, werden nicht akzeptiert. Dies kann aus einem
der folgenden Gründe geschehen:Die Mail kommt von einem System oder Netzwerk,
dass für Spam-Aktivitäten bekannt
ist.Die Mailserver von FreeBSD akzeptierten keine
Mails von bekannten Spam-Quellen. Wenn Sie eine
Firma oder Domain benutzen, die Spam erzeugt oder
verteilt, sollten Sie sich einen anderen ISP
suchen.Der Mailtext enthält HTML.Mail sollte immer im Klartext gesendet werden, Sie
sollten ihr Mailprogramm entsprechend
einstellen.Das Mailsystem kann die IP-Adresse des
einliefernden Systems nicht in einen symbolischen
Namen umwandeln.Funktionierendes reverse DNS ist eine
Vorbedingung, damit ihre Mails angenommen wird.
Sorgen Sie dafür, dass der reverse DNS
für Ihren Mailserver korrekt konfiguriert wird.
Viele Anbieter für Privatkunden geben Ihnen diese
Möglichkeit nicht. In diesem Fall sollten Sie
Ihre Mails über den Mailserver Ihres Providers
versenden.Der Rechnername, der im EHLO/HELO Teil der SMTP
Kommunikation übergeben wird, kann nicht zu einer
IP-Adresse aufgelöst werden.Damit die E-Mail akzeptiert wird, brauchen Sie einen
voll qualifizierten Rechnernamen, der im DNS eingetragen ist.
Wenn Sie diesen nicht besitzen, benutzen Sie bitte den
Mailserver Ihres Providers, um E-Mails zu verschicken.Die Message-ID Ihrer Mail endet in
localhost.Einige Mail-Clients generieren eine Message-ID, die
nicht akzeptiert wird. Sie müssen Ihren Mail-Client
so konfigurieren, dass er eine gültige Message-ID
generiert. Alternativ können Sie die Message-ID von
Ihrem Mailserver umschreiben lassen.Wo kann ich einen freien FreeBSD-Account bekommen?Das FreeBSD-Projekt bietet zwar keinen freien Zugang
zu seinen Servern an; andere Firmen bieten jedoch frei
zugängliche &unix; Systeme. Die Kosten variieren und
es kann sein, dass nicht alle Dienste zur
Verfügung stehen.Arbornet,
Inc, auch als M-Net bekannt, bietet seit 1983
uneingeschränkten Zugang zu &unix; Systemen.
Zunächst wurde eine Altos-Maschine mit System III
benutzt, 1991 erfolgte dann der Wechsel zu BSD/OS. Im
Juni 2000 erfolgte ein erneuter Wechsel, diesmal zu
FreeBSD. M-Net bietet Zugang mit Telnet und SSH und den
Zugang zur gesamten Software von FreeBSD. Allerdings ist
der Zugriff auf das Netzwerk auf Mitglieder und
Gönner beschränkt, die eine Spende an die
nicht-kommerzielle Organisation geleistet haben. M-Net
stellt zusätzlich ein Mailbox-System und einen
interaktiven Chat zur Verfügung.Grex bietet
ein ganz ähnlichen Dienst wie M-Net an, dazu
gehören auch das Mailbox-System und der interaktive
Chat. Allerdings wird eine SUN4M mit &sunos;
benutzt.Was ist sup und wie benutze ich
es?Der Name SUP steht für
Software Update Protocol und wurde von der CMU (Carnegie
Mellon University) entwickelt, um ihre Entwicklungszweige
zu synchronisieren. Wir haben es benutzt, um entfernte
Sites mit unseren zentralen Quellcodeentwicklungen zu
synchronisieren.SUP ist nicht sehr bandbreitenfreundlich und wurde
abgelöst. Die derzeit empfohlene Methode, um Ihren
Quellcode auf dem neuesten Stand zu halten ist
CVSup.Wie heißt das niedliche rote Kerlchen?Er ist namenlos, es ist einfach der der BSD
Daemon. Wenn Sie ihm unbedingt einen Namen geben
wollen, rufen Sie ihn beastie. Beachten
Sie aber, dass beastie wie
BSD ausgesprochen wird.Weitere Informationen über den BSD daemon finden
Sie auf seiner
Homepage.Kann ich Bilder des BSD Daemon verwenden?Eventuell. Der BSD Daemon unterliegt dem Copyright
von Marshall Kirk McKusick. Wenn Sie genaue Informationen
über die Einschränkungen bei der Nutzung
brauchen, sollten Sie sein Statement
on the Use of the BSD Daemon Figure lesen.Kurz gesagt, können Sie den BSD Daemon benutzen,
solange es für einen privaten Zweck ist und die
Nutzung geschmackvoll bleibt. Für den kommerziellen
Einsatz brauchen Sie die Zustimmung von Kirk McKusick.
Weitere Informationen erhalten Sie auf der Webseite BSD
Daemon's home page.Woher kann ich Bilder des BSD Daemon bekommen?Einige Bilder in den Format xfig und eps sind unter
/usr/share/examples/BSD_daemon/ zu
finden.Was bedeutet MFC?MFC ist ein Acronym für Merged From
-Current. Es wird in den CVS-Logs benutzt, um zu
kennzeichnen, wenn eine Änderung vom CURRENT-Zweig in
den STABLE-Zweig übernommen worden ist.Was bedeutet BSD?Es steht für etwas in einer geheimen Sprache, das
nur Mitglieder wissen können. Es kann nicht
wörtlich übersetzt werden, aber wir können
Ihnen sagen, dass die Übersetzung von BSD etwas
zwischen Formel-1 Team, Pinguine
sind ein leckerer Imbiss und Wir haben
einen besseren Sinn für Humor als &linux; ist
:-)Ernsthaft, BSD ist ein Acronym für Berkeley
Software Distribution. Das ist der Name, den die
Berkeley CSRG (Computer Systems Research
Group) damals für ihre Distribution des &unix; Systems
gewählt hat.Was bedeutet POLA?Prinzip der kleinsten Überraschung (engl.
Principle of Least Astonishment).
Das bedeutet, dass Änderungen in FreeBSD, die den
Endanwender betreffen, für diesen so transparent wie
möglich bleiben. Es wäre beispielsweise eine
Verletzung dieses Prinzips die Variablen in
/etc/defaults/rc.conf willkürlich
umzuordnen. Entwickler berücksichtigen dieses Prinzip,
wenn Sie über Änderungen nachdenken, die den Endanwender
betreffen.Was ist eine repo-copy?Eine repo-copy (die Kurzform von repository
copy) bedeutet, dass Dateien direkt innerhalb
des CVS repository kopiert wurden.Wenn eine Datei an einen anderen Ort im Repository
kopiert oder verschoben werden müsste, würde ein
Committer ohne repo-copy die neue Datei mit cvs
add hinzufügen und die alte ggfs. mit
cvs rm löschen.Damit würden allerdings die Einträge in der
History (die Einträge im CVS-Logfile) nicht mit
übertragen. Da das FreeBSD Projekt diese
Informationen allerdings für äußerst
nützlich hält, wird eine repository copy
durchgeführt. Bei diesem Vorgang wird einer der
CVS-Meister die Dateien direkt innerhalb des Repository
verschieben, statt das Programm &man.cvs.1; zu
benutzen.Warum sollte mich die Farbe des Fahrradschuppens
interessieren?Die ganz, ganz kurze Antwort ist: Überhaupt nicht.
Die etwas längere Antwort lautet: Nur weil Sie in der
Lage sind, einen Fahrradschuppen zu bauen, müssen Sie
noch lange nicht andere davon abhalten, nur weil Ihnen die
Farbe nicht gefällt. Dies ist natürlich eine
Metapher dafür, dass Sie nicht eine Diskussion über
jede kleine Änderung beginnen sollen, nur weil Sie
das können. Einige Leute behaupten sogar, dass
die Anzahl der (nutzlosen) Kommentare über eine
Änderung umgekehrt proportional zur
Komplexität der Änderung ist.Die noch längere und vollständigere Antwort
ist, dass &a.phk; nach einen langen Diskussion
über das Thema "Soll &man.sleep.1; Sekundenbruchteile
als Parameter akzeptieren?" eine lange Mail mit dem Titel
A
bike shed (any colour will do) on greener
grass... schrieb. Die einschlägigen
Teile der Nachricht lauteten:
&a.phk; in freebsd-hackers,
2.10.1999Einige von Euch haben mich gefragt, Was
meinst Du mit dem Fahrradschuppen?Es ist eine lange oder eigentlich eher eine sehr
alte und doch sehr kurze Geschichte. C. Northcote
Parkinson schrieb in den führen sechzigern ein Buch
mit dem Namen Parkinson's Law, das viele
Einblick in die Beziehungen innerhalb des Managements
gibt.[ein paar Kommentare zum Buch gestrichen]In dem Beispiel mit dem Fahrradschuppen ist die
andere wichtige Komponente ein Kernkraftwerk. Ich
glaube, dass zeigt schon, wie alt dieses Buch
ist.Parkinson zeigte, dass man zum Vorstand gehen
kann und die Genehmigung für ein mehrere Millionen
oder sogar Milliarden Dollar teures Kernkraftwerk
bekommt; wenn man aber einen Fahrradschuppen bauen will,
wird man in endlose Diskussionen verwickelt.Laut Parkinson liegt das daran, dass ein
Kernkraftwerk so groß, so teuer und so kompliziert
ist, dass die Leute es nicht verstehen. Und bevor
sie versuchen, es zu verstehen, verlassen Sie sich
lieber darauf, dass irgend jemand sicherlich die
ganzen Details geprüft hat, bevor das Projekt bis
zum Vorstand gekommen ist. Im Buch von Richard P.
Feynmann finden sich einige interessante und sehr
passende Beispiele aus dem Gebiet von Los
Alamos.Ein Fahrradschuppen ist was anderes. Jeder kann an
seinem freien Wochenende einen bauen und hat trotzdem
noch genug Zeit für die Sportschau. Daher ist es
unwichtig, wie gut man sich vorbereitet und wie sinnvoll
der eigene Vorschlag ist. Irgend jemand wird die
Möglichkeit nutzen und zeigen, dass er seine
Arbeit tut, dass er aufmerksam ist, dass er
da ist.In Dänemark nennen wir dieses Verhalten
Seine Fingerabdrücke hinterlassen.
Es geht um persönlichen Stolz und Prestige; die
Chance, auf irgend etwas zu zeigen und zu sagen zu
können: Da! Das habe
Ich getan. Politiker leiden
sehr stark darunter, aber viele Leute verhalten sich so,
wenn sie die Chance haben. Denkt einfach mal an
Fußabdrücke in feuchtem Zement.
Nicht ganz ernstgemeinte FragenWie cool ist FreeBSD?Q. Hat irgend jemand Temperaturmessungen
durchgeführt, während FreeBSD läuft? Ich
weiss, dass &linux; cooler läuft, als DOS, habe
aber niemals gesehen, dass FreeBSD erwähnt
wurde. Es scheint sehr heiß zu laufen.A. Nein, aber wir haben zahlreiche Geschmackstests mit
verblendeten Freiwilligen durchgeführt, denen
außerdem zuvor 250 Mikrogramm LSD-25 verabreicht
wurden. 35% der Freiwilligen sagte, dass FreeBSD
nach Orange schmeckte, &linux; hingegen schmecke wie
purple haze (Anm. d. Übersetzers: Song
von Jimmy Hendrix und LSD-Marke). Keine der Gruppen hat
besondere Abweichungen der Temperatur erwähnt.
Eventuell hätten wir sämtliche Ergebnisse dieser
Untersuchung fortwerfen sollen, als wir festgestellt
haben, dass zu viele der Freiwilligen den Raum
während der Tests verlassen haben und dadurch die
Ergebnisse verfälscht haben. Wir glauben, dass
die meisten der Freiwilligen nun bei Apple sind und an
ihrer neuen scratch and sniff
Oberfläche arbeiten. Es ist ein lustiges, altes
Geschäft, in dem wir uns befinden!Ernsthaft, FreeBSD und &linux; benutzen beide die
Instruktion HLT (halt), wenn das System
untätig ist, wodurch der Energieverbrauch und dadurch
die produzierte Wärme reduziert wird. Falls Sie auch
noch APM (Advanced Power Management) konfiguriert haben,
kann FreeBSD Ihre CPU auch in einen Low-Power-Modus
bringen.Wer kratzt in meinen Speicherbänken??Q. Gibt es irgend etwas seltsames, das
FreeBSD tut, wenn ich den Kernel kompiliere, das dazu
führt, dass der Speicher ein kratzendes
Geräusch macht? Bei der Kompilierung (und auch
für einen kurzen Moment nach der Erkennung des
Floppy-Laufwerks beim Hochfahren), kommt ein seltsames
kratzendes Geräusch von etwas das die
Speicherbänke zu sein scheinen.A. Ja! In der BSD-Dokumentation finden Sie
häufige Verweise auf Daemons und was
die meisten Leute nicht wissen, ist, dass diese sich
auf echte, nicht-körperlichen Wesen beziehen, die
Besitz von Ihrem Computer ergriffen haben. Das kratzende
Geräusch, das von Ihrem Speicher kommt, ist in
Wirklichkeit hochtöniges Flüstern, das unter den
Daemons ausgetauscht wird, während Sie entscheiden,
wie Sie die verschiedenen Systemadministrationsaufgaben,
am besten erledigen.Wenn Sie das Geräusch stört, wird ein
fdisk /mbr sie vertreiben, aber wundern
Sie sich nicht, wenn sie feindlich reagieren und
versuchen, Sie aufzuhalten. Wenn Sie während der
Ausführung zu irgendeinem Zeitpunkt die teuflische
Stimme von Bill Gates aus dem eingebauten Lautsprecher
kommen hören, laufen Sie weg und sehen Sie sich auf
keinen Fall um! Befreit von dem ausgleichenden
Einfluss der BSD Dämonen sind die beiden
Dämonen von DOS und &windows; oft dazu in der Lage, die
totale Kontrolle über Ihre Maschine für die
ewige Verdammung Ihrer Seele zurückzuerlangen. Da
Sie jetzt die Wahrheit kennen, würden Sie es
vorziehen, sich an die Geräusche zu gewöhnen,
wenn Sie die Wahl hätten.Wie viele FreeBSD-Hacker braucht man, um eine
Glühbirne auszuwechseln?Eintausendeinhundertundneunundsechzig:Dreiundzwanzig, die sich bei -CURRENT beschweren,
dass das Licht aus ist;Vier, die behaupten, dass es sich um ein
Konfigurationsproblem handelt und dass solche Dinge
wirklich nach -questions gehören;Drei, die PRs hierzu einreichen, einer von ihnen wird
falsch unter DOC abgelegt und fristet sein Dasein im
Dunkeln;Einen, der eine ungetestete Glühbirne einreicht,
wonach buildworld nicht mehr funktioniert, und sie dann
fünf Minuten später wieder herausnimmt;Acht, die die PR-Erzeuger beschimpfen, weil sie zu
ihren PRs keine Patche hinzugefügt haben;Fünf, die sich darüber beschweren, dass
buildworld nicht mehr funktioniert;Einunddreißig, die antworten, dass es bei
ihnen funktioniert und dass sie cvsup wohl zu einigem
ungünstigen Zeitpunkt durchgeführt
haben;Einen, der einen Patch für eine neue
Glühbirne an -hackers schickt;Einen, der sich beschwert, dass es vor drei
Jahren Patches hierfür hatte, aber als er sie nach
-CURRENT schickte, sind sie einfach ignoriert worden und
er hatte schlechte Erfahrungen mit dem PR-System; nebenbei
ist die vorgeschlagene Glühbirne nicht
reflexiv;Siebenunddreißig, die schreien, dass
Glühbirnen nicht in das Basissystem gehören,
dass Committer nicht das Recht haben, solche Dinge
durchzuführen, ohne die Gemeinschaft zu konsultieren
und WAS GEDENKT -CORE HIER ZU TUN!?Zweihundert, die sich über die Farbe des
Fahrradschuppens beschweren;Drei, die darauf hinweisen, dass der Patch nicht
mit &man.style.9; übereinstimmt;Siebzehn, die sich beschweren, dass die
vorgeschlagene neue Glühbirne der GPL
unterliegt;Fünfhundertundsechsundachtzig, die sich in einen
Streit über die vergleichbaren Vorteile der GPL, der
BSD-Lizenz, der MIT-Lizenz, der NPL und der
persönlichen Hygiene nichtgenannter FSF-Gründer
verwickeln;Sieben, die unterschiedliche Teile des Threads nach
-chat und -advocacy weiterleiten;Einer, der die vorgeschlagene Glühbirne einbaut,
obwohl sie dunkler leuchtet, als die alte;Zwei, die sie wieder ausbauen, und in einer
wütenden Nachricht argumentieren, dass FreeBSD
besser ganz im Dunkeln dasteht, als mit einer
dämmerigen Glühbirne;Sechsundvierzig, die sich lärmend wegen des
Wiederausbaus der dämmerigen Glühbirne streiten
und eine Erklärung von -core verlangen;Elf, die eine kleinere Glühbirne beantragen,
damit sie in ihr Tamagotchi passt, falls wir
irgendwann beschließen, FreeBSD auf diese Plattform
zu portieren;Dreiundsiebzig, die sich über die SNR auf
-hackers und -chat beschweren und aus Protest
abmelden;Dreizehn, die unsubscribe,
How do I unsubscribe?
oder Please remove me from the list gefolgt
von der üblichen Fußzeile abschicken;Einen, der eine funktionierende Glühbirne
einbaut, während alle zu beschäftigt damit sind,
mit jedem zu streiten, um es zu bemerken;Einunddreißig, die herausstellen, dass die
neue Glühbirne 0,364% heller leuchten würde,
wenn sie mit TenDRA kompiliert werden würde (obwohl
sie in einen Würfel umgeformt werden
müsste) und dass FreeBSD deshalb nach
TenDRA, anstatt nach GCC wechseln sollte;Einen, der sich beschwert, dass bei der neuen
Glühbirne die Verkleidung fehlt;Neun (einschließlich der PR-Ersteller), die
fragen Was ist MFC?Siebenundfünfzig, die sich zwei Wochen, nachdem
die Birne gewechselt worden ist, darüber beschweren,
dass das Licht aus war.&a.nik; hat
hinzugefügt:Ich habe ziemlich hierüber
gelacht.Und dann dachte ich: "Halt, sollte in dieser
Liste nicht irgendwo 'Einer, der es dokumentiert'
sein?"Und dann wurde ich erleuchtet
:-)Was passiert mit den Daten, die nach
/dev/null geschrieben werden?Sie werden in einer speziellen Datensenke der CPU in
Wärme umgewandelt, die dann über den
Kühlkörper und den Lüfter abgeführt
wird. Dies ist einer der Gründe für die
Kühlung von CPUs; die Anwender gewöhnen sich an
die schnelleren Prozessoren, gehen nicht mehr so
sorgfältig mit Ihren Daten um und so landen immer
mehr Daten in /dev/null, was zur
Überhitzung der CPU führt. Wenn Sie
/dev/null löschen (was die
Datensenke ziemlich sicher abschaltet), wird Ihre CPU zwar
nicht mehr so heiß, dafür wird Ihr System aber
sehr schnell von den überzähligen Daten
überladen und merkwürdige Effekte zeigen. Wenn
Sie eine sehr schnell Netzwerkverbindung haben,
können Sie Ihre CPU kühlen, indem sie Daten aus
/dev/random lesen und in die Weite
des Netzwerkes schicken; allerdings besteht hier die
Gefahr der Überhitzung von Netzwerk und
/. Außerdem dürfte Ihr
ISP ziemlich wütend werden, da der größte
Teil der Daten von seinen Geräten in Hitze
umgewandelt werden wird; da ISPs aber über
Klimaanlagen verfügen, sollte das kein großes
Problem sein, solange Sie es nicht
übertreiben.Nachtrag Paul Robinson:Es gibt andere Mittel und Wege. Wie jeder gute
Systemadministrator weiss, gehört es zum guten
Ton, einigen Daten zum Bildschirm zu senden, damit die
Leuchtkäferchen, die das Bild anzeigen,
glücklich sind. Die Leuchtkäferchen werden nach
der Farbe Ihrer Hüte (Rot, Grün, oder Blau)
unterschieden und sie verstecken bzw. zeigen sich (wobei
man die Farbe ihrer Hüte erkennen kann) bei jeder
Nahrungsaufnahme. Grafikkarten wandeln Daten in
Leuchkäfer-Nahrung um und schicken sie dann zu den
Leuchtkäfern - teure Karten erzeugen bessere Nahrung
und sorgen so für besseres Verhalten der
Leuchtkäfer. Diese brauchen allerdings einen
konstanten Stimulus - darum gibt es
Bildschirmschoner.Darum lautet mein Vorschlag, die zufälligen Daten
einfach zum Bildschirm zu schicken, damit sie von den
Leuchtkäfern verzehrt werden. Dabei entsteht keine
Hitze, die Leuchtkäfer bleiben glücklich und man
wird seine überflüssigen Daten sehr schnell los,
auch wenn der Bildschirm etwas merkwürdig
aussieht.Übrigens: Als Ex-Admin eines großen ISPs,
der so seine Probleme mit der Kühlung seines
Rechenzentrums hatte, kann ich nur davon abraten,
überflüssige Daten einfach in das Netzwerk zu
schicken. Die Heinzelmännchen, die die Pakete
verteilen und versenden, regen sich darüber ganz
furchtbar auf.Weiterführende ThemenWie kann ich mehr über die Interna von FreeBSD
erfahren?Zurzeit gibt es nur ein Buch über die Interna von
FreeBSD, The Design and Implementation of the FreeBSD
Operating System von Marshall Kirk McKusick und
George V. Neville-Neil, ISBN 0-201-70245-2, das sich auf
FreeBSD 5.X konzentriert.Allgemeines Wissen über &unix; kann
allerdings in den meisten Fällen auf FreeBSD
angewendet werden.Eine Liste finden Sie im entsprechenden Abschnitt der
Bibliographie.Wie kann ich bei der Entwicklung von FreeBSD
mitarbeiten?Genauere Informationen finden Sie im Artikel FreeBSD
unterstützen. Wir können Hilfe
immer gut gebrauchen!Was sind SNAPs und RELEASEs?Derzeit existieren drei aktive/halbaktive Zweige im
FreeBSD-CVS-Repository. In früheren Zweigen
ändert sich wenig, daher gibt es nur drei
aktive Entwicklungszweige:RELENG_4 bzw.
4.X-STABLERELENG_5 bzw.
5-STABLEHEAD bzw.
-CURRENT oder
6.X-CURRENTHEAD ist keine wirkliche
Bezeichnung für einen Zweig, wie die anderen beiden.
Es ist lediglich eine symbolische Konstante für
den aktuellen, nicht verzweigten
Entwicklungsstrom, auf den wir uns
einfach als -CURRENT beziehen.Zurzeit ist -CURRENT der 6.X
Entwicklungsstrom, der 4-STABLE-Zweig
(RELENG_4) wurde im März 2000, der
5-STABLE-Zweig (RELENG_5)
im Oktober 2004 von -CURRENT
abgespalten.Wie kann ich meine eigene, angepasstes Release
erstellen?Eine Anleitung dazu finden Sie im Artikel
FreeBSD Release Engineering.Wieso überschreibt make world
das installierte System?Das ist beabsichtigt. Wie der Name schon andeutet,
erstellt make world alle Systemdateien
von Grund auf neu. Sie können also sicher sein, am
Ende eine saubere, konsistente Umgebung zu haben (das ist
der Grund, warum es so lange dauert).Falls die Umgebungsvariable DESTDIR
während der Ausführung von make
world oder make install
definiert ist, werden die neu erstellten Binaries unter
${DESTDIR} in einem zum
installierten identischen Verzeichnisbaum abgelegt.
Einige zufällige Kombinationen von Änderungen
von Shared Libraries und Neuerstellungen von Programmen
können hierbei jedoch ein Scheitern von make
world verursachen.Warum ist cvsup.FreeBSD.org
kein Round-Robin-Eintrag im DNS, so dass Anfragen
auf alle CVsup-Server verteilt werden?Die CVsup-Server gleichen sich stündlich
mit dem Hauptserver ab. Allerdings findet der
Abgleich nicht zur gleichen Zeit statt, daher
können einige Server neuere Quellen bereitstellen
als andere Server. Alle Server stellen jedoch
Quellen bereit, die maximal eine Stunde alt sind.
Wäre cvsup.FreeBSD.org
ein Round-Robin-Eintrag im DNS, der Benutzern einen
zufälligen Server zuteilt, könnten beim
zweiten Lauf von CVsup ältere Quellen als beim
ersten Lauf heruntergeladen werden.Warum meldet mein System (bus speed
defaulted) beim Start?Die Adaptec 1542 SCSI Hostadapter erlauben dem
Benutzer die Buszugriffsgeschwindigkeit per Software zu
konfigurieren. Ältere Versionen des 1542-Treibers
versuchten, die schnellstmögliche Geschwindigkeit
herauszufinden und konfigurierten den Adapter
entsprechend. Wir haben festgestellt, dass dies auf
einigen Systemen nicht funktioniert, weshalb Sie nun die
Kernelkonfigurationsoption TUNE_1542
definieren müssen, um es zu aktivieren. Die
Benutzung auf Systemen, auf denen es funktioniert,
könnte Ihre Platten schneller machen, aber auf den
Systemen, auf denen es nicht funktioniert, könnten
Ihre Daten beschädigt werden.Kann ich -CURRENT mit begrenztem Internetzugang
folgen?Ja, Sie können das tun, ohne
den gesamten Quellbaum herunterzuladen, indem Sie die
Einrichtung CTM
benutzen.Wie haben Sie die Distribution in 240k-Dateien
aufgespalten?Bei neueren BSD-basierten Systemen gibt es eine Option
zu &man.split.1;, die das Splitten von
Dateien an willkürlichen Bytegrenzen erlaubt.Hier ist ein Beispiel aus
/usr/src/Makefile.
bin-tarball:
(cd ${DISTDIR}; \
tar cf - . \
gzip --no-name -9 -c | \
split -b 240640 - \
${RELEASEDIR}/tarballs/bindist/bin_tgz.)
Ich habe eine Kernelerweiterung geschrieben. An wen
sende ich sie?Lesen Sie bitte den Artikel
FreeBSD unterstützen.Und Danke, dass Sie darüber
nachdenken!Wie werden Plug&Play ISA-Karten erkannt und
initialisiert?Von: Frank Durda IV
uhclem@nemesis.lonestar.orgKurz gesagt gibt es nur wenige I/O-Ports über die
PnP-Karten antworten, wenn der Host fragt, ob jemand da
ist. Wenn die PnP-Erkennungsroutine startet, fragt sie,
ob irgendwelche PnP-Karten vorhanden sind und alle
PnP-Karten antworten mit ihrer Modellnummer auf demselben
Port, von dem sie auch gelesen haben. Die
Erkennungsroutine erhält also ein geodertes
Ja auf diese Frage. Mindestens ein Bit
wird bei dieser Antwort gesetzt sein. Die
Erkennungsroutine ist dann in der Lage, dafür zu
sorgen, dass Karten mit Modellnummern (zugeordnet von
Microsoft/Intel) kleiner als X off-line
gesetzt werden. Sie prüft dann, ob immer noch Karten
da sind, die auf die Frage antworten. Falls die Antwort
0 war, sind keine Karten mit IDs
größer X vorhanden. Nun prüft die
Erkennungsroutine, ob Karten unterhalb
X vorhanden sind. Dann setzt die
Erkennungsroutine alle Karten größer als
X-(limit/4) off-line und wiederholt die Frage. Wenn diese
halbbinäre Suche nach IDs in Folge genügend oft
wiederholt worden ist, wird die Erkennungsroutine
schließlich alle in einem Rechner befindlichen
PnP-Karten identifiziert haben und das mit einer
Iterationszahl sehr viel kleiner als 2^64.Die IDs bestehen aus zwei 32-Bit-Feldern (daher 2^64)
+ acht Bit Prüfsumme. Die ersten 32 Bit sind die
Herstellerkennung. Es wurde zwar nicht bestätigt,
aber es wird angenommen, dass unterschiedliche
Kartentypen desselben Herstellers unterschiedliche 32-Bit
Herstellerkennungen besitzen können. 32 Bit nur
für eindeutige Hersteller zu benötigen, scheint
etwas übertrieben.Die niedrigen 32 Bit sind eine Seriennummer,
Ethernetadresse - etwas, das die betreffende Karte
einzigartig macht. Die Hersteller dürfen niemals
eine zweite Karte mit denselben niedrigen 32 Bit
herstellen, es sei denn, die höheren 32 Bit sind
unterschiedlich. Sie können also mehrere Karten des
selben Typs im Rechner haben und die gesamten 64 Bit
bleiben stets eindeutig.Die 32-Bit-Gruppen können niemals nur aus Nullen
bestehen. Das erlaubt es, bei der binären Suche zu
Beginn nur auf von Null verschiedene Bits zu
achten.Wenn das System alle vorhandenen Karten-IDs
identifiziert hat, reaktiviert es jede Karte - eine nach
der anderen (über dieselben I/O-Ports) und ermittelt,
welche Ressourcen von der jeweiligen Karte benötigt
werden, welche Wahlmöglichkeiten für Interrupts
bestehen usw. Alle Karten werden abgefragt, um diese
Informationen zusammenzustellen.Diese Informationen werden dann mit Informationen aus
allen ECU-Dateien auf der Festplatte oder mit im MLB-BIOS
verdrahteten Informationen verknüpft. Die ECU- und
BIOS-PnP-Unterstützung für Hardware auf dem MLB
ist für gewöhnlich künstlich und was die
Peripheriegeräte tun ist nicht wirklich echtes PnP.
Durch die Untersuchung der BIOS-Informationen und der
ECU-Informationen können die Erkennungsroutinen
jedoch die von PnP-Geräten benutzten Ressourcen so
ändern, dass vermieden wird, dass bereits
von anderen Geräten benutzte Ressourcen verwendet
werden.Dann werden die PnP-Geräte nochmals besucht und
ihre I/O, DMA, IRQ und Memory-Map-Adressen werden
zugeordnet. Die Geräte werden an diesen Stellen
sichtbar werden und dort bis zum nächsten Reboot
verbleiben. Allerdings hindert Sie auch nichts daran, sie
zu verschieben, wohin Sie wollen.Im obigen Teil wurde sehr viel vereinfacht, aber die
grundlegende Idee sollte klar geworden sein.Microsoft hat einige der primären
Druckerstatusports für PnP übernommen, da keine
Karte diese Adressen für die entgegengesetzten
I/O-Zyklen decodiert. Ich habe während der
frühen Überprüfungsperiode des
PnP-Vorschlags eine echte IBM Druckerkarte gefunden, die
Schreibzugriffe auf dem Statusport decodiert hat, aber MS
hat nur tough gesagt. Also schreiben sie
auf den Druckerstatusport, um Adressen zu setzen, benutzen
zusätzlich diese Adresse + 0x800
und einen dritten I/O-Port zum Lesen, der irgendwo
zwischen 0x200 und
0x3ff liegen kann.Wie bekomme ich eine Major-Number für einen
Gerätetreiber, den ich geschrieben habe?&os.current; stellt seit Februar 2003
Major-Numbers für Geräte zur Laufzeit automatisch
bereit. Nach Möglichkeit sollte diese neue
Funktion benutzt werden, anstatt eine Major-Number
statisch festzulegen. Weitere Hinweise finden Sie in
src/sys/conf/majors.Wenn Sie eine statisch festgelegte Major-Number
benötigen, hängt das weitere Verfahren davon ab,
ob Sie den Treiber frei verfügbar machen wollen.
Falls dem so ist, senden Sie uns bitte eine Kopie der
Treiber-Sourcen und zusätzlich die entsprechenden
Änderungen der Datei files.i386,
ein Beispiel für einen Eintrag in der
Konfigurationsdatei und den entsprechenden Code für
&man.MAKEDEV.8;, der die Gerätedateien für Ihr
Gerät erzeugt. Falls Sie nicht beabsichtigen,
den Treiber frei verfügbar zu machen, oder es
aufgrund von Lizenzbeschränkungen nicht können,
dann ist die Major-Number 32 für zeichenorientierte
und die Major-Number 8 für blockorientierte
Geräte speziell für diesen Zweck reserviert. In
jedem Fall würden wir uns freuen, auf der Mailingliste
&a.hackers; etwas über Ihren neuen Treiber zu
hören.Gibt es alternative Layoutverfahren für
Verzeichnisse?Als Antwort auf die Frage nach alternativen
Layoutverfahren für Verzeichnisse ist das Schema, das
derzeit benutzt wird, unverändert von dem, das ich
1983 geschrieben habe. Ich habe das Vorgehen für das
originale Fast-Filesystem geschrieben und es niemals
überarbeitet. Es funktioniert gut, wenn es darum
geht, zu verhindern, dass Zylindergruppen volllaufen.
Wie viele von Ihnen angemerkt haben, funktioniert es
schlecht für find. Die meisten Dateisysteme werden
von Archiven erstellt, die mit einer Tiefensuche (also
ftw) erstellt wurden. Diese Verzeichnisse werden
über die Zylindergruppen hinweg entfaltet und
erzeugen denkbar ungünstigste Voraussetzungen
für zukünftige Tiefensuchen. Falls man die
Gesamtzahl der zu erstellenden Verzeichnisse wüsste,
wäre die Lösung die, (gesamt / fs_ncg) pro
Zylindergruppe zu erstellen, bevor fortgefahren wird.
Offensichtlich müsste man eine Heuristik
erstellen, um die Zahl zu schätzen. Sogar die
Benutzung einer kleinen, fixen Zahl, z.B. 10, würde
eine Verbesserung um Größenordnungen ausmachen.
Um Wiederherstellungen von normalem Betrieb (wo der
derzeitige Algorithmus vermutlich sinnvoller ist) zu
unterscheiden, könnten Sie die Clusterung von bis zu
10 benutzen, wenn sie alle innerhalb eines
10-Sekunden-Fensters durchgeführt würden.
Jedenfalls ist mein Schluss, dass dies ein
fruchtbares Gebiet für Experimente ist.Kirk McKusick, September 1998Wie kann ich optimalen Nutzen aus einer kernel panic
ziehen?[Dieser Abschnitt wurde von &a.des;, der
einige Tippfehler korrigiert und die Kommentare in eckigen
Klammern hinzugefügt hat, aus einer Mail von
&a.wpaul; in der Mailingliste freebsd-current
entnommen.]
From: Bill Paul <wpaul@skynet.ctr.columbia.edu>
Subject: Re: the fs fun never stops
To: Ben Rosengart
Date: Sun, 20 Sep 1998 15:22:50 -0400 (EDT)
Cc: current@FreeBSD.org
[<Ben Rosengart> sendete die
folgende Panik-Meldung]
> Fatal trap 12: page fault while in kernel mode
> fault virtual address = 0x40
> fault code = supervisor read, page not present
> instruction pointer = 0x8:0xf014a7e5
^^^^^^^^^^
> stack pointer = 0x10:0xf4ed6f24
> frame pointer = 0x10:0xf4ed6f28
> code segment = base 0x0, limit 0xfffff, type 0x1b
> = DPL 0, pres 1, def32 1, gran 1
> processor eflags = interrupt enabled, resume, IOPL = 0
> current process = 80 (mount)
> interrupt mask =
> trap number = 12
> panic: page fault
[Wenn] Sie eine Meldung wie diese sehen, reicht es
nicht, sie einfach zu reproduzieren und sie einzusenden.
Der Wert des Instruktionszeigers, den ich oben
hervorgehoben habe, ist wichtig; leider ist er auch
konfigurationsabhängig. Mit anderen Worten variieren
die Werte abhängig von dem Kernel-Image, das Sie
tatsächlich benutzen. Wenn Sie ein GENERIC
Kernelimage von einem der Snapshots benutzen, dann ist es
für jemand anderen möglich, die fehlerhafte
Instruktion herauszufinden, aber wenn Sie einen
angepassten Kernel benutzen, können nur
Sie uns sagen, wo der Fehler
auftrat.Was Sie tun sollten, ist folgendes:Notieren Sie sich den Wert des
Instruktionszeigers. Beachten Sie, dass der Teil
0x8: am Anfang in diesem Fall nicht
von Bedeutung ist; der Teil
0xf0xxxxxx ist der, den wir
wollen.Tun Sie folgendes, wenn das System
rebootet:&prompt.user; nm -n /kernel.that.caused.the.panic | grep f0xxxxxxwobei 0xf0xxxxxx der Wert des
Instruktionszeigers ist. Es besteht die
Möglichkeit, dass Sie keinen exakten Treffer
erzielen, weil die Symbole in der Symboltabelle des
Kernels Funktionseinstiegspunkte sind und die Adresse
des Instruktionszeiger irgendwo innerhalb einer
Funktion liegen wird und nicht am Anfang. Falls sie
keinen exakten Treffer erzielen, lassen Sie den
letzten Teil des Werts des Instruktionszeigers weg und
versuchen es nocheinmal, z.B.:&prompt.user; nm -n /kernel.that.caused.the.panic | grep f0xxxxxFalls das kein Ergebnis liefert, hacken Sie eine
weitere Ziffer ab. Wiederholen Sie die Schritte, bis
Sie irgendeine Ausgabe erhalten. Das Ergebnis wird
eine Liste möglicher Funktionen sein, die die
Panik verursacht haben. Das ist zwar kein absolut
genauer Mechanismus, um die Fehlerursache ausfindig zu
machen, aber es ist besser als gar nichts.Ich sehe ständig Leute, die Panik-Meldungen wie
diese zeigen, aber ich sehe kaum jemanden, der sich die
Zeit nimmt, den Instruktionszeiger einer Funktion aus der
Symboltabelle des Kernel zuzuordnen.Der beste Weg, den Grund für eine Panik
herauszufinden, ist der, einen Crash-Dump festzuhalten und
dann &man.gdb.1; zu benutzen, um den Stack im Crash-Dump
zurückzuverfolgen.Jedenfalls ist die Methode, die ich normalerweise
benutze, folgende:Richten Sie eine Kernelkonfigurationsdatei ein,
fügen Sie optional options DDB
hinzu, falls Sie glauben, dass Sie den
Kerneldebugger benötigen. (Ich benutze ihn
hauptsächlich zum Setzen von Haltepunkten, wenn
ich eine Endlosschleife irgendeiner Art
vermute.)Benutzen Sie config -g
KERNELCONFIG, um
das Erstellungsverzeichnis einzurichten.cd
/sys/compile/KERNELCONFIG;
makeWarten Sie, bis der Kernel fertig kompiliert
ist.make installrebootDer &man.make.1;-Prozess wird zwei Kernel
erstellt haben: kernel und
kernel.debug.
kernel wurde als
/kernel installiert, während
kernel.debug als Quelle für
Debuggersymbole für &man.gdb.1; benutzt werden
kann.Um sicherzustellen, dass ein Crash-Dump erhalten
bleibt, müssen Sie
/etc/rc.config editieren und
dumpdev so setzen, dass es auf
Ihre Swap-Partition zeigt. Das bewirkt, dass die
&man.rc.8;-Skripte den Befehl &man.dumpon.8; benutzen, um
Crash-Dumps zu ermöglichen. Sie können
&man.dumpon.8; auch manuell ausführen. Nach einer
Panik kann der Crash-Dump mit &man.savecore.8;
wiederhergestellt werden; wenn dumpdev
in /etc/rc.conf gesetzt ist, werden
die &man.rc.8;-Skripte &man.savecore.8; automatisch
ausführen und den Crash-Dump unter
/var/crash ablegen.Crash-Dumps von FreeBSD sind für
gewöhnlich genauso groß wie der physikalische
Hauptspeicher Ihres Rechners. Das heißt, wenn Sie
64MB RAM haben, werden sie einen 64MB Crash-Dump
erhalten. Deshalb müssen Sie dafür sorgen, dass
genügend Speicherplatz in
/var/crash zur Verfügung
steht, um den Dump aufnehmen zu können. Alternativ
führen Sie &man.savecore.8; manuell aus und lassen
es den Crash-Dump in einem anderen Verzeichnis
wiederherstellen, in dem Sie mehr Platz haben. Es ist
möglich, die Größe des Crash-Dumps zu
begrenzen, indem options MAXMEM=(foo)
benutzt wird, um den Speicher, den der Kernel benutzt,
auf einen etwas vernünftigeren Wert zu setzen.
Wenn Sie z.B. 128MB RAM haben, können Sie die
Speicherbenutzung des Kernels auf 16MB begrenzen, so
dass die Größe Ihres Crash-Dumps 16MB
anstatt 128MB beträgen wird.Wenn Sie den Crash-Dump wiederhergestellt haben,
können Sie den Stack mit &man.gdb.1; so
zurückverfolgen:&prompt.user; gdb -k /sys/compile/KERNELCONFIG/kernel.debug /var/crash/vmcore.0(gdb)whereBeachten Sie, dass es mehrere Seiten mit
wertvollen Informationen geben könnte; idealerweise
sollten Sie &man.script.1; benutzen, um sie alle
festzuhalten. Wenn Sie das vollständige Kernelimage
mit allen Debugginginformationen benutzen,
müssten Sie exakt die Zeile des
Kernel-Sourcecodes finden, wo die Panik aufgetreten ist.
Für gewöhnlich müssen Sie den Stack von
unten an zurückverfolgen, um die genaue
Ereignisabfolge, die zum Crash führte,
zurückzuverfolgen. Sie können &man.gdb.1; auch
zum Ausdrucken der Inhalte verschiedener Variablen oder
Strukturen benutzen, um den Systemstatus zum Zeitpunkt des
Absturzes zu untersuchen.Wenn Sie nun wirklich verrückt sind und einen
zweiten Computer haben, können Sie &man.gdb.1; auch
für entferntes Debugging konfigurieren, so dass
Sie &man.gdb.1; auf einem System benutzen können, um
den Kernel auf einem anderen System zu debuggen,
einschließlich dem Setzen von Haltepunkten und dem
Bewegen in Einzelschritten durch den Kernelcode, genauso,
wie Sie es mit einem normalen Benutzerprogramm tun
können. Ich habe noch nicht damit gespielt weil ich
nicht oft Gelegenheit habe, zwei Rechner nebeneinander
für Debuggingzwecke einzurichten.[Bill hat hinzugefügt: "Ich
vergaß, etwas zu erwähnen: wenn Sie DDB
aktiviert haben und der Kernel im Debugger landet,
können Sie eine Panik (und einen Crash-Dump)
erzwingen, indem Sie einfach 'panic' am ddb-Prompt
eingeben. Er könnte während der Panikphase
wieder im Debugger stoppen. Falls er das tut, geben Sie
'continue' ein, dann wird er den Crash-Dump beenden."
-ed]Wieso funktioniert dlsym() nicht mehr für
ELF-Executables?Die ELF-Werkzeuge machen die in einem Executable
definierten Symbole dem dynamischen Linker nicht
standardmäßig sichtbar. Konsequenterweise
werden dlsym()-Suchen nach Handlern
aus Aufrufen von dlopen(NULL, flags)
diese Symbole nicht finden können.Wenn Sie mit dlsym() nach im
Hauptexecutable eines Prozesses vorhandenen Symbolen
suchen wollen, müssen Sie das Executable mit der
Option von &man.ld.1;
linken.Wie kann ich den Adressraum des Kernels
vergrössern oder verkleinern?Standardmäßig beträgt der
Adressraum des Kernels 256MB (FreeBSD 3.X) bzw. 1 GB
(FreeBSD 4.X). Wenn Sie einen netzwerkintensiven Server
(z.B. einen großen FTP- oder HTTP-Server) betreiben,
kann es sein, dass Sie der Meinung sind, dass
256MB nicht ausreichen.Wie also erhöhen Sie den Adressraum? Hier
gibt es zwei Aspekte. Erstens müssen Sie dem Kernel
sagen, dass er einen größeren Anteil des
Adressraums für sich selbst reservieren soll.
Da der Kernel am oberen Ende des Adressraums geladen
wird, müssen Sie zweitens die Ladeadresse verringern,
damit er mit dem Kopf nicht gegen die Obergrenze
stößt.Das erste Ziel erreicht man, indem man den Wert von
NKPDE in
src/sys/i386/include/pmap.h
erhöht. Für einen Adressraum von 1 GB
sieht das so aus:
#ifndef NKPDE
#ifdef SMP
#define NKPDE 254 /* addressable number of page tables/pde's */
#else
#define NKPDE 255 /* addressable number of page tables/pde's */
#endif /* SMP */
#endif
Dividieren Sie die gewünschte
Adressraumgröße (in Megabyte) durch vier
und subtrahieren Sie dann eins für UP und zwei
für SMP, um den korrekten Wert für
NKPDE zu finden.Um das zweite Ziel zu erreichen müssen Sie die
korrekte Ladeadresse berechnen: subtrahieren Sie einfach
die Größe des Adressraums (in Byte) von
0x100100000; für einen Adressraum von 1 GB
lautet das Ergebnis 0xc0100000. Setzen Sie
LOAD_ADDRESS in
src/sys/i386/conf/Makefile.i386 auf
diesen Wert; setzen Sie dann den Location-Counter am
Anfang der Abschnittsliste in
src/sys/i386/conf/kernel.script auf
denselben Wert:
OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
OUTPUT_ARCH(i386)
ENTRY(btext)
SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/obj/elf/home/src/tmp/usr/i386-unknown-freebsdelf/lib);
SECTIONS
{
/* Read-only sections, merged into text segment: */
. = 0xc0100000 + SIZEOF_HEADERS;
.interp : { *(.interp) }
Konfigurieren und erstellen Sie Ihren Kernel dann neu.
Sie werden vermutlich Probleme mit &man.ps.1;, &man.top.1;
und ähnlichen Programmen haben. Ein make
world sollte diese beheben; alternativ
können Sie die gepatchte pmap.h
in das Verzeichnis /usr/include/vm
kopieren und danach libkvm,
&man.ps.1; und &man.top.1; neu erzeugen.Hinweis: die Größe des
Kernel-Adressraums muss ein Vielfaches von vier
Megabyte betragen.[&a.dg; fügt hinzu: Ich glaube, der
Kerneladressraum muss eine Zweierpotenz sein,
aber ich bin mir dessen nicht sicher. Der alte
(ältere) Bootcode pflegte die oberen Adressbits
zu mißbrauchen und ich glaube, er erwartete
mindestens 256MB Granularität.]Danksagung
FreeBSD Core TeamFalls Sie ein Problem in dieser FAQ entdecken, oder einen
Eintrag einsenden möchten, senden Sie uns bitte eine Mail
an &a.de.translators; Wir schätzen Ihr Feedback und können
diese FAQ ohne Ihre Hilfe nicht verbessern!
Originalversion&a.jkh;Gelegentliche Anpassungen von Umstrukturierungen der
FAQ und Aktualisierung.&a.dwhite;Dienste über Pflichtbesuche in freebsd-questions
hinaus&a.joerg;Dienste über Pflichtbesuche im Usenet
hinaus&a.wollman;Netzwerke und FormatierungJim LoweMulticast-Informationen&a.pds;Schreibmaschinenknecht der FreeBSD-FAQDas FreeBSD-TeamNörgeln, Stöhnen, Einsenden von
DatenFolgende Personen haben durch die Beantwortung von Fragen,
sowie durch Hinweise und Kommentare an der Entstehung der
deutschen Übersetzung mitgewirkt:Ross Alexander&a.jhb;&a.nik;Glen FosterOliver FrommeFrank GruenderChris HillJames Howard&a.jkh;&a.alex;&a.jmas;Mike MeyerDan O'ConnorEric Ogren&a.de.pierau;Oliver SchneiderChristoph SoldUnd an alle anderen, an die wir nicht gedacht haben.
Entschuldigung und herzlichen Dank!
&bibliography;
diff --git a/de_DE.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml b/de_DE.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml
index 7f7b0ff25b..1f260db076 100644
--- a/de_DE.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml
+++ b/de_DE.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml
@@ -1,51 +1,2980 @@
- # Auszeichnung mit SGML
+ SGML-Dokumente erstellen
+
+ In diesem Kapitel werden die beiden vom FDP eingesetzen
+ Auszeichnungssprachen HTML und DocBook behandelt. Hierbei
+ beschränkt sich dieses Kapitel auf die Elemente, die bei der
+ täglichen Arbeit am ehesten zum Einsatz kommen werden.
+
+ Beide Sprachen besitzen eine große Anzahl von Elementen.
+ Das erschwert es, das richtige Element in der richtigen Situation
+ auszuwählen. Aus diesem Grund werden zu jedem Element auch
+ immer Beispiele angeboten, die den richtigen Einsatz des Elements
+ verdeutlichen sollen.
+
+ Es ist nicht das Ziel dieses Kapitels möglichst viele
+ Elemente beider Sprachen zu behandeln – dies wäre nur
+ eine Wiederholung der eigentlichen Sprachreferenz. Sofern es
+ Unklarheiten zur Verwendung einzelner Elemente und Auszeichnung
+ von bestimmten Sachverhalten gibt, können diese an &a.doc;
+ geschickt werden.
+
+
+ Fluß- kontra Blockelemente
+
+
+
+ Wenn im folgenden von
+ Flußelementen die Rede ist, sind
+ damit Elemente gemeint, die in einem Blockelement auftreten
+ können und keinen Zeilenumbruch hervorrufen.
+ Blockelemente hingegen erzeugen unter
+ anderem einen ZeilenumbruchDie englische
+ Bezeichnung inline element
+ wurde in Anlehnung an das Wort Fließtext
+ mit Flußelement
+ übersetzt..
+
+
+
+ HTML
+
+ HTMLHyperText Markup Language
+ ist die Auszeichnungssprache des
+ WWWsWer mehr Informationen zu HTML
+ wünscht, kann diese beim W3C finden.
+ . Sie kommt bei der Erstellung der Webseiten des
+ FreeBSD-Projektes zum Einsatz. Für technische Dokumentationen
+ sollte HTML jedoch nicht eingesetzt werden, da DocBook eine
+ größere und bessere Auswahl an Elementen bietet. Folglich sollte
+ HTML nur dann eingesetzt werden, wenn an den FreeBSD-Webseiten
+ arbeitet wird.
+
+ Die HTML-Spezifikation liegt bis jetzt in mehreren Versionen
+ vor: 1, 2, 3.0, 3.2 und (die aktuelle) 4.0. Von letzterer
+ existieren zwei Varianten: streng (HTML 4.0
+ Strict) und locker (HTML 4.0
+ Transitional).
+
+ Die HTML-DTDs sind über den Port textproc/html verfügbar und werden
+ automatisch als Teil des Metaports textproc/docproj
+ mitinstalliert.
+
+
+ Formale Öffentliche Bezeichner
+
+
+ Da es mehrere Version von HTML gibt, existieren auch
+ mehrere FÖPs, zu denen ein HTML-Dokument konform
+ erklärt werden kann. Die Mehrzahl der sich auf der
+ FreeBSD-Webseite befindenen HTML-Seiten sind zu der lockeren
+ Version von HTML 4.0 konform.
+
+ PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
+
+
+
+ Die Elemente head und
+ body
+
+ Ein HTML-Dokument unterteilt sich normalerweise in zwei
+ Bereiche: head und body. Der
+ Kopf (head) enthält Metadaten
+ wie den Dokumententitel und Angaben zum Autor. Der Rumpf
+ (body) umfaßt den eigentlichen
+ Dokumenteninhalt, der für den Leser bestimmt ist. In einem
+ HTML-Dokument werden diese Bereiche über die Elemente
+ head und body
+ voneinander abgegrenzt. Beide sind Kinder des Wurzelelementes
+ html.
+
+
+ Die Struktur eines HTML-Dokumentes
+
+ <html>
+ <head>
+ <title>Der Dokumententitel</title>
+ </head>
+
+ <body>
+
+ …
+
+ </body>
+</html>
+
+
+
+
+ Blockelemente
+
+
+ Überschriften
+
+ HTML kennt sechs verschiedene Elemente, mit denen
+ Überschriften ausgezeichnet werden können. Das bekannteste
+ Element ist h1, das sich am Anfang der
+ Überschriftenhierarchie befindet. h1
+ folgen die Überschriftenelemente h2 bis
+ h6. Der Inhalt von
+ hN stellt den
+ Text der Überschrift dar.
+
+
+ h1, h2…
+
+ Fügen Sie in eine der existierenden Übungsdateien folgendes ein:
+
+ Erstes Kapitel
+
+
+
+
Das ist die Überschrift des ersten Kapitels
+
+
+
+
Das ist die Überschrift des ersten Unterkapitels
+
+
+
+
Das ist die Überschrift des zweiten Kapitels
+
+]]>
+
+
+ Eine HTML-Seite sollte immer nur eine Überschrift
+ h1 haben. Dieser Überschrift können
+ beliebig viele Kapitel mit einer Überschrift
+ h2 folgen, die selbst wiederum eine
+ beliebige Anzahl von Kapiteln mit einer Überschrift
+ h3 enthalten können. Diese
+ Verschachtelung setzt sich bis zu Kapiteln mit einer
+ h6-Überschrift fort. Es sollte vermieden
+ werden, Elemente in der Überschriftenhierarchie
+ auszulassen.
+
+
+ Falsche Verschachtelung von Überschriften
+
+ Fügen Sie in eine der existierenden Übungsdateien folgendes ein:
+
+ Erstes Kapitel
+
+
+
+
Unterkapitel
+
+]]>
+
+
+
+
+ Absätze
+
+ Absätze können in HTML mit Hilfe des Elementes
+ p ausgezeichnet werden.
+
+
+ Absätze mit dem Element p
+
+ Fügen Sie in eine der existierenden Übungsdateien folgendes ein:
+
+ Das hier, das ist ein Absatz. Absätze können
+ andere Elemente enhalten.
]]>
+
+
+
+
+ Blockzitate
+
+ Ein Blockzitat ist ein etwas umfangreicheres Zitat aus
+ einem anderen Text, das nicht zum aktuellen Absatz
+ gehört.
+
+
+ Blockzitat
+
+ Fügen Sie in eine der existierenden Übungsdateien
+ folgendes ein:
+
+
+
Artikel 1: Menschenwürde; Grundrechtsbindung der
+ staatlichen Gewalt
+
+
+
+
Die Würde des Menschen ist unantastbar. Sie zu achten
+ und zu schützen ist Verpflichtung aller staatlichen
+ Gewalten.
+
+
+
Das Deutsche Volk bekennt sich darum zu unverletzlichen
+ und unveräußerlichen Menschenrechten als Grundlage jeder
+ menschlichen Gemeinschaft, des Friedens und der
+ Gerechtigkeit in der Welt.
+
+
+
Die nachfolgenden Grundrechte binden Gesetzgebung,
+ vollziehende Gewalt und Rechtsprechung als
+ unmittelbar geltendes Recht.
+
+
+]]>
+
+
+
+
+ Listen
+
+ HTML kennt drei Arten von Listen: sortierte, unsortierte
+ und Definitionslisten. Ein Eintrag in einer sortierten Liste
+ wird üblicherweise mit einer Nummer versehen, Einträge in
+ unsortierten Listen hingegen mit einem Aufzählungspunkt.
+ Definitionslisten wiederum bestehen aus zwei Teilen: Der
+ erste enthält den Begriff der definiert werden soll und der
+ zweite dessen Erläuterung.
+
+ Sortierte Listen werden mit dem Element
+ ol (für
+ ordered
+ list) ausgezeichnet,
+ unsortierte Listen mit ul (für
+ unordered
+ list) und
+ Definitionslisten mit dl.
+
+
+ Listenpunkte sortierter und unsortierter Listen werden
+ mit dem Element li ausgezeichnet,
+ welches Text oder andere Blockelemente enthalten kann.
+ Begriffe, die in einer Definitionslisten enthalten sind,
+ werden mit dem Element dt (für
+ definition
+ term) ausgezeichnet.
+ Die Erklärung zu diesem Begriff wird mit Hilfe des Elementes
+ dd (für definition
+ description) markiert. So wie
+ li, kann das Element
+ dd ebenfalls andere Blockelemente
+ aufnehmen.
+
+
+ Listen mit ul und
+ ol erstellen
+
+ Fügen Sie in eine der existierenden Übungsdateien
+ folgendes ein:
+
+ Jetzt folgt eine unsortierte Liste. Wahrscheinlich werden
+ die einzelnen Einträge mit einem vorangehenden Punkt dargestellt.
+
+
+
Erster Eintrag
+
+
Zweiter Eintrag
+
+
Dritter Eintrag
+
+
+
Die zweite Liste ist sortiert und ihre Einträge bestehen aus mehreren Absätzen.
+ Jeder Listeneintrag ist nummeriert.
+
+
+
Das ist der erste Eintrag mit nur einem Absatz.
+
+
Das ist der erste Absatz des zweiten Eintrags.
+
+
Und das ist der zweite Absatz des zweiten Eintrags.
+
+
Der dritte Eintrag besteht ebenfalls nur aus einem Eintrag.
+]]>
+
+
+
+ Definitionslisten mit dl erstellen
+
+ Fügen Sie in eine der existierenden Übungsdateien folgendes ein:
+
+
+
Erster Begriff
+
+
Erster Absatz der Erklärung
+
+
Zweiter Absatz der Erklärung.
+
+
Zweiter Begriff
+
+
Erster Absatz der Erklärung.
+
+
Dritter Begriff
+
+
Erster Absatz der Erklärung zum dritten Begriff.
+ Beachtenswert ist, daß <p> nicht notwendig ist.
+]]>
+
+
+
+
+ Vorformatierter Text
+
+
+ In einigen Fällen ist es gewollt, daß die Formatierung
+ eines Textes im Quelldokument erhalten bleibt, so daß der
+ Leser diesen genau so sieht, wie ihn der Autor erstellt hat.
+ In der HTML-Spezifikation ist dafür das Element
+ pre vorgesehen, welches dafür sorgt, daß
+ Zeilenumbrüche erhalten bleiben und Leerzeichen nicht
+ zusammengefaßt werden. Browser verwenden für den
+ Inhalt des Elementes pre
+ üblicherweise eine Fixschrift.
+
+
+ Vorformatierten Text mit pre erstellen
+
+ Der Originaltext einer E-Mail läßt sich beispielsweise
+ wie folgt einbinden:
+
+
+
+ From: nik@FreeBSD.org
+ To: freebsd-doc@FreeBSD.org
+ Subject: Neue Version verfügbar
+
+ Es ist eine neue Version der Fibel für neue Mitarbeiter am
+ FreeBSD-Dokumentationsprojekt verfügbar:
+
+ URL:http://people.FreeBSD.org/~nik/primer/index.html
+
+ Kommentare und Anmerkungen sind willkommen.
+
+ N]]>
+
+
+
+
+ Tabellen
+
+
+ Die meisten Textbrowser, beispielsweise Lynx, können
+ Tabellen nicht besonders gut darstellen. Deshalb sollten
+ Auszeichnungsalternativen in Betracht gezogen werden, um
+ eine angemessene Darstellung sicherzustellen.
+
+
+ Tabellen lassen sich in HTML mit Hilfe des Elements
+ table auszeichnen. Eine Tabelle setzt
+ sich aus einer oder mehreren Zeilen (tr)
+ zusammen, von denen jede mindestens eine Zelle
+ (td) enthält. Zellen können wiederum
+ andere Blockelemente, wie Absätze oder Listen, enthalten.
+ Auch können sie auch andere Tabellen aufnehmen, wobei die
+ Verschachtelungstiefe unbegrenzt ist. Soll die Tabellenzelle
+ nur einen Textabsatz enthalten, ist es nicht notwendig den
+ Text mit einem p zu umschließen.
+
+
+ Einfache Tabelle mit table
+
+ Fügen Sie in eine der existierenden Übungsdateien folgendes ein:
+
+ Eine einfache 2x2 Tabelle.
+
+
+
+
Obere linke Zelle
+
+
Obere rechte Zelle
+
+
+
+
Untere linke Zelle
+
+
Untere rechte Zelle
+
+
]]>
+
+ HTML kennt die Möglichkeit, daß sich eine
+ Zelle mehrere Zeilen und/oder Spalten erstrecken kann.
+ Sollen beispielsweise mehrere Spalten zusammenfassen werden,
+ kann dies mit mit Hilfe des Attributes
+ colspan erreicht werden, indem man ihm
+ die Anzahl der zusammenzufassenden Spalten zuweist.
+ Ähnliches gilt für die Zusammenfassung von Zeilen:
+ Hierfür wird dem Attribut rowspan
+ die Anzahl der zusammenzufassenden Zeilen zugewiesen.
+
+
+ Anwendung des Attributes rowspan
+
+ Diese Tabelle besteht aus einer langen Zelle auf der
+ linken Seite und zwei kleineren Zellen auf der rechten.
+
+
+
+
Lang und dünn
+
+
+
+
Obere Zelle
+
+
Untere Zelle
+
+
]]>
+
+
+
+ Anwendung des Attributes colspan
+
+ Eine breite Zeile oben und zwei schmalere Zeilen
+ darunter.
+
+
+
+
Obere Zelle
+
+
+
Linke untere Zelle
+
+
Rechte untere Zelle
+
+
]]>
+
+
+
+ Gemeinsame Anwendung der Attrbute rowspan und
+ colspan
+
+ Eine Tablle mit 3-mal-3 Zellen. Oben links
+ werden 2 mal 2 Zelle zusammengezogen.
+
+
+
+
Große obere linke Zelle
+
+
Obere rechte Zelle
+
+
+
+
+
+
Mittlere rechte Zelle
+
+
+
+
Untere linke Zelle
+
+
Untere mittlere Zelle
+
+
Untere rechte Zelle
+
+
]]>
+
+
+
+
+
+ Flußelemente
+
+
+ Hervorheben von Information
+
+ Sollen sich bestimmte Informationen von anderen optisch
+ abheben, kann dies mit den HTML-Tags
+ strong und em erreicht
+ werden. strong stellt dabei eine
+ stärkere Hervorhebung als em dar,
+ wobei mit strong ausgezeichnete Elemente
+ fett und mit em ausgezeichnete Elemente
+ kursiv dargestellt werden. Allerdings ist diese Aussage
+ nicht verläßlich, da die Darstellung vom Browser
+ abhängig ist.
+
+
+ Text mit em und strong
+ hervorheben
+
+ Dieses Wort ist hervorgehoben,
+ während dieses noch stärker hervorgehoben ist.]]>
+
+
+
+
+
+ Fett- und Schrägschrift
+
+ Da mittels HTML auch Festlegungen über die
+ Darstellung getroffen werden können, gibt es die
+ Möglichkeit direkt zu bestimmen, daß bestimmte
+ Inhalte fett oder kursiv dargestellt werden sollen. Mit
+ b eingefaßte Inhalte werden fett
+ und mit i eingefaßte kursiv
+ dargestellt.
+
+
+ Text mit b und i
+ formatieren
+
+ Dieses Wort wird fett dargestellt,
+während dieses kursiv dargestellt wird.]]>
+
+
+
+
+ Nicht-proportionale Schrift für Texte
+
+ Der Tag tt erlaubt es,
+ Text in einer schreibmaschinenähnlichen
+ Schrift darzustellen.
+
+
+ Nicht-proportionale Schrift mit
+ tt
+
+ Dieses Dokument wurde ursprünglich von
+ Nik Clayton geschrieben. Nick Clayton kann unter der E-Mail-Adresse
+ nik@FreeBSD.org erreicht werden.]]>
+
+
+
+
+
+ Änderung der Schriftgröße
+
+ HTML bietet auch Möglichkeiten, um Einfluß
+ auf die Schriftgröße zu nehmen, das heißt,
+ zu bestimmen, ob die Schrift größer oder kleiner
+ als die Standardschrift dargestellt werden soll. Es gibt
+ drei verschiedene Wege, dies zu erreichen:
+
+
+
+ Mittels der Tags big und
+ small kann die
+ Darstellungsgröße des eingeschlossenen Textes
+ vergrößert respektive verkleinert werden.
+ HTML erlaubt es zudem, diese Tags zu verschachteln, so
+ daß auch <big><big>Das ist
+ wesentlich
+ größer.</big></big>
+ geschrieben werden kann.
+
+
+
+ Das gleiche Ergebnis kann über die Zuweisung der
+ Werte 1 und -1 an
+ das Attribut size
+ des Tags font erreicht werden. Diese
+ Vorgehensweise sollte allerdings als veraltet betrachtet
+ werden, da der Einsatz eines CSS hierfür die bessere
+ Lösung darstellt.
+
+
+
+ Über die Zuweisung von absoluten Werten im Bereich
+ von 1 bis 7 an das
+ Attribut size des Tags
+ font
+ Der Standardwert für size ist
+ 3.. Diese
+ Herangehensweise ist ebenfalls veraltet und sollte nicht
+ mehr angewandt werden.
+
+
+
+
+ Schriftgröße ändern mit
+ big, small und
+ font
+
+ Die folgenden HTML-Schnipsel bewirken alle das gleiche:
+
+ Dieser Text ist etwas kleiner. Dieser
+ jedoch ein wenig größer.
+
+
Dieser Text ist etwas kleiner. Dieser
+ jedoch ein wenig größer.
+
+
Dieser Text ist etwas kleiner. Dieser
+ jedoch ein wenig größer.
]]>
+
+
+
+
+
+ Links
+
+
+ Bei Links handelt es sich ebenfalls Flußelemente.
+
+
+
+ Auf andere Dokumente im WWW verweisen
+
+ Um auf ein anderes Dokument im WWW zu verweisen,
+ müssen Sie die URL dieses Dokuments kennen.
+
+ Links auf andere Dokumente im WWW werden in HTML durch
+ den Tag a und dessen Attribute href, das die Zieladresse
+ enthält, angelegt. Der Inhalt des Elementes wird selbst
+ zum Link und seine Darstellung erfolgt verschieden vom
+ übrigen Text. Meist geschieht das durch eine andere
+ Schriftfarbe oder dadurch, daß der Linktext
+ unterstrichen wird.
+
+
+ <a href="..."> benutzen
+
+ Weitere Informationen stehen auf der
+ FreeBSD-Webseite zur Verfügung.]]>
+
+
+ Beim Aufruf dieses Links wird das referenzierte Dokument vom
+ Browser geladen und mit dessen Seitenanfang dargestellt.
+
+
+
+ Auf bestimmte Dokumentenabschnitte verweisen
+
+ HTML unterstützt neben einfachen Links auch solche, die
+ auf einen bestimmten Abschnitt innerhalb eines Dokumentes
+ verweisen. Dazu müssen die Abschnitte, auf die verwiesen
+ werden soll, mit Hilfe von sogenannten Ankern
+ markiert werden. Diese Anker können ebenfalls mit Hilfe des
+ Tags a gesetzt werden, nur das anstelle
+ von href das Attribut
+ name gesetzt werden
+ muß.
+
+
+ Anwendung von <a name="...">
+
+ Auf diesen Absatz kann mit
+ Hilfe seines Namens (absatz1) verwiesen werden.]]>
+
+
+ Um auf einen so gekennzeichneten Abschnitt zu verweisen,
+ muß die URL des Dokumentes um das Zeichen
+ # und den Namen des Zielankers erweitert
+ werden.
+
+
+ Auf einen Abschnitt eines anderen Dokumentes
+ verweisen
+
+ Für dieses Beispiel wird davon ausgegangen, daß der mit
+ absatz1 gekennzeichnete Absatz sich in
+ der HTML-Datei foo.html
+ befindet.
+
+ Weitere Informationen können im
+ ersten Absatz der Datei
+ foo.html gefunden werden.]]>
+
+
+
+
+
+
+
+ Die DocBook DTD
+
+ DocBook wurde von der Davenport
+ Group mit dem Ziel einer DTD zur Erstellung
+ technischer Dokumentationen entwickelt. Daher ist DocBook sehr
+ stark auf die Beschreibung von Inhalten, als auf deren
+ Darstellung ausgerichtet. Damit steht sie im Gegensatz zu
+ LinuxDoc und HTML.
+
+
+ Formelle und informelle Elemente
+
+ Einige Elemente der DocBook DTD sind in zwei Varianten
+ vorhanden: formell und
+ informell. Üblicherweise besitzt die
+ formelle Variante einen Titel, dem der eigentliche
+ Elementeninhalt folgt. Die informelle Variante hingegen hat
+ keinen Titel.
+
+
+ Die DocBook DTD ist in der Portssammlung im Port textproc/docbook enthalten und wird
+ bei der Installation von textproc/docproj automatisch
+ mitinstalliert.
+
+
+ Die FreeBSD-Erweiterungen
+
+ Für das FDP wurde die DocBook DTD durch das
+ FreeBSD-Dokumentationsproject um zusätzliche Elemente
+ erweitert, um damit präzisiere
+ Auszeichnungsmöglichkeiten zur Verfügung zu haben.
+ Sofern im folgenden FreeBSD-spezifische Elemente genutzt
+ werden, wird explizit darauf hingewiesen werden.
+
+ Wenn nachfolgend im Text der Begriff
+ DocBook verwendet wird, ist damit die durch das
+ FDP erweiterte Version der DocBook DTD gemeint.
+
+
+ Die durch das FDP vorgenommenen Erweiterungen sind nicht
+ FreeBSD-spezifisch. Sie wurden lediglich vorgenommen, da sie
+ für die Arbeit des FDPs als nützlich erschienen.
+ Für den Fall, das in den anderen *nix-Lagern (NetBSD,
+ OpenBSD, Linux,…) Interesse daran besteht, gemeinsam
+ eine Standarderweiterung für die DocBook DTD zu
+ entwickeln, kann mit &a.nik; Verbindung aufgenommen
+ werden.
+
+
+ Zum jetzigen Zeitpunkt sind die FreeBSD-Erweiterungen
+ nicht Bestandteil der Portssammlung. Sie werden im
+ FreeBSD-CVS-Archiv (doc/share/sgml/freebsd.dtd)
+ verwaltet.
+
+
+
+ Formelle Öffentliche Bezeichner
+
+ In Übereinstimmung mir der DocBook-Richtlinie zur
+ Erstellung von Bezeichnern für DocBook-Erweiterungen lautet
+ der Bezeichner der erweiterten FreeBSD-Variante:
+
+ PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN"
+
+
+
+ Die Struktur von DocBook-Dokumenten
+
+ DocBook erlaubt es, Dokumente auf verschiedene Weise zu
+ strukturieren. Innerhalb des FDPs werden hauptsächlich zwei
+ Arten von DocBook-Dokumenten verwendet: Buch und Artikel.
+ Beide unterscheiden sich darin, daß ein Buch auf der obersten
+ Ebene durch chapter-Elemente strukturiert
+ wird. Sollte das noch nicht ausreichend sein, können die
+ einzelnen Kapitel eines Buches mit Hilfe des Elementes
+ part in Teile aufgespalten werden. Das
+ Handbuch zum Beispiel ist auf diese Weise aufgebaut.
+
+ Kapitel (chapter) können weiterhin in
+ Unterkapitel unterteilt werden. Diese werden durch die
+ Elemente sect1 ausgezeichnet. Soll ein
+ Unterkapitel selbst weitere Unterkapitel enthalten, kann das
+ über das Element sect2 geschehen. Diese
+ Unterteilung kann bis zur Tiefe von fünf Unterkapiteln –
+ über die Elemente sect3,
+ sect4 und sect5 –
+ fortgeführt werden. Der eigentliche Inhalt, um den es ja in
+ dem Artikel oder Buch geht, wird unterhalb der hier genannten
+ Elemente eingefügt.
+
+ Vom Aufbau her ist ein Artikel ist einfacher strukturiert
+ als ein Buch. So kann ein Artikel beispielsweise keine Kapitel
+ (chapter) enthalten. Stattdessen kann der
+ Inhalt eines Artikels nur durch die schon bekannten
+ sectN-Elemente
+ in einen oder mehrere Abschnitte gegliedert werden.
+ Überlegen Sie sich vor dem Schreiben eines Textes,
+ ob der zu schreibende Text am
+ besten als Buch oder als Artikel angelegt wird. Artikel eignen
+ sich besser für Texte, die nicht in mehrere Kapitel
+ aufgeteilt werden müssen und mit einem Umfang von
+ ungefähr 20 bis 25 Seiten vergleichsweise kurz sind.
+ Natürlich ist das nur eine Richtlinie. Bücher sind
+ dementsprechend am besten für lange Texte geeignet, die
+ sich sinnvoll in Kapitel unterteilen lassen und
+ möglichweiser noch Anhänge und ähnliches
+ enthalten können.
+
+ Alle Tutorien von
+ FreeBSD sind als Artikel verfaßt, während
+ hingegen die FreeBSD-FAQ und das FreeBSD-Handbuch als
+ Bücher verfaßt wurden.
+
+
+ Bücher schreiben
+
+ Der Inhalt eines Buches wird in einem
+ book-Element abgelegt. Neben dem
+ Textteil des Buches kann dieses Element weitergehende
+ Informationen über das Buch selbst,
+ wie Meta-Informationen zum Erstellen eines
+ Stichwortverzeichnisses oder zusätzliche
+ Inhalte zum Erstellen einer Titelei, enthalten. Diese
+ zusätzlichen Inhalte sollten in einem
+ bookinfo-Element abgelegt werden.
+
+
+ Buchvorlage book mit
+ bookinfo
+
+
+ <book>
+ <bookinfo>
+ <title>Titel</title>
+ <author>
+ <firstname>Vorname</firstname>
+ <surname>Nachname</surname>
+ <affiliation>
+ <address><email>Emailadresse</email></address>
+ </affiliation>
+ </author>
+
+ <copyright>
+ <year>1998</year>
+ <holder role="mailto:Emailadresse">Vollständiger Name</holder>
+ </copyright>
+
+ <releaseinfo>$FreeBSD$</releaseinfo>
+
+ <abstract>
+ <para>Kurze Zusammenfassung des Buchinhaltes.</para>
+ </abstract>
+ </bookinfo>
+
+ …
+
+</book>
+
+
+
+
+ Artikel schreiben
+
+ Der Inhalt eines Artikels wird in einem
+ article-Element abgelegt. Neben
+ dem Textteil kann dieses Element weitere Teile,
+ wie Meta-Informationen zum Erstellen eines
+ Stichwortverzeichnisses oder zusätzliche
+ Inhalte zum Erstellen einer Titelei, enthalten.
+ Analog zu einem Buch, sollten diese Informationen in einem
+ articleinfo-Element abgelegt
+ werden.
+
+
+ Artikelvorlage article mit
+ articleinfo
+
+
+ <article>
+ <articleinfo>
+ <title>Titel</title>
+
+ <author>
+ <firstname>Vorname</firstname>
+ <surname>Nachname</surname>
+ <affiliation>
+ <address><email>Emailadresse</email></address>
+ </affiliation>
+ </author>
+
+ <copyright>
+ <year>1998</year>
+ <holder role="mailto:Emailadresse">Vollständiger Name</holder>
+ </copyright>
+
+ <releaseinfo>$FreeBSD$</releaseinfo>
+
+ <abstract>
+ <para>Kurze Zusammenfassung des Artikelinhalts.</para>
+ </abstract>
+ </articleinfo>
+
+ …
+
+</article>
+
+
+
+
+ Kapitel
+
+ Kapitel werden mit dem
+ chapter-Element angelegt und müssen ein
+ title-Element enthalten. Verwendet werden
+ können sie nur in Büchern.
+
+
+ Ein einfaches Kapitel
+
+
+ Kapitelüberschrift
+
+ …
+]]>
+
+
+ Kapitel können nicht leer sein. Nebem einem
+ title-Element müssen sie weiteren Inhalt
+ beinhalten. Falls ein leeres Kapitel benötig wird, kann dies
+ durch das Einfügen eines leeren Absatzes
+ (para) erreicht werden.
+
+
+ Ein leeres Kapitel
+
+
+ Das ist ein leeres Kapitel
+
+
+]]>
+
+
+
+
+ Unterkapitel
+
+
+
+ Bücher werden auf der obersten Gliederungsebene
+ durch chapter-Elemente in Kapitel
+ unterteilt. Eine weitergehende Untergliederung kann durch
+ das Anlegen von Unterkapiteln erreicht werden. Im Gegensatz
+ zu Kapiteln, die durch chapter-Elemente
+ ausgezeichnet werden, erfolgt die Auszeichnung von
+ Unterkapitel mit dem Element
+ sectn. Das
+ n in Elementnamen trifft eine
+ Aussage über die Gliederungstiefe, auf der sich das
+ Unterkapitel befindet. Ein sect1-Element
+ kann mehrere Elemente vom Typ sect2
+ enthalten, die die Unterkapitel der
+ nächsten Gliederungsebene darstellen.
+ sect5 ist das letzte Element, das auf
+ diese Art zur Gliederung eingesetzt werden kann.
+
+
+ Unterkapitel
+
+
+ Ein Beispielkapitel
+
+ Ein beliebiger Text.
+
+
+ Erster Abschnitt (1.1)
+
+ …
+
+
+
+ Zweiter Abschnitt (1.2)
+
+
+ Erster Unterabschnitt (1.2.1)
+
+
+ Erster Unterunterabschnitt (1.2.1.1)
+
+ …
+
+
+
+
+ Zweiter Unterabschnitt (1.2.2)
+
+ …
+
+
+]]>
+
+
+
+ Die Unterkapitel dieses Beispiels wurden zu
+ Demonstrationszwecken manuell durchnummeriert. In
+ normalen Dokumenten wird diese Aufgabe von
+ den Stylesheets übernommen.
+
+
+
+
+ Bücher mittels part
+ unterteilen
+
+ In den Fällen, in denen die Unteilung eines Buches in
+ Kapitel nicht ausreichend ist, können mehrere
+ Kapitel mit dem Element part zu
+ einem Teil zusammengefasst werden.
+
+
+ Einführung
+
+
+ Überblick
+
+ …
+
+
+
+ Was ist FreeBSD?
+
+ …
+
+
+
+ Die Geschichte von FreeBSD
+
+ …
+
+]]>
+
+
+
+
+ Blockelemente
+
+
+ Absätze
+
+ DocBook kennt drei Arten von Absätzen: Absätze
+ mit Überschrift (formalpara),
+ normale Absätze (para) und einfache
+ Absätze (simpara).
+
+ Normale Absätze und einfache Absätze
+ unterscheiden sich dadurch, daß innerhalb von
+ para Blockelemente erlaubt sind,
+ innerhalb von simpara hingegen nicht. Es
+ ist empfehlenswert, para den Vorzug
+ zu geben.
+
+
+ Absatz mit para
+
+ Das ist ein Absatz. Absätze können fast jedes andere
+ Element aufnehmen.]]>
+
+ Darstellung:
+
+ Das ist ein Absatz. Absätze können fast jedes andere
+ Element aufnehmen.
+
+
+
+
+ Blockzitate
+
+ Blockzitate sind textlich umfangreichere Zitate aus
+ einem anderen Text, die nicht innerhalb des aktuellen
+ Absatzes angezeigt werden sollen. Wahlweise können
+ Blockzitate eine Überschrift haben und die Zitatquelle
+ nennen.
+
+
+ blockquote
+
+ Ein Auszug aus dem Grundgesetz:
+
+
+ Menschenwürde; Grundrechtsbindung der staatlichen Gewalt
+
+ Aus dem Grundgesetz
+
+
+
+ Die Würde des Menschen ist unantastbar. Sie zu achten
+ und zu schützen ist Verpflichtung aller staatlichen
+ Gewalten.
+
+
+ Das Deutsche Volk bekennt sich darum zu unverletzlichen
+ und unveräußerlichen Menschenrechten als Grundlage jeder
+ menschlichen Gemeinschaft, des Friedens und der
+ Gerechtigkeit in der Welt.
+
+
+ Die nachfolgenden Grundrechte binden Gesetzgebung,
+ vollziehende Gewalt und Rechtsprechung als
+ unmittelbar geltendes Recht.
+
+
+
]]>
+
+ Darstellung:
+
+
+ Menschenwürde; Grundrechtsbindung der
+ staatlichen Gewalt
+
+ Aus dem Grundgesetz
+
+
+
+ Die Würde des Menschen ist unantastbar. Sie
+ zu achten und zu schützen ist Verpflichtung
+ aller staatlichen Gewalten.
+
+
+ Das Deutsche Volk bekennt sich darum zu
+ unverletzlichen und unveräußerlichen
+ Menschenrechten als Grundlage jeder menschlichen
+ Gemeinschaft, des Friedens und der Gerechtigkeit in
+ der Welt.
+
+
+ Die nachfolgenden Grundrechte binden
+ Gesetzgebung, vollziehende Gewalt und Rechtsprechung
+ als unmittelbar geltendes Recht.
+
+
+
+
+
+
+
+ Tipps, Anmerkungen, Warnungen, wichtige Informationen
+ und Randbemerkungen
+
+ In bestimmten Fällen kann es nützlich sein,
+ dem Leser zusätzliche Informationen zu geben, die sich
+ vom Haupttext abheben, damit der Leser sie besser wahrnimmt.
+ Abhängig von der Art der Information, können
+ solche Stellen mit einem der Elemente tip
+ (für Tipps), note (für
+ Anmerkungen), warning (für
+ Warnungen), caution (für besonders
+ ernstzunehmende Warnungen) und important
+ (für wichtige Anmerkungen) ausgezeichnet werden. Trifft
+ keines dieser Element für die auszuzeichnende Stelle
+ zu, sollte diese mit dem Element sidebar
+ ausgezeichnet werden.
+
+ Da die richtige Einordnung einer auszuzeichnenden
+ Textstelle nicht immer leicht zu treffen ist, werden in der
+ DocBook-Dokumentation folgende Empfehlungen gegeben:
+
+
+
+ Eine Anmerkung (note) ist eine
+ Information, die von jedem Leser beachtet werden
+ sollte.
+
+
+
+ Eine wichtige Anmerkung
+ (important) eine Variation einer
+ Anmerkung.
+
+
+
+ Eine Warnung (warning)
+ betrifft einen möglichen Hardwareschaden
+ oder weist auf eine Gefahr für Leib und Leben
+ hin.
+
+
+
+ Eine besonders ernstzunehmende Warnung
+ (caution) betrifft einen möglichen
+ Datenverlust oder Softwareschaden.
+
+
+
+
+ warning
+
+
+ Wenn Sie FreeBSD auf Ihrer Festplatte installieren,
+ kann es sein, daß Sie Windows nie mehr benutzen wollen.
+]]>
+
+
+
+
+ Wenn Sie FreeBSD auf Ihrer Festplatte installieren,
+ kann es sein, daß Sie Windows nie mehr benutzen wollen.
+
+
+
+
+ Listen und Handlungsanweisungen
+
+ Listen sind ein oft gebrauchtes Hilfsmittel, wenn es
+ darum geht, Informationen für den Benutzer
+ übersichtlich darzustellen oder eine Abfolge von
+ Arbeitsschritten zu beschreiben, die notwendig sind, um ein
+ bestimmtes Ziel zu erreichen. Zur Auszeichnung von Listen
+ stellt DocBook die Elemente itemizedlist,
+ orderedlist und
+ procedure zur Verfügung.
+ DocBook kennt noch andere Elemente für die
+ Auszeichnung von Listen, die an dieser Stelle jedoch
+ nicht behandelt werden.
+ .
+
+ itemizedlist und
+ orderedlist ähneln sehr stark ihren
+ HTML-Gegenstücken ul und
+ ol. Beide Listenarten müssen
+ mindestens ein Element listitem
+ enthalten. Das listitem Element
+ muß mindestens ein weiteres Blockelement
+ enthalten.
+
+ procedure unterscheidet sich ein
+ wenig von den vorhergehenden. Es enthält
+ step-Elemente, die wiederum
+ step- oder
+ substel-Elemente enthalten können.
+ Ein step-Element kann nur Blockelemente
+ aufnehmen.
+
+
+ itemizedlist,
+ orderedlist und
+ procedure
+
+
+
+ Das ist das erste Listenelement.
+
+
+
+ Das ist das zweite Listenelement.
+
+
+
+
+
+ Das ist das erste Aufzählungselement.
+
+
+
+ Das ist das zweite Aufzählungselement.
+
+
+
+
+
+ Machen Sie zuerst dies.
+
+
+
+ Und dann machen Sie das..
+
+
+
+ Und jetzt noch das…
+
+]]>
+
+ Darstellung:
+
+
+
+ Das ist das erste Listenelement.
+
+
+
+ Das ist das zweite Listenelement.
+
+
+
+
+
+ Das ist das erste Aufzählungselement.
+
+
+
+ Das ist das zweite Aufzählungselement.
+
+
+
+
+
+
+ Machen Sie zuerst dies.
+
+
+
+ Und dann machen Sie das..
+
+
+
+ Und jetzt noch das…
+
+
+
+
+
+ Dateiinhalte auszeichnen
+
+ Technische Dokumente enthalten oft auch
+ Konfigurationsbeispiele oder Quellcodeschnipsel. Zur
+ Auszeichnung dieser Inhalte, stellt Docbook das Element
+ programmlisting zur Verfügung. Im
+ Gegensatz zu anderen DocBook-Elementen wird der
+ Elementinhalt von programmlisting
+ nicht normalisiert, das heißt,
+ daß alle Leerzeichen, Tabulatoren und
+ Zeilenumbrüche unverändert übernommen werden.
+ Aus diesem Grund ist es unter anderem wichtig, daß
+ sich der öffende Tag in der selben Zeile wie der Anfang
+ des darzustellenden Textes befindet. Gleiches gilt für
+ den schließenden Tag: Er muß sich am Ende der
+ letzten Zeile befinden. Wird das nicht beachtet, kann es
+ sein, daß unerwartete Leerzeichen und Leerzeilen in
+ der Ausgabe auftauchen.
+
+
+ programlisting
+
+ Am Ende sollte Ihr Programm wie folgt
+ aussehen:
+
+#include <stdio.h>
+
+int
+main(void)
+{
+ printf("Hallo Welt!\n");
+}]]>
+
+ Die spitzen Klammern der
+ #include-Anweisung können nicht direkt
+ verwendet werden, sondern müssen über ihre Entitäten
+ eingebunden werden.
+
+ Darstellung:
+
+ Am Ende sollte Ihr Programm wie folgt aussehen:
+
+ #include <stdio.h>
+
+int
+main(void)
+{
+ printf("Hallo Welt!\n");
+}
+
+
+
+
+ Textanmerkungen
+
+ Textanmerkungen
+ auf Englisch:
+ callout
+ sind ein Mechanismus, um auf bestimmte Stellen in einem
+ vorhergehenden Beispiel oder Text zu verweisen.
+
+ Um solche Verweise anzulegen, müssen die betreffenden
+ Stellen in den Beispielen
+ (programlisting,
+ literallayout, …) mit
+ co-Elementen markiert werden, wobei jedes
+ Element ein eindeutiges id-Attribut
+ besitzen muß. Anschließend sollte ein
+ calloutlist-Element eingefügt werden,
+ dessen Elemente sich auf die co-Elemente
+ des Beispiels beziehen und die jeweiligen Anmerkungen
+ enthalten.
+
+
+ Das co- und das
+ calloutlist-Element
+
+ Am Ende sollte Ihr Programm wie folgt
+ aussehen:
+
+#include <stdio.h>
+
+int
+main(void)
+{
+ printf("Hallo Welt\n");
+}
+
+
+
+ Bindet die Headerdatei stdio.h ein.
+
+
+
+ Bestimmt den Typ des Rückgabewertes von main().
+
- Dieser Abschnitt ist noch nicht übersetzt. Lesen Sie
- bitte das
- Original in englischer Sprache.
+
+ Ruft die Funktion printf() auf, die
+ Hallo Welt! auf der Standardausgabe ausgibt
+
+]]>
+
+ Darstellung:
+
+ Am Ende sollte Ihr Programm wie folgt aussehen:
+
+ #include <stdio.h>
+
+int
+main(void)
+{
+ printf("Hallo Welt\n");
+}
+
+
+
+ Bindet die Headerdatei stdio.h ein.
+
+
+
+ Bestimmt den Typ des Rückgabewertes von main().
+
+
+
+ Ruft die Funktion printf() auf, die
+ Hallo Welt! auf der Standardausgabe ausgibt
+
+
+
+
+
+
+ Tabellen
+
+ Im Gegensatz zu HTML ist es nicht notwendig, Tabellen zu
+ Layoutzwecken einzusetzen, da die Layoutaufgabe von den
+ Stylesheets übernommen wird. Stattdessen sollten Tabellen
+ nur für die Auszeichnung von Daten in Tabellenform genutzt
+ werden.
+
+ Vereinfacht betrachtet (für Details sollte die
+ DocBook-Dokumentation zu Rate gezogen werden) besteht eine
+ Tabelle, die entweder als formelle oder als informelle
+ Tabelle angelegt werden kann, aus einem
+ table-Element. Dieses Element selbst
+ beinhaltet mindestens ein Element tgroup,
+ das über ein Attribut die Spaltenanzahl der Tabelle
+ bestimmt. Innerhalb des Elementes tgroup
+ kann sich ein Element thead mit den
+ Spaltenüberschriften und ein Element
+ tbody mit dem eigentlichen Tabelleninhalt
+ befinden. Beide Elemente beinhalten
+ row-Elemente, die wiederum
+ entry-Elemente beinhalten. Jedes
+ entry-Element stellt eine einzelne
+ Tabellenzelle dar.
+
+
+ Tabellen mittels informaltable
+ auszeichnen
+
+
+
+
+
+ Spaltenüberschrift 1
+ Spaltenüberschrift 2
+
+
+
+
+
+ Zeile 1, Spalte 1
+ Zeile 1, Spalte 2
+
+
+
+ Zeile 2, Spalte 1
+ Zeile 2, Spalte 2
+
+
+
+]]>
+
+ Darstellung:
+
+
+
+
+
+ Spaltenüberschrift 1
+ Spaltenüberschrift 2
+
+
+
+
+
+ Zeile 1, Spalte 1
+ Zeile 1, Spalte 2
+
+
+
+ Zeile 2, Spalte 1
+ Zeile 2, Spalte 2
+
+
+
+
+
+
+ Soll die Tabelle keinen Rand haben, kann das Attribut
+ frame mit dem Wert
+ none dem Element
+ informaltable hinzugefügt werden
+ (<informaltable frame="none">)).
+
+
+ Tabelle mit Attribut
+ frame="none"
+
+ Darstellung:
+
+
+
+
+
+ Spaltenüberschrift 1
+ Spaltenüberschrift 2
+
+
+
+
+
+ Zeile 1, Spalte 1
+ Zeile 1, Spalte 2
+
+
+
+ Zeile 2, Spalte 1
+ Zeile 2, Spalte 2
+
+
+
+
+
+
+
+
+ Beispiele für den Leser
+
+ Oft gilt es, für dem Benutzer Beispiele
+ zu geben, die er dann selber nachvollziehen soll. Meist
+ handelt es sich dabei um interaktive Dialoge zwischen Mensch
+ und Maschine: Der Benutzer gibt einen Befehl ein und
+ erhält eine Antwort vom System. Ein Satz
+ von speziellen Elementen und Entitäten unterstützt
+ den Autor bei der Auszeichnung solcher Textstellen:
+
+
+
+ screen
+
+
+ Gedacht zur Auszeichnung von Bildschirminhalten.
+ Im Unterschied zu anderen Elementen werden Leerzeichen
+ innerhalb des Elementes screen
+ unverändert übernommen.
+
+
+
+
+ prompt,
+ &prompt.root; und
+ &prompt.user;
+
+
+ Eingabeaufforderungen des Rechners
+ (Betriebssysten, Shell oder Anwendung) sind ein häufig
+ auftretender Teil dessen, was der Benutzer auf dem
+ Bildschirm zu sehen bekommt. Sie sollten mit
+ prompt ausgezeichnet werden.
+
+ Ein Spezialfall sind die beiden
+ Eingabeaufforderungen der Shell für normale
+ Benutzer und den Superuser root.
+ Jedesmal wenn auf eine von diesen beiden Nutzerrollen
+ hingewiesen werden soll, sollte entweder
+ &prompt.root; oder
+ &prompt.user; eingesetzt
+ werden. Beide Entitäten können auch
+ außerhalb von screen
+ verwendet werden.
+
+
+ &prompt.root; und
+ &prompt.user; sind
+ FreeBSD-spezifische Erweiterungen der DocBook DTD
+ und nicht in der originalen DocBook DTD
+ enthalten.
+
+
+
+
+
+ userinput
+
+
+ Das Element userinput ist
+ für die Auszeichnung von Benutzereingaben
+ gedacht.
+
+
+
+
+
+ screen, prompt
+ und userinput
+
+ &prompt.user; ls -1
+foo1
+foo2
+foo3
+&prompt.user; ls -1 | grep foo2
+foo2
+&prompt.user; su
+Password:
+&prompt.root; cat foo2
+This is the file called 'foo2']]>
+
+ Darstellung:
+
+ &prompt.user; ls -1
+foo1
+foo2
+foo3
+&prompt.user; ls -1 | grep foo2
+foo2
+&prompt.user; su
+Password:
+&prompt.root; cat foo2
+This is the file called 'foo2'
+
+
+
+ Obgleich der Inhalt der Datei
+ foo2 in dem obigen Beispiel angezeigt
+ wird, sollte dieser nicht mit
+ programlisting ausgezeichnet werden.
+ Vielmehr sollte programlisting einzig
+ und allein für die Darstellung von Dateifragmenten
+ außerhalb von Benutzeraktionen gewählt
+ werden.
+
+
+
+
+
+ Flußelemente
+
+
+ Hervorhebungen
+
+ Wenn es darum geht bestimmte Wörter oder Textstellen
+ hervorzuheben, sollte dafür das Element
+ emphasis verwendet werden. Das so
+ ausgezeichnete Text wird dann kursiv oder fett dargestellt;
+ im Falle einer Sprachausgabe würde es anders betont
+ werden.
+
+ Im Gegensatz zu den HTML mit seinen Elementen
+ b und i, kennt DocBook
+ keinen Weg, um diese Darstellung zu
+ ändernAnmerkung des
+ Übersetzers: Hier sollte man sich noch einmal ins
+ Gedächtnis rufen, daß mittels der DocBook DTD nur
+ Inhalte ausgezeichnet werden und nicht das Layout
+ bestimmt wird.. Handelt es sich bei
+ dem darzustellenden um eine wichtige Information, kann
+ alternativ important verwendet
+ werden.
+
+
+ Das Element emphasis
+
+ FreeBSD ist zweifelslos das führende
+ Unix-artige Bestriebssystem für die Intel-Plattform.]]>
+
+ Darstellung:
+
+ FreeBSD ist zweifelslos das führende
+ Unix-artige Bestriebssystem für die Intel-Plattform.
+
+
+
+
+
+ Zitate
+
+ Um einen Auszug aus einer anderen Quelle zu zitieren
+ oder kenntlich zu machen, daß eine bestimmte Wendung
+ im übertragenen Sinne zu verstehen ist, kann der
+ betreffende Text mit Hilfe des Elementes
+ quote ausgezeichnet werden. Innerhalb von
+ quote können die meisten der
+ normalerweise zur Verfügung stehenden Elemente genutzt
+ werden.
+
+
+ Richtig zitieren
+
+ Es sollte immer sichergestellt werden, daß die Suche die Grenzen
+ zwischen lokaler und öffentlicher Administration
+ (RFC 1535) einhält.]]>
+
+ Darstellung:
+
+ Es sollte immer sichergestellt werden, das die Suche
+ die Grenzen zwischen lokaler und öffentlicher
+ Administration (RFC 1535) einhält.
+
+
+
+
+
+ Tasten, Maustasten und Tastenkombinationen
+
+ Das Element keycap beschreibt
+ eine bestimmte Taste der Tastatur.
+ Für die Auszeichnung von Maustasten
+ steht analog das Element mousebutton zur
+ Verfügung. Mit Hilfe von keycombo
+ können beliebige Tasten- und Maustastenkombinationen
+ beschrieben werden.
+
+ Das Element keycombo besitzt ein
+ Attribut action, dem einer der Werte
+ click, double-click,
+ other, press,
+ seq oder simul
+ zugewiesen werden kann. Die letzten beiden Werte deuten an,
+ daß die genannte Kombination nacheinander oder
+ gleichzeitig gedrückt werden soll. Die Stylesheets
+ fügen zwischen die einzelnen Unterelemente von
+ keycombo+-Zeichen
+ ein.
+
+
+
+ Tasten, Maustasten und Tastenkombinationen
+
+ Diese Eingaben zeichnen Sie wie folgt aus:
+
+ Mit der Tastenkombination Alt
+ F1 kann auf die zweite virtuelle Konsole
+ umgeschaltet werden.
+
+Um vi zu beenden, ohne die Änderungen zu
+ speichern, muß Esc
+ :q!
+ eingegeben werden.
+
+Der Fenstermanager ist so konfiguriert, daß mittels
+ Alt
+ rechter Maustaste
+ Fenster verschoben werden können.]]>
+
+ Darstellung:
+
+ Mit der Tastenkombination Alt
+ F1 kann auf die zweite
+ virtuelle Konsole umgeschaltet werden.
+
+ Um vi zu beenden, ohne die
+ Änderungen zu speichern, muß Esc
+ :q!
+ eingegeben werden.
+
+ Der Fenstermanager ist so konfiguriert, daß mittels
+ Alt
+ rechter Maustaste
+
+ Fenster verschoben werden können.
+
+
+
+
+ Anwendungen, Befehle, Optionen und Hilfeseiten
+
+ Oft besteht die Notwendigkeit auf bestimmte Anwendungen
+ und Befehle zu verweisen. Der Unterschied zwischen einer
+ Anwendung und einem Befehl liegt darin, daß eine
+ Anwendung ein einzelnes oder eine Gruppe von Programmen ist,
+ mit denen eine bestimmte Aufgabe erledigt werden kann. Ein
+ Befehl hingegen ist der Name eines Programmes, daß der
+ Benutzer aufrufen kannDer Befehl
+ mozilla startet das Programm
+ mozilla.
+ .
+
+ Desweiteren kann es auch vorkommen, daß die
+ von einem Programm (in einem bestimmten Fall)
+ akzeptierten Optionen genannt werden müssen.
+
+ Schlußendlich ist es oft gewünscht, zu einem
+ Befehl dessen Abschnitt der Manualseiten im
+ Unix-üblichen Stil Befehl(Zahl)
+ anzugeben.
+
+ Anwendungsnamen können mit application
+ ausgezeichnet werden.
+
+ Befehle können zusammen mit der betreffenden
+ Hilfeseite über das DocBook-Element
+ citerefentry ausgezeichnet werden.
+ citerefentry muß zwei weitere
+ Elemente enthalten: refentrytitle,
+ für den Befehlsnamen, und manvolnum,
+ für die Kategorie der Hilfeseite.
+
+ Diese Art auf Befehle zu verweisen kann sehr
+ ermüdent sein. Daher gibt es einen Satz von
+ Allgemeinen
+ Entitäten, der diese Arbeit erleichtert. Er
+ ist in der Datei
+ doc/share/sgml/man-refs.ent enhalten
+ und kann über den folgenden Bezeichner eingebunden
+ werden:
+
+ PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"
+
+ Jede Entität in dieser Datei ist wie folgt aufgebaut:
+ &man.Hilfeseite.Kategorie;.
+
+ Der Anfang eines Dokumentes, das diese Entitäten
+ einbindet, könnte so aussehen:
+
+ <!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
+<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
+%man; … ]>
+
+ Um Befehle innerhalb des Fließtextes auszuzeichen,
+ kann das Element command genutzt werden.
+ Die Optionen eines Befehles können mit Hilfe von
+ option ausgezeichnet werden.
+
+
+
+ Die Unterscheidung zwischen command
+ und application kann schwer sein, und
+ manchmal ist die Entscheidung, welches Element das richtige
+ ist nicht leicht. Vielleicht kann das folgende Beispiel
+ helfen.
+
+
+ Anwendungen, Befehle und Optionen
+
+ Sendmail ist der verbreitetste
+ UNIX-Mailserver.
+
+Sendmail besteht aus den Programmen
+
+ sendmail
+ 8
+ , &man.mailq.8;, und &man.newaliases.8;.
+
+Mittels der Option kann
+ sendmail
+ 8
+ den Status der Mailwarteschlange ausgeben.
+ Der Status der Mailwarteschlange kann durch den Befehl
+ sendmail -bp überprüft werden.]]>
+
+
+ Darstellung:
+
+ Sendmail ist der
+ verbreitetste UNIX-Mailserver.
+
+ Sendmail besteht aus den
+ Programmen
+
+ sendmail
+ 8
+ ,
+
+ mailq
+ 8
+ und
+
+ newaliases
+ 8
+ .
+
+ Mittels der Option kann
+ sendmail
+ 8
+ den Status der Mailwarteschlange ausgeben.
+ Der Status der Mailwarteschlange kann durch den Befehl
+ sendmail -bp überprüft
+ werden.
+
+
+
+ Die Schreibweise
+ &man.Hilfeseite.Kategorie;
+ ist leichter lesbar.
+
+
+
+
+ Dateien, Verzeichnisse und Erweiterungen
+
+ Immer wenn in einem Text der Name einer Datei, eines
+ Verzeichnisses oder eine Dateierweiterung vorkommt, sollte
+ die betreffende Stelle mit dem Element
+ filename ausgezeichnet werden.
+
+
+ Das Element filename
+
+ Die SGML-Quellen des englischen Handbuches befinden
+ sich im Verzeichnis /usr/doc/en/handbook/. In
+ diesem Verzeichnis befindet sich eine Datei
+ handbook.sgml. Desweiteren sollte sich eine
+ Datei mit dem Namen Makefile zusammen mit
+ mehreren Dateien mit der Endung .ent
+ in diesem Verzeichnis befinden.]]>
+
+ Darstellung:
+
+ Die SGML-Quellen des englischen Handbuches befinden
+ sich im Verzeichnis
+ /usr/doc/en/handbook/. In diesem
+ Verzeichnis befindet sich eine Datei
+ handbook.sgml. Desweiteren sollte
+ sich eine Datei mit dem Namen
+ Makefile zusammen mit mehreren
+ Dateien mit der Endung .ent in diesem
+ Verzeichnis befinden.
+
+
+
+
+
+ Portnamen
+
+
+ FreeBSD-Erweiterung
+
+ Die hier genannten Elemente sind Bestandteil der
+ FreeBSD-Erweiterung für DocBook und sind nicht in der
+ originalen DocBook DTD enthalten.
+
+
+ An einigen Stellen ist es notwendig, den Namen eines
+ Ports aus FreeBSDs Portssammlung in Dokumenten zu verwenden.
+ In diesem Fall sollte ebenfalls das Element
+ filename eingesetzt werden, dabei aber
+ dem Element das Attribut role mit dem
+ Wert package zugewiesen werden. Da die
+ Portssammlung an jeder beliebigen Stelle im Dateisystem
+ installiert werden kann, sollte filename
+ nur die Kategorie und den Namen des Ports enthalten, aber
+ nicht das Verzeichnis
+ /usr/ports.
+
+
+ Portsnamen und das Element filename
+
+ Wenn Sie Ihr Netz und dessen Datenverkehr analysieren
+ möchten, dann installieren Sie bitte den Port net/ethereal.]]>
+
+ Darstellung:
+
+ Wenn Sie Ihr Netz und dessen Datenverkehr analysieren
+ möchten, dann installieren Sie bitte den Port net/ethereal.
+
+
+
+
+ Gerätedateien unterhalb von
+ /dev
+
+
+ FreeBSD-Erweiterung
+
+ Die hier genannten Elemente sind Bestandteil der
+ FreeBSD-Erweiterung für DocBook und sind nicht in der
+ originalen DocBook DTD enthalten.
+
+
+ Wird in einem Dokument Bezug auf Gerätedateien
+ unterhalb von dev
+ genommen, dann gibt es zwei Möglichkeiten diese
+ auszuzeichnen. Zum einen kann man sich auf das Gerät
+ beziehen, so wie es unter /dev zu
+ finden ist, und zum anderen kann man sich auf den
+ Gerätenamen beziehen, wie es innerhalb des Kerns
+ verwendet wird. Für letztere Möglichkeit sollte
+ das Element devicename genutzt
+ werden.
+
+ Allerdings besteht nicht immer diese
+ Wahlmöglichkeit. Einige Geräte, wie zum Beispiel
+ Netzwerkkartenm haben keinen Eintrag unter
+ /dev oder werden anders
+ dargestellt.
+
+
+ Gerätenamen per devicename
+ auszeichnen
+
+ Unter FreeBSD wird die serielle Datenübertragung über
+ sio abgewickelt, das unterhalb von
+ /dev eine Reihe von Einträgen anlegt.
+ Zu diesen Einträgen behören beispielsweise
+ /dev/ttyd0 und
+ /dev/cuaa0.
+
+ Andererseits erscheinen Geräte wie beispielsweise
+ ed0 nicht unterhalb von
+ /dev.
+
+ Unter MS-DOS wird das erste Diskettelaufwerk als
+ a: bezeichnet. FreeBSD
+ bezeichnet es als /dev/fd0.]]>
+
+ Darstellung:
+
+ Unter FreeBSD wird die serielle Datenübertragung
+ über sio abgewickelt, das
+ unterhalb von /dev eine Reihe von
+ Einträgen anlegt. Zu diesen Einträgen
+ behören beispielsweise
+ /dev/ttyd0 und
+ /dev/cuaa0.
+
+ Andererseits erscheinen Geräte wie beispielsweise
+ ed0 nicht unterhalb von
+ /dev.
+
+ Unter MS-DOS wird das erste Diskettelaufwerk als
+ a: bezeichnet. FreeBSD bezeichnet
+ es als /dev/fd0.
+
+
+
+
+
+ Rechner, Domains, IP-Adressen und mehr
+
+
+ FreeBSD-Erweiterung
+
+ Die hier genannten Elemente sind Bestandteil der
+ FreeBSD-Erweiterung für DocBook und sind nicht in der
+ originalen DocBook DTD enthalten.
+
+
+
+ Bezeichner für Rechner können in Abhängigkeit
+ der Bezeichnungsweise auf verschiedene Art und Weise
+ ausgezeichnet werden. Gemeinsam ist allen, daß sie
+ das Element hostid benutzen. Über das
+ Attribut role wird die Art des Bezeichners
+ genauer bestimmt.
+
+
+
+ Kein Rollenattribut oder
+ role="hostname"
+
+
+ Ohne Rollenattribut stellt der umschlossene Text
+ einen normlen Rechnernamen wie
+ freefall oder
+ wcarchive dar. Wenn es
+ gewünscht ist, kann mittels
+ role="hostname" explizit angegeben
+ werden, daß es sich um einen Rechnernamen
+ handelt.
+
+
+
+
+ role="domainname"
+
+
+ Ein Domainname wie FreeBSD.org
+ oder ngo.org.uk. Er enthält keinen
+ Rechnernamen.
+
+
+
+
+ role="fqdn"
+
+
+ Vollqualifizierter Domainname wie
+ www.FreeBSD.org. Enthält sowohl
+ einen Domainnamen als auch einen Rechnernamen.
+
+
+
+
+ role="ipaddr"
+
+
+ Eine IP-Adresse, meistens als durch Doppelpunkte
+ getrenntes Tupel von vier Zahlen dargestellt.
+
+
+
+
+ role="ip6addr"
+
+
+ Eine IPv6-Adresse.
+
+
+
+
+ role="netmask"
+
+
+ Eine Netzwerkmaske, dargestellt als ein durch
+ Doppelpunkte getrenntes Vierzahlentupel, einer Hexzahl
+ oder als ein /, dem eine Zahl
+ folgt.
+
+
+
+
+ role="mac"
+
+
+ Eine MAC-Adresse, dargestellt durch zweistellige
+ Hexzahlen, die durch Doppelpunkte getrennt
+ sind.
+
+
+
+
+
+ role und
+ hostid
+
+ Der lokale Rechner kann immer über den Namen
+ localhost angesprochen werden, dem immer
+ die IP-Adresse
+ 127.0.0.1 zugeordnet ist.
+
+ Zur Domain FreeBSD.org
+ gehören verschiedene Rechner, inklusive freefall.FreeBSD.org und bento.FreeBSD.org.
+
+ Wenn eine IP-Adresse einer Netzwerkkarte zugeordnet wird,
+ was mit der Hilfe von ifconfig geschieht,
+ sollte immer die Netzmaske
+ 255.255.255.255, die auch
+ hexadezimal als 0xffffffff
+ abgegeben werden kann, benutzt werden.
+
+ Die MAC-Adresse ist für jede existierende Netzwerkkarte
+ auf der Welt eindeutig. Eine typische MAC-Adresse ist
+ beispielsweise 08:00:20:87:ef:d0.]]>
+
+ Darstellung:
+
+ Der lokale Rechner kann immer über den Namen
+ localhost angesprochen werden, dem immer
+ die IP-Adresse 127.0.0.1
+ zugeordnet ist.
+
+ Zur Domain FreeBSD.org gehören
+ verschieden Rechner, inklusive freefall.FreeBSD.org und bento.FreeBSD.org.
+
+ Wenn eine IP-Adresse einer Netzwerkkarte zugeordnet
+ wird, was mit der Hilfe von ifconfig
+ geschieht, sollte immer die Netzmaske
+ 255.255.255.255, die auch
+ hexadezimal als 0xffffffff
+ abgegeben werden kann, benutzt werden.
+
+ Die MAC-Adresse ist für jede existierende
+ Netzwerkkarte auf der Welt eindeutig. Eine typische
+ MAC-Adresse ist beispielsweise 08:00:20:87:ef:d0.
+
+
+
+
+ Benutzernamen
+
+
+ FreeBSD-Erweiterung
+
+ Die hier genannten Elemente sind Bestandteil der
+ FreeBSD-Erweiterung für DocBook und sind nicht in der
+ originalen DocBook DTD enthalten.
+
+
+ Namen von Benutzern, wie
+ root oder bib,
+ können mit dem Element username
+ ausgezeichnet werden.
+
+
+ Das Element username
+
+ Für die meisten Administrationsaufgaben müssen
+ Sie als root angemeldet sein.]]>
+
+ Darstellung:
+
+ Für die meisten Administrationsaufgaben müssen Sie als
+ root angemeldet sein.
+
+
+
+
+
+ Beschreibung von Makefiles
+
+
+ FreeBSD-Erweiterung
+
+ Die hier genannten Elemente sind Bestandteil der
+ FreeBSD-Erweiterung für DocBook und sind nicht in der
+ originalen DocBook DTD enthalten.
+
+
+ Zur Beschreibung von Teilen einer Makedatei stehen die
+ beiden Elemente marketarget und
+ makevar zur Verfügung.
+ maketarget bezeichnet ein Ziel eines
+ Makefiles, das als Parameter beim
+ Aufruf von make angegeben werden kann.
+ makevar hingegen bezeichnet eine
+ Variable, die entweder in einem
+ Makefile definiert oder
+ make auf der Befehlszeile übergeben
+ werden kann, um so den Bauprozess zu beeinflussen.
+
+
+ maketarget und
+ makevar
+
+ Zwei übliche Ziele in einem Makefile
+ sind all und
+ clean.
+
+Üblicherweise wird, wenn das Ziel all
+ aufgerufen wird, die gesamte Anwendung neu erstellt. Der Aufruf
+ des Zieles clean veranlaßt das
+ Löschen aller temporären Dateien (zum Beispiel
+ .o), die während der Übersetzung erzeugt
+ wurden.
+
+Das genaue Verhalten von clean
+ kann von einer Reihe von Variablen beeinflußt werden.
+ Stellvertretend seien hier CLOBBER und
+ RECURSE genannt.]]>
+
+ Darstellung:
+
+ Zwei übliche Ziele in einem
+ Makefile sind
+ all und
+ clean.
+
+ Üblicherweise wird, wenn das Ziel
+ all aufgerufen wird, die gesamte
+ Anwendung neu erstellt. Der Aufruf des Zieles
+ clean veranlaßt das
+ Löschen aller temporären Dateien (zum Beispiel
+ .o), die während der
+ Übersetzung erzeugt wurden.
+
+ Das genaue Verhalten von
+ clean kann von einer Reihe von
+ Variablen beeinflußt werden. Stellvertretend seien
+ hier CLOBBER und
+ RECURSE genannt.
+
+
+
+
+ Text buchstabengetreu übernehmen
+
+ Für das Handbuch ist es oft notwendig, Textausschnitte
+ buchstabengetreu darzustellen. Hierbei kann es sich um Texte
+ handeln, die aus einer anderen Datei stammen oder die der
+ Leser eins-zu-eins aus dem Handbuch kopieren können
+ soll.
+
+ In einigen Fällen ist zu diesem Zwecke
+ programlisting ausreichend, jedoch nicht
+ immer. So ist programlisting zum Beispiel
+ nicht einsetzbar, wenn es darum geht einen Auszug aus einer
+ Datei innerhalb eines Absatzes einzufügen. In solchen Fällen
+ sollte das Element literal zum Einsatz
+ kommen.
+
+
+ literal
+
+ Die Zeile maxusers 10 in der
+ Kernelkonfigurationsdatei beeinflußt die Größe vieler
+ Systemtabellen und kann als ungefähr als Richtwert dafür
+ gelten, wie viele paralle Anmeldungen das System handhaben
+ kann.]]>
+
+ Darstellung:
+
+ Die Zeile maxusers 10 in der
+ Kernelkonfigurationsdatei beeinflußt die Größe vieler
+ Systemtabellen und kann als ungefähr als Richtwert dafür
+ gelten, wie viele paralle Anmeldungen das System handhaben
+ kann.
+
+
+
+
+ Benutzerspezifische Eingaben darstellen
+
+
+
+ Es kommt oft vor, daß der Leser Beispiele,
+ Dateinamen oder Kommandozeilen verändern muss.
+ Für einen solchen Anwendungsfall
+ ist das Element replaceable gedacht. Es
+ kann innerhalb von anderen Elementen
+ genutzt werden, um die Teile auszuzeichnen, die es zu
+ ersetzen gilt.
+
+
+ Das Element replaceable
+
+
+ &prompt.user; man command
+]]>
+
+ Darstellung:
+
+
+ &prompt.user; man command
+
+
+ Dieses Beispiel zeigt, daß nur der Text mit
+ replaceable umschlossen werden soll,
+ den der Benutzer einzusetzen hat. Sämtlicher anderer
+ Text sollte wie üblich ausgezeichnet werden.
+
+ Die Zeile
+ maxusers n
+ in der Kernelkonfigurationsdatei bestimmt die Größe vieler Systemtabellen
+ und stellt einen groben Richtwert dafür dar, wie viele gleichzeitige Anmeldungen
+ das System unterstützt.
+
+Für einen Arbeitsplatzrechner stellt 32 einen guten
+ Wert für n dar.]]>
+
+ Darstellung:
+
+ Die Zeile maxusers
+ n in der
+ Kernelkonfigurationsdatei bestimmt die Größe
+ vieler Systemtabellen und stellt einen groben Richtwert
+ dafür dar, wie viele gleichzeitige Anmeldungen das
+ System unterstützt.
+
+ Für einen Arbeitsplatzrechner stellt
+ 32 einen guten Wert für
+ n dar.
+
+
+
+
+ Fehlermeldungen des Systems darstellen
+
+ In manchen Fällen kann es nötig sein,
+ Fehlermeldungen darzustellen, die von FreeBSD erzeugt werden
+ können. Für solche Fälle ist das Element
+ errorname vorgesehen.
+
+
+ Das Element errorname
+
+ Panic: cannot mount root ]]>
+
+
+ Darstellung:
+
+
+ Panic: cannot mount root
+
+
+
+
+
+ Bilder und Grafiken
+
+
+ Die Verwendung von Grafiken innerhalb der Dokumentation
+ ist momentan noch in einem experimentellen Stadium. Es ist
+ daher wahrscheinlich, daß sich die hier beschriebenen
+ Mechanismen noch ändern werden.
+
+ Für die Verwendung von Grafiken ist es notwendig,
+ den Port graphics/ImageMagick
+ zusätzlich zu installieren, da er
+ nicht vom Port textproc/docproj mitinstalliert
+ wird.
+
+ Das beste Beispiel für den Einsatz von Grafiken ist
+ der unter
+ doc/en_US.ISO8859-1/articles/vm-design/
+ zu findene Artikel Design elements of the FreeBSD VM
+ system. Falls beim Lesen der folgenden Kapitel
+ Fragen unbeantwortet oder unklar bleiben, empfiehlt es sich,
+ die unter dem genannten Verzeichnis befindlichen Dateien zu
+ studieren und anhand ihrer zu verstehen, wie alles
+ zusammenhängt. Es empfiehlt sich, den Artikel in
+ verschiedenen Ausgabeformaten zu erzeugen, da man so sehen
+ kann, wie die Grafiken in Abhängigkeit vom
+ Ausgabemedium angeordnet werden.
+
+
+
+ Unterstütze Grafikformate
+
+ Zur Zeit werden nur zwei Grafikformate unterstützt.
+ Welches von beiden Formaten zum Einsatz kommen sollte,
+ hängt von der Art der Grafik ab.
+
+ Für Bilder, die vorrangig Vektorelemente wie
+ Netzwerkdiagramme, Zeitlinien und ähnliches beinhalten,
+ sollte Encapsulated Postscript als Format gewählt
+ werden. Wichtig ist es in diesem Fall, daß die
+ Grafikdatei die Endung .eps hat.
+ Für Bitmapgrafiken, wie zum Beispiel Bildschirmfotos,
+ steht das Portable Network Grafic Format zur
+ Verfügung. In diesem Fall, sollte die Grafikdatei immer
+ die Endung .png haben.
+
+ In das CVS-Archiv sollten nur
+ Grafiken in diesen beiden Formaten übernommen
+ werden.
+
+ Es sollte darauf sehr darauf geachtet werden, das
+ richtige Format für das richtige Bild zu wählen.
+ Erwartungsgemäß wird es Dokumente geben, die eine
+ Mischung aus PNG- und EPS-Grafiken enthalten. In solchen
+ Fällen, stellen die Makedateien die Verwendung des
+ richtigen Formats in Abhängigkeit vom Ausgabeformat
+ sicher. Deshalb sollte die gleiche Grafik niemals
+ in zwei unterschiedlichen Formaten in das CVS-Archiv
+ übernommen werden.
+
+
+ Es ist absehbar, daß das Dokumentationsprojekt
+ in Zukunft das Scalable Vector Graphic-Format (SVG) als
+ Standardformat für Vektorgrafiken übernehmen
+ wird. Zum jetzigen Zeitpunkt ist dieser Wechsel noch nicht
+ möglich, da der Stand der jetzigen SVG-Anwendungen
+ noch nicht den dafür notwendigen Erfordernissen
+ entspricht.
+
+
+
+
+
+ DocBook-Elemente für den Grafikeinsatz
+
+ Das Auszeichnen von Bildern mittels DocBook ist relativ
+ einfach. Zuerst wird ein
+ mediaobject-Element eingefügt, das
+ als Container für medienspezifische Elemente fungieren
+ kann. Für die Zwecke des FDPs sind das die Elemente
+ imageobject und
+ textobject.
+
+ In das mediaobject-Element sollten
+ ein Element vom Typ imageobject und zwei
+ textobject-Elemente eingefügt
+ werden. Das imageobject-Element verweist
+ auf die eigentliche Grafikdatei. Dabei ist allerdings nur
+ der Dateipfad ohne Erweiterung anzugegeben. Die
+ textobject-Elemente werden dafür
+ genutzt, Texte aufzunehmen, die dem Leser anstelle des
+ Bildes oder zusammen mit dem Bild angezeigt werden.
+
+ Dies kann unter zwei Umständen geschehen:
+
+
+
+ Wenn ein Dokument als HTML-Datei durch einem Browser
+ angezeigt wird. In diesem Falle muß jeder Grafik
+ ein Alternativtext zugeordnet werden, der dem Leser
+ angezeigt werden kann. Meist ist das notwendig, wenn der
+ Browser die Grafik noch nicht geladen hat oder wenn der
+ Benutzer den Mauszeiger über die Grafik
+ führt.
+
+
+
+ Wenn das Dokument als Textdatei gelesen wird. Da in
+ einer Textdatei keine Grafiken angezeigt werden können,
+ sollte es für die Grafik eine Textentsprechung geben,
+ die alternativ angezeigt werden kann.
+
+
+
+ Das folgende Beispiel soll das bisher geschriebene
+ illustrieren. Angenommen es liegt eine einzubindene Grafik
+ in der Datei bild1 vor, die die
+ Darstellung eines As in einem Rechteck enthält. Die
+ ASCII-Alternative könnte so ausgezeichnet werden:
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bild1">
+ </imageobject>
+ <textobject>
+ <literallayout class="monospaced">+ - - - - - - - - - - - - - - -+
+| A |
++- - - - - - - - - - - - - - -+</literallayout>
+ </textobject>
+ <textobject>
+ <phrase>Ein Bild</phrase>
+ </textobject>
+</mediaobject>
+
+
+
+ Innerhalb vom Element imageobject
+ befindet sich ein Element imagedata,
+ welches mit Hilfe des Attributes
+ fileref den Namen der Grafikdatei
+ (ohne Erweiterung) angibt. Die Bestimmung der
+ Dateierweiterung wird von den Stylesheets
+ übernommen.
+
+
+
+ Das erste textobject-Element
+ enthält ein literallayout-Element,
+ dessen Attribut class den Wert
+ monospaced zugewiesen bekommt. Der
+ Inhalt dieses Elements wird genutzt, wenn das Dokument
+ in Textform ausgegeben wird. An dieser Stelle hat der
+ Autor die Möglichkeit seine
+ Textzeichenkünste unter Beweis zu
+ stellen.
+
+ Wichtig ist, daß die erste und die letzte
+ Zeile sich gleichauf mit dem öffenden und dem
+ schließenden Tag befindet. Dadurch wird
+ sichergestellt, daß keine unnötigen
+ Leerzeichen in die Ausgabe aufgenommen werden.
+
+
+
+ Das zweite textobject-Element
+ sollte lediglich ein phrase-Element
+ enthalten. Wird das Dokument nach HTML konvertiert, wird
+ dessen Inhalt für das Attribut
+ alt des img-Tags
+ verwendet.
+
+
+
+
+
+ Die Makefile-Einträge
+
+ Alle in einem Dokument verwendeten Grafiken müssen in
+ dem zugehörigen Makefile in der Variable
+ IMAGES enthalten sein.
+ IMAGES sollte immer die Namen der
+ Quellgrafiken enthalten. Werden in
+ einem Dokument beispielsweise die drei Grafiken
+ bild1.eps,
+ bild2.png und
+ bild3.png referenziert, sollte das
+ Makefile die folgende Zeile
+ enthalten:
+
+ …
+IMAGES= bild1.eps bild2.png bild3.png
+…
+
+ Eine andere Möglichkeit wäre:
+
+ …
+IMAGES= bild1.eps
+IMAGES+= bild2.png
+IMAGES+= bild3.png
+…
+
+
+ Es kann nicht oft genug betont werden: Welche
+ Grafikdateien für das zu erzeugende Dokument benötigt
+ werden, wird von dem Makefiles bestimmt.
+ IMAGES darf nur die Originaldateien
+ enthalten.
+
+
+
+ Grafiken und Kapitel in Unterverzeichnissen
+
+ Wenn Sie Ihre Dokumentation in mehrere kleine
+ Dateien aufspalten (siehe
+ ),
+ müssen Sie sorgfältig vorgehen.
+
+ Angenommen es handelt sich um ein Buch, dessen drei
+ Kapitel in separaten Verzeichnissen angelegt wurden
+ (kapitel1/kapitel.sgml,
+ kapitel2/kapitel.sgml und
+ kapitel3/kapitel.sgml). Enthalten die
+ Kapitel Grafiken, empfiehlt es sich, diese in den gleichen
+ Verzeichnisses abzulegen, wie die Kapitel selbst. In diesem
+ Falle gilt es jedoch zu beachten, daß die Pfade der
+ Grafikdateien in der Variable IMAGES und
+ in den imagedata-Elementen immer auch den
+ Verzeichnisnamen mitenthalten.
+
+ Soll beispielsweise die Datei
+ kapitel1/bild1.png in das in
+ kapitel1/kapitel.sgml enthaltene
+ Kapitel eingebunden werden, sollte die so erfolgen:
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="kapitel1/bild1">
+ </imageobject>
+
+ …
+</mediaobject>
+
+
+
+ fileref muß den
+ Datei- und den Verzeichnisnamen enthalten.
+
+
+
+ Das Makefile muß dementsprechend
+ die Zeile
+
+ …
+IMAGES= kapitel1/bild1.png
+…
+
+ enthalten.
+
+ Wird dies beachtet, sollte es zu keinen Problemen
+ kommen.
+
+
+
+
+ Querverweise
+
+
+ Querverweise sind auch Flußelemente.
+
+
+
+ Querverweise innerhalb eines Dokumentes
+
+
+ Um innerhalb eines Dokumentes Verweise anzulegen, muß
+ angegeben werden, von welcher Textstelle aus wohin verwiesen
+ werden soll.
+
+ Jedes DocBook-Element besitzt ein Attribut
+ id, über das seinem Element ein
+ eindeutiger Bezeichner zugewiesen werden kann.
+
+
+
+ In den meisten Fällen werden Querverweise nur zu
+ Kapiteln gesetzt. Die chaper- und
+ sect*-Elemente sollten aus diesem Grunde
+ ein gesetztes id-Attribut
+ besitzen.
+
+
+ chapter und section
+ mit dem Attribut id
+
+
+
+ Einführung
+
+ Das ist eine Einführung. Sie enthält ein Unterkapitel, das
+ ebenfalls einen eigenen Bezeichner hat.
+
+
+ Unterkapitel 1
+
+ Das ist ein Unterkapitel.
+
+]]>
+
+
+ Als Wert für das Attribut id
+ sollte immer ein selbsterklärender Bezeichner gewählt
+ werden. Zudem ist es notwendig, daß dieser Bezeichner
+ innerhalb des Dokumentes eindeutig ist. Im obigen Beispiel
+ wurde der Bezeichner für das Unterkapitel gebildet,
+ indem der Bezeichner des übergeordneten Kapitels um den
+ Titel des Unterkapitels erweitert wurde. Diese
+ Vorgehensweise hilft sicherzustellen, daß Bezeichner
+ eindeutig sind und bleiben.
+
+ Manchmal soll jedoch nicht auf den Anfang eines Kapitels
+ verwiesen werden, sondern zum Beispiel auf eine Stelle in
+ einem Absatz oder auf ein bestimmtes Beispiel. In solchen
+ Fällen kann an der Stelle, auf die verwiesen werden
+ soll, das Element anchor mit gesetztem
+ Attribut id eingefügt werden.
+ anchor kann selber keinen weiteren Inhalt
+ aufnehmen.
+
+
+ Querverweise und das Element
+ anchor
+
+ Dieser Absatz enthält ein
+ Ziel für Querverweise, was jedoch keine
+ Auswirkung auf dessen Darstellung hat.]]>
+
+
+ Zum Anlegen des eigentlichen Querverweises selbst kann
+ eines der beiden Elemente xref oder
+ link genutzt werden. Beide besitzen das
+ Attribut linkend, dem der
+ id-Wert des Verweiszieles zugewiesen
+ wird. Ob sich das Ziel vor oder nach dem Verweis befindet,
+ spielt keine Rolle.
+
+ xref und link
+ unterscheiden sich jedoch hinsichtlich der Art und Weise,
+ auf die der Text erzeugt wird, auf dem der Querverweis
+ liegt. Kommt xref zum Einsatz, hat der
+ Autor keine Kontrolle darüber – der Text wird
+ automatisch für ihn erzeugt.
+
+
+
+ Einsatz von xref
+
+
+ Für dieses Beispiel wird davon ausgegangen, daß sich
+ folgendes Textfragment irgendwo innerhalb eines Dokumentes
+ auftaucht, daß das vorherige
+ id-Beispiel enthält.
+
+
+ Weitere Informationen gibt
+ es im .
+
+Genauere Informationen können im
+ gefunden werden.]]>
+
+ Der Verweistext wird automatisch von den Stylesheets
+ erzeugt und so hervorgehoben, daß ersichtlich ist,
+ daß es sich bei dem Text um einen Verweis
+ handelt.
+
+
+ Weitere Informationen können in der
+ Einführung gefunden
+ werden.
+
+ Genauere Informationen können im
+ Unterkapitel 1 gefunden
+ werden.
+
+
+
+ Der Text, auf dem der HTML-Link für den Querverweis
+ liegt, wurde von den Kapitelüberschriften
+ übernommen.
+
+
+ Das bedeutet, daß es nicht
+ möglich ist, mit der Hilfe von
+ xref einen Querverweis zu einer mit
+ anchor gekennzeichneten Stelle
+ anzulegen. Da anchor keinen Inhalt
+ aufnehmen kann, können die Stylesheets nicht
+ automatisch einen Text für den Verweis
+ erzeugen.
+
+
+ Möchte man selber den für den Verweis
+ benutzten Text bestimmen können, sollte das Element
+ link verwendet werden. Im Gegensatz zu
+ xref kann link Inhalt
+ aufnehmen, der dann für den Verweis verwendet
+ wird.
+
+
+
+ link beutzen
+
+ Für dieses Beispiel wird davon ausgegangen, daß
+ es sich in dem Dokument befindet, das auch
+ das id-Beispiel enthält.
+
+ Weitere Informationen können
+ im ersten Kapitel gefunden
+ werden.
+
+Genauere Informationen können in
+ diesem Kapitel
+ gefunden werden.]]>
+
+ Aus diesem SGML-Fragment würden die Stylesheets
+ folgendes generieren (der hervorgehobene Text deutet den
+ erzeugten Verweis an):
+
+
+ Weitere Informationen können im ersten
+ Kapitel gefunden werden.
+
+ Genauere Informationen können in
+ diesem Kapitel gefunden
+ werden.
+
+
+
+
+ Das letzte Beispiel ist schlecht. Es sollten niemals
+ Wörter wie dieses oder
+ hier als Linktext benutzt werden. Solche
+ Wörter zwingen den Leser dazu, den Kontext des
+ Verweises zu lesen, um zu verstehen, wohin der Verweis
+ führt.
+
+
+
+ Mit dem Element link
+ kann auf mit
+ anchor gekennzeichnete Stellen im
+ Dokument verwiesen werden, da der Inhalt von
+ link als Text für den Querverweise
+ genutzt wird.
+
+
+
+
+ Verweise auf Dokumente im WWW
+
+ Das Anlegen von Verweisen auf externe Dokumente ist
+ wesentlich einfacher – solange die URL des zu
+ referenzierenden Dokumentes bekannt ist. Um von einem
+ bestimmten Textabschnitt auf das gewünschte externe
+ Dokument zu verweisen, muß die jeweilige Stelle mit
+ dem Element ulink ausgezeichnet werden.
+ Mittels des Attributes url kann die
+ Adresse des Zieldokumentes angegeben werden. Bei der
+ Umformung des Quelldokumentes in die verschiedenen
+ Ausgabeformate wird der sich zwischen Start- und Endtag
+ befindliche Text für den Verweis übernommen, den
+ der Leser aufrufen kann.
+
+
+
+ Verweise mit ulink
+
+
+ Natürlich ist es möglich, anstatt diesen Text
+ weiterzulesen, sofort die
+ FreeBSD-Homepage
+ aufzurufen.]]>
+
+ Darstellung:
+
+ Natürlich ist es möglich, anstatt diesen Text
+ weiterzulesen, sofort die FreeBSD-Homepage
+ aufzurufen.
+
+
+
+
+
+
+
diff --git a/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml b/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml
index f7bad3cb52..06308e4362 100644
--- a/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml
@@ -1,4851 +1,4851 @@
JohannKoisÜbersetzt von Weiterführende NetzwerkthemenÜbersichtDieses Kapitel beschreibt verschiedene
weiterführende Netzwerkthemen.Nachdem Sie dieses Kapitel gelesen haben, werden SieDie Grundlagen von Gateways und Routen kennen.Bluetooth- sowie drahtlose, der Norm IEEE 802.11
entsprechende, Geräte mit FreeBSD verwenden
können.Eine Bridge unter FreeBSD einrichten können.Einen plattenlosen Rechner über das Netzwerk starten
können.Wissen, wie man NAT (Network Address Translation)
einrichtet.Zwei Computer über PLIP verbinden können.IPv6 auf einem FreeBSD-Rechner einrichten
können.ATM unter &os; 5.X einrichten können.Bevor Sie dieses Kapitel lesen, sollten SieDie Grundlagen der /etc/rc-Skripte
verstanden haben.Mit der grundlegenden Netzwerkterminologie vertraut
sein.Einen neuen FreeBSD-Kernel konfigurieren und installieren
können ().Wissen, wie man zusätzliche Softwarepakete von
Drittherstellern installiert ().CoranthGryphonBeigetragen von Gateways und RoutenRoutingGatewaySubnetzDamit ein Rechner einen anderen über ein Netzwerk
finden kann, muss ein Mechanismus vorhanden sein, der
beschreibt, wie man von einem Rechner zum anderen gelangt.
Dieser Vorgang wird als Routing
bezeichnet. Eine Route besteht aus einem
definierten Adressenpaar: Einem Ziel und einem
Gateway. Dieses Paar zeigt an, dass Sie
über das Gateway zum
Ziel gelangen wollen. Es gibt drei Arten
von Zielen: Einzelne Rechner (Hosts), Subnetze und das
Standardziel. Die Standardroute
wird verwendet, wenn keine andere Route zutrifft. Wir werden
Standardrouten später etwas genauer behandeln.
Außerdem gibt es drei Arten von Gateways: Einzelne Rechner
(Hosts), Schnittstellen (Interfaces, auch als Links
bezeichnet), sowie Ethernet Hardware-Adressen (MAC-Adressen).
Ein BeispielUm die verschiedenen Aspekte des Routings zu
veranschaulichen, verwenden wir folgende Ausgaben von
netstat:&prompt.user; netstat -r
Routing tables
Destination Gateway Flags Refs Use Netif Expire
default outside-gw UGSc 37 418 ppp0
localhost localhost UH 0 181 lo0
test0 0:e0:b5:36:cf:4f UHLW 5 63288 ed0 77
10.20.30.255 link#1 UHLW 1 2421
example.com link#1 UC 0 0
host1 0:e0:a8:37:8:1e UHLW 3 4601 lo0
host2 0:e0:a8:37:8:1e UHLW 0 5 lo0 =>
host2.example.com link#1 UC 0 0
224 link#1 UC 0 0
DefaultrouteDie ersten zwei Zeilen geben die Standardroute (die wir
im nächsten
Abschnitt behandeln), sowie die
localhost Route an.Loopback-GerätDas in der Routingtabelle für
localhost festgelegte Interface
(Netif-Spalte)
lo0, ist auch als loopback-Gerät
(Prüfschleife) bekannt. Das heißt, dass der ganze
Datenverkehr für dieses Ziel intern (innerhalb des
Gerätes) bleibt, anstatt ihn über ein Netzwerk (LAN)
zu versenden, da das Ziel dem Start entspricht.EthernetMAC-AdresseDer nächste auffällige Punkt sind die mit
0:e0: beginnenden Adressen. Es
handelt sich dabei um Ethernet Hardwareadressen, die auch als
MAC-Adressen bekannt sind. FreeBSD identifiziert Rechner im
lokalen Netz automatisch (im Beispiel test0)
und fügt eine direkte Route zu diesem Rechner hinzu. Dies
passiert über die Ethernet-Schnittstelle
ed0. Außerdem existiert ein Timeout
(in der Spalte Expire) für diese Art
von Routen, der verwendet wird, wenn dieser Rechner in einem
definierten Zeitraum nicht reagiert. Wenn dies passiert, wird
die Route zu diesem Rechner automatisch gelöscht.
Rechner im lokalen Netz werden durch einen als RIP (Routing
Information Protocol) bezeichneten Mechanismus identifiziert,
der den kürzesten Weg zu den jeweiligen Rechnern
bestimmt.SubnetzFreeBSD fügt außerdem Subnetzrouten für das
lokale Subnetz hinzu (10.20.30.255 ist die Broadcast-Adresse
für das Subnetz 10.20.30,
example.com ist der zu
diesem Subnetz gehörige Domainname). Das Ziel
link#1 bezieht sich auf die erste
Ethernet-Karte im Rechner. Sie können auch feststellen,
dass keine zusätzlichen Schnittstellen angegeben
sind.Routen für Rechner im lokalen Netz und lokale
Subnetze werden automatisch durch den
routed Daemon konfiguriert. Ist
dieser nicht gestartet, sind nur statisch definierte
(explizit eingegebene) Routen vorhanden.Die Zeile host1 bezieht sich auf
unseren Rechner, der durch seine Ethernetadresse bekannt ist.
Da unser Rechner der Sender ist, verwendet FreeBSD automatisch
das Loopback-Gerät (lo0),
anstatt den Datenverkehr über die Ethernetschnittstelle
zu senden.Die zwei host2 Zeilen sind ein Beispiel
dafür, was passiert, wenn wir ein &man.ifconfig.8; Alias
verwenden (Lesen Sie dazu den Abschnitt über Ethernet,
wenn Sie wissen wollen, warum wir das tun sollten.). Das
Symbol => (nach der
lo0-Schnittstelle) sagt aus, dass wir
nicht nur das Loopbackgerät verwenden (da sich die
Adresse auf den lokalen Rechner bezieht), sondern dass es sich
zusätzlich auch um ein Alias handelt. Solche Routen sind
nur auf Rechnern vorhanden, die den Alias bereitstellen;
alle anderen Rechner im lokalen Netz haben für solche
Routen nur eine einfache link#1
Zeile.Die letzte Zeile (Zielsubnetz 224)
behandelt das Multicasting, das wir in einem anderen Abschnitt
besprechen werden.Schließlich gibt es für Routen noch
verschiedene Attribute, die Sie in der Spalte
Flags finden. Nachfolgend finden Sie eine
kurze Übersicht von einigen dieser Flags und ihrer
Bedeutung:UUp: Die Route ist aktiv.HHost: Das Ziel der Route ist ein einzelner
Rechner (Host).GGateway: Alle Daten, die an dieses Ziel gesendet
werden, werden von diesem System an ihr jeweiliges
Ziel weitergeleitet.SStatic: Diese Route wurde manuell konfiguriert,
das heißt sie wurde nicht
automatisch vom System erzeugt.CClone: Erzeugt eine neue Route, basierend auf der
Route für den Rechner, mit dem wir uns verbinden.
Diese Routenart wird normalerweise für lokale
Netzwerke verwendet.WWasCloned: Eine Route, die automatisch
konfiguriert wurde. Sie basiert auf einer lokalen
Netzwerkroute (Clone).LLink: Die Route beinhaltet einen Verweis auf eine
Ethernetkarte (MAC-Adresse).StandardroutenDefaultrouteStandardrouteDefaultrouteWenn sich der lokale Rechner mit einem entfernten Rechner
verbinden will, wird die Routingtabelle überprüft,
um festzustellen, ob bereits ein bekannter Pfad vorhanden ist.
Gehört dieser entfernte Rechner zu einem Subnetz, dessen
Pfad uns bereits bekannt ist
(Cloned route), dann versucht der
lokale Rechner über diese Schnittstelle eine Verbindung
herzustellen.Wenn alle bekannten Pfade nicht funktionieren, hat der
lokale Rechner eine letzte Möglichkeit: Die
Standardroute (Defaultroute). Bei dieser
Route handelt es sich um eine spezielle Gateway-Route
(gewöhnlich die einzige im System vorhandene), die im
Flags-Feld immer mit C gekennzeichnet ist.
Für Rechner im lokalen Netzwerk ist dieses Gateway auf
welcher Rechner auch immer eine Verbindung nach
außen hat gesetzt (entweder über eine
PPP-Verbindung, DSL, ein Kabelmodem, T1 oder eine beliebige
andere Netzwerkverbindung).Wenn Sie die Standardroute für einen Rechner
konfigurieren, der selbst als Gateway zur Außenwelt
funktioniert, wird die Standardroute zum Gateway-Rechner Ihres
Internetanbieter (ISP) gesetzt.Sehen wir uns ein Beispiel für Standardrouten an. So
sieht eine übliche Konfiguration aus:
[Local2] <--ether--> [Local1] <--PPP--> [ISP-Serv] <--ether--> [T1-GW]
Die Rechner Local1 und
Local2 befinden sich auf Ihrer Seite.
Local1 ist mit einem ISP über eine
PPP-Verbindung verbunden. Dieser PPP-Server ist über ein
lokales Netzwerk mit einem anderen Gateway-Rechner verbunden,
der über eine Schnittstelle die Verbindung des ISP zum
Internet herstellt.Die Standardrouten für Ihre Maschinen lauten:HostStandard GatewaySchnittstelleLocal2Local1EthernetLocal1T1-GWPPPEine häufig gestellte Frage lautet: Warum (oder
wie) sollten wir T1-GW als Standard-Gateway
für Local1 setzen, statt den (direkt
verbundenen) ISP-Server zu verwenden?.Bedenken Sie, dass die PPP-Schnittstelle für die
Verbindung eine Adresse des lokalen Netzes des ISP verwendet.
Daher werden Routen für alle anderen Rechner im lokalen
Netz des ISP automatisch erzeugt. Daraus folgt, dass Sie
bereits wissen, wie Sie T1-GW erreichen
können! Es ist also unnötig, einen Zwischenschritt
über den ISP-Server zu machen.Es ist üblich, die Adresse X.X.X.1 als Gateway-Adresse für
ihr lokales Netzwerk zu verwenden. Für unser Beispiel
bedeutet dies Folgendes: Wenn Ihr lokaler Klasse-C-Adressraum
10.20.30 ist und Ihr ISP
10.9.9 verwendet, sehen die
Standardrouten so aus:Rechner (Host)StandardrouteLocal2 (10.20.30.2)Local1 (10.20.30.1)Local1 (10.20.30.1, 10.9.9.30)T1-GW (10.9.9.1)Sie können die Standardroute ganz einfach in der Datei
/etc/rc.conf festlegen. In unserem
Beispiel wurde auf dem Rechner Local2
folgende Zeile in /etc/rc.conf
eingefügt:defaultrouter="10.20.30.1"Die Standardroute kann über &man.route.8; auch direkt
gesetzt werden:&prompt.root; route add default 10.20.30.1Weitere Informationen zum Bearbeiten von
Netzwerkroutingtabellen finden Sie in &man.route.8;.Rechner mit zwei HeimatnetzenDual-Homed-HostsEs gibt noch eine Konfigurationsmöglichkeit, die wir
besprechen sollten, und zwar Rechner, die sich in zwei
Netzwerken befinden. Technisch gesehen, zählt jeder als
Gateway arbeitende Rechner zu den Rechnern mit zwei
Heimatnetzen (im obigen Beispiel unter Verwendung einer
PPP-Verbindung). In der Praxis meint man damit allerdings nur
Rechner, die sich in zwei lokalen Netzen befinden.Entweder verfügt der Rechner über zwei
Ethernetkarten und jede dieser Karten hat eine Adresse in
einem separaten Subnetz, oder der Rechner hat nur eine
Ethernetkarte und verwendet &man.ifconfig.8; Aliasing. Die
erste Möglichkeit wird verwendet, wenn zwei physikalisch
getrennte Ethernet-Netzwerke vorhanden sind, die zweite, wenn
es nur ein physikalisches Ethernet-Netzwerk gibt, das aber aus
zwei logisch getrennten Subnetzen besteht.In beiden Fällen werden Routingtabellen erstellt,
damit jedes Subnetz weiß, dass dieser Rechner als Gateway
zum anderen Subnetz arbeitet (inbound
route). Diese Konfiguration (der
Gateway-Rechner arbeitet als Router zwischen den Subnetzen) wird
häufig verwendet, wenn es darum geht, Paketfilterung oder
eine Firewall (in eine oder beide Richtungen) zu implementieren.
Soll dieser Rechner Pakete zwischen den beiden
Schnittstellen weiterleiten, müssen Sie diese Funktion
manuell konfigurieren und aktivieren. Lesen Sie den
nächsten Abschnitt, wenn Sie weitere Informationen zu
diesem Thema benötigen.Einen Router konfigurierenRouterEin Netzwerkrouter ist einfach ein System, das Pakete von
einer Schnittstelle zur anderen weiterleitet.
Internetstandards und gute Ingenieurspraxis sorgten
dafür, dass diese Funktion in FreeBSD in der Voreinstellung
deaktiviert ist. Sie können diese Funktion aktivieren,
indem Sie in &man.rc.conf.5; folgende Änderung
durchführen:gateway_enable=YES # Auf YES setzen, wenn der Rechner als Gateway arbeiten sollDiese Option setzt die &man.sysctl.8;-Variable
net.inet.ip.forwarding auf
1. Wenn Sie das Routing kurzzeitig
unterbrechen wollen, können Sie die Variable auf
0 setzen.BGPRIPOSPFIhr neuer Router benötigt nun noch Routen, um zu
wissen, wohin er den Verkehr senden soll. Haben Sie ein
(sehr) einfaches Netzwerk, können Sie statische Routen
verwenden. FreeBSD verfügt über den Standard
BSD-Routing-Daemon &man.routed.8;, der RIP (sowohl Version 1
als auch Version 2) und IRDP versteht. BGP v4,
OSPF v2 und andere Protokolle werden von
net/zebra
unterstützt. Es stehen auch kommerzielle Produkte
wie gated zur Verfügung.AlHoangBeigetragen von Statische Routen einrichtenManuelle KonfigurationNehmen wir an, dass wir über folgendes Netzwerk
verfügen:
INTERNET
| (10.0.0.1/24) Default Router to Internet
|
|Interface xl0
|10.0.0.10/24
+------+
| | RouterA
| | (FreeBSD gateway)
+------+
| Interface xl1
| 192.168.1.1/24
|
+--------------------------------+
Internal Net 1 | 192.168.1.2/24
|
+------+
| | RouterB
| |
+------+
| 192.168.2.1/24
|
Internal Net 2
RouterA, ein &os;-Rechner, dient als
Router für den Zugriff auf das Internet. Die
Standardroute ist auf 10.0.0.1
gesetzt, damit ein Zugriff auf das Internet möglich wird.
Wir nehmen nun an, dass RouterB bereits
konfiguriert ist und daher weiß, wie er andere Rechner
erreichen kann. Dazu wird die Standardroute von
RouterB auf
192.168.1.1 gesetzt, da dieser
Rechner als Gateway fungiert.Sieht man sich die Routingtabelle für
RouterA an, erhält man folgende Ausgabe:
&prompt.user; netstat -nr
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 10.0.0.1 UGS 0 49378 xl0
127.0.0.1 127.0.0.1 UH 0 6 lo0
10.0.0/24 link#1 UC 0 0 xl0
192.168.1/24 link#2 UC 0 0 xl1Mit dieser Routingtabelle kann RouterA
unser internes Netz 2 nicht erreichen, da keine Route zum
Rechner 192.168.2.0/24
vorhanden ist. Um dies zu korrigieren, kann die Route manuell
gesetzt werden. Durch den folgenden Befehl wird das
interne Netz 2 in die Routingtabelle des Rechners
RouterA aufgenommen, indem
192.168.1.2 als nächster
Zwischenschritt verwenden wird:&prompt.root; route add -net 192.168.2.0/24 192.168.1.2Ab sofort kann RouterA alle Rechner des
Netzwerks 192.168.2.0/24
erreichen.Routen dauerhaft einrichtenDas obige Beispiel ist für die Konfiguration einer
statischen Route auf einem laufenden System geeignet. Diese
Information geht jedoch verloren, wenn der &os;-Rechner neu
gestartet werden muss. Um dies zu verhindern, wird diese
Route in /etc/rc.conf eingetragen:# Add Internal Net 2 as a static route
static_routes="internalnet2"
route_internalnet2="-net 192.168.2.0/24 192.168.1.2"Die Variable static_routes enthält
eine Reihe von Strings, die durch Leerzeichen getrennt sind.
Jeder String bezieht sich auf den Namen einer Route. In
unserem Beispiel hat static_routesinternalnet2 als einzigen String.
Zusätzlich verwendet man die Konfigurationsvariable
route_internalnet2,
in der alle sonstigen an &man.route.8; zu übergebenden
Parameter festgelegt werden. In obigen Beispiel hätte
man folgenden Befehl verwendet:&prompt.root; route add -net 192.168.2.0/24 192.168.1.2Daher wird
"-net 192.168.2.0/24 192.168.1.2" als
Parameter der Variable route_ angegeben.
Wie bereits erwähnt, können bei
static_routes auch mehrere Strings
angegeben werden. Dadurch lassen sich mehrere statische
Routen anlegen. Durch folgende Zeilen werden auf einem
imaginären Rechner statische Routen zu den Netzwerken
192.168.0.0/24 sowie 192.168.1.0/24 definiert:static_routes="net1 net2"
route_net1="-net 192.168.0.0/24 192.168.0.1"
route_net2="-net 192.168.1.0/24 192.168.1.1"Verteilung von Routing-Informationenrouting propagationWir haben bereits darüber gesprochen, wie wir unsere
Routen zur Außenwelt definieren, aber nicht darüber,
wie die Außenwelt uns finden kann.Wir wissen bereits, dass Routing-Tabellen so erstellt
werden können, dass sämtlicher Verkehr für
einen bestimmten Adressraum (in unserem Beispiel ein
Klasse-C-Subnetz) zu einem bestimmten Rechner in diesem
Netzwerk gesendet wird, der die eingehenden Pakete im Subnetz
verteilt.Wenn Sie einen Adressraum für Ihre Seite zugewiesen
bekommen, richtet Ihr Diensteanbieter seine Routingtabellen so
ein, dass der ganze Verkehr für Ihr Subnetz entlang Ihrer
PPP-Verbindung zu Ihrer Seite gesendet wird. Aber woher
wissen die Seiten in der Außenwelt, dass sie die Daten an
Ihren ISP senden sollen?Es gibt ein System (ähnlich dem verbreiteten DNS),
das alle zugewiesenen Adressräume verwaltet und ihre
Verbindung zum Internet-Backbone definiert und dokumentiert.
Der Backbone ist das Netz aus
Hauptverbindungen, die den Internetverkehr in der ganzen Welt
transportieren und verteilen. Jeder Backbone-Rechner
verfügt über eine Kopie von Haupttabellen, die den
Verkehr für ein bestimmtes Netzwerk hierarchisch vom
Backbone über eine Kette von Diensteanbietern bis hin zu
Ihrer Seite leiten.Es ist die Aufgabe Ihres Diensteanbieters, den
Backbone-Seiten mitzuteilen, dass sie mit Ihrer Seite
verbunden wurden. Durch diese Mitteilung der Route ist nun
auch der Weg zu Ihnen bekannt. Dieser Vorgang wird als
Bekanntmachung von Routen
(routing propagation)
bezeichnet.ProblembehebungtracerouteManchmal kommt es zu Problemen bei der Bekanntmachung von
Routen, und einige Seiten sind nicht in der Lage, Sie zu
erreichen. Vielleicht der nützlichste Befehl, um
festzustellen, wo das Routing nicht funktioniert, ist
&man.traceroute.8;. Er ist außerdem sehr nützlich,
wenn Sie einen entfernten Rechner nicht erreichen können
(lesen Sie dazu auch &man.ping.8;).&man.traceroute.8; wird mit dem zu erreichenden Rechner
(Host) ausgeführt. Angezeigt werden die Gateway-Rechner
entlang des Verbindungspfades. Schließlich wird der
Zielrechner erreicht oder es kommt zu einem Verbindungsabbruch
(beispielsweise durch Nichterreichbarkeit eines
Gateway-Rechners).Weitere Informationen finden Sie in
&man.traceroute.8;.Multicast-RoutingMulticast-RoutingKerneloptionenMROUTING&os; unterstützt sowohl Multicast-Anwendungen als
auch Multicast-Routing. Multicast-Anwendungen müssen
nicht konfiguriert werden, sie laufen einfach.
Multicast-Routing muss in der Kernelkonfiguration aktiviert
werden:options MROUTINGZusätzlich muss &man.mrouted.8;, der
Multicast-Routing-Daemon, über die Datei
/etc/mrouted.conf eingerichtet werden,
um Tunnel und DVMRP zu aktivieren. Weitere
Informationen zu diesem Thema finden Sie in
&man.mrouted.8;.EricAndersonGeschrieben von Drahtlose Netzwerkedrahtlose Netzwerke802.11drahtlose NetzwerkeEinführungEs kann sehr nützlich sein, einen Computer zu
verwenden, ohne sich die ganze Zeit mit einem Netzwerkkabel
herumärgern zu müssen. FreeBSD kann auf drahtlose
Netzwerke (wireless LAN)
zugreifen und sogar als Zugangspunkt
(access point) für
drahtlose Netzwerke verwendet werden.Betriebsmodi drahtloser GeräteDrahtlose 802.11-Geräte können in zwei Modi
konfiguriert werden: BSS und IBSS.BSS-ModusÜblicherweise wird der BSS-Modus, der auch
Infrastruktur-Modus genannt wird, verwendet. In diesem Modus
sind die Zugangspunkte (access
points) mit einem Kabel-Netzwerk verbunden.
Jedes drahtlose Netzwerk besitzt einen Namen, der als die SSID
des Netzwerks bezeichnet wird.Drahtlose Clients benutzen ein im IEEE-802.11-Standard
beschriebenes Protokoll, um sich mit den Zugangspunkten zu
verbinden. Durch die Angabe einer SSID kann sich der Client
das Netzwerk, mit dem er sich verbinden will, aussuchen. Gibt
der Client keine SSID an, so wird er mit einem beliebigen
Netzwerk verbunden.IBSS-ModusDer IBSS-Modus, der auch ad-hoc-Modus genannt wird, wurde
für Punkt-zu-Punkt-Verbindungen entworfen. Es gibt zwei
Modi: Den IBSS-Modus, auch ad-hoc- oder IEEE-ad-hoc-Modus
(definiert im IEEE-802.11-Standard) sowie den demo-ad-hoc-Modus
oder Lucent-adhoc-Modus (der manchmal ebenfalls als
ad-hoc-Modus bezeichnet wird). Der zweite Modus stammt aus der
Zeit vor IEEE 802.11 und sollte nur noch mit alten
Installationen verwendet werden. Im folgenden wird keiner der
ad-hoc-Modi behandelt.Infrastruktur-ModusZugangspunkteZugangspunkte sind drahtlose Netzwerkgeräte, die es
einem oder mehreren Clients ermöglichen, diesen als
einen zentralen Verteiler (Hub) zu benutzen. Wenn ein
Zugangspunkt verwendet wird, kommunizieren alle Clients
über diesen Zugangspunkt. Oft werden mehrere
Zugangspunkte kombiniert, um ein ganzes Gebiet, wie ein
Haus, ein Unternehmen oder einen Park mit einem drahtlosen
Netzwerk zu versorgen.Üblicherweise haben Zugangspunkte mehrere
Netzwerkverbindungen: Die drahtlose Karte, sowie eine oder
mehrere Ethernetkarten, über die die Verbindung mit dem
restlichen Netzwerk hergestellt wird.Sie können einen vorkonfigurierten Zugangspunkt
kaufen, oder Sie können sich unter Verwendung von
FreeBSD und einer unterstützten drahtlosen Karte einen
eigenen bauen. Es gibt verschiedene Hersteller, die sowohl
Zugangspunkte als auch drahtlose Karten mit verschiedensten
Eigenschaften vertreiben.Einen FreeBSD-Zugangspunkt installierendrahtlose NetzwerkeZugangspunkteVoraussetzungenUm einen drahtlosen Zugangspunkt unter FreeBSD
einzurichten, müssen Sie über eine drahtlose
Karte verfügen. Zurzeit werden dafür von
FreeBSD nur Karten mit Prism-Chipsatz unterstützt.
Zusätzlich benötigen Sie eine von FreeBSD
unterstützte Ethernetkarte (diese sollte nicht schwer
zu finden sein, da FreeBSD eine Vielzahl von verschiedenen
Karten unterstützt). Für die weiteren
Erläuterungen nehmen wir an, dass Sie den ganzen
Verkehr zwischen dem drahtlosen Gerät und dem an die
Ethernetkarte angeschlossenen Kabel-Netzwerk über
die &man.bridge.4;-Funktion realisieren wollen.Die hostap-Funktion, mit der FreeBSD Zugangspunkte
implementiert, läuft am besten mit bestimmten
Firmware-Versionen. Prism 2-Karten sollten die
Firmwareversion 1.3.4 oder neuer verwenden.
Prism 2.5- und Prism 3-Karten sollten die
Firmwareversion 1.4.9 verwenden. Es kann sein,
dass auch ältere Versionen funktionieren. Zurzeit ist
es nur mit &windows;-Werkzeugen der Hersteller möglich,
die Firmware zu aktualisieren.EinrichtungStellen Sie als Erstes sicher, dass Ihr System die
drahtlose Karte erkennt:&prompt.root; ifconfig -a
wi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::202:2dff:fe2d:c938%wi0 prefixlen 64 scopeid 0x7
inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255
ether 00:09:2d:2d:c9:50
media: IEEE 802.11 Wireless Ethernet autoselect (DS/2Mbps)
status: no carrier
ssid ""
stationname "FreeBSD Wireless node"
channel 10 authmode OPEN powersavemode OFF powersavesleep 100
wepmode OFF weptxkey 1Kümmern Sie sich jetzt noch nicht um die Details,
sondern stellen Sie nur sicher, dass ihre drahtlose Karte
überhaupt erkannt und angezeigt wird. Wenn es sich
um eine PC Card handelt, die überhaupt nicht
erkannt wird, sollten Sie &man.pccardc.8; sowie
&man.pccardd.8; lesen.Danach müssen Sie ein Modul laden, um die
Bridge-Funktion von FreeBSD für den Zugangspunkt
vorzubereiten. Um das Modul &man.bridge.4; zu laden,
geben Sie Folgendes ein:&prompt.root; kldload bridgeDabei sollten beim Laden des Moduls keine
Fehlermeldungen auftreten. Geschieht dies doch, kann es
sein, dass Sie die Bridge-Funktion (&man.bridge.4;)
in Ihren Kernel kompilieren müssen. Der Abschnitt
LAN-Kopplung mit einer
Bridge dieses Handbuchs sollte Ihnen dabei
behilflich sein.Wenn die Bridge-Funktion aktiviert ist,
müssen wir FreeBSD mitteilen, welche Schnittstellen
über die Bridge verbunden werden sollen. Dazu
verwenden wir &man.sysctl.8;:&prompt.root; sysctl net.link.ether.bridge=1
&prompt.root; sysctl net.link.ether.bridge_cfg="wi0 xl0"
&prompt.root; sysctl net.inet.ip.forwarding=1Ab &os; 5.2-RELEASE müssen Sie
Folgendes eingeben:&prompt.root; sysctl net.link.ether.bridge.enable=1
&prompt.root; sysctl net.link.ether.bridge.config="wi0,xl0"
&prompt.root; sysctl net.inet.ip.forwarding=1Nun ist es an der Zeit, die drahtlose Karte zu
installieren. Der folgende Befehl konfiguriert einen
Zugangspunkt:&prompt.root; ifconfig wi0 ssid my_net channel 11 media DS/11Mbps mediaopt hostap up stationname "FreeBSD AP"Durch diese Zeile aktiviert &man.ifconfig.8; das
Gerät wi0, setzt die SSID auf
my_net sowie den Namen des
Zugangspunkts auf FreeBSD AP.
Mit wird die Karte in den
11 Mbps-Modus versetzt. Diese Option ist nötig,
damit -Optionen wirksam werden.
Durch wird die
Schnittstelle als Zugangspunkt konfiguriert. Der zu
benutzende 802.11b-Kanal wird durch
festgelegt. Weitere
Informationen zu gültigen Kanaloptionen finden Sie in
&man.wicontrol.8;.Nun sollten Sie über einen voll
funktionsfähigen und laufenden Zugangspunkt
verfügen. Weitere Informationen finden Sie
in den Hilfeseiten &man.wicontrol.8;, &man.ifconfig.8;
und &man.wi.4;.Außerdem ist es empfehlenswert, den folgenden
Abschnitt zu lesen, um sich über die Sicherung und
Verschlüsselung von Zugangspunkten zu
informieren.StatusinformationenWenn der Zugangspunkt eingerichtet ist und läuft,
können Sie die verbundenen Clients mit dem nachstehenden
Kommando abfragen:&prompt.root; wicontrol -l
1 station:
00:09:b7:7b:9d:16 asid=04c0, flags=3<ASSOC,AUTH>, caps=1<ESS>, rates=f<1M,2M,5.5M,11M>, sig=38/15Das Beispiel zeigt eine verbundene Station und die
dazugehörenden Verbindungsparameter. Die angegebene
Signalstärke ist allerdings mit Vorsicht zu
genießen, da die Umrechnung in dBm oder andere
Einheiten von der eingesetzten Firmware-Version
abhängig ist.ClientsEin drahtloser Client ist ein System, das direkt auf
einen Zugangspunkt oder einen anderen Client
zugreift.Üblicherweise haben drahtlose Clients nur ein
Netzwerkgerät, die drahtlose Netzkarte.Es gibt verschiedene Möglichkeiten, einen
drahtlosen Client zu konfigurieren. Diese hängen von
den verschiedenen drahtlosen Betriebsmodi ab. Man
unterscheidet vor allem zwischen BSS (Infrastrukturmodus,
erfordert einen Zugangspunkt) und IBSS (ad-hoc,
Peer-to-Peer-Modus, zwischen zwei Clients, ohne
Zugangspunkt). In unserem Beispiel verwenden wir den weiter
verbreiteten BSS-Modus, um einen Zugangspunkt anzusprechen.
VoraussetzungenEs gibt nur eine Voraussetzung, um FreeBSD als
drahtlosen Client betreiben zu können: Sie brauchen
eine von FreeBSD unterstützte drahtlose Karte.Einen drahtlosen FreeBSD-Client einrichtenSie müssen ein paar Dinge über das drahtlose
Netzwerk wissen, mit dem Sie sich verbinden wollen, bevor
Sie starten können. In unserem Beispiel verbinden
wir uns mit einem Netzwerk, das den Namen
my_net hat, und bei dem die
Verschlüsselung deaktiviert ist.In unserem Beispiel verwenden wir keine
Verschlüsselung. Dies ist eine gefährliche
Situation. Im nächsten Abschnitt werden Sie daher
lernen, wie man die Verschlüsselung aktiviert, warum
es wichtig ist, dies zu tun, und warum einige
Verschlüsselungstechniken Sie trotzdem nicht
vollständig schützen.Stellen Sie sicher, dass Ihre Karte von FreeBSD
erkannt wird:&prompt.root; ifconfig -a
wi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::202:2dff:fe2d:c938%wi0 prefixlen 64 scopeid 0x7
inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255
ether 00:09:2d:2d:c9:50
media: IEEE 802.11 Wireless Ethernet autoselect (DS/2Mbps)
status: no carrier
ssid ""
stationname "FreeBSD Wireless node"
channel 10 authmode OPEN powersavemode OFF powersavesleep 100
wepmode OFF weptxkey 1Nun können wir die Einstellungen der Karte unserem
Netzwerk anpassen:&prompt.root; ifconfig wi0 inet 192.168.0.20 netmask 255.255.255.0 ssid my_netErsetzen Sie 192.168.0.20 und 255.255.255.0 durch eine
gültige IP-Adresse und Netzmaske ihres
Kabel-Netzwerks. Bedenken Sie außerdem, dass unser
Zugangspunkt als Bridge zwischen dem drahtlosen und
dem Kabel-Netzwerk fungiert. Für die anderen
Rechner Ihres Netzwerks befinden Sie sich, genauso wie
diese, im gleichen Kabel-Netzwerk, obwohl Sie zum
drahtlosen Netzwerk gehören.Nachdem Sie dies erledigt haben, sollten Sie andere
Rechner (Hosts) im Kabel-Netzwerk an&man.ping.8;en
können, genauso, wie wenn Sie über eine
Standardkabelverbindung mit ihnen verbunden
wären.Wenn Probleme mit Ihrer drahtlosen Verbindung
auftreten, stellen Sie sicher, dass Sie mit dem
Zugangspunkt verbunden sind:&prompt.root; ifconfig wi0sollte einige Informationen ausgeben und Sie sollten
Folgendes sehen:status: associatedWird associated nicht angezeigt, sind
Sie entweder außerhalb der Reichweite des
Zugangspunktes, haben die Verschlüsselung deaktiviert,
oder Sie haben ein anderes Konfigurationsproblem.Verschlüsselungdrahtlose NetzwerkeVerschlüsselungVerschlüsselung ist in einem drahtlosen Netzwerk
wichtig, da Sie das Netzwerk nicht länger in einem
geschützten Bereich betreiben können. Ihre Daten
verbreiten sich in der ganzen Nachbarschaft, das heißt
jeder, der es will, kann Ihre Daten lesen. Deshalb gibt es
die Verschlüsselung. Durch die Verschlüsselung der
durch die Luft versendeten Daten machen Sie es einem Dritten
sehr viel schwerer, Ihre Daten abzufangen oder auf diese
zuzugreifen.Die gebräuchlichsten Methoden, um Daten zwischen
Ihrem Client und dem Zugangspunkt zu verschlüsseln,
sind WEP und &man.ipsec.4;.WEPWEPWEP ist die Abkürzung für
Wired Equivalency
Protocol ("Verkabelung entsprechendes
Protokoll"). WEP war ein Versuch, drahtlose Netzwerke
ebenso sicher und geschützt zu machen wie verkabelte
Netzwerke. Unglücklicherweise wurde es bereits
geknackt, und ist relativ einfach auszuhebeln. Sie sollten
sich also nicht darauf verlassen, wenn Sie sensible Daten
verschlüsseln wollen.Allerdings ist eine schlechte Verschlüsselung
noch immer besser als gar keine Verschlüsselung.
Aktivieren Sie daher WEP für Ihren neuen
FreeBSD-Zugangspunkt:&prompt.root; ifconfig wi0 inet up ssid my_net wepmode on wepkey 0x1234567890 media DS/11Mbps mediaopt hostapAuf dem Client können Sie WEP wie folgt
aktivieren:&prompt.root; ifconfig wi0 inet 192.168.0.20 netmask 255.255.255.0 ssid my_net wepmode on wepkey 0x1234567890Beachten Sie bitte, dass Sie
0x1234567890 durch einen besseren
Schlüssel ersetzen sollten.IPsec&man.ipsec.4; ist ein viel besseres und robusteres
Werkzeug, um Daten in einem Netzwerk zu
verschlüsseln und ist auch der bevorzugte Weg,
Daten in einem drahtlosen Netzwerk zu verschlüsseln.
Weitere Informationen zu &man.ipsec.4; sowie zu dessen
Implementierung enthält der Abschnitt
IPsec des Handbuches.WerkzeugeEs gibt einige Werkzeuge, die dazu dienen, Ihr
drahtloses Netzwerk zu installieren, und auftretende
Probleme zu beheben. Im folgenden Abschnitt werden die
wichtigsten von ihnen beschrieben.bsd-airtoolsDas Paket bsd-airtools
enthält einen kompletten Werkzeugsatz zum
Herausfinden von WEP-Schlüsseln, zum Auffinden von
Zugangspunkten, usw.Die bsd-airtools
können Sie über den Port
net/bsd-airtools
installieren. Wie ein Port installiert wird,
beschreibt des Handbuchs.Das Programm dstumbler ist ein
Werkzeug, das Sie beim Auffinden von Zugangspunkten
unterstützt, und das Signal-Rausch-Verhältnis
graphisch darstellen kann. Wenn Sie Probleme beim
Einrichten und Betreiben Ihres Zugangspunktes haben,
könnte dstumbler genau das
Richtige für Sie sein.Um die Sicherheit Ihres drahtlosen Netzwerks zu
überprüfen, könnten Sie das Paket
dweputils (dwepcrack,
dwepdump und
dwepkeygen) verwenden. Durch diese Tools
können Sie feststellen, ob WEP Ihren
Sicherheitsanforderungen genügt.wicontrol,
ancontrol und
raycontrolDies sind Werkzeuge, um das Verhalten Ihrer drahtlosen
Karte im drahtlosen Netzwerk zu kontrollieren. In den
obigen Beispielen haben wir &man.wicontrol.8; verwendet,
da es sich bei unser drahtlosen Karte um ein Gerät
der wi0-Schnittstelle handelt.
Hätten Sie eine drahtlose Karte von Cisco,
würden Sie diese über
an0 ansprechen, und daher
&man.ancontrol.8; verwenden.Das Kommando ifconfigifconfig&man.ifconfig.8; kennt zwar viele Optionen von
&man.wicontrol.8;, einige fehlen jedoch. Unter
&man.ifconfig.8; finden Sie Informationen zu
Parametern und Optionen.Unterstützte KartenZugangspunktDie einzigen Karten, die im BSS-Modus (das heißt
als Zugangspunkt) derzeit unterstützt werden, sind
solche mit Prism 2-, 2.5- oder 3-Chipsatz. Für
eine komplette Übersicht lesen Sie bitte &man.wi.4;.
ClientsBeinahe alle nach 802.11b arbeitenden drahtlosen
Karten werden von FreeBSD unterstützt. Die meisten
dieser Karten von Prism, Spectrum24, Hermes, Aironet und
Raylink arbeiten als drahtlose Netzkarten im IBSS-Modus
(ad-hoc, Peer-to-Peer und BSS).802.11a und 802.11g Clients&man.ath.4; unterstützt sowohl 802.11a als auch
802.11g. Wenn Ihre Karte auf dem Atheros-Chipsatz basiert,
können Sie also eventuell diesen Treiber
verwenden.Leider stellen nach wie vor viele Unternehmen die
Spezifikationen ihrer Treiber der Open Source Gemeinde
nicht zur Verfügung, weil sie diese Informationen
als Geschäftsgeheimnisse betrachten. Daher haben die
Entwickler von FreeBSD und anderen Betriebssystemen nur
zwei Möglichkeiten. Entweder versuchen sie in einem
aufwändigen Prozess den Treiber durch
Reverse Engineering
nachzubauen, oder sie versuchen, die vorhandenen
Binärtreiber der µsoft.windows;-Plattform zu
verwenden. Die meisten Entwickler, darunter auch die an
FreeBSD beteiligten, haben sich für den zweiten Ansatz
entschieden.Bill Paul (wpaul) ist es zu verdanken, dass es seit
FreeBSD 5.3-RELEASE eine
native Unterstützung der
Network Driver Interface
Specification (NDIS) gibt. Der
FreeBSD NDISulator (auch als Project Evil bekannt) nutzt
den binären &windows;-Treiber, indem er diesem vorgibt,
unter &windows; zu laufen. Obwohl diese Fähigkeit noch
relativ neu ist, arbeitet sie in den meisten Fällen
bereits zufriedenstellend.Um den NDISulator zu verwenden, benötigen Sie drei
Dinge:Die KernelquellenDen &windowsxp;-Binärtreiber
(mit der Erweiterung .SYS)Die Konfigurationsdatei des &windowsxp;-Treibers
(mit der Erweiterung .INF)Als erstes müssen Sie das Wrappermodul für
den &man.ndis.4; Miniport-Treiber kompilieren. Dazu geben
Sie als root Folgendes ein:&prompt.root; cd /usr/src/sys/modules/ndis
&prompt.root; make && make installSuchen Sie die Dateien für Ihre Karte. Diese
befinden sich meistens auf einer beigelegten CD-ROM, oder
können von der Internetseite des Herstellers
heruntergeladen werden. In den folgenden Beispielen werden
die Dateien W32DRIVER.SYS und
W32DRIVER.INF verwendet.Als Nächstes kompilieren Sie den binären
Treiber, um ein Kernelmodul zu erzeugen. Dazu wechseln Sie
als root ins Modulverzeichnis
if_ndis und kopieren den
&windows;-Treiber dorthin:&prompt.root; cd /usr/src/sys/modules/if_ndis
&prompt.root; cp /path/to/driver/W32DRIVER.SYS ./
&prompt.root; cp /path/to/driver/W32DRIVER.INF ./Danach nutzen wir ndiscvt, um die
Headerdatei ndis_driver_data.h mit
den Treiberdefinitionen zu erzeugen, die für den Bau
des Moduls benötigt wird:&prompt.root; ndiscvt -i W32DRIVER.INF -s W32DRIVER.SYS -o ndis_driver_data.hDie Optionen und
legen die Konfigurations- und Binärdateien fest. Durch
teilen wir
Makefile mit, wo sich diese für
den Bau des Moduls benötigte Datei befindet.Einige &windows;-Treiber benötigen noch weitere
Dateien für einen fehlerfreien Betrieb. Ist dies bei
Ihnen der Fall, können Sie diese Dateien mit der Option
an ndiscvt
übergeben (lesen Sie dazu auch &man.ndiscvt.8;).Nun können wir das Treibermodul kompilieren und
installieren:&prompt.root; make && make installUm den Treiber zu verwenden, müssen Sie die
entsprechenden Module laden:&prompt.root; kldload ndis
&prompt.root; kldload if_ndisDer erste Befehl lädt den Wrapper für den
NDIS Miniport-Treiber, der zweite die betreffende
Netzwerkgerätedatei. Überprüfen Sie nun
&man.dmesg.8; auf eventuelle Fehlermeldungen. Wenn alles
klappt, sollte Sie eine Ausgabe ähnlich der folgenden
erhalten:ndis0: <Wireless-G PCI Adapter> mem 0xf4100000-0xf4101fff irq 3 at device 8.0 on pci1
ndis0: NDIS API version: 5.0
ndis0: Ethernet address: 0a:b1:2c:d3:4e:f5
ndis0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
ndis0: 11g rates: 6Mbps 9Mbps 12Mbps 18Mbps 36Mbps 48Mbps 54MbpsAb sofort können Sie ndis0
wie jedes andere drahtlose Gerät (beispielsweise
wi0) ansprechen. Lesen Sie sich
dazu die vorherigen Abschnitte dieses Kapitels nochmals
durch.PavLucistnikBeigetragen von pav@oook.czBluetoothBluetoothÜbersichtBluetooth ermöglicht die Bildung von persönlichen
Netzwerken über drahtlose Verbindungen bei einer maximalen
Reichweite von 10 Metern und operiert im unlizensierten
2,4-GHz-Band. Solche Netzwerke werden normalerweise spontan
gebildet, wenn sich mobile Geräte, wie Mobiltelefone,
Handhelds oder Notebooks miteinander verbinden. Im Gegensatz zu
Wireless LAN ermöglicht Bluetooth auch höherwertige
Dienste, wie FTP-ähnliche Dateiserver, Filepushing,
Sprachübertragung, Emulation von seriellen Verbindungen
und andere mehr.Der Bluetooth-Stack von &os; verwendet das
Netgraph-Framework (&man.netgraph.4;). Viele
Bluetooth-USB-Adapter werden durch den &man.ng.ubt.4;-Treiber
unterstützt. Auf dem Chip BCM2033
von Broadcom basierende Bluetooth-Geräte werden von den
Treibern &man.ubtbcmfw.4; sowie &man.ng.ubt.4; unterstützt.
Die Bluetooth-PC-Card 3CRWB60-A von 3Com verwendet den
&man.ng.bt3c.4;-Treiber. Serielle sowie auf UART basierende
Bluetooth-Geräte werden von &man.sio.4;, &man.ng.h4.4;
sowie &man.hcseriald.8; unterstützt. Dieses Kapitel
beschreibt die Verwendung von USB-Bluetooth-Adaptern. Bluetooth
wird seit der Version 5.0 von &os; unterstützt.Die Bluetooth-Unterstützung aktivierenBluetooth-Unterstützung ist in der Regel als
Kernelmodul verfügbar. Damit ein Gerät funktioniert,
muss der entsprechende Treiber im Kernel geladen werden:&prompt.root; kldload ng_ubtIst das Bluetooth-Gerät beim Systemstart angeschlossen,
kann das entsprechende Modul auch von
/boot/loader.conf geladen werden:ng_ubt_load="YES"Schließen Sie Ihren USB-Adapter an, sollte eine
Meldung ähnlich der folgenden auf der Konsole (oder in
syslog) erscheinen:ubt0: vendor 0x0a12 product 0x0001, rev 1.10/5.25, addr 2
ubt0: Interface 0 endpoints: interrupt=0x81, bulk-in=0x82, bulk-out=0x2
ubt0: Interface 1 (alt.config 5) endpoints: isoc-in=0x83, isoc-out=0x3,
wMaxPacketSize=49, nframes=6, buffer size=294Kopieren Sie
/usr/share/examples/netgraph/bluetooth/rc.bluetooth
nach /etc/rc.bluetooth. Über dieses
Skript wird der Bluetooth-Stack gestartet und beendet. Es ist
empfehlenswert, den Bluetooth-Stack zu beenden, bevor Sie den
Adapter entfernen. Selbst wenn Sie dies nicht tun, kommt es
(normalerweise) zu keinem fatalen Fehler. Wenn Sie den
Bluetooth-Stack starten, erhalten Sie eine Meldung ähnlich
der folgenden:&prompt.root; /etc/rc.bluetooth start ubt0
BD_ADDR: 00:02:72:00:d4:1a
Features: 0xff 0xff 0xf 00 00 00 00 00
<3-Slot> <5-Slot> <Encryption> <Slot offset>
<Timing accuracy> <Switch> <Hold mode> <Sniff mode>
<Park mode> <RSSI> <Channel quality> <SCO link>
<HV2 packets> <HV3 packets> <u-law log> <A-law log> <CVSD>
<Paging scheme> <Power control> <Transparent SCO data>
Max. ACL packet size: 192 bytes
Number of ACL packets: 8
Max. SCO packet size: 64 bytes
Number of SCO packets: 8HCIDas Host Controller Interface (HCI)Das Host Controller Interface
(HCI) bietet eine Befehlsschnittstelle zum Basisbandcontroller
und Linkmanager, sowie Zugriff auf den Hardwarestatus und die
Kontrollregister. Dadurch wird ein einheitlicher Zugriff auf
die Fähigkeiten des Bluetooth-Basisbands möglich. Die
HCI-Layer des Rechners tauschen Daten und Befehle mit der
HCI-Firmware der Bluetooth-Geräte aus. Über den
Host Controller Transport Layer-Treiber (also den physikalischen
Bus) können beide HCI-Layer miteinander
kommunizieren.Eine einzelne Netgraph-Gerätedatei vom Typ
hci wird für ein einzelnes
Bluetooth-Gerät erzeugt. Die HCI-Gerätedatei ist
normalerweise mit der Bluetooth-Gerätetreiberdatei
(downstream) sowie der L2CAP-Gerätedatei (upstream)
verbunden. Alle HCI-Operationen müssen über die
HCI-Gerätedatei und nicht über die Treiberdatei
erfolgen. Der Standardname für die HCI-Gerätedatei
(die in &man.ng.hci.4; beschrieben wird) lautet
devicehci.Eine der wichtigsten Aufgaben ist das Auffinden von sich
in Reichweite befindenden Bluetooth-Geräten. Diese
Funktion wird als inquiry bezeichnet.
Inquiry sowie andere mit HCI in Verbindung stehende Funktionen
werden von &man.hccontrol.8; zur Verfügung gestellt. Das
folgende Beispiel zeigt, wie man herausfindet, welche
Bluetooth-Geräte sich in Reichweite befinden. Eine solche
Abfrage dauert nur wenige Sekunden. Beachten Sie, dass ein
Gerät nur dann antwortet, wenn es sich im Modus
discoverable befindet.&prompt.user; hccontrol -n ubt0hci inquiry
Inquiry result, num_responses=1
Inquiry result #0
BD_ADDR: 00:80:37:29:19:a4
Page Scan Rep. Mode: 0x1
Page Scan Period Mode: 00
Page Scan Mode: 00
Class: 52:02:04
Clock offset: 0x78ef
Inquiry complete. Status: No error [00]BD_ADDR stellt, ähnlich der
MAC-Adresse einer Netzkarte, die eindeutige Adresse eines
Bluetooth-Gerätes dar. Diese Adresse ist für die
Kommunikation mit dem Gerät nötig. Es ist aber auch
möglich, BD_ADDR einen Klartextnamen zuzuweisen. Die
Datei /etc/bluetooth/hosts enthält
Informationen über die bekannten Bluetooth-Rechner. Das
folgende Beispiel zeigt, wie man den Klartextnamen eines
entfernten Geräts in Erfahrung bringen kann:&prompt.user; hccontrol -n ubt0hci remote_name_request 00:80:37:29:19:a4
BD_ADDR: 00:80:37:29:19:a4
Name: Pav's T39Wenn Sie ein entferntes Bluetooth-Gerät abfragen, wird
dieses Ihren Rechner unter dem Namen
your.host.name (ubt0) finden. Dieser Name kann
aber jederzeit geändert werden.Bluetooth ermöglicht Punkt-zu-Punkt-Verbindungen (an
denen nur zwei Bluetooth-Geräte beteiligt sind), aber auch
Punkt-zu-Multipunkt-Verbindungen, bei denen eine Verbindung von
mehreren Bluetooth-Geräten gemeinsam genutzt wird. Das
folgende Beispiel zeigt, wie man die aktiven
Basisbandverbindungen des lokalen Gerätes anzeigen kann:&prompt.user; hccontrol -n ubt0hci read_connection_list
Remote BD_ADDR Handle Type Mode Role Encrypt Pending Queue State
00:80:37:29:19:a4 41 ACL 0 MAST NONE 0 0 OPENEin connection handle ist für die
Beendigung einer Basisbandverbindung nützlich. Im
Normalfall werden inaktive Verbindungen aber automatisch vom
Bluetooth-Stack getrennt.&prompt.root; hccontrol -n ubt0hci disconnect 41
Connection handle: 41
Reason: Connection terminated by local host [0x16]Rufen Sie hccontrol help auf, wenn Sie
eine komplette Liste aller verfügbaren HCI-Befehle
benötigen. Die meisten dieser Befehle müssen nicht
als root ausgeführt werden.L2CAPDas Logical Link Control and Adaptation Protocol (L2CAP)Das Logical Link Control and Adaptation
Protocol (L2CAP) bietet
höherwertigen Protokollen verbindungsorientierte und
verbindungslose Datendienste an. Dazu gehören auch
Protokollmultiplexing, Segmentierung und Reassemblierung.
L2CAP erlaubt höherwertigen Protokollen und Programmen den
Versand und Empfang von L2CAP-Datenpaketen mit einer Länge
von bis zu 64 Kilobytes.L2CAP arbeitet kanalbasiert. Ein
Kanal ist eine logische Verbindung innerhalb einer
Basisbandverbindung. Jeder Kanal ist dabei an ein einziges
Protokoll gebunden. Mehrere Geräte können an das
gleiche Protokoll gebunden sein, es ist aber nicht möglich,
einen Kanal an mehrere Protokolle zu binden. Jedes über
einen Kanal ankommende L2CAP-Paket wird an das entsprechende
höherwertige Protokoll weitergeleitet. Mehrere Kanäle
können sich die gleiche Basisbandverbindung teilen.Eine einzelne Netgraph-Gerätedatei vom Typ
l2cap wird für ein einzelnes
Bluetooth-Gerät erzeugt. Die L2CAP-Gerätedatei ist
normalerweise mit der Bluetooth-HCI-Gerätedatei
(downstream) sowie der Bluetooth-Socket-Gerätedatei
(upstream) verbunden. Der Standardname für die
L2CAP-Gerätedatei, die in &man.ng.l2cap.4; beschrieben
wird, lautet devicel2cap.Ein nützlicher Befehl zum Anpingen von anderen
Geräten ist &man.l2ping.8;. Einige Bluetooth-Geräte
senden allerdings nicht alle erhaltenen Daten zurück. Die
Ausgabe 0 bytes ist also kein Fehler:&prompt.root; l2ping -a 00:80:37:29:19:a4
0 bytes from 0:80:37:29:19:a4 seq_no=0 time=48.633 ms result=0
0 bytes from 0:80:37:29:19:a4 seq_no=1 time=37.551 ms result=0
0 bytes from 0:80:37:29:19:a4 seq_no=2 time=28.324 ms result=0
0 bytes from 0:80:37:29:19:a4 seq_no=3 time=46.150 ms result=0Das Programm &man.l2control.8; liefert Informationen
über L2CAP-Dateien. Das folgende Beispiel zeigt, wie man
die Liste der logischen Verbindungen (Kanäle) sowie die
Liste der Basisbandverbindungen abfragen kann:&prompt.user; l2control -a 00:02:72:00:d4:1a read_channel_list
L2CAP channels:
Remote BD_ADDR SCID/ DCID PSM IMTU/ OMTU State
00:07:e0:00:0b:ca 66/ 64 3 132/ 672 OPEN
&prompt.user; l2control -a 00:02:72:00:d4:1a read_connection_list
L2CAP connections:
Remote BD_ADDR Handle Flags Pending State
00:07:e0:00:0b:ca 41 O 0 OPEN&man.btsockstat.1; ist ein weiteres Diagnoseprogramm. Es
funktioniert analog zu &man.netstat.1;, arbeitet aber mit
Bluetooth-Datenstrukturen. Das folgende Beispiel zeigt die
gleiche Liste der logischen Verbindungen wie &man.l2control.8;
im vorherigen Beispiel.&prompt.user; btsockstat
Active L2CAP sockets
PCB Recv-Q Send-Q Local address/PSM Foreign address CID State
c2afe900 0 0 00:02:72:00:d4:1a/3 00:07:e0:00:0b:ca 66 OPEN
Active RFCOMM sessions
L2PCB PCB Flag MTU Out-Q DLCs State
c2afe900 c2b53380 1 127 0 Yes OPEN
Active RFCOMM sockets
PCB Recv-Q Send-Q Local address Foreign address Chan DLCI State
c2e8bc80 0 250 00:02:72:00:d4:1a 00:07:e0:00:0b:ca 3 6 OPENDas RFCOMM-ProtokollRFCOMMDas RFCOMM-Protokoll emuliert serielle Verbindungen
über das L2CAP-Protokoll. Es basiert auf dem ETSI-Standard
TS 07.10. Bei RFCOMM handelt es sich um ein einfaches
Transportprotokoll, das um Funktionen zur Emulation der
9poligen Schaltkreise von mit RS-232 (EIATIA-232-E) kompatiblen
seriellen Ports ergänzt wurde. RFCOMM erlaubt bis zu 60
simultane Verbindungen (RFCOMM-Kanäe) zwischen zwei
Bluetooth-Geräten.Eine RFCOMM-Kommunikation besteht aus zwei Anwendungen (den
Kommunikationsendpunkten), die über das
Kommunikationssegment miteinander verbunden sind. RFCOMM
unterstützt Anwendungen, die auf serielle Ports angewiesen
sind. Das Kommunikationssegment entspricht der (direkten)
Bluetooth-Verbindung zwischen den beiden Geräten.RFCOMM kümmert sich um die direkte Verbindung von zwei
Geräten, oder um die Verbindung zwischen einem Gerät
und einem Modem (Netzwerkverbindung). RFCOMM unterstützt
auch andere Konfigurationen. Ein Beispiel dafür sind
Module, die drahtlose Bluetooth-Geräte mit einer
verkabelten Schnittstelle verbinden können.Unter &os; wurde das RFCOMM-Protokoll im Bluetooth Socket-Layer
implementiert.PairingErstmaliger Verbindungsaufbau zwischen zwei
Bluetooth-Geräten (Pairing)
In der Voreinstellung nutzt Bluetooth keine
Authentifizierung, daher kann sich jedes Bluetoothgerät mit
jedem anderen Gerät verbinden. Ein Bluetoothgerät
(beispielsweise ein Mobiltelefon) kann jedoch für einen
bestimmten Dienst (etwa eine Einwählverbindung) eine
Authentifizierung anfordern. Bluetooth verwendet zu diesem
Zweck PIN-Codes. Ein PIN-Code ist ein
maximal 16 Zeichen langer ASCII-String. Damit eine Verbindung
zustande kommt, muss auf beiden Geräten der gleiche
PIN-Code verwendet werden. Nachdem der Code eingegeben wurde,
erzeugen beide Geräte einen link key,
der auf den Geräten gespeichert wird. Beim nächsten
Verbindungsaufbau wird der zuvor erzeugte Link Key verwendet.
Diesen Vorgang bezeichnet man als
Pairing. Geht der Link Key auf
einem Gerät verloren, muss das Pairing wiederholt
werden.Der &man.hcsecd.8;-Daemon verarbeitet alle
Bluetooth-Authentifzierungsanforderungen und wird über die
Datei /etc/bluetooth/hcsecd.conf
konfiguriert. Der folgende Ausschnitt dieser Datei zeigt die
Konfiguration für ein Mobiltelefon, das den PIN-Code
1234 verwendet:device {
bdaddr 00:80:37:29:19:a4;
name "Pav's T39";
key nokey;
pin "1234";
}Von der Länge abgesehen, unterliegen PIN-Codes keinen
Einschränkungen. Einige Geräte, beispielsweise
Bluetooth-Headsets, haben einen festen PIN-Code eingebaut. Die
Option sorgt dafür, dass der
&man.hcsecd.8;-Daemon im Vordergrund läuft. Dadurch kann
der Ablauf einfach verfolgt werden. Stellen Sie das entfernte
Gerät auf receive pairing
und initiieren Sie die Bluetoothverbindung auf dem entfernten
Gerät. Sie erhalten die Meldung, dass Pairing akzeptiert
wurde und der PIN-Code benötigt wird. Geben Sie den
gleichen PIN-Code ein, den Sie in
hcsecd.conf festgelegt haben. Ihr Computer
und das entfernte Gerät sind nun miteinander verbunden.
Alternativ können Sie das Pairing auch auf dem entfernten
Gerät initiieren. Es folgt nun eine beispielhafte Ausgabe
des hcsecd-Daemons:hcsecd[16484]: Got Link_Key_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4
hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', link key doesn't exist
hcsecd[16484]: Sending Link_Key_Negative_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4
hcsecd[16484]: Got PIN_Code_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4
hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', PIN code exists
hcsecd[16484]: Sending PIN_Code_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4SDPDas Service Discovery Protocol (SDP)Das Service Discovery Protocol
(SDP) erlaubt es Clientanwendungen, von Serveranwendungen
angebotene Dienste sowie deren Eigenschaften abzufragen. Zu
diesen Eigenschaften gehören die Art oder die Klasse der
angebotenen Dienste sowie der Mechanismus oder das Protokoll,
die zur Nutzung des Dienstes notwendig sind.SDP ermöglicht Verbindungen zwischen einem SDP-Server
und einem SDP-Client. Der Server enthält eine Liste mit
den Eigenschaften der vom Server angebotenen Dienste. Jeder
Eintrag beschreibt jeweils einen einzigen Serverdienst. Ein
Client kann diese Informationen durch eine SDP-Anforderung
vom SDP-Server beziehen. Wenn der Client oder eine Anwendung
des Clients einen Dienst nutzen will, muss eine seperate
Verbindung mit dem Dienstanbieter aufgebaut werden. SDP bietet
einen Mechanismus zum Auffinden von Diensten und deren
Eigenschaften an, es bietet aber keine Mechanismen zur Verwendung
dieser Dienste.Normalerweise sucht ein SDP-Client nur nach Diensten, die
bestimmte geforderte Eigenschaften erfüllen. Es ist aber
auch möglich, anhand der Dienstbeschreibungen eine
allgemeine Suche nach den von einem Server angebotenen Diensten
durchzuführen. Diesen Vorgang bezeichnet man als
Browsing.Der Bluetooth-SDP-Server &man.sdpd.8; und der
Kommandozeilenclient &man.sdpcontrol.8; sind bereits in der
Standardinstallation von &os; enthalten. Das folgende Beispiel
zeigt, wie eine SDP-Abfrage durchgeführt wird:&prompt.user; sdpcontrol -a 00:01:03:fc:6e:ec browse
Record Handle: 00000000
Service Class ID List:
Service Discovery Server (0x1000)
Protocol Descriptor List:
L2CAP (0x0100)
Protocol specific parameter #1: u/int/uuid16 1
Protocol specific parameter #2: u/int/uuid16 1
Record Handle: 0x00000001
Service Class ID List:
Browse Group Descriptor (0x1001)
Record Handle: 0x00000002
Service Class ID List:
LAN Access Using PPP (0x1102)
Protocol Descriptor List:
L2CAP (0x0100)
RFCOMM (0x0003)
Protocol specific parameter #1: u/int8/bool 1
Bluetooth Profile Descriptor List:
LAN Access Using PPP (0x1102) ver. 1.0
... und so weiter. Beachten Sie, dass jeder Dienst eine
Liste seiner Eigenschaften (etwa den RFCOMM-Kanal)
zurückgibt. Je nach dem, welche Dienste Sie
benötigen, sollten Sie sich einige dieser Eigenschaften
notieren. Einige Bluetooth-Implementationen unterstützen
kein Service Browsing und geben
daher eine leere Liste zurück. Ist dies der Fall, ist es
dennoch möglich, nach einem bestimmten Dienst zu suchen.
Das folgende Beispiel demonstriert die Suche nach dem
OBEX Object Push (OPUSH) Dienst:&prompt.user; sdpcontrol -a 00:01:03:fc:6e:ec search OPUSHUnter &os; ist es die Aufgabe des &man.sdpd.8;-Servers,
Bluetooth-Clients verschiedene Dienste anzubieten:&prompt.root; sdpdDer lokale Server, der den entfernten Clients
Bluetooth-Dienste anbieten soll, bindet diese Dienste an den
lokalen SDP-Daemon. Ein Beispiel für eine solche
Anwendung ist &man.rfcomm.pppd.8;. Einmal gestartet, wird der
Bluetooth-LAN-Dienst an den lokalen SDP-Daemon gebunden.Die Liste der vorhandenen Dienste, die am lokalen SDP-Server
registriert sind, lässt sich durch eine SDP-Abfrage
über einen lokalen Kontrollkanal abfragen:&prompt.root; sdpcontrol -l browseEinwahlverbindungen (Dial-Up Networking (DUN)) oder
Netzwerkverbindungen mit PPP (LAN)-Profilen einrichtenDas
Dial-Up Networking (DUN)-Profil
wird vor allem für Modems und Mobiltelefone verwendet.
Dieses Profil ermöglicht folgende Szenarien:Die Verwendung eines Mobiltelefons oder eines
Modems durch einen Computer als drahtloses Modem, um sich
über einen Einwahlprovider mit dem Internet zu verbinden
oder andere Einwahldienste zu benutzen.Die Verwendung eines Mobiltelefons oder eines
Modems durch einen Computers, um auf Datenabfragen zu
reagieren.Der Zugriff auf ein Netzwerk über das PPP (LAN)-Profil
kann in folgenden Situationen verwendet werden:Den LAN-Zugriff für ein einzelnes
Bluetooth-GerätDen LAN-Zugriff für mehrere
Bluetooth-GeräteEine PC-zu-PC-Verbindung (unter Verwendung
einer PPP-Verbindung über eine emulierte serielle
Verbindung)Beide Profile werden unter &os; durch &man.ppp.8; sowie
&man.rfcomm.pppd.8; implementiert - einem Wrapper, der
RFCOMM Bluetooth-Verbindungen unter PPP nutzbar macht. Bevor
ein Profil verwendet werden kann, muss ein neuer PPP-Abschnitt
in /etc/ppp/ppp.conf erzeugt werden.
Beispielkonfigurationen zu diesem Thema finden Sie in
&man.rfcomm.pppd.8;.Im folgenden Beispiel verwenden wir &man.rfcomm.pppd.8;, um
eine RFCOMM-Verbindung zu einem entfernten Gerät mit der
BD_ADDR 00:80:37:29:19:a4 auf dem
RFCOMM-Kanal DUN aufzubauen. Die aktuelle
RFCOMM-Kanalnummer erhalten Sie vom entfernten Gerät
über SDP. Es ist auch möglich, manuell einen
RFCOMM-Kanal festzulegen. In diesem Fall führt
&man.rfcomm.pppd.8; keine SDP-Abfrage durch. Verwenden Sie
&man.sdpcontrol.8;, um die RFCOMM-Kanäle des entfernten
Geräts herauszufinden.&prompt.root; rfcomm_pppd -a 00:80:37:29:19:a4 -c -C dun -l rfcomm-dialupDer &man.sdpd.8;-Server muss laufen, damit ein Netzzugriff
mit dem PPP (LAN)-Profil möglich ist. Außerdem muss
für den LAN-Client ein neuer Eintrag in
/etc/ppp/ppp.conf erzeugt werden.
Beispielkonfigurationen zu diesem Thema finden Sie in
&man.rfcomm.pppd.8;. Danach starten Sie den RFCOMM PPP-Server
über eine gültige RFCOMM-Kanalnummer. Der
RFCOMM PPP-Server bindet dadurch den Bluetooth-LAN-Dienst an den
lokalen SDP-Daemon. Das folgende Beispiel zeigt Ihnen, wie man
den RFCOMM PPP-Server startet.&prompt.root; rfcomm_pppd -s -C 7 -l rfcomm-serverOBEXDas Profil OBEX-Push (OPUSH)OBEX ist ein häufig verwendetes Protokoll für den
Dateitransfer zwischen Mobilgeräten. Sein Hauptzweck ist
die Kommunikation über die Infrarotschnittstelle. Es dient
daher zum Datentransfer zwischen Notebooks oder PDAs sowie zum
Austausch von Visitenkarten oder Kalendereinträgen zwischen
Mobiltelefonen und anderen Geräten mit PIM-Funktionen.Server und Client von OBEX werden durch das Softwarepaket
obexapp bereitgestellt, das als Port
comms/obexapp verfügbar
ist.Mit dem OBEX-Client werden Objekte zum OBEX-Server geschickt
oder angefordert. Ein Objekt kann etwa eine Visitenkarte oder
ein Termin sein. Der OBEX-Client fordert über SDP die
Nummer des RFCOMM-Kanals vom entfernten Gerät an. Dies
kann auch durch die Verwendung des Servicenamens anstelle der
RFCOMM-Kanalnummer erfolgen. Folgende Dienste werden
unterstützt: IrMC, FTRN und OPUSH. Es ist möglich,
den RFCOMM-Kanal als Nummer anzugeben. Es folgt nun ein
Beispiel für eine OBEX-Sitzung, bei der ein
Informationsobjekt vom Mobiltelefon angefordert und ein neues
Objekt (hier eine Visitenkarte) an das Telefonbuch des
Mobiltelefons geschickt wird:&prompt.user; obexapp -a 00:80:37:29:19:a4 -C IrMC
obex> get telecom/devinfo.txt
Success, response: OK, Success (0x20)
obex> put new.vcf
Success, response: OK, Success (0x20)
obex> di
Success, response: OK, Success (0x20)Um OBEX-Push-Dienste anbieten zu können, muss der
sdpd-Server gestartet sein. Ein
Wurzelverzeichnis, in dem alle ankommenden Objekt gespeichert
werden, muss zusätzlich angelegt werden. In der
Voreinstellung ist dies /var/spool/obex.
Starten Sie den OBEX-Server mit einer gültigen Kanalnummer.
Der OBEX-Server registriert nun den OBEX-Push-Dienst mit dem
lokalen SDP-Daemon. Um den OBEX-Server zu starten, geben Sie
Folgendes ein:&prompt.root; obexapp -s -C 10Das Profil Serial-Port (SPP)Durch dieses Profil können Bluetooth-Geräte RS232-
(oder damit kompatible) serielle Kabelverbindungen emulieren.
Anwendungen sind dadurch in der Lage, über eine virtuelle
serielle Verbindung Bluetooth als Ersatz für eine
Kabelverbindung zu nutzen.Das Profil Serial-Port wird durch &man.rfcomm.sppd.1;
verwirklicht. Pseudo-tty wird hier als virtuelle serielle
Verbindung verwendet. Das folgende Beispiel zeigt, wie man sich
mit einem entfernten Serial-Port-Dienst verbindet. Beachten
Sie, dass Sie den RFCOMM-Kanal nicht angeben müssen, da
&man.rfcomm.sppd.1; diesen über SDP vom entfernten
Gerät abfragen kann. Wenn Sie dies nicht wollen,
können Sie einen RFCOMM-Kanal auch manuell festlegen.&prompt.root; rfcomm_sppd -a 00:07:E0:00:0B:CA -t /dev/ttyp6
rfcomm_sppd[94692]: Starting on /dev/ttyp6...Sobald die Verbindung hergestellt ist, kann pseudo-tty als
serieller Port verwenden werden.&prompt.root; cu -l ttyp6ProblembehandlungEin entferntes Gerät kann keine Verbindung
aufbauenEinige ältere Bluetooth-Geräte unterstützen
keinen Rollentausch. Wenn &os; eine neue Verbindung
akzeptiert, wird versucht, die Rolle zu tauschen, um zum
Master zu werden. Geräte, die dies nicht
unterstützen, können keine Verbindung aufbauen.
Beachten Sie, dass der Rollentausch ausgeführt wird,
sobald eine neue Verbindung aufgebaut wird, daher ist es
nicht möglich, das entfernte Gerät zu fragen, ob es
den Rollentausch unterstützt. Dieses Verhalten von &os;
kann aber durch eine HCI-Option geändert werden:&prompt.root; hccontrol -n ubt0hci write_node_role_switch 0Wo finde ich genaue Informationen darüber, was
schiefgelaufen ist?Verwenden Sie hcidump,
das Sie über den Port comms/hcidump installieren
können. hcidump hat
Ähnlichkeiten mit &man.tcpdump.1;. Es dient zur Anzeige
der Bluetooth-Pakete in einem Terminal oder zur Speicherung
der Pakete in einer Datei (Dump).StevePetersonGeschrieben von LAN-Kopplung mit einer BridgeEinführungSubnetzBridgeManchmal ist es nützlich, ein physikalisches Netzwerk
(wie ein Ethernetsegment) in zwei separate Netzwerke
aufzuteilen, ohne gleich IP-Subnetze zu erzeugen, die über
einen Router miteinander verbunden sind. Ein Gerät, das
zwei Netze auf diese Weise verbindet, wird als
Bridge bezeichnet. Jedes FreeBSD-System
mit zwei Netzkarten kann als Bridge fungieren.Die Bridge arbeitet, indem sie die MAC Layeradressen
(Ethernet Adressen) der Geräte in ihren Netzsegmenten
lernt. Der Verkehr wird nur dann zwischen zwei Netzsegmenten
weitergeleitet, wenn sich Sender und Empfänger in
verschiedenen Netzsegmenten befinden.In vielerlei Hinsicht entspricht eine Bridge daher einem
Ethernet-Switch mit sehr wenigen Ports.Situationen, in denen Bridging
angebracht istEine Bridge wird vor allem in folgenden zwei Situationen
verwendet:Hohes Datenaufkommen in einem SegmentIn der ersten Situation wird Ihr physisches Netz
mit Datenverkehr überschwemmt. Aus irgendwelchen
Gründen wollen Sie allerdings keine Subnetze verwenden,
die über einen Router miteinander verbunden sind.Stellen Sie sich einen Zeitungsverlag vor, in dem sich die
Redaktions- und Produktionsabteilungen in verschiedenen
Subnetzen befinden. Die Redaktionsrechner verwenden den
Server A für Dateioperationen, und die
Produktionsrechner verwenden den Server B.
Alle Benutzer sind über ein gemeinsames Ethernet-LAN
miteinander verbunden. Durch das hohe Datenaufkommen sinkt
die Geschwindigkeit des gesamten Netzwerks.Würde man die Redaktionsrechner und die
Produktionsrechner in separate Netzsegmente auslagern,
könnte man diese beiden Segmente über eine Bridge
verbinden. Nur der für Rechner im jeweils
anderen Segment bestimmte Verkehr wird
dann über die Brigde in das andere Netzsegment geleitet.
Dadurch verringert sich das Gesamtdatenaufkommen in beiden
Segmenten.Filtering/Traffic Shaping FirewallFirewall
- Network Adress Translation
+ NATDie zweite häufig anzutreffende Situation tritt auf,
wenn Firewallfunktionen benötigt werden, ohne dass
Network Adress Translation
(NAT) verwendet wird.Ein Beispiel dafür wäre ein kleines Unternehmen,
das über DSL oder ISDN an seinen ISP angebunden ist. Es
verfügt über 13 weltweit erreichbare IP-Adressen,
sein Netzwerk besteht aus 10 Rechnern. In dieser Situation
ist die Verwendung von Subnetzen sowie einer routerbasierten
Firewall schwierig.RouterDSLISDNEine brigdebasierte Firewall kann konfiguriert und in den
ISDN/DSL-Downstreampfad ihres Routers eingebunden werden, ohne
sich um IP-Adressen kümmern zu müssen.Die LAN-Kopplung konfigurierenAuswahl der NetzkartenEine Bridge benötigt mindestens zwei Netzkarten.
Leider sind unter FreeBSD 4.X nicht alle verfügbaren
Netzkarten dafür geeignet. Lesen Sie &man.bridge.4;
für Informationen zu unterstützten Karten.Installieren und testen Sie beide Netzkarten, bevor Sie
fortfahren.Anpassen der KernelkonfigurationKerneloptionenBRIDGEUm die Kernelunterstützung für die LAN-Kopplung
zu aktivieren, fügen Sieoptions BRIDGEin Ihre Kernelkonfigurationsdatei ein, und erzeugen einen
neuen Kernel.FirewallunterstützungFirewallWenn Sie die Bridge als Firewall verwenden wollen,
müssen Sie zusätzlich die Option
IPFIREWALL einfügen. Die
Konfiguration einer Firewall wird in
des Handbuchs beschrieben.Wenn Sie Nicht-IP-Pakete (wie ARP-Pakete) durch Ihre
Bridge leiten wollen, müssen Sie eine zusätzliche
Option verwenden. Es handelt sich um
IPFIREWALL_DEFAULT_TO_ACCEPT.
Beachten Sie aber, dass Ihre Firewall durch diese Option per
Voreinstellung alle Pakete akzeptiert. Sie sollten sich also
über die Auswirkungen dieser Option im Klaren sein,
bevor Sie sie verwenden.Unterstützung für Traffic ShapingWenn Sie die Bridge als Traffic-Shaper verwenden wollen,
müssen Sie die Option DUMMYNET in
Ihre Kernelkonfigurationsdatei einfügen. Lesen Sie
&man.dummynet.4;, um weitere Informationen zu erhalten.Die LAN-Kopplung aktivierenFügen Sie die Zeilenet.link.ether.bridge.enable=1in /etc/sysctl.conf ein, um die Bridge
zur Laufzeit zu aktivieren, sowie die Zeilenet.link.ether.bridge.config=if1,if2um die LAN-Kopplung für die festgelegten Geräte
zu ermöglichen (ersetzen Sie dazu
if1 und
if2 durch die Namen Ihrer
Netzkarten). Wenn Sie die Datenpakete via &man.ipfw.8; filtern
wollen, sollten Sie zusätzlich folgende Zeile
einfügen:net.link.ether.bridge.ipfw=1Vor &os; 5.2-RELEASE verwenden Sie die
folgenden Zeilen:net.link.ether.bridge=1
net.link.ether.bridge_cfg=if1,if2
net.link.ether.bridge_ipfw=1Sonstige InformationenWenn Sie via &man.ssh.1; auf die Bridge zugreifen wollen,
können Sie einer der Netzkarten eine IP-Adresse zuzuweisen.
Es besteht Einigkeit darüber, dass es eine schlechte Idee
ist, beiden Karten eine IP-Adresse zuzuweisen.
Wenn Sie verschiedene Bridges in Ihrem Netzwerk haben, kann
es dennoch nicht mehr als einen Weg zwischen zwei
Arbeitsplätzen geben. Das heißt,
Spanning tree link Management
wird nicht unterstützt.Eine Bridge kann, besonders für Verkehr über
Segmente, die Laufzeiten von Paketen erhöhen.Jean-FrançoisDockèsAktualisiert von AlexDupreReorganisiert und erweitert von Start und Betrieb von FreeBSD über ein Netzwerkplattenloser Arbeitsplatzplattenloser BetriebFreeBSD kann über ein Netzwerk starten und arbeiten, ohne
eine lokale Festplatte zu verwenden, indem es Dateisysteme eines
NFS-Servers in den eigenen Verzeichnisbaum
einhängt. Dazu sind, von den Standardkonfigurationsdateien
abgesehen, keine Systemänderungen nötig. Ein solches
System kann leicht installiert werden, da alle notwendigen
Elemente bereits vorhanden sind:Es gibt mindestens zwei Möglichkeiten, den Kernel
über das Netzwerk zu laden:PXE: Das
Preboot eXecution Environment System von
&intel; ist eine Art intelligentes Boot-ROM, das in
einigen Netzkarten oder Hauptplatinen verwendet wird.
Weitere Informationen finden Sie in &man.pxeboot.8;.
Der Port
Etherboot
(net/etherboot)
erzeugt ROM-fähigen Code, um einen Kernel über
das Netzwerk zu laden. Dieser Code kann entweder auf ein
Boot-PROM einer Netzkarte gebrannt werden, was von vielen
Netzkarten unterstützt wird. Oder er kann von einer
lokalen Diskette, Festplatte oder von einem laufenden
&ms-dos;-System geladen werden.Das Beispielskript
/usr/share/examples/diskless/clone_root
erleichtert die Erzeugung und die Wartung des
root-Dateisystems auf dem Server. Das Skript muss
wahrscheinlich angepasst werden, dennoch werden Sie schnell zu
einem Ergebnis kommen.Die Startdateien, die einen plattenlosen Systemstart
erkennen und unterstützen, sind nach der Installation
in /etc vorhanden.Dateiauslagerungen können sowohl via
NFS als auch auf die lokale Platte
erfolgen.Es gibt verschiedene Wege, einen plattenlosen Rechner
einzurichten. Viele Elemente sind daran beteiligt, die fast
immer an den persönlichen Geschmack angepasst werden
können. Im folgenden Abschnitt wird die Installation
eines kompletten Systems beschrieben, wobei der
Schwerpunkt auf Einfachheit und Kompatibilität zu den
Standardstartskripten von FreeBSD liegt. Das beschriebene
System hat folgende Eigenschaften:Die plattenlosen Rechner haben ein gemeinsames
/- sowie ein gemeinsames
/usr-Dateisystem, die jeweils
schreibgeschützt sind.Das root-Dateisystem ist eine Kopie
eines Standardwurzelverzeichnisses von FreeBSD
(üblicherweise das des Servers), bei dem einige
Konfigurationsdateien durch für den plattenlosen
Betrieb geeignete Versionen ersetzt wurden.Für die Bereiche des root-Dateisystems, die
beschreibbar sein müssen, werden mit &man.mfs.8;
(&os; 4.X) oder &man.md.4; (&os; 5.X)
virtuelle Dateisysteme erzeugt. Dies bedeutet aber auch, dass
alle Veränderungen verloren gehen, wenn das System neu
gestartet wird.Der Kernel wird, in Abhängigkeit von der jeweiligen
Situation, entweder von Etherboot
oder von PXE transferiert und geladen.
Das hier beschriebene System ist nicht sicher. Es
sollte nur in einem gesicherten Bereich eines Netzwerks verwendet
werden und für andere Rechner nicht erreichbar sein.Alle Informationen in diesem Abschnitt wurden unter
&os; 4.9-RELEASE sowie 5.2.1-RELEASE getestet. Die
Beschreibungen beziehen sich aber vor allem auf die Version 4.X.
Falls nötig, wurden daher Hinweise auf eventuelle
Änderungen unter 5.X eingefügt.HintergrundinformationenDie Einrichtung von plattenlosen Rechnern ist einfach, aber
auch fehleranfällig. Der Grund dafür sind auftretende
Fehler, die sich oft nur schwer zuordnen lassen. Unter anderem
sind dafür folgende Umstände verantwortlich:Kompilierte Optionen haben zur Laufzeit unterschiedliche
Auswirkungen.Fehlermeldungen sind oft kryptisch oder fehlen
vollständig.Daher ist es nützlich, über die im Hintergrund
ablaufenden Mechanismen Bescheid zu wissen. Dadurch wird es
einfacher, eventuell auftretende Fehler zu beheben.Verschiedene Operationen müssen ausgeführt werden,
um ein System erfolgreich zu starten:Der Rechner benötigt einige Startparameter, wie
seine IP-Adresse, die Namen ausführbarer Dateien, den
Servernamen sowie den root-Pfad. Für die
Übermittlung dieser Informationen wird entweder das
DHCP- oder das BOOTP-Protokoll verwendet.
Bei DHCP handelt es sich um eine
abwärtskompatible Erweiterung von BOOTP, die die
gleichen Portnummern und das gleiche Paketformat verwendet.
Es ist möglich, das System so zu konfigurieren,
dass es nur BOOTP verwendet. Das Serverprogramm
&man.bootpd.8; ist bereits im &os;-Basissystem enthalten.
DHCP hat im Vergleich zu BOOTP
allerdings mehrere Vorteile (bessere Konfigurationsdateien,
die Möglichkeit zur Verwendung von
PXE, sowie viele andere, die nicht in
direktem Zusammenhang mit dem plattenlosen Betrieb stehen).
Dieser Abschnitt beschreibt die Konfiguration mittels
DHCP. Wenn möglich, werden aber
entsprechende Beispiele für &man.bootpd.8;
angeführt. Die Beispielkonfiguration nutzt das
Softwarepaket ISC DHCP.Der Rechner muss ein oder mehrere Programme in den
lokalen Speicher laden. Dazu wird entweder
TFTP oder NFS
verwendet. Die Auswahl zwischen TFTP und
NFS erfolgt über das Setzen von
verschiedenen Kompilieroptionen. Ein häufig gemachter
Fehler ist es, Dateinamen für das falsche Protokoll
anzugeben: TFTP transferiert
normalerweise alle Dateien aus einem einzigen Verzeichnis
des Servers, und erwartet einen Pfad relativ zu diesem
Verzeichnis. NFS verlangt hingegen
absolute Dateipfade.Die möglichen Bootstrap-Programme und der Kernel
müssen initialisiert und ausgeführt werden. Dabei
gibt es zwei Möglichkeiten:PXE lädt &man.pxeboot.8;.
Dabei handelt es sich um eine modifizierte Version des
&os;-Laders der Boot-Phase drei. Der &man.loader.8;
beschafft alle für den Systemstart notwendigen
Parameter, und hinterlegt diese in der Kernelumgebung,
bevor er die Kontrolle übergibt. Es ist hier
möglich, den GENERIC-Kernel
zu verwenden.Etherboot lädt den
Kernel hingegen direkt. Dafür müssen Sie
allerdings einen Kernel mit spezifischen Optionen
erzeugen.Auf 4.X-Systemen sind PXE und
Etherboot gleichwertig.
5.X-Kernel übergeben hingegen viele Aufgaben an den
&man.loader.8;, daher ist die Verwendung von
PXE auf 5.X-Systemen
empfehlenswert.Wenn Ihr BIOS und Ihre Netzkarten
PXE unterstützen, sollten Sie es
auch verwenden. Es ist allerdings nach wie vor
möglich, ein 5.X-System über
Etherboot zu starten.Zuletzt muss der Rechner auf seine Dateisysteme
zugreifen können. Dafür wird stets
NFS verwendet.Weitere Informationen finden Sie in &man.diskless.8;.InstallationsanweisungenKonfiguration unter Verwendung von
ISC DHCPDHCPplattenloser BetriebDer ISC DHCP-Server kann
Anfragen sowohl von BOOTP als auch von DHCP beantworten.
isc-dhcp 3.0 ist nicht Teil
des Basissystems. Sie müssen es daher zuerst
installieren. Verwenden Sie dazu den Port
net/isc-dhcp3-server
oder das entsprechende Paket.Nachdem ISC DHCP installiert
ist, muss das Programm konfiguriert werden (normalerweise in
/usr/local/etc/dhcpd.conf). Im
folgenden Beispiel verwendet Rechner margauxEtherboot, während Rechner
corbieres PXE verwendet:
default-lease-time 600;
max-lease-time 7200;
authoritative;
option domain-name "example.com";
option domain-name-servers 192.168.4.1;
option routers 192.168.4.1;
subnet 192.168.4.0 netmask 255.255.255.0 {
use-host-decl-names on;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.4.255;
host margaux {
hardware ethernet 01:23:45:67:89:ab;
fixed-address margaux.example.com;
next-server 192.168.4.4;
filename "/tftpboot/kernel.diskless";
option root-path "192.168.4.4:/data/misc/diskless";
}
host corbieres {
hardware ethernet 00:02:b3:27:62:df;
fixed-address corbieres.example.com;
next-server 192.168.4.4;
filename "pxeboot";
option root-path "192.168.4.4:/data/misc/diskless";
}
}
Diese Option
weist dhcpd an, den Wert der
host-Deklaration als Rechnernamen des
plattenlosen Rechners zu senden. Alternativ kann man der
host-Deklaration Folgendes
hinzufügen: option host-name
margauxDie Anweisung
next-server bestimmt den
TFTP- oder
NFS-Server, von dem der Loader oder
der Kernel geladen werden (in der Voreinstellung ist das
der DHCP-Server selbst).Die Anweisung
filename bestimmt die Datei, die
Etherboot als nächstes
lädt. Das genaue Format hängt von der
gewählten Transfermethode ab.
Etherboot kann sowohl mit
NFS als auch mit
TFTP kompiliert werden. In der
Voreinstellung wird der &os;-Port mit
NFS-Unterstützung kompiliert.
PXE verwendet TFTP,
daher wird im Beispiel ein relativer Dateipfad verwendet.
Dies kann aber, je nach Konfiguration des
TFTP-Servers, auch anders sein.
Beachten Sie, dass PXE
pxeboot lädt, und nicht den
Kernel. Es ist auch möglich, das Verzeichnis
/boot einer
&os;-CD-ROM von pxeboot laden zu
lassen. &man.pxeboot.8; kann einen
GENERIC-Kernel laden, dadurch ist es
möglich, PXE von einer entfernten
CD-ROM zu starten.Die Option
root-path bestimmt den Pfad des
root-Dateisystems in normaler NFS-Schreibweise. Wird
PXE verwendet, ist es möglich,
die IP-Adresse des Rechners wegzulassen, solange nicht
die Kerneloption BOOTP aktiviert wird. Der
NFS-Server entspricht in diesem Fall
dem TFTP-Server.Konfiguration bei Verwendung von BOOTPBOOTPplattenloser BetriebEs folgt nun eine der Konfiguration von DHCP
entsprechende Konfiguration (für einen Client) für
bootpd. Zu finden ist die
Konfigurationsdatei unter /etc/bootptab.
Beachten Sie bitte, dass
Etherboot mit der Option
NO_DHCP_SUPPORT kompiliert werden muss,
damit BOOTP verwendet werden kann. PXE
hingegen benötigt
DHCP. Der einzige offensichtliche
Vorteil von bootpd ist, dass es
bereits im Basissystem vorhanden ist..def100:\
:hn:ht=1:sa=192.168.4.4:vm=rfc1048:\
:sm=255.255.255.0:\
:ds=192.168.4.1:\
:gw=192.168.4.1:\
:hd="/tftpboot":\
:bf="/kernel.diskless":\
:rp="192.168.4.4:/data/misc/diskless":
margaux:ha=0123456789ab:tc=.def100Ein Startprogramm unter Verwendung von
Etherboot erstellenEtherbootDie
Internetseite von Etherboot enthält
ausführliche Informationen, die zwar vor allem
für Linux gedacht sind, aber dennoch nützliche
Informationen enthalten. Im Folgenden wird daher nur grob
beschrieben, wie Sie Etherboot auf
einem FreeBSD-System einsetzen können.Als Erstes müssen Sie
net/etherboot als Paket
oder als Port installieren.Sie können Etherboot so
konfigurieren, dass TFTP anstelle von
NFS verwendet wird, indem Sie die Datei
Config im Quellverzeichnis von
Etherboot bearbeiten.Für unsere Installation verwenden wir eine
Startdiskette. Für Informationen zu anderen Methoden
(PROM oder &ms-dos;-Programme) lesen Sie bitte die
Dokumentation zu Etherboot.Um eine Startdiskette zu erzeugen, legen Sie eine Diskette
in das Laufwerk des Rechners ein, auf dem Sie
Etherboot installiert haben. Danach
wechseln Sie in das Verzeichnis src des
Etherboot-Verzeichnisbaums und geben
Folgendes ein:&prompt.root; gmake bin32/devicetype.fd0devicetype hängt vom Typ
der Ethernetkarte ab, über die der plattenlose Rechner
verfügt. Lesen Sie dazu NIC im
gleichen Verzeichnis, um den richtigen Wert für
devicetype zu bestimmen.Das System mit PXE startenIn der Voreinstellung lädt der
&man.pxeboot.8;-Loader den Kernel über
NFS. Soll stattdessen
TFTP verwendet werden, muss beim
Kompilieren die Option
LOADER_TFTP_SUPPORT in der Datei
/etc/make.conf eingetragen sein. Sehen
Sie sich die Dateien
/etc/defaults/make.conf (oder
/usr/share/examples/etc/make.conf
für 5.X-Systeme) für weitere Anweisungen an.Es gibt zwei nicht dokumentierte Optionen für
make.conf, die nützlich sein
können, wenn Sie eine plattenlose serielle Konsole
einrichten wollen:
BOOT_PXELDR_PROBE_KEYBOARD, und
BOOT_PXELDR_ALWAYS_SERIAL (die zweite
Option existiert nur unter &os; 5.X).Um PXE beim Systemstart zu verwenden,
müssen Sie im BIOS des Rechner die
Option Über das Netzwerk starten
aktivieren. Alternativ können Sie während der
PC-Initialisierung auch eine Funktionstaste drücken.
Serverkonfiguration - TFTP und
NFSTFTPplattenloser BetriebNFSplattenloser BetriebWenn Sie PXE oder
Etherboot so konfiguriert haben,
dass diese TFTP verwenden, müssen
Sie auf dem Dateiserver tftpd
aktivieren:Erzeugen Sie ein Verzeichnis, in dem
tftpd seine Dateien ablegt,
beispielsweise /tftpboot.Fügen Sie folgende Zeile in
/etc/inetd.conf ein:tftp dgram udp wait root /usr/libexec/tftpd tftpd -s /tftpbootAnscheinend benötigen zumindest einige
PXE-Versionen die
TCP-Version von
TFTP. Sollte dies bei Ihnen der
Fall sein, fügen Sie eine zweite Zeile ein, in der
Sie dgram udp durch
stream tcp ersetzen.Weisen Sie inetd an, seine
Konfiguration erneut einzulesen:&prompt.root; kill -HUP `cat /var/run/inetd.pid`Sie können das Verzeichnis
/tftpboot an einem beliebigen Ort auf dem
Server ablegen. Stellen Sie aber sicher, dass Sie diesen Ort
sowohl in inetd.conf als auch in
dhcpd.conf eingetragen haben.Außerdem müssen Sie NFS aktivieren und die
entsprechenden Verzeichnisse exportieren.Fügen Sie folgende Zeile in
/etc/rc.conf ein:nfs_server_enable="YES"Exportieren Sie das Verzeichnis, in dem sich das
Wurzelverzeichnis für den plattenlosen Betrieb
befindet, indem Sie folgende Zeile in
/etc/exports einfügen (passen
Sie dabei den mountpoint
an und ersetzen Sie
margaux corbieres durch den
Namen Ihres plattenlosen Rechners):/data/misc -alldirs -ro margauxWeisen sie nun mountd an,
seine Konfigurationsdatei erneut einzulesen. Wenn Sie
NFS erst in der Datei
/etc/rc.conf aktivieren mussten,
sollten Sie stattdessen den Rechner neu starten. Dadurch
wird die Konfigurationsdatei ebenfalls neu eingelesen.
&prompt.root; kill -HUP `cat /var/run/mountd.pid`Einen plattenlosen Kernel erzeugenplattenloser BetriebKernelkonfigurationWenn Sie Etherboot verwenden,
müssen Sie in die Kernelkonfigurationsdatei Ihres
plattenlosen Clients zusätzlich folgende Optionen
einfügen:options BOOTP # Use BOOTP to obtain IP address/hostname
options BOOTP_NFSROOT # NFS mount root filesystem using BOOTP infoAußerdem können Sie die Optionen
BOOTP_NFSV3,
BOOT_COMPAT sowie
BOOTP_WIRED_TO verwenden (sehen Sie sich
dazu auch LINT unter 4.X oder
NOTES unter 5.X an).Die Namen dieser Optionen sind historisch bedingt.
Sie ermöglichen eine unterschiedliche Verwendung von
DHCP und BOOTP innerhalb des Kernels.
Es ist auch möglich, eine strikte Verwendung von BOOTP
oder DHCP zu erzwingen.Erzeugen Sie den neuen Kernel (lesen Sie dazu auch
) und kopieren Sie ihn an den
in dhcpd.conf festgelegten Ort.Wenn Sie PXE verwenden, ist die
Erzeugung eines Kernels zwar nicht unbedingt nötig, sie
wird allerdings dennoch empfohlen. Die Aktivierung dieser
Optionen bewirkt, dass die Anzahl der möglichen
DHCP-Anforderungen während des
Kernelstarts erhöht wird. Ein kleiner Nachteil sind
eventuell auftretende Inkonsistenzen zwischen den neuen
Werten und den von &man.pxeboot.8; erhaltenen Werten. Der
große Vorteil dieser Variante ist es, dass dabei der
Rechnername gesetzt wird, den Sie ansonsten durch eine
andere Methode, beispielsweise in einer clientspezifischen
rc.conf-Datei festlegen müssten.
Damit ein 5.X-Kernel von
Etherboot geladen werden kann,
müssen device hints im
Kernel einkompiliert sein. Dazu setzen Sie normalerweise
folgende Option in die Kernelkonfigurationsdatei (sehen Sie
sich dazu auch die kommentierte Datei
NOTES an):hints "GENERIC.hints"Das root-Dateisystem erzeugenRoot-Dateisystemplattenloser BetriebSie müssen für den plattenlosen Rechner ein
root-Dateisystem erzeugen, und zwar an dem in
dhcpd.conf als
root-path festgelegten Ort. Der
folgende Abschnitt beschreibt zwei Möglichkeiten, dies
zu tun.Das Skript clone_root
verwendenDie Verwendung dieses Skripts ist der schnellste Weg,
der allerdings nur unter &os; 4.X funktioniert. Das
Shellskript findet sich unter
/usr/share/examples/diskless/clone_root
und muss von Ihnen angepasst werden. Unbedingt nötig
ist der Ort, an dem das Dateisystem erzeugt werden soll.
Dazu setzen Sie die Variable DEST
entsprechend.Die Kommentare am Anfang des Skripts enthalten
weitere Informationen. Dort wird erklärt, wie das
Basisdateisystem erzeugt wird und wie einzelne Dateien durch
angepasste Versionen für den plattenlosen Betrieb,
für ein Subnetzwerk oder für einen speziellen
Rechner ersetzt werden. Ebenfalls enthalten sind Beispiele
für /etc/fstab und
/etc/rc.conf, die für den
plattenlosen Betrieb angepasst sind.Die README-Dateien unter
/usr/share/examples/diskless enthalten
sehr viele interessante Hintergrundinformationen. Gemeinsam
mit den Beispielen im Verzeichnis
diskless beschreiben sie allerdings
eine Konfigurationsmethode, die von
der in clone_root und den
Systemstartskripten unter
/etc abweicht. Dies
kann etwas verwirrend sein. Verwenden Sie diese Dateien
also nur zu Informationszwecken. Es sei denn, Sie wollen
die dort beschriebene Methode verwenden. In diesem Fall
müssen Sie allerdings die
rc-Skripte anpassen.Die Standardprozedur make world
verwendenDiese Methode funktioniert sowohl unter &os; 4.X
als auch unter 5.X und installiert ein komplettes
jungfräuliches System (und nicht nur ein
root-Dateisystem) nach DESTDIR. Dazu
müssen Sie lediglich das folgende Skript
ausführen:#!/bin/sh
export DESTDIR=/data/misc/diskless
mkdir -p ${DESTDIR}
cd /usr/src; make world && make kernel
cd /usr/src/etc; make distributionDanach müssen Sie noch die dadurch in
DESTDIR erzeugten Dateien
/etc/rc.conf sowie
/etc/fstab Ihren Wünschen
anpassen.Den Auslagerungsbereich konfigurierenFalls nötig, kann eine auf dem
NFS-Server liegende Datei als
Auslagerungsdatei eingerichtet werden. Dazu
müssen Sie auf 4.X und 5.X-Systemen
unterschiedlich vorgehen.Eine NFS-Auslagerungsdatei unter
&os; 4.X einrichtenGröße und Ort der Auslagerungsdatei werden
durch die &os;-spezifischen
BOOTP/DHCP-Optionen 128 und 129
festgelegt. Es folgen nun einige Beispielkonfigurationen
für ISC DHCP 3.0 sowie
bootpd:Fügen Sie folgende Zeilen in
dhcpd.conf ein:# Global section
option swap-path code 128 = string;
option swap-size code 129 = integer 32;
host margaux {
... # Standard lines, see above
option swap-path "192.168.4.4:/netswapvolume/netswap";
option swap-size 64000;
}swap-path legt den Pfad zum
Verzeichnis der Auslagerungsdatei fest. Jede Datei hat
den Namen
swap.client-ip.
Ältere
dhcpd-Versionen benutzen die
Syntax option option-128 "..., die
aber nicht mehr unterstützt wird./etc/bootptab würde
stattdessen folgende Syntax verwenden:T128="192.168.4.4:/netswapvolume/netswap":T129=0000fa00Die Größe der Auslagerungsdatei
wird in /etc/bootptab als
Hexadezimalzahl festgelegt.Erzeugen Sie die Auslagerungsdatei(en) auf dem
NFS-Dateiserver:&prompt.root; mkdir /netswapvolume/netswap
&prompt.root; cd /netswapvolume/netswap
&prompt.root; dd if=/dev/zero bs=1024 count=64000 of=swap.192.168.4.6
&prompt.root; chmod 0600 swap.192.168.4.6Bei 192.168.4.6 handelt
es sich um die IP-Adresse des plattenlosen Clients.
Fügen Sie auf dem
NFS-Dateiserver folgende Zeile in
/etc/exports ein:/netswapvolume -maproot=0:10 -alldirs margaux corbieresZuletzt weisen Sie mountd
erneut an, die exports-Datei neu
einzulesen.Eine NFS-Auslagerungsdatei unter
&os; 5.X einrichtenDer Kernel unterstützt beim Systemstart keine
NFS-Auslagerungsdatei. Diese muss daher
in den Startskripten aktiviert werden, indem ein
beschreibbares Dateisystem eingehängt wird, um dort
die Auslagerungsdatei zu erzeugen und zu aktivieren. Um
eine Auslagerungsdatei zu erzeugen, gehen Sie wie folgt
vor:&prompt.root; dd if=/dev/zero of=/path/to/swapfile bs=1k count=1 oseek=100000Um die Auslagerungsdatei zu aktivieren, fügen Sie
folgende Zeile in rc.conf ein:swapfile=/path/to/swapfileVerschiedenesSchreibgeschütztes Dateisystem
/usrplattenloser Betrieb/usr schreibgeschütztWenn am plattenlosen Rechner X läuft, müssen
Sie die Konfigurationsdatei von
XDM anpassen, da Fehlermeldungen
in der Voreinstellung auf /usr
geschrieben werden.Der Server läuft nicht unter FreeBSDWenn das root-Dateisystem nicht auf einem
FreeBSD-Rechner liegt, muss das Dateisystem zuerst unter
FreeBSD erzeugt werden. Anschließend wird es
beispielsweise mit tar oder
cpio an den gewünschten Ort
kopiert.Dabei kann es Probleme mit den Gerätedateien
in /dev geben, die durch eine
unterschiedliche Darstellung der Major- und Minor-Number
von Geräten auf beiden Systemen hervorgerufen werden.
Eine Problemlösung besteht darin, das root-Verzeichnis
auf einem FreeBSD-Rechner einzuhängen und die
Gerätedateien dort mit MAKEDEV
zu erzeugen (seit FreeBSD 5.0 werden Gerätedateien
allerdings mit &man.devfs.5; erzeugt, ein Ausführen von
MAKEDEV ist unter diesen Versionen
daher sinnlos).ISDN – diensteintegrierendes digitales NetzwerkISDNEine gute Quelle für Informationen zu ISDN ist die
ISDN-Seite von Dan Kegel.Welche Informationen finden Sie in diesem Abschnitt?Wenn Sie in Europa leben, könnte der Abschnitt
über ISDN-Karten für Sie interessant sein.Wenn Sie ISDN hauptsächlich dazu verwenden wollen, um
sich über einen Anbieter ins Internet einzuwählen,
sollten Sie den Abschnitt über Terminaladapter lesen.
Dies ist die flexibelste Methode, die auch die wenigsten
Probleme verursacht.Wenn Sie zwei Netzwerke miteinander verbinden, oder sich
über eine ISDN-Standleitung mit dem Internet verbinden
wollen, finden Sie entsprechende Informationen im Abschnitt
über Router und Bridges.Bei der Wahl der gewünschten Lösung sind die
entstehenden Kosten ein entscheidender Faktor. Die folgenden
Beschreibungen reichen von der billigsten bis zur teuersten
Variante.HellmuthMichaelisBeigetragen von ISDN-KartenISDNKartenDas ISDN-Subsystem von FreeBSD unterstützt den
DSS1/Q.931- (oder Euro-ISDN)-Standard nur für passive
Karten. Seit FreeBSD 4.4 werden auch einige
aktive Karten unterstützt, bei denen die Firmware auch
andere Signalprotokolle unterstützt; dies schließt
auch die erste ISDN-Karte mit
Primärmultiplex-Unterstützung mit ein.isdn4bsd ermöglicht es
Ihnen, sich unter Nutzung von
IP over raw HDLC oder
synchronem PPP mit anderen ISDN-Routern zu
verbinden. Dazu verwenden Sie entweder Kernel-&man.ppp.8;
(via isppp, einem modifizierten
sppp-Treiber), oder Sie benutzen User-&man.ppp.8;. Wenn Sie
User-&man.ppp.8; verwenden, können Sie zwei oder mehrere
ISDN-B-Kanäle bündeln. Im Paket enthalten ist auch
ein Programm mit Anrufbeantworterfunktion sowie verschiedene
Werkzeuge, wie ein Softwaremodem, das 300 Baud
unterstützt.FreeBSD unterstützt eine ständig wachsende Anzahl
von PC-ISDN-Karten, die weltweit erfolgreich eingesetzt werden.
Von FreeBSD unterstützte passive ISDN-Karten enthalten
fast immer den ISAC/HSCX/IPAC ISDN-Chipsatz von Infineon
(ehemals Siemens). Unterstützt werden aber auch Karten mit
Cologne Chip (diese allerdings nur für den ISA-Bus),
PCI-Karten mit Winbond W6692 Chipsatz, einige Karten mit dem
Tiger 300/320/ISAC Chipsatz sowie einige Karten mit einem
herstellerspezifischen Chipsatz, wie beispielsweise die
Fritz!Card PCI V.1.0 und die Fritz!Card PnP von AVM.An aktiven ISDN-Karten werden derzeit die AVM B1 BRI-Karten
(ISA und PCI-Version) sowie die AVM T1 PRI-Karten (PCI-Version)
unterstützt.Informationen zu isdn4bsd finden
Sie im Verzeichnis
/usr/share/examples/isdn/ Ihres
FreeBSD-Systems, oder auf der
Internetseite
von isdn4bsd. Dort finden Sie auch
Verweise zu Tipps, Korrekturen, sowie weiteren Informationen,
wie dem
isdn4bsd-Handbuch.
Falls Sie an der Unterstützung eines zusätzlichen
ISDN-Protokolls, einer weiteren ISDN-Karte oder an einer anderen
Erweiterung von isdn4bsd interessiert
sind, wenden Sie sich bitte an &a.hm;.Für Fragen zur Installation, Konfiguration und zu
sonstigen Problemen von isdn4bsd gibt
es die Mailingliste &a.isdn.name;.ISDN-TerminaladapterTerminaladapterTerminaladapter (TA) sind für ISDN, was Modems für
analoge Telefonleitungen sind.ModemDie meisten Terminaladapter verwenden den
Standardbefehlssatz für Modems von Hayes (AT-Kommandos) und
können daher als Modemersatz verwendet werden.Ein Terminaladapter funktioniert prinzipiell wie ein Modem,
allerdings erfolgt der Verbindungsaufbau um einiges schneller.
Die Konfiguration von PPP entspricht
dabei exakt der eines Modems. Stellen Sie dabei allerdings
die serielle Geschwindigkeit so hoch wie möglich ein.
PPPDer Hauptvorteil bei der Verwendung eines Terminaladapters
zur Verbindung mit einem Internetanbieter ist die
Möglichkeit zur Nutzung von dynamischem PPP. Da
IP-Adressen immer knapper werden, vergeben die meisten Provider
keine statischen IP-Adressen mehr. Die meisten Router
unterstützen allerdings keine dynamische Zuweisung von
IP-Adressen.Der PPP-Daemon bestimmt die Stabilität und
Eigenschaften der Verbindung, wenn Sie einen Terminaladapter
verwenden. Daher können Sie unter FreeBSD einfach von
einer Modemverbindung auf eine ISDN-Verbindung wechseln, wenn
Sie PPP bereits konfiguriert haben. Allerdings bedeutet
dies auch, das bereits bestehende Probleme mit PPP auch unter
ISDN auftreten werden.Wenn Sie an maximaler Stabilität interessiert sind,
verwenden Sie Kernel-PPP, und
nicht das User-PPP.Folgende Terminaladapter werden von FreeBSD
unterstützt:Motorola BitSurfer und Bitsurfer ProAdtranDie meisten anderen Terminaladapter werden wahrscheinlich
ebenfalls funktionieren, da die Hersteller von Terminaladaptern
darauf achten, dass ihre Produkte den Standardbefehlssatz
möglichst gut unterstützen.Das wirkliche Problem mit einem externen Terminaladapter ist,
dass, ähnlich wie bei Modems, eine gute serielle Karte
eine Grundvoraussetzung ist.Sie sollten sich die
Anleitung für die Nutzung serieller Geräte unter
FreeBSD ansehen, wenn Sie detaillierte Informationen
über serielle Geräte und die Unterschiede zwischen
asynchronen und synchronen seriellen Ports benötigen.
Ein Terminaladapter, der an einem (asynchronen)
seriellen Standardport angeschlossen ist, beschränkt
Sie auf 115,2 Kbs. Dies
selbst dann, wenn Sie eine Verbindung mit 128 Kbs haben.
Um die volle Leistungsfähigkeit von ISDN (128 Kbs)
nutzen zu können, müssen Sie den Terminaladapter
daher an eine synchrone serielle Karte anschließen.Kaufen Sie keinen internen Terminaladapter in der Hoffnung,
damit das synchron/asynchron-Problem vermeiden zu können.
Interne Terminaladapter haben einen (asynchronen) seriellen
Standardportchip eingebaut. Der einzige Vorteil interner
Terminaladapter ist es, dass Sie ein serielles sowie ein
Stromkabel weniger benötigen.Eine synchrone Karte mit einem Terminaladapter ist
mindestens so schnell wie ein autonomer ISDN-Router,
und, in Kombination mit einem einfachen 386-FreeBSD-System,
wahrscheinlich flexibler.Die Entscheidung zwischen synchroner Karte/Terminaladapter
und einem autonomen ISDN-Router ist beinahe eine religiöse
Angelegenheit. Zu diesem Thema gibt es viele Diskussionen
in den Mailinglisten. Suchen Sie in den
Archiven
danach, wenn Sie an der kompletten Diskussion interessiert
sind.ISDN-Bridges und RouterISDNAutonome Bridge/RouterISDN-Bridges und Router sind keine Eigenheit von
FreeBSD oder eines anderen Betriebssystems. Für eine
vollständigere Beschreibung von Routing und
Netzwerkkopplungen mit einer Bridge informieren Sie sich
bitte durch weiterführende Literatur.In diesem Abschnitt werden die Begriffe Router und
Bridge synonym verwendet.ISDN-Router und Bridges werden immer günstiger und
damit auch immer beliebter. Ein ISDN-Router ist eine kleine
Box, die direkt an Ihr lokales Ethernet-Netzwerk angeschlossen
wird und sich mit einem Router oder einer Bridge verbindet.
Die eingebaute Software ermöglicht die Kommunikation
über PPP oder andere beliebte Protokolle.Ein Router ermöglicht einen deutlich höheren
Datendurchsatz als ein herkömmlicher Terminaladapter,
da er eine vollsynchrone ISDN-Verbindung nutzt.Das Hauptproblem mit ISDN-Routern und Bridges ist,
dass die Zusammenarbeit zwischen Geräten verschiedener
Hersteller nach wie vor ein Problem ist. Wenn Sie sich auf
diese Weise mit einem Internetanbieter verbinden wollen,
klären Sie daher vorher ab, welche Anforderungen Ihre
Geräte erfüllen müssen.Eine ISDN-Bridge ist eine einfache und wartungsarme
Lösung, zwei Netze, beispielsweise Ihr privates Netz
und Ihr Firmennetz, miteinander zu verbinden. Da Sie die
technische Ausstattung für beide Seiten kaufen müssen,
ist sichergestellt, dass die Verbindung funktionieren
wird.Um beispielsweise einen privaten Computer oder eine
Zweigstelle mit dem Hauptnetzwerk zu verbinden, könnte
folgende Konfiguration verwendet werden:Kleines Netzwerk (Privatnetz)10 base 2Das Netzwerk basiert auf der Bustopologie mit 10base2
Ethernet (Thinnet). Falls nötig, stellen
Sie die Verbindung zwischen Router und Netzwerkkabel mit einem
AUI/10BT-Transceiver her.
---Sun Workstation
|
---FreeBSD Rechner
|
---Windows 95
|
Autonomer Router
|
ISDN BRI Verbindung
10Base2 - EthernetWenn Sie nur einen einzelnen Rechner verbinden wollen,
können Sie auch ein Twisted-Pair-Kabel (Cross-Over)
verwenden, das direkt an den Router angeschlossen wird.Großes Netzwerk (Firmennetz)10 base TDieses Netzwerk basiert auf der Sterntopologie und 10baseT
Ethernet (Twisted Pair).
-------Novell Server
| H |
| ---Sun
| |
| U ---FreeBSD
| |
| ---Windows 95
| B |
|___---Autonomer Router
|
ISDN BRI Verbindung
ISDN NetzwerkdiagrammEin großer Vorteil der meisten Router und Bridges
ist es, dass man gleichzeitig zwei
unabhängige PPP-Verbindungen
zu zwei verschiedenen Zielen aufbauen kann. Diese
Funktion bieten die meisten Terminaladapter nicht. Die
Ausnahme sind spezielle (meist teure) Modelle, die über
zwei getrennte serielle Ports verfügen. Verwechseln Sie
dies aber nicht mit Kanalbündelung oder MPP.Dies kann sehr nützlich sein, wenn Sie eine
ISDN-Standleitung in Ihrem Büro haben, die sie
aufteilen wollen, ohne eine zusätzliche ISDN-Leitung
zu installieren. Ein ISDN-Router kann über einen B-Kanal
(64 Kbps) eine dedizierte Verbindung ins Internet aufbauen,
und gleichzeitig den anderen B-Kanal für eine separate
Datenverbindung nutzen. Der zweite B-Kanal kann beispielsweise
für ein- oder ausgehende Verbindungen verwendet werden.
Sie können ihn aber auch dynamisch mit dem ersten B-Kanal
bündeln, um Ihre Bandbreite zu erhöhen.IPX/SPXEine Ethernet-Bridge kann Daten nicht nur im IP-Protokoll,
sondern auch in beliebigen anderen Protokollen versenden.ChernLeeBeigetragen von NAT - Network Address TranslationÜberblicknatd&man.natd.8;, der Network-Address-Translation-Daemon von
FreeBSD, akzeptiert ankommende Raw-IP-Pakete, ändert den
Sender der Daten in den eigenen Rechner und leitet diese Pakete
in den ausgehenden IP-Paketstrom um, indem IP-Adresse und Port
des Senders so geändert werden, dass bei einer Antwort der
ursprüngliche Sender wieder bestimmt und die Daten an
ihn weitergeleitet werden können.Internet connection sharing
- IP masquerading
+ NATDer häufigste Grund für die Verwendung von NAT ist
die gemeinsame Nutzung einer Internetverbindung.EinrichtungWegen der begrenzten Verfügbarkeit von IPv4-Adressen
und der gestiegenen Anzahl von Breitbandverbindungen über
Kabelmodem oder DSL, wird die gemeinsame Nutzung von
Internetverbindungen immer wichtiger. Der &man.natd.8;-Daemon
ermöglicht die Anbindung von mehreren Rechnern an das
Internet unter Nutzung einer gemeinsamen Verbindung und einer
IP-Adresse.Häufig soll ein über Kabelmodem oder DSL und eine
IP-Adresse an das Internet angebundener Rechner mehreren
Rechnern eines lokalen Netzwerks Internetdienste anbieten.Um dies zu ermöglichen, muss der FreeBSD-Rechner als
Gateway fungieren. Dazu sind zwei Netzkarten notwendig. Eine
für die Verbindung zum Internet, die zweite für die
Verbindung mit dem lokalen Netzwerk. Sämtliche Rechner
des lokalen Netzwerks sind über einen Hub oder einen Switch
miteinander verbunden. _______ __________ ________
| | | | | |
| Hub |-----| Client B |-----| Router |----- Internet
|_______| |__________| |________|
|
____|_____
| |
| Client A |
|__________|Network LayoutEine derartige Netzwerkkonfiguration wird vor allem zur
gemeinsamen Nutzung einer Internetverbindung verwendet. Ein
Rechner des lokalen Netzwerks (LAN) ist mit
dem Internet verbunden. Alle anderen Rechner des lokalen
Netzwerks haben nur über diesen
Gateway-Rechner Zugriff auf das Internet.KernelKonfigurationKernelkonfigurationFolgende Optionen müssen in die
Kernelkonfigurationsdatei eingetragen werden:options IPFIREWALL
options IPDIVERTDie folgende Optionen können ebenfalls eingetragen
werden:options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_VERBOSEIn /etc/rc.conf tragen Sie Folgendes
ein:gateway_enable="YES"
firewall_enable="YES"
firewall_type="OPEN"
natd_enable="YES"
natd_interface="fxp0"
natd_flags="" Richtet den Rechner als Gateway ein. Die
Ausführung von
sysctl net.inet.ip.forwarding=1
hätte den gleichen Effekt.Aktiviert die Firewallregeln in
/etc/rc.firewall beim
Systemstart.Ein vordefinierter Satz von Firewallregeln, der alle
Pakete durchlässt. Sehen Sie sich
/etc/rc.firewall an, wenn Sie diese
Option verwenden wollen.Die Netzkarte, die Pakete weiterleitet (und mit dem
Internet verbunden ist).Zusätzliche Konfigurationsoptionen, die beim
Systemstart an &man.natd.8; übergeben werden.Durch die Definition dieser Optionen in
/etc/rc.conf wird die Anweisung
natd -interface fxp0 beim Systemstart
ausgeführt. Dies kann aber auch manuell erfolgen.Falls Sie viele Optionen an &man.natd.8; übergeben
müssen, können Sie auch eine Konfigurationsdatei
verwenden. Dazu fügen Sie folgende Zeile in
/etc/rc.conf ein:natd_flags="-f /etc/natd.conf"Die Datei /etc/natd.conf enthält
verschiedene Konfigurationsoptionen, wobei jede Option in einer
Zeile steht. Das Beispiel im nächsten Abschnitt würde
folgende Konfigurationsdatei verwenden:redirect_port tcp 192.168.0.2:6667 6667
redirect_port tcp 192.168.0.3:80 80Wenn Sie eine Konfigurationsdatei verwenden wollen, sollten
Sie sich die Handbuchseite zu &man.natd.8; durchlesen,
insbesondere den Abschnitt über die Nutzung der Option
.Jedem Rechner und jeder Schnittstelle des lokalen Netzwerks
sollte eine IP-Adresse des im RFC 1918
definierten privaten Adressraums zugewiesen werden. Der
Standardgateway entspricht der internen IP-Adresse des
natd-Rechners.Im Beispiel werden den LAN-Clients A und
B die IP-Adressen
192.168.0.2 und
192.168.0.3 zugewiesen,
während die LAN-Netzkarte des
natd-Rechners die IP-Adresse
192.168.0.1 erhält. Der
natd-Rechner mit der IP-Adresse
192.168.0.1 wird als
Standardgateway für die Clients A und
B gesetzt. Die externe Netzkarte des
natd-Rechners muss für die
korrekte Funktion von &man.natd.8; nicht konfiguriert
werden.Ports umleitenWenn Sie &man.natd.8; verwenden, sind Ihre LAN-Clients von
aussen nicht erreichbar. LAN-Clients können zwar
Verbindungen nach aussen aufbauen, sind aber für
ankommende Verbindungen nicht erreichbar. Wenn Sie
Internetdienste auf einem LAN-Client anbieten wollen, haben Sie
daher ein Problem. Eine einfache Lösung ist die Umleitung
von bestimmten Internetports des
natd-Rechners auf einen LAN-Client.Beispielsweise könnte ein IRC-Server auf Client
A und ein Webserver auf Client
B laufen. Damit diese Konfiguration
funktioniert, müssen Verbindungen, die auf den Ports 6667
(IRC) und 80 (Web) ankommen, auf die entsprechenden Clients
umgeleitet werden.Dazu wird die Option unter
Nutzung folgender Syntax an &man.natd.8; übergeben: -redirect_port proto targetIP:targetPORT[-targetPORT]
[aliasIP:]aliasPORT[-aliasPORT]
[remoteIP[:remotePORT[-remotePORT]]]Für unser Beispiel heißt das: -redirect_port tcp 192.168.0.2:6667 6667
-redirect_port tcp 192.168.0.3:80 80Dadurch werden die entsprechenden
tcp-Ports auf die jeweiligen LAN-Clients
umgeleitet.Mit können auch ganze
Portbereiche statt einzelner Ports umgeleitet werden. So werden
mit tcp 192.168.0.2:2000-3000
2000-3000 alle Verbindungen, die auf den Ports
2000 bis 3000 ankommen, auf die entsprechenden Ports des Clients
A umgeleitet.Diese Optionen können während des Betriebs von
&man.natd.8; oder über die Option
natd_flags="" in
/etc/rc.conf gesetzt werden.Eine ausführliche Konfigurationsanleitung finden Sie
in &man.natd.8;.Adressen umleitenaddress redirectionDie Umleitung von Adressen ist nützlich, wenn mehrere
IP-Adressen verfügbar sind, die aber alle auf einem Rechner
verbleiben sollen. In diesem Fall kann &man.natd.8; jedem
LAN-Client eine eigene externe IP-Adresse zuweisen. Ausgehende
Pakete eines LAN-Clients werden so der entsprechenden
externen IP-Adresse des Clients zugeordnet. Ankommender Verkehr
für diese IP-Adresse wird automatisch an den entsprechenden
LAN-Client weitergeleitet. Diesen Vorgang bezeichnet man
auch als statisches NAT. Dem
natd-Gatewayrechner könnten
beispielsweise die IP-Adressen
128.1.1.1,
128.1.1.2 sowie
128.1.1.3 zugewiesen werden.
128.1.1.1 wird als die externe
IP-Adresse des natd-Gatewayrechners
verwendet, während 128.1.1.2
und 128.1.1.3 an die LAN-Clients
A und B weitergegeben werden.
benutzt folgende
Syntax:-redirect_address localIP publicIPlocalIPDie interne IP-Adresse des LAN-ClientspublicIPDie externe IP-Adresse des LAN-ClientsFür unser Beispiel hieße dies:-redirect_address 192.168.0.2 128.1.1.2
-redirect_address 192.168.0.3 128.1.1.3Analog zur Option
können Sie diese Argumente auch in der Option
natd_flags="" in
/etc/rc.conf angeben. Bei der Nutzung
der Adressumleitung ist die Portumleitung überflüssig,
weil alle für eine bestimmte IP-Adresse ankommenden Daten
umgeleitet werden.Die externe IP-Adresse des
natd-Rechners muss aktiv sein und
der externen Netzkarte zugewiesen sein. Weitere Informationen
zu diesem Thema finden Sie in &man.rc.conf.5;.PLIP – Parallel Line IPPLIPParallel Line IPPLIPPLIP ermöglicht TCP/IP-Verbindungen zwischen zwei
Rechnern, die über ihre parallelen Schnittstellen
verbunden sind. Eine solche Verbindung ist nützlich,
wenn zwei Rechner nicht mit Netzkarten ausgestattet sind,
oder wenn eine Installation auf einem Laptop erfolgen soll.
Dieser Abschnitt behandelt folgende Themen:Die Herstellung eines parallelen (Laplink-) KabelsDie Verbindung von zwei Computern über PLIPEin paralleles Kabel herstellenEin paralleles (Laplink-)Kabel können Sie in fast jedem
Computergeschäft kaufen. Falls dies nicht möglich
sein sollte, oder Sie einfach wissen wollen, wie ein solches
Kabel aufgebaut ist, sollten Sie sich die folgende Tabelle
ansehen. Sie beschreibt die Herstellung eines parallelen
Netzwerkkabels aus einem gewöhnlichen parallelen
Druckerkabel.
PLIP einrichtenAls Erstes benötigen Sie ein Laplink-Kabel. Danach
müssen Sie sicherstellen, dass beide Computerkernel den
&man.lpt.4;-Treiber unterstützen:&prompt.root; grep lp /var/run/dmesg.boot
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven portDer Parallelport muss Interrupt-gesteuert sein, daher
sollte Ihre Kernelkonfigurationsdatei unter &os; 4.X eine
Zeile ähnlich der folgenden enthalten:device ppc0 at isa? irq 7Unter &os; 5.X sollte die Datei
/boot/device.hints hingegen folgende Zeilen
enthalten:hint.ppc.0.at="isa"
hint.ppc.0.irq="7"Danach überprüfen Sie, ob die
Kernelkonfigurationsdatei die Zeile
device plip enthält, oder ob das
Kernelmodul plip.ko geladen wurde. In
beiden Fällen sollte die parallele Schnittstelle
von &man.ifconfig.8; angezeigt werden. Unter &os; 4.X
sieht die Ausgabe in etwa so aus:&prompt.root; ifconfig lp0
lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500Unter &os; 5.X erhalten Sie folgende Ausgabe:&prompt.root; ifconfig plip0
plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500Die Gerätenamen der parallelen Schnittstelle
sind für &os; 4.X
(lpX)
und &os; 5.X
(plipX)
unterschiedlich.Verbinden Sie die parallelen Schnittstellen der beiden
Computer über das (Laplink-)Kabel.Konfigurieren Sie die Netzwerkparameter auf beiden Rechnern
als root. Wenn Sie beispielsweise den Rechner
host1, der unter &os; 4.X läuft, mit
dem unter &os; 5.X laufenden Rechner host2
verbinden wollen, gehen Sie folgendermaßen vor: host1 <-----> host2
IP Address 10.0.0.1 10.0.0.2Richten Sie die parallele Schnittstelle von
host1 ein, indem Sie Folgendes eingeben:&prompt.root; ifconfig lp0 10.0.0.1 10.0.0.2Danach richten Sie die parallele Schnittstelle von
host2 ein:&prompt.root; ifconfig plip0 10.0.0.2 10.0.0.1Sie sollten nun über eine funktionierende Verbindung
verfügen. Bei Problemen lesen Sie bitte die Hilfeseiten
&man.lp.4; sowie &man.lpt.4;.Zusätzlich sollten beide Rechner in
/etc/hosts eingetragen werden:127.0.0.1 localhost.my.domain localhost
10.0.0.1 host1.my.domain host1
10.0.0.2 host2.my.domainUm die Verbindung zu überprüfen, pingen Sie jeden
Rechner vom anderen Rechner aus an. Auf host1
gehen Sie dazu folgendermaßen vor:&prompt.root; ifconfig lp0
lp0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000
&prompt.root; netstat -r
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
host2 host1 UH 0 0 lp0
&prompt.root; ping -c 4 host2
PING host2 (10.0.0.2): 56 data bytes
64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms
64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms
--- host2 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 msAaronKaplanBeigetragen von TomRhodesÜberarbeitet und erweitert von BradDavisErweitert von IPv6 – Internet Protocol Version 6Bei IPv6 (auch als IPng oder
IP next generation
bekannt) handelt es sich um die neueste Version des bekannten
IP-Protokolls (das auch als IPv4 bezeichnet
wird). FreeBSD enthält, genauso wie die anderen frei
erhältlichen BSD-Systeme, die IPv6-Referenzimplementation
von KAME. FreeBSD erfüllt damit bereits
alle für die Nutzung von IPv6 nötigen Voraussetzungen.
Dieser Abschnitt konzentriert sich daher auf die Konfiguration
und den Betrieb von IPv6.Anfang der 90er Jahre wurde man auf den stark steigenden
Verbrauch von IPv4-Adressen aufmerksam. Im Hinblick auf das
Wachstums des Internets gab es zwei Hauptsorgen:Die drohende Knappheit von IPv4-Adressen. Dieses Problem
konnte durch die Einführung von privaten
Adressräumen (mit Adressen wie
10.0.0.0/8 oder
192.168.0.0/24) sowie der
Entwicklung von Network Address
Translation (NAT)
weitestgehend entschärft werden.Die immer größer werdenden Einträge in
Router-Tabellen. Dieses Problem ist auch heute noch
aktuell.IPv6 ist in der Lage, diese, aber auch viele andere Probleme
zu lösen:IPv6 hat einen 128 Bit großen Adressraum. Es sind
also theoretisch
340.282.366.920.938.463.463.374.607.431.768.211.456 Adressen
verfügbar. In anderen Worten: Für jeden
Quadratmeter der Erdoberfläche sind etwa
6,67 * 10^27 IPv6-Adressen verfügbar.Router speichern nur noch Netzwerk-Aggregationsadressen in
Ihren Routingtabellen. Dadurch reduziert sich die
durchschnittliche Größe einer Routingtabelle auf
8192 Einträge.Weitere nützliche Eigenschaften von IPv6 sind:Die automatische Konfiguration von Adressen, die im
RFC2462
beschrieben wird.Anycast-Adressen (eine-von-vielen)Verpflichtende Multicast-AdressenDie Unterstützung von IPsec (IP-Security)Eine vereinfachte HeaderstrukturMobile IP-AdressenDie Umwandlung von IPv4- in IPv6-AdressenWeitere Informationsquellen:Beschreibung von IPv6 auf
playground.sun.comKAME.net6bone.netHintergrundinformationen zu IPv6-AdressenEs gibt verschiedene Arten von IPv6-Adressen: Unicast-,
Anycast- und Multicast-Adressen.Unicast-Adressen sind die herkömlichen Adressen. Ein
Paket, das an eine Unicast-Adresse gesendet wird, kommt nur an
der Schnittstelle an, die dieser Adresse zugeordnet ist.Anycast-Adressen unterscheiden sich in ihrer Syntax nicht
von Unicast-Adressen, sie wählen allerdings aus
mehreren Schnittstellen eine Schnittstelle aus.
Ein für eine Anycast-Adresse
bestimmtes Paket kommt an der nächstgelegenen
(entsprechend der Router-Metrik) Schnittstelle
an. Anycast-Adressen werden nur von Routern verwendet.Multicast-Adressen bestimmen Gruppen, denen mehrere
Schnittstellen angehören. Ein
Paket, das an eine Multicast-Adresse geschickt wird, kommt an
allen Schnittstellen an, die zur Multicast-Gruppe gehören.Die von IPv4 bekannte Broadcast-Adresse
(normalerweise
xxx.xxx.xxx.255) wird bei IPv6
durch Multicast-Adressen verwirklicht.
Reservierte IPv6-AdressenIPv6-AdressePräfixlängeBeschreibungAnmerkungen::128 Bitnicht festgelegtentspricht 0.0.0.0
bei IPv4::1128 BitLoopback-Adresseentspricht 127.0.0.1
bei IPv4::00:xx:xx:xx:xx96 BitEingebettete IPv4-AdresseDie niedrigen 32 Bit entsprechen der IPv4-Adresse.
Wird auch als IPv4-kompatible IPv6-Adresse
bezeichnet.::ff:xx:xx:xx:xx96 BitEine auf IPv6 abgebildete IPv4-AdresseDie niedrigen 32 Bit entsprechen der IPv4-Adresse.
Notwendig für Rechner, die IPv6 nicht
unterstützen.fe80:: - feb::10 Bitlink-localEntspricht der Loopback-Adresse bei IPv4fec0:: - fef::10 Bitsite-localff::8 BitMulticast001
(im Dualsystem)3 BitGlobaler UnicastAlle globalen Unicastadressen stammen aus diesem
Pool. Die ersten 3 Bit lauten 001.
IPv6-Adressen verstehenDie kanonische Form von IPv6-Adressen lautet
x:x:x:x:x:x:x:x, jedes
x steht dabei für einen
16-Bit-Hexadezimalwert. Ein Beispiel für eine IPv6-Adresse
wäre etwa
FEBC:A574:382B:23C1:AA49:4592:4EFE:9982.Eine IPv6-Adresse enthält oft Teilzeichenfolgen aus lauter
Nullen. Eine solche Zeichenfolge kann zu ::
verkürzt werden. Bis zu drei führende Nullen eines
Hexquads können ebenfalls weggelassen werden.
fe80::1 entspricht also der Adresse
fe80:0000:0000:0000:0000:0000:0000:0001.
Eine weitere Möglichkeit ist die Darstellung der
letzten 32 Bit in der bekannten (dezimalen) IPv4-Darstellung,
bei der Punkte (.) zur Trennung verwendet werden.
2002::10.0.0.1 ist also nur eine
andere Schreibweise für die (hexadezimale) kanonische Form
2002:0000:0000:0000:0000:0000:0a00:0001,
die wiederum der Adresse
2002::a00:1 entspricht.Sie sollten nun in der Lage sein, die folgende Ausgabe zu
verstehen:&prompt.root; ifconfig
rl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
inet 10.0.0.10 netmask 0xffffff00 broadcast 10.0.0.255
inet6 fe80::200:21ff:fe03:8e1%rl0 prefixlen 64 scopeid 0x1
ether 00:00:21:03:08:e1
media: Ethernet autoselect (100baseTX )
status: activeBei
fe80::200:21ff:fe03:8e1%rl0
handelt es sich um eine automatisch konfigurierte
link-local-Adresse. Sie
wird im Rahmen der automatischen Konfiguration aus der
MAC-Adresse erzeugt.Weitere Informationen zum Aufbau von IPv6-Adressen finden
Sie im
RFC3513.Eine IPv6-Verbindung herstellenEs gibt derzeit vier Möglichkeiten, sich mit anderen
IPv6-Rechnern oder Netzwerken zu verbinden:Die Teilnahme am experimentellen 6bone.Die Teilnahme am IPv6-Netzwerk Ihres Providers.
Wenn Sie daran interessiert sind, wenden Sie sich an Ihren
Provider.Die Verwendung eines 6-nach-4-Tunnels
(RFC3068).Die Verwendung des Ports
/usr/ports/net/freenet6 bei der Einwahl
ins Internet.In diesem Abschnitt wird die Einrichtung einer Verbindung
zum 6bone beschrieben, da dies derzeit der beliebteste Weg ist.Suchen Sie sich zuerst auf der Internetseite des
6bone-Projekts
einen 6bone-Knoten in Ihrer Nähe. Schreiben Sie an
die verantwortliche Person und mit etwas Glück erhalten
Sie entsprechende Anweisungen, um Ihre Verbindung einzurichten.
Dazu gehört üblicherweise die Einrichtung
eines GRE-(gif)-Tunnels.Typischerweise wird ein &man.gif.4;-Tunnels wie folgt
eingerichtet:&prompt.root; ifconfig gif0 create
&prompt.root; ifconfig gif0
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
&prompt.root; ifconfig gif0 tunnel MY_IPv4_ADDRHIS_IPv4_ADDR
&prompt.root; ifconfig gif0 inet6 alias MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDRErsetzen Sie die in Großbuchstaben geschriebenen
Werte durch die Informationen, die Sie für Ihren
6bone-Knoten erhalten haben.Die gezeigten Befehle bauen den Tunnel auf.
Überprüfen Sie die korrekte Funktion, indem Sie
ff02::1%gif0 an&man.ping6.8;en.
Sie sollten zwei Antworten erhalten.Bei ff02:1%gif0
handelt es sich um eine Multicast-Adresse.
%gif0 legt fest, dass die Multicast-Adresse
der Schnittstelle gif0 verwendet
werden soll. Da wir
eine Multicast-Adresse ange&man.ping6.8;t haben, sollte der
andere Endpunkt des Tunnels ebenfalls antworten.Eine Route zu Ihrem 6bone-Knoten können Sie
einfach wie folgt einrichten:&prompt.root; route add -inet6 default -interface gif0
&prompt.root; ping6 -n MY_UPLINK&prompt.root; traceroute6 www.jp.FreeBSD.org
(3ffe:505:2008:1:2a0:24ff:fe57:e561) from 3ffe:8060:100::40:2, 30 hops max, 12 byte packets
1 atnet-meta6 14.147 ms 15.499 ms 24.319 ms
2 6bone-gw2-ATNET-NT.ipv6.tilab.com 103.408 ms 95.072 ms *
3 3ffe:1831:0:ffff::4 138.645 ms 134.437 ms 144.257 ms
4 3ffe:1810:0:6:290:27ff:fe79:7677 282.975 ms 278.666 ms 292.811 ms
5 3ffe:1800:0:ff00::4 400.131 ms 396.324 ms 394.769 ms
6 3ffe:1800:0:3:290:27ff:fe14:cdee 394.712 ms 397.19 ms 394.102 msDiese Ausgabe kann auf Ihrem Rechner unterschiedlich sein.
Sie sollten aber jetzt die IPv6-Seite
www.kame.net erreichen
und die tanzende Schildkröte sehen können –
vorausgesetzt, Sie haben einen IPv6-fähigen Browser wie
www/mozilla,
Konqueror (als Teil des Pakets
x11/kdebase3) oder
www/epiphany
installiert.DNS in der IPv6-WeltUrsprünglich gab es zwei verschiedene DNS-Einträge
für IPv6. Da A6-Einträge von der IETF für
obsolet erklärt wurden, sind AAAA-Einträge nun
Standard.Weisen Sie die erhaltene IPv6-Adresse Ihrem Rechnernamen zu,
indem Sie den EintragMYHOSTNAME AAAA MYIPv6ADDRin Ihre primäre DNS-Zonendatei einfügen. Falls
Sie nicht für Ihre DNS-Zone
verantwortlich sind, bitten Sie den dafür
Zuständigen, diese Änderung durchzuführen.
Die aktuellen Versionen von bind
(Version 8.3 oder 9) sowie
dns/djbdns (bei Verwendung
des IPv6-Patches) unterstützen AAAA-Einträge./etc/rc.conf für die Nutzung von
IPv6 anpassenEinen Client unter IPv6 einrichtenDieser Abschnitt beschreibt die Konfiguration eines
Rechners, der in Ihrem LAN als Client, aber nicht als Router
verwendet wird. Um die Schnittstelle während des
Systemstarts mit &man.rtsol.8; automatisch einzurichten,
fügen Sie folgende Zeile in
/etc/rc.conf ein:ipv6_enable="YES"Durch die folgende Zeile weisen Sie Ihrer Schnittstelle
fxp0 die statische IP-Adresse 2001:471:1f11:251:290:27ff:fee0:2093
zu:ipv6_ifconfig_fxp0="2001:471:1f11:251:290:27ff:fee0:2093"Um 2001:471:1f11:251::1
als Standardrouter festzulegen, fügen Sie folgende Zeile
in /etc/rc.conf ein:ipv6_defaultrouter="2001:471:1f11:251::1"Gateways und Router unter IPv6 einrichtenDieser Abschnitt beschreibt, wie Sie Ihren Rechner mit
Hilfe der von Ihrem Tunnel-Anbieter, beispielsweise
6bone, erhaltenen
Anweisungen dauerhaft für die Nutzung von IPv6
einrichten. Um den Tunnel beim Systemstart
wiederherzustellen, passen Sie
/etc/rc.conf wie folgt an:Listen Sie die einzurichtenden Tunnelschnittstellen
(hier gif0) auf:gif_interfaces="gif0"Um den lokalen Endpunkt
MY_IPv4_ADDR über diese
Schnittstelle mit dem entfernten Endpunkt
REMOTE_IPv4_ADDR zu
verbinden, verwenden Sie folgende Zeile:gifconfig_gif0="MY_IPv4_ADDR REMOTE_IPv4_ADDR"Um die Ihnen zugewiesene IPv6-Adresse als Endpunkt Ihres
IPv6-Tunnels zu verwenden, fügen Sie folgende Zeile
ein:ipv6_ifconfig_gif0="MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR"Nun müssen Sie nur noch die IPv6-Standardroute
angeben. Diese legt das andere Ende des IPv6-Tunnels
fest.ipv6_defaultrouter="MY_IPv6_REMOTE_TUNNEL_ENDPOINT_ADDR"Bekanntmachung von Routen und automatische
RechnerkonfigurationDieser Abschnitt beschreibt die Einrichtung von
&man.rtadvd.8;, das Sie bei der Bekanntmachung der
IPv6-Standardroute unterstützt.Um &man.rtadvd.8; zu aktivieren, fügen Sie folgende
Zeile in /etc/rc.conf ein:rtadvd_enable="YES"Es ist wichtig, die Schnittstelle anzugeben, über die
IPv6-Routen bekanntgemacht werden sollen. Soll &man.rtadvd.8;
fxp0 verwenden, ist folgender Eintrag
nötig:rtadvd_interfaces="fxp0"Danach erzeugen Sie die Konfigurationsdatei
/etc/rtadvd.conf. Dazu ein Beispiel:fxp0:\
:addrs#1:addr="2001:471:1f11:246::":prefixlen#64:tc=ether:Ersetzen Sie dabei fxp0 durch die
zu verwendende Schnittstelle.Anschließend ersetzen Sie
2001:471:1f11:246:: durch das
Präfix der Ihnen zugewiesenen Verbindung.Wenn Sie eine /64-Netzmaske
verwenden, müssen Sie keine weiteren Anpassungen vornehmen.
Anderenfalls müssen Sie prefixlen#
auf den korrekten Wert setzen.HartiBrandtBeigetragen von ATM - Asynchronous Transfer Mode unter &os; 5.XClassical IP over ATM
als PVC-Verbindung einrichtenClassical IP over ATM
(CLIP) ist die einfachste Möglichkeit,
um IP-Verkehr über ATM (Asynchronous
Transfer Mode-Verbindungen zu übertragen.
CLIP kann sowohl mit geschalteten Verbindungen (SVCs) als auch
mit permanenten Verbindungen (PVCs) verwendet werden. Dieser
Abschnitt beschreibt die Einrichtung eines PVC-basierten
Netzwerks.Ein vollständig vermaschtes Netzwerk aufbauenBei einem vollständig vermaschten
(fully meshed) Netzwerk ist
jeder Rechner über eine dezidierte Verbindung mit jedem
anderen Rechner des Netzwerks verbunden. Die Konfiguration
ist - vor allem für kleinere Netzwerke - relativ einfach.
Unser Beispielnetzwerk besteht aus vier Rechnern, die jeweils
über eine
ATM-Adapterkarte
mit dem
ATM-Netzwerk
verbunden sind. Als ersten Konfigurationsschritt planen wir
die Vergabe von IP-Adressen sowie die anzulegenden
ATM-Verbindungen:
RechnerIP-AdressehostA192.168.173.1hostB192.168.173.2hostC192.168.173.3hostD192.168.173.4Um ein vollständiges Netz aufzubauen, benötigen
wir für jedes Rechnerpaar eine eigene ATM-Verbindung:RechnerpaarVPI.VCI-PaarhostA - hostB0.100hostA - hostC0.101hostA - hostD0.102hostB - hostC0.103hostB - hostD0.104hostC - hostD0.105Die Werte VPI und VCI an den Verbindungsenden können
natürlich unterschiedlich sein. Wir nehmen hier aber an,
dass sie gleich sind. Nun müssen wir die
ATM-Schnittstellen auf jedem Rechner einrichten:hostA&prompt.root; ifconfig hatm0 192.168.173.1 up
hostB&prompt.root; ifconfig hatm0 192.168.173.2 up
hostC&prompt.root; ifconfig hatm0 192.168.173.3 up
hostD&prompt.root; ifconfig hatm0 192.168.173.4 upDabei setzen wir voraus, dass
hatm0 auf allen Rechnern die
ATM-Schnittstelle darstellt. Danach werden, beginnend mit
hostA, die PVCs auf den einzelnen Rechnern
eingerichtet (Wir nehmen an, dass die PVCs auf den
ATM-Switches bereits eingerichet sind. Lesen Sie die
entsprechenden Handbücher, wenn Sie einen Switch
einrichten müssen.):hostA&prompt.root; atmconfig natm add 192.168.173.2 hatm0 0 100 llc/snap ubr
hostA&prompt.root; atmconfig natm add 192.168.173.3 hatm0 0 101 llc/snap ubr
hostA&prompt.root; atmconfig natm add 192.168.173.4 hatm0 0 102 llc/snap ubr
hostB&prompt.root; atmconfig natm add 192.168.173.1 hatm0 0 100 llc/snap ubr
hostB&prompt.root; atmconfig natm add 192.168.173.3 hatm0 0 103 llc/snap ubr
hostB&prompt.root; atmconfig natm add 192.168.173.4 hatm0 0 104 llc/snap ubr
hostC&prompt.root; atmconfig natm add 192.168.173.1 hatm0 0 101 llc/snap ubr
hostC&prompt.root; atmconfig natm add 192.168.173.2 hatm0 0 103 llc/snap ubr
hostC&prompt.root; atmconfig natm add 192.168.173.4 hatm0 0 105 llc/snap ubr
hostD&prompt.root; atmconfig natm add 192.168.173.1 hatm0 0 102 llc/snap ubr
hostD&prompt.root; atmconfig natm add 192.168.173.2 hatm0 0 104 llc/snap ubr
hostD&prompt.root; atmconfig natm add 192.168.173.3 hatm0 0 105 llc/snap ubrStatt UBR können auch andere
traffic contracts verwendet
werden. Voraussetzung ist allerdings, dass diese von Ihrem
ATM-Adapter unterstützt werden. Ist dies der Fall,
folgen auf den Namen des
traffic contracts die
entsprechenden Konfigurationsparameter. Weitere Informationen
zur Konfiguration von ATM-Adapterkarten erhalten Sie über
den Befehl&prompt.root; atmconfig help natm addoder durch das Lesen von &man.atmconfig.8;.Die Konfiguration von ATM-Adaptern kann auch über die
Datei /etc/rc.conf erfolgen. Für
hostA sähe die Konfiguration so
aus:network_interfaces="lo0 hatm0"
ifconfig_hatm0="inet 192.168.173.1 up"
natm_static_routes="hostB hostC hostD"
route_hostB="192.168.173.2 hatm0 0 100 llc/snap ubr"
route_hostC="192.168.173.3 hatm0 0 101 llc/snap ubr"
route_hostD="192.168.173.4 hatm0 0 102 llc/snap ubr"Mit dem folgenden Befehl lässt sich der derzeitige
Status aller CLIP-Routen anzeigen:hostA&prompt.root; atmconfig natm show
diff --git a/de_DE.ISO8859-1/books/handbook/basics/chapter.sgml b/de_DE.ISO8859-1/books/handbook/basics/chapter.sgml
index 9a4fa9be69..e2f5d28dce 100644
--- a/de_DE.ISO8859-1/books/handbook/basics/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/basics/chapter.sgml
@@ -1,2696 +1,2696 @@
ChrisShumwayUmgeschrieben von UwePierauÜbersetzt von Grundlagen des UNIX BetriebssystemsÜbersichtDas folgende Kapitel umfasst die grundlegenden Kommandos
und Funktionsweisen des Betriebssystems FreeBSD. Viel von dem folgenden
Material gilt auch für jedes andere &unix; System.
Falls Sie mit dem Material schon vertraut sind, können Sie dieses
Kapitel überlesen. Wenn FreeBSD neu für Sie ist, dann sollten
Sie dieses Kapitel auf jeden Fall aufmerksam lesen.Dieser Abschnitt behandelt die folgenden Themen:virtuelle Konsolen,Zugriffsrechte unter &unix;,Zugriffskontrolllisten für Dateisysteme,die Verzeichnisstruktur von &os;,Organisation von Dateisystemen unter &os;,Ein- und Abhängen von Dateisystemen,Prozesse, Dämonen und Signale,Shells und die Login-Umgebung,Texteditoren,Geräte und Gerätedateien,Binärformate unter &os; undwie Sie in den Manualpages nach weiteren Informationen
suchen können.Virtuelle Konsolen und Terminalsvirtuelle KonsoleTerminalsSie können FreeBSD mit einem Terminal benutzen, der nur Text
darstellen kann. Wenn Sie FreeBSD auf diese Weise benutzen, stehen
Ihnen alle Möglichkeiten eines &unix; Betriebssystems zur
Verfügung. Dieser Abschnitt beschreibt was Terminals und
Konsolen sind und wie sie unter FreeBSD eingesetzt werden.Die KonsoleKonsoleWenn Ihr FreeBSD-System ohne eine graphische
Benutzeroberfläche startet, wird am Ende des Systemstarts,
nachdem die Startskripten gelaufen sind, ein Anmeldeprompt
ausgegeben. Die letzten Startmeldungen sollten ähnlich wie
die Folgenden aussehen:Additional ABI support:.
Local package initialization:.
Additional TCP options:.
Fri Sep 20 13:01:06 EEST 2002
FreeBSD/i386 (pc3.example.org) (ttyv0)
login:Beachten Sie die letzten beiden Zeilen der Ausgabe, die
vorletzte lautet:FreeBSD/i386 (pc3.example.org) (ttyv0)Diese Zeile enthält einige Informationen über das
gerade gestartete System. Die Ausgabe stammt von der
FreeBSD-Konsole einer Maschine mit einem Intel oder
Intel-kompatiblen Prozessor der x86-ArchitekturGenau das ist mit i386 gemeint. Auch
wenn Ihr System keine Intel 386 CPU besitzt, wird
i386 ausgegeben. Es wird immer die
Architektur und nicht der Typ des Prozessors ausgegeben.. Der Name des Systems (jedes &unix; System besitzt
einen Namen) ist pc3.example.org und die Ausgabe
stammt von der Systemkonsole, dem Terminal
ttyv0.Das Ende der Ausgabe ist immer die Aufforderung zur Eingabe
eines Benutzernamens:login:Der Anmeldevorgang wird im nächsten Abschnitt
erläutert.Der AnmeldevorgangFreeBSD ist ein Mehrbenutzersystem, das Multitasking
unterstützt. Das heißt mehrere Benutzer können
gleichzeitig viele Programme auf einem System laufen lassen.Jedes Mehrbenutzersystem muss die Benutzer voneinander
unterscheiden können. Bei FreeBSD und allen anderen &unix;
Betriebssystemen wird dies dadurch erreicht, dass sich die
Benutzer anmelden müssen, bevor sie Programme laufen lassen
können. Jeder Benutzer besitzt einen eindeutigen Namen (den
Account) und ein dazugehörendes Passwort, die beide bei
der Anmeldung abgefragt werden.StartskriptenNachdem FreeBSD gestartet ist und die StartskriptenStartskripten sind Programme, die FreeBSD automatisch bei
jedem Startvorgang ausführt. Der Zweck der Skripte
besteht darin, das System zu konfigurieren und nützliche
Dienste im Hintergrund zu starten., gelaufen sind, erscheint eine Aufforderung zur Eingabe
des Benutzernamens:login:Wenn Ihr Benutzername beispielsweise john
ist, geben Sie jetzt john gefolgt von
Enter ein. Sie sollten dann eine Aufforderung zur
Eingabe des Passworts erhalten:login: john
Password:Geben Sie jetzt das Passwort von john
gefolgt von Enter ein. Das Passwort wird aus
Sicherheitsgründen nicht auf dem Bildschirm angezeigt.Wenn Sie das richtige Passwort eingegeben haben, sind Sie
am System angemeldet und können nun alle verfügbaren
Kommandos absetzen.Anmgemeldet sind Sie, wenn Sie die Tagesmeldungen
(message of today) gefolgt
von einer Eingabeaufforderung (dem Zeichen #,
$ oder %) gesehen
haben.Virtuelle KonsolenDa FreeBSD mehrere Programme gleichzeitig laufen lassen kann,
ist eine einzige Konsole, an der Kommandos abgesetzt werden
können, zu wenig. Abhilfe schaffen virtuelle Konsolen, die
mehrere Konsolen zur Verfügung stellen.Die Anzahl der virtuellen Konsolen unter FreeBSD können Sie
einstellen. Zwischen den einzelnen Konsolen können Sie mit
speziellen Tastenkombinationen wechseln. Jede Konsole verfügt
über einen eigenen Ausgabekanal und FreeBSD ordnet die
Tastatureingaben und Monitorausgaben der richtigen Konsole zu, wenn
Sie zwischen den Konsolen wechseln.Zum Umschalten der Konsolen stellt FreeBSD spezielle
Tastenkombinationen bereitEine recht technische und genaue Beschreibung der FreeBSD-Konsole
und der Tastatur-Treiber finden Sie in den Hilfeseiten
&man.syscons.4;, &man.atkbd.4;, &man.vidcontrol.1; und
&man.kbdcontrol.1;. Lesen Sie diese Seiten, wenn Sie an den
Einzelheiten interessiert sind.. Benutzen Sie
AltF1,
AltF2 bis
AltF8,
um zwischen den verschiedenen Konsolen umzuschalten.Wenn Sie zu einer anderen Konsole wechseln, sichert FreeBSD den
Bildschirminhalt und gibt den Bildschirminhalt der neuen Konsole
aus. Dies erzeugt die Illusion mehrerer Bildschirme und
Tastaturen, an denen Sie Kommandos absetzen können. Wenn eine
Konsole nicht sichtbar ist, weil Sie auf eine andere Konsole
gewechselt haben, laufen die dort abgesetzten Kommandos
weiter./etc/ttysIn der Voreinstellung stehen unter FreeBSD acht virtuelle
Konsolen zur Verfügung, deren Anzahl Sie leicht erhöhen
oder verringern können. Die Anzahl und Art der Konsolen wird
in /etc/ttys eingestellt.Jede Zeile in /etc/ttys, die nicht mit
# anfängt, konfiguriert einen Terminal oder
eine virtuelle Konsole. In der Voreinstellung werden in dieser
Datei neun virtuelle Konsolen definiert, von denen acht aktiviert
sind. Die Konsolen sind in den Zeilen, die mit
ttyv beginnen, definiert:# name getty type status comments
#
ttyv0 "/usr/libexec/getty Pc" cons25 on secure
# Virtual terminals
ttyv1 "/usr/libexec/getty Pc" cons25 on secure
ttyv2 "/usr/libexec/getty Pc" cons25 on secure
ttyv3 "/usr/libexec/getty Pc" cons25 on secure
ttyv4 "/usr/libexec/getty Pc" cons25 on secure
ttyv5 "/usr/libexec/getty Pc" cons25 on secure
ttyv6 "/usr/libexec/getty Pc" cons25 on secure
ttyv7 "/usr/libexec/getty Pc" cons25 on secure
ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secureDie Hilfeseite &man.ttys.5; enthält eine ausführliche
Beschreibung der Spalten dieser Datei und der Optionen, die Sie zum
Konfigurieren der virtuellen Konsolen benutzen können.Die Konsole im Single-User-ModusEine eingehende Beschreibung des Single-User-Modus finden Sie
in . Im Single-User-Modus steht
Ihnen nur eine Konsole zur Verfügung.
Die Definition dieser Konsole befindet sich ebenfalls in
/etc/ttys. Suchen Sie nach einer Zeile, die
mit console beginnt:# name getty type status comments
#
# If console is marked "insecure", then init will ask for the root password
# when going to single-user mode.
console none unknown off secureIn der Zeile, die mit console beginnt,
können Sie secure durch
insecure ersetzen. Wenn Sie danach in den
Single-User-Modus booten, verlangt das System ebenfalls die
Eingabe des root-Passworts.Setzen Sie insecure nicht
leichtfertig ein. Wenn Sie das Passwort von
root vergessen, wird es schwierig, in den
Single-User-Modus zu gelangen, wenn Sie den
FreeBSD-Boot-Prozess nicht genau verstehen.ZugriffsrechteUNIXFreeBSD, das ein direkter Abkömmling von BSD &unix; ist,
stützt sich auf mehrere Grundkonzepte von &unix; Systemen.
Das erste und ausgeprägteste: FreeBSD ist
ein Mehrbenutzer-Betriebssystem. Das System ermöglicht,
dass mehrere Benutzer gleichzeitig an völlig verschiedenen
und unabhängigen Aufgaben arbeiten können. Es ist
verantwortlich für eine gerechte Auf- und Zuteilung von
Nachfragen nach Hardware- und Peripheriegeräten, Speicher
und CPU-Zeit unter den Benutzern.Da das System mehrere Benutzer unterstützt, hat alles,
was das System verwaltet, einen Satz von Rechten, die bestimmen,
wer die jeweilige Ressource lesen, schreiben oder ausführen
darf. Diese Zugriffsrechte stehen in drei Achtergruppen, die in
drei Teile unterteilt sind: einen für den Besitzer der
Datei, einen für die Gruppe, zu der die Datei gehört
und einen für alle anderen. Die numerische Darstellung
sieht wie folgt aus:ZugriffsrechteDateizugriffsrechteWertZugriffsrechteAuflistung im Verzeichnis0Kein Lesen, Kein Schreiben, Kein Ausführen---1Kein Lesen, Kein Schreiben, Ausführen--x2Kein Lesen, Schreiben, Kein Ausführen-w-3Kein Lesen, Schreiben, Ausführen-wx4Lesen, Kein Schreiben, Kein Ausführenr--5Lesen, Kein Schreiben, Ausführenr-x6Lesen, Schreiben, Kein Ausführenrw-7Lesen, Schreiben, AusführenrwxlsVerzeichnisseSie können auf der Kommandozeile
von &man.ls.1; angeben, um eine ausführliche Verzeichnisauflistung
zu sehen, die in einer Spalte die Zugriffsrechte für den
Besitzer, die Gruppe und alle anderen enthält.
Die Ausgabe von ls -l könnte
wie folgt aussehen:&prompt.user; ls -l
total 530
-rw-r--r-- 1 root wheel 512 Sep 5 12:31 myfile
-rw-r--r-- 1 root wheel 512 Sep 5 12:31 otherfile
-rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt
...Die erste Spalte der Ausgabe enthält die
Zugriffsrechte:-rw-r--r--Das erste Zeichen von links ist ein Symbol, welches angibt,
ob es sich um eine normale Datei, ein Verzeichnis, ein
zeichenorientiertes Gerät, ein Socket oder irgendeine andere
Pseudo-Datei handelt. In diesem Beispiel zeigt - eine
normale Datei an. Die nächsten drei Zeichen,
dargestellt als rw-, ergeben die Rechte
für den Datei-Besitzer. Die drei Zeichen danach
r-- die Rechte der Gruppe, zu der die Datei
gehört. Die letzten drei Zeichen, r--,
geben die Rechte für den Rest der Welt an. Ein Minus
bedeutet, dass das Recht nicht gegeben ist. In diesem Fall
sind die Zugriffsrechte also: der Eigentümer kann die Datei
lesen und schreiben, die Gruppe kann lesen und alle anderen
können auch nur lesen. Entsprechend obiger Tabelle
wären die Zugriffsrechte für diese Datei
644, worin jede Ziffer die drei Teile der
Zugriffsrechte dieser Datei verkörpert.Das ist alles schön und gut, aber wie kontrolliert das
System die Rechte von Hardware-Geräten? FreeBSD behandelt
die meisten Hardware-Geräte als Dateien, welche Programme
öffnen, lesen und mit Daten beschreiben können wie
alle anderen Dateien auch. Diese Spezial-Dateien sind im
Verzeichnis /dev gespeichert.Verzeichnisse werden ebenfalls wie Dateien behandelt. Sie
haben Lese-, Schreib- und Ausführ-Rechte. Das
Ausführungs-Bit hat eine etwas andere Bedeutung für
ein Verzeichnis als für eine Datei. Die Ausführbarkeit
eines Verzeichnisses bedeutet, dass in das Verzeichnis
zum Beispiel mit cd gewechselt werden kann.
Das bedeutet auch, dass in dem Verzeichnis auf Dateien, deren
Namen bekannt sind, zugegriffen werden kann, vorausgesetzt die
Zugriffsrechte der Dateien lassen dies zu.Das Leserecht auf einem Verzeichnis erlaubt es, sich den Inhalt
des Verzeichnisses anzeigen zu lassen. Um eine Datei mit bekanntem
Namen in einem Verzeichnis zu löschen, müssen auf dem
Verzeichnis Schreib- und Ausführ-Rechte
gesetzt sein.Es gibt noch mehr Rechte, aber die werden vor allem in
speziellen Umständen benutzt, wie zum Beispiel bei
SetUID-Binaries und Verzeichnissen mit gesetztem Sticky-Bit.
Mehr über Zugriffsrechte von Dateien und wie sie gesetzt werden,
finden Sie in &man.chmod.1;.TomRhodesBeigesteuert von Symbolische ZugriffsrechteZugriffsrechtesymbolischeDie Zugriffsrechte lassen sich auch über Symbole
anstelle von oktalen Werten festlegen. Symbolische
Zugriffsrechte werden in der Reihenfolge
Wer, Aktion
und Berechtigung angegeben.
Die folgenden Symbole stehen zur Auswahl:OptionSymbolBedeutungWeruBenutzer (user)WergGruppe (group)WeroAndere (other)WeraAlleAktion+Berechtigungen hinzufügenAktion-Berechtigungen entziehenAktion=Berechtigungen explizit setzenBerechtigungrlesen (read)Berechtigungwschreiben (write)Berechtigungxausführen
(execute)BerechtigungtSticky-BitBerechtigungsSet-UID oder Set-GIDSymbolische Zugriffsrechte werden wie die numerischen
mit dem Kommando &man.chmod.1; vergeben. Wenn
Sie beispielsweise allen anderen Benutzern den Zugriff auf
die Datei FILE verbieten wollen,
benutzen Sie den nachstehenden Befehl:&prompt.user; chmod go= FILEWenn Sie mehr als eine Änderung der Rechte einer
Datei vornehmen wollen, können Sie eine durch Kommata
getrennte Liste der Rechte angeben. Das folgende Beispiel
entzieht der Gruppe und der Welt (den anderen) die
Schreibberechtigung auf die Datei FILE
und fügt dann für alle Ausführungsrechte
hinzu:&prompt.user; chmod go-w,a+x FILEVerzeichnis-StrukturenVerzeichnis HierarchienDie FreeBSD-Verzeichnishierarchie ist die Grundlage, um
ein umfassendes Verständnis des Systems zu erlangen.
Das wichtigste Konzept, das Sie verstehen sollten, ist das
Root-Verzeichnis /. Dieses Verzeichnis ist das
erste, das während des Bootens eingehangen wird. Es
enthält das notwendige Basissystem, um das System in den
Mehrbenutzerbetrieb zu bringen. Das Root-Verzeichnis enthält
auch die Mountpunkte anderer Dateisysteme, die später
eingehangen werden.Ein Mountpunkt ist ein Verzeichnis, in das zusätzliche
Dateisysteme in das / Verzeichnis eingepflanzt
werden können.
Standard-Mountpunkte sind /usr,
/var, /tmp,
/mnt sowie /cdrom.
Auf diese Verzeichnisse verweisen üblicherweise Einträge
in der Datei /etc/fstab.
/etc/fstab ist
eine Tabelle mit verschiedenen Dateisystemen und Mountpunkten
als Referenz des Systems. Die meisten der Dateisysteme in
/etc/fstab werden beim Booten automatisch
durch das Skript &man.rc.8; gemountet, wenn die zugehörigen
Einträge nicht mit der Option
versehen sind. Weitere Informationen zu diesem Thema enthält
der Abschnitt .Eine vollständige Beschreibung der Dateisystem-Hierarchie
finden Sie in &man.hier.7;. Als Beispiel sei eine kurze
Übersicht über die gebräuchlisten Verzeichnisse
gegeben:VerzeichnisBeschreibung/Root-Verzeichnis des Dateisystems./bin/Grundlegende Werkzeuge für den Single-User-Modus
sowie den Mehrbenutzerbetrieb./boot/Programme und Konfigurationsdateien, die während
des Bootens benutzt werden./boot/defaults/Vorgaben für die Boot-Konfiguration, siehe
&man.loader.conf.5;./dev/Gerätedateien, siehe &man.intro.4;./etc/Konfigurationsdateien und Skripten des Systems./etc/defaults/Vorgaben für die System Konfigurationsdateien,
siehe &man.rc.8;./etc/mail/Konfigurationsdateien von MTAs wie
&man.sendmail.8;./etc/namedb/Konfigurationsdateien von named,
siehe &man.named.8;./etc/periodic/Täglich, wöchentlich oder monatlich
ablaufende Skripte, die von &man.cron.8; gestartet werden.
Siehe &man.periodic.8;./etc/ppp/Konfigurationsdateien von ppp,
siehe &man.ppp.8;./mnt/Ein leeres Verzeichnis, das von Systemadministratoren
häufig als temporärer Mountpunkt genutzt wird./proc/Prozess Dateisystem, siehe &man.procfs.5;
und &man.mount.procfs.8;./rescue/Statisch gelinkte Programme zur Wiederherstellung
des Systems, lesen Sie dazu auch &man.rescue.8;./root/Home Verzeichnis von root./sbin/Systemprogramme und administrative Werkzeuge, die
grundlegend für den Single-User-Modus und den
Mehrbenutzerbetrieb sind./stand/Programme, die ohne andere Programme oder Bibliotheken
laufen./tmp/Temporäre Dateien, die für gewöhnlich
nicht nach einem Reboot erhalten werden. Dies kann
ein speicherbasiertes Dateisystem, siehe &man.mfs.8;,
sein./usr/Der Großteil der Benutzerprogramme und
Anwendungen./usr/bin/Gebräuchliche Werkzeuge, Programmierhilfen und
Anwendungen./usr/include/Standard C include-Dateien./usr/lib/Bibliotheken./usr/libdata/Daten verschiedener Werkzeuge./usr/libexec/System-Dämonen und System-Werkzeuge, die von
anderen Programmen ausgeführt werden./usr/local/Lokale Programme, Bibliotheken usw. Die Ports-Sammlung
benutzt dieses Verzeichnis als Zielverzeichnis für zu
installierende Anwendungen. Innerhalb von
/usr/local sollte das von
&man.hier.7; beschriebene Layout für
/usr benutzt werden. Das
man Verzeichnis wird direkt unter
/usr/local anstelle unter
/usr/local/share angelegt. Die
Dokumentation der Ports findet sich in
share/doc/port.
/usr/obj/Von der Architektur abhängiger Verzeichnisbaum,
der durch das Bauen von /usr/src
entsteht./usr/portsDie FreeBSD-Ports-Sammlung (optional)./usr/sbin/System-Dämonen und System-Werkzeuge, die von
Benutzern ausgeführt werden./usr/share/Von der Architektur unabhängige Dateien./usr/src/Quelldateien von BSD und/oder lokalen
Ergänzungen./usr/X11R6/Optionale X11R6-Programme und Bibliotheken./var/Wird für mehrere Zwecke genutzt und enthält
Logdateien, temporäre Daten und Spooldateien./var/log/Verschiedene Logdateien des Systems./var/mail/Postfächer der Benutzer./var/spool/Verschiedene Spool-Verzeichnisse der Drucker- und
Mailsysteme./var/tmp/Temporäre Dateien, die über Reboots erhalten
bleiben./var/ypNIS maps.Festplatten, Slices und Partitionen&os; identifiziert Dateien anhand eines Dateinamens.
In Dateinamen wird zwischen Groß- und Kleinschreibung
unterschieden: readme.txt und
README.TXT bezeichnen daher zwei
verschiedene Dateien. &os; benutzt keine Dateiendungen wie
.txt, um den Typ der Datei
(ein Programm, ein Dokument oder andere Daten) zu
bestimmen.Dateien werden in Verzeichnissen gespeichert. In einem
Verzeichnis können sich keine oder hunderte Dateien
befinden. Ein Verzeichnis kann auch andere Verzeichnisse
enthalten und so eine Hierarchie von Verzeichnissen aufbauen,
die Ihnen die Ablage von Daten erleichtert.In Dateinamen werden Verzeichnisse durch einen
Schrägstrich (/,
Slash) getrennt. Wenn
das Verzeichnis foo
ein Verzeichnis bar
enthält, in dem sich die Datei readme.txt
befindet, lautet der vollständige Name der Datei
(oder der Pfad zur Datei)
foo/bar/readme.txt.Verzeichnisse und Dateien werden in einem Dateisystem
gespeichert. Jedes Dateisystem besitzt ein
Wurzelverzeichnis
(Root-Directory),
das weitere Verzeichnisse enthalten kann.Dieses Konzept kennen Sie vielleicht von anderen
Betriebssystemen, aber es gibt einige Unterschiede:
In &ms-dos; werden Datei- und Verzeichnisnamen mit dem
Zeichen \ getrennt, &macos; benutzt
dazu das Zeichen :.&os; kennt keine Laufwerksbuchstaben und in Pfaden
werden keine Bezeichnungen für Laufwerke benutzt.
Die Pfadangabe c:/foo/bar/readme.txt
gibt es in &os; nicht.Stattdessen wird ein Dateisystem als Wurzeldateisystem
(Root-Filesystem)
ausgewählt. Das Wurzelverzeichnis dieses Dateisystems
wird / genannt.
Jedes andere Dateisystem wird unter dem Wurzeldateisystem
eingehangen
(mount). Daher scheint
jedes Verzeichnis, unabhängig von der Anzahl der
Platten, auf derselben Platte zu liegen.Betrachten wir drei Dateisysteme A,
B und C. Jedes
Dateisystem besitzt ein eigenes Wurzelverzeichnis, das
zwei andere Verzeichnisse enthält:
A1,
A2,
B1,
B2,
C1 und
C2.Das Wurzeldateisystem soll A sein.
Das Kommando ls zeigt darin
die beiden Verzeichnisse A1
und A2 an.
Der Verzeichnisbaum sieht wie folgt aus: /
|
+--- A1
|
`--- A2Ein Dateisystem wird in einem Verzeichnis eines anderen
Dateisystems eingehangen. Wir hängen nun das Dateisystem
B in das Verzeichnis
A1 ein. Das
Wurzelverzeichnis von B ersetzt nun
das Verzeichnis A1 und
die Verzeichnisse des Dateisystems B
werden sichtbar: /
|
+--- A1
| |
| +--- B1
| |
| `--- B2
|
`--- A2Jede Datei in den Verzeichnissen
B1 oder
B2 kann
über den Pfad /A1/B1
oder /A1/B2
erreicht werden. Dateien aus dem Verzeichnis
/A1 sind jetzt
verborgen. Wenn das Dateisystem B
wieder abgehangen wird
(umount), erscheinen
die verborgenen Dateien wieder.Wenn das Dateisystem B unter dem
Verzeichnis A2
eingehangen würde, sähe der Verzeichnisbaum
so aus: /
|
+--- A1
|
`--- A2
|
+--- B1
|
`--- B2Die Dateien des Dateisystems B wären
unter den Pfaden /A2/B1 und
/A2/B2 erreichbar.Dateisysteme können übereinander eingehangen
werden. Der folgende Baum entsteht, wenn im letzten
Beispiel das Dateisystem C in das Verzeichnis
B1 des Dateisystems
B eingehangen wird: /
|
+--- A1
|
`--- A2
|
+--- B1
| |
| +--- C1
| |
| `--- C2
|
`--- B2C könnte auch im Verzeichnis
A1 eingehangen
werden: /
|
+--- A1
| |
| +--- C1
| |
| `--- C2
|
`--- A2
|
+--- B1
|
`--- B2Der &ms-dos;-Befehl join kann Ähnliches
bewirken.Normalerweise müssen Sie sich nicht mit Dateisystemen
beschäftigen. Während der Installation werden
die Dateisysteme und die Stellen, in der sie eingehangen werden,
festgelegt. Dateisysteme müssen Sie erst wieder anlegen,
wenn Sie eine neue Platte hinzufügen.Sie können sogar mit nur einem großen
Dateisystem auskommen. Dies hat mehrere Nachteile
und einen Vorteil.Vorteile mehrerer DateisystemeDie Dateisysteme können mit unterschiedlichen
Optionen (mount options)
eingehangen werden. Bei sorgfältiger Planung können
Sie beispielsweise das Wurzeldateisystem nur lesbar
einhängen. Damit schützen Sie sich vor dem
unabsichtlichen Löschen oder Editieren kritischer
Dateien. Von Benutzern beschreibbare Dateisysteme
wie /home
können Sie mit der Option nosuid
einhängen, wenn sie von anderen Dateisystemen getrennt
sind. Die SUID- und
GUID-Bits verlieren auf solchen
Dateisystemen ihre Wirkung und die Sicherheit des
Systems kann dadurch erhöht werden.Die Lage von Dateien im Dateisystem wird, abhängig
vom Gebrauch des Dateisystems, automatisch von &os;
optimiert. Ein Dateisystem mit vielen kleinen Dateien,
die häufig geschrieben werden, wird anders behandelt
als ein Dateisystem mit wenigen großen Dateien.
Mit nur einem Dateisystem ist diese Optimierung
unmöglich.In der Regel übersteht ein &os;-Dateisystem auch
einen Stromausfall. Allerdings kann ein Stromausfall zu
einem kritischen Zeitpunkt das Dateisystem beschädigen.
Wenn die Daten über mehrere Dateisysteme verteilt
sind, lässt sich das System mit hoher
Wahrscheinlichkeit noch starten. Dies erleichtert
das Zurückspielen von Datensicherungen.Vorteil eines einzelnen DateisystemsDie Größe von Dateisystemen liegt fest.
Es kann passieren, dass Sie eine Partition
vergrößern müssen. Dies ist nicht leicht:
Sie müssen die Daten sichern, das Dateisystem
vergrößert anlegen und die gesicherten
Daten zurückspielen.Ab &os; 4.4 existiert diese Beschränkung
nicht mehr: Das Kommando &man.growfs.8; kann Dateisysteme
im laufenden Betrieb vergrößern.Dateisysteme befinden sich in Partitionen (damit sind
nicht die normalen &ms-dos;-Partitionen gemeint). Jede Partition
wird mit einem Buchstaben von a bis
h bezeichnet und kann nur ein Dateisystem
enthalten. Dateisysteme können daher über ihren
Mount-Point, den Punkt an dem sie eingehangen sind, oder
den Buchstaben der Partition, in der sie liegen, identifiziert
werden.&os; benutzt einen Teil der Platte für den
Swap-Bereich, der dem Rechner
virtuellen Speicher zur Verfügung
stellt. Dadurch kann der Rechner Anwendungen mehr Speicher
zur Verfügung stellen als tatsächlich eingebaut
ist. Wenn der Speicher knapp wird, kann &os; nicht benutzte
Daten in den Swap-Bereich auslagern. Die ausgelagerten
Daten können später wieder in den Speicher
geholt werden (dafür werden dann andere Daten
ausgelagert).Für einige Partitionen gelten besondere
Konventionen:PartitionKonventionaEnthält normalerweise
das WurzeldateisystembEnthält normalerweise
den Swap-BereichcIst normalerweise genauso groß wie
die Slice in der die Partition liegt. Werkzeuge,
die auf der kompletten Slice arbeiten, wie ein
Bad-Block-Scanner, können so die
c-Partition benutzen.
Für gewöhnlich legen Sie in dieser
Partition kein Dateisystem an.dFrüher hatte die d-Partition
eine besondere Bedeutung. Bis heute haben einige
Werkzeuge Schwierigkeiten mit der
d-Partition, sodass
sysinstall normalerweise
keine d-Partition anlegt.Jede Partition, die ein Dateisystem enthält,
wird in einer Slice angelegt.
Slice ist der Begriff, den &os; für &ms-dos;-Partitionen
verwendet. Slices werden von eins bis vier durchnummeriert.SlicesPartitionendangerously dedicatedDie Slice-Nummern werden mit vorgestelltem
s hinter den Gerätenamen gestellt:
da0s1
ist die erste Slice auf dem ersten SCSI-Laufwerk. Auf einer
Festplatte gibt es höchstens vier Slices. In einer
Slice des passenden Typs kann es weitere logische Slices
geben. Diese erweiterten Slices werden ab fünf durchnummeriert:
ad0s5 ist
die erste erweiterte Slice auf einer IDE-Platte. Diese
Geräte werden von Dateisystemen benutzt, die sich in
einer kompletten Slice befinden müssen.Slices, dangerously dedicated-Festplatten
und andere Platten enthalten Partitionen, die mit Buchstaben
von a bis h bezeichnet
werden. Der Buchstabe wird an den Gerätenamen
gehangen: da0a
ist die a-Partition des ersten
da-Laufwerks. Dieses Laufwerk ist
dangerously dedicated.
ad1s3e ist
die fünfte Partition in der dritten Slice der zweiten
IDE-Platte.Schließlich wird noch jede Festplatte des Systems
eindeutig bezeichnet. Der Name einer Festplatte beginnt mit
einem Code, der den Typ der Platte bezeichnet. Es folgt eine
Nummer, die angibt, um welche Festplatte es sich handelt.
Anders als bei Slices werden Festplatten von Null beginnend
durchnummeriert. Gängige Festplatten-Namen sind in
zusammengestellt.Wenn Sie eine Partition angeben, erwartet &os; dass Sie
auch die Slice und die Platte angeben, in denen sich die
Partition befindet. Wenn Sie eine Slice angeben, müssen
Sie auch die Platte der Slice angeben. Setzen Sie den Namen
aus dem Plattennamen gefolgt von einem s,
der Slice-Nummer und dem Buchstaben der Partition zusammen.
Einige Beispiele finden Sie in
.Der Aufbau einer Festplatte wird in
dargestellt.Um &os; zu installieren, müssen Sie zuerst Slices
auf den Festplatten anlegen. Innerhalb der Slices, die Sie
für &os; verwenden wollen, müssen Sie dann
Partitionen anlegen. In den Partitionen wiederum werden
die Dateisysteme (oder der Auslagerungsbereich) angelegt.
Für Dateisysteme müssen Sie schließlich
noch festlegen, wo diese eingehangen werden (Mount-Point).
Namen von Platten, Slices und PartitionenNameBedeutungad0s1aDie erste Partition (a)
in der ersten Slice (s1) der
ersten IDE-Festplatte (ad0).da1s2eDie fünfte Partition (e)
der zweiten Slice (s2) auf
der zweiten SCSI-Festplatte
(da1).Aufteilung einer FestplatteDas folgende Diagramm zeigt die Sicht von &os; auf die
erste IDE-Festplatte eines Rechners. Die Platte soll
4 GB groß sein und zwei Slices (&ms-dos;-Partitionen)
mit je 2 GB besitzen. Die erste Slice enthält
ein &ms-dos;-Laufwerk (C:), die zweite
Slice wird von &os; benutzt. Im Beispiel verwendet die
&os;-Installationen drei Partitionen und einen
Auslagerungsbereich.Jede der drei Partitionen enthält ein Dateisystem.
Das Wurzeldateisystem ist die a-Partition.
In der e-Partition befindet sich
der /var-Verzeichnisbaum
und in der f-Partition befindet sich
der Verzeichnisbaum unterhalb von
/usr..-----------------. --.
| | |
| DOS / Windows | |
: : > First slice, ad0s1
: : |
| | |
:=================: ==: --.
| | | Partition a, mounted as / |
| | > referred to as ad0s2a |
| | | |
:-----------------: ==: |
| | | Partition b, used as swap |
| | > referred to as ad0s2b |
| | | |
:-----------------: ==: | Partition c, no
| | | Partition e, used as /var > filesystem, all
| | > referred to as ad0s2e | of FreeBSD slice,
| | | | ad0s2c
:-----------------: ==: |
| | | |
: : | Partition f, used as /usr |
: : > referred to as ad0s2f |
: : | |
| | | |
| | --' |
`-----------------' --'Anhängen und Abhängen von DateisystemenEin Dateisystem wird am besten als ein Baum mit der
Wurzel / veranschaulicht.
/dev, /usr, und
die anderen Verzeichnisse im Rootverzeichnis sind Zweige,
die wiederum eigene Zweige wie /usr/local
haben können.Root-DateisystemEs gibt verschiedene Gründe, bestimmte dieser Verzeichnisse
auf eigenen Dateisystemen anzulegen. /var
enthält log/, spool/
sowie verschiedene andere temporäre
Dateien und kann sich daher schnell füllen. Es empfiehlt sich,
/var von / zu trennen,
da es schlecht ist, wenn das Root-Dateisystem voll
läuft.Ein weiterer Grund bestimmte Verzeichnisbäume auf
andere Dateisysteme zu legen, ist gegeben, wenn sich die
Verzeichnisbäume auf gesonderten physikalischen oder
virtuellen Platten, wie
Network File System
oder CD-ROM-Laufwerken, befinden.Die fstab DateiDateisystemefstabWährend des Boot-Prozesses
werden in /etc/fstab aufgeführte
Verzeichnisse, sofern sie nicht mit der Option
versehen sind, automatisch angehangen.Die Zeilen in /etc/fstab haben das
folgende Format:device/mount-pointfstypeoptionsdumpfreqpassnodeviceEin existierender Gerätename
wie in beschrieben.mount-pointEin existierendes Verzeichnis,
an das das Dateisystem angehangen wird.fstypeDer Typ des Dateisystems,
der an &man.mount.8; weitergegeben wird. FreeBSDs
Standarddateisystem ist ufs.optionsEntweder
für beschreibbare Dateisysteme oder
für schreibgeschützte Dateisysteme, gefolgt von
weiteren benötigten Optionen. Eine häufig verwendete
Option ist für Dateisysteme,
die während der normalen Bootsequenz nicht angehangen
werden sollen. Weitere Optionen finden sich
in &man.mount.8;.dumpfreqGibt die Anzahl der Tage an, nachdem das
Dateisystem gesichert werden soll. Fehlt der Wert, wird
0 angenommen.passnoBestimmt die Reihenfolge, in der die Dateisysteme
überprüft werden sollen. Für Dateisysteme,
die übersprungen werden sollen, ist
passno auf null zu setzen. Für das
Root-Dateisystem, das vor allen anderen überprüft
werden muss, sollte der Wert von
passno eins betragen. Allen anderen
Dateisystemen sollten Werte größer eins zugewiesen
werden. Wenn mehrere Dateisysteme den gleichen Wert
besitzen, wird &man.fsck.8; versuchen, diese parallel zu
überprüfen.Das mount KommandoDateisystemeanhängen&man.mount.8; hängt schließlich Dateisysteme
an.In der grundlegenden Form wird es wie folgt benutzt:&prompt.root; mount devicemountpointViele Optionen werden in &man.mount.8; beschrieben,
die am häufigsten verwendeten sind:Optionen von mountHängt alle Dateisysteme aus
/etc/fstab an. Davon ausgenommen
sind Dateisysteme, die mit noauto markiert
sind, die mit der Option ausgeschlossen
wurden und Dateisysteme, die schon angehangen sind.Führt alles bis auf den
mount-Systemaufruf aus.
Nützlich ist diese Option in Verbindung
mit . Damit wird angezeigt, was
&man.mount.8; tatsächlich versuchen
würde, um das Dateisystem anzuhängen.Erzwingt das Anhängen eines unsauberen Dateisystems
oder erzwingt die Rücknahme des Schreibzugriffs, wenn
der Status des Dateisystems von beschreibbar auf
schreibgeschützt geändert wird.Hängt das Dateisystem schreibgeschützt ein. Das
kann auch durch Angabe von als Argument
( vor FreeBSD 5.2) der Option
erreicht werden.fstypeHängt das Dateisystem mit dem angegebenen Typ an,
oder hängt nur Dateisysteme mit dem angegebenen Typ
an, wenn auch angegeben
wurde.Die Voreinstellung für den Typ des Dateisystems
ist ufs.Aktualisiert die Mountoptionen des Dateisystems.Geschwätzig sein.Hängt das Dateisystem beschreibbar an. erwartet eine durch Kommata separierte Liste
von Optionen, unter anderem die folgenden:nodevBeachtet keine Gerätedateien auf dem Dateisystem.
Dies ist eine nützliche Sicherheitsfunktion.noexecVerbietet das Ausführen von binären
Dateien auf dem Dateisystem. Dies ist eine
nützliche Sicherheitsfunktion.nosuidSetUID und SetGID Bits werden auf dem Dateisystem
nicht beachtet. Dies ist eine nützliche
Sicherheitsfunktion.Das umount KommandoDateisystemeabhängen&man.umount.8; akzeptiert als Parameter entweder
einen Mountpoint, einen Gerätenamen, oder die
Optionen oder .Jede Form akzeptiert , um das
Abhängen zu erzwingen, und , um
etwas geschwätziger zu sein. Seien Sie bitte vorsichtig mit
: Ihr Computer kann abstürzen oder es
können Daten auf dem Dateisystem beschädigt werden, wenn
Sie das Abhängen erzwingen. und werden benutzt
um alle Dateisysteme, deren Typ durch
modifiziert werden kann, abzuhängen.
hängt das Rootdateisystem nicht ab.ProzesseDa FreeBSD ein Multitasking-Betriebssystem ist, sieht es so aus,
als ob mehrere Prozesse zur gleichen Zeit laufen. Jedes Programm,
das zu irgendeiner Zeit läuft, wird
Prozess genannt. Jedes Kommando
startet mindestens einen Prozess. Einige Systemprozesse
laufen ständig und stellen die Funktion des Systems sicher.Jeder Prozess wird durch eine eindeutige Nummer identifiziert,
die Prozess-ID oder
PID genannt wird. Prozesse haben ebenso
wie Dateien einen Besitzer und eine Gruppe, die festlegen, welche
Dateien und Geräte der Prozess benutzen kann. Dabei
finden die vorher beschriebenen Zugriffsrechte Anwendung. Die meisten
Prozesse haben auch einen Elternprozess, der sie gestartet hat.
Wenn Sie in der Shell Kommandos eingeben, dann ist die Shell ein
Prozess und jedes Kommando, das Sie starten, ist auch ein
Prozess. Jeder Prozess, den Sie auf diese Weise starten,
besitzt den Shell-Prozess als Elternprozess. Die Ausnahme
hiervon ist ein spezieller Prozess, der &man.init.8;
heißt. init ist immer der erste Prozess
und hat somit die PID 1. init wird vom Kernel
beim Booten von FreeBSD gestartet.Die Kommandos &man.ps.1; und &man.top.1; sind besonders
nützlich, um sich die Prozesse auf einem System anzusehen.
ps zeigt eine statische Liste der laufenden
Prozesse und kann deren PID, Speicherverbrauch und die
Kommandozeile, mit der sie gestartet wurden und vieles mehr
anzeigen. top zeigt alle laufenden Prozesse
an und aktualisiert die Anzeige, so dass Sie Ihrem Computer
bei der Arbeit zuschauen können.Normal zeigt Ihnen ps nur die laufenden
Prozesse, die Ihnen gehören. Zum Beispiel:&prompt.user; ps
PID TT STAT TIME COMMAND
298 p0 Ss 0:01.10 tcsh
7078 p0 S 2:40.88 xemacs mdoc.xsl (xemacs-21.1.14)
37393 p0 I 0:03.11 xemacs freebsd.dsl (xemacs-21.1.14)
48630 p0 S 2:50.89 /usr/local/lib/netscape-linux/navigator-linux-4.77.bi
48730 p0 IW 0:00.00 (dns helper) (navigator-linux-)
72210 p0 R+ 0:00.00 ps
390 p1 Is 0:01.14 tcsh
7059 p2 Is+ 1:36.18 /usr/local/bin/mutt -y
6688 p3 IWs 0:00.00 tcsh
10735 p4 IWs 0:00.00 tcsh
20256 p5 IWs 0:00.00 tcsh
262 v0 IWs 0:00.00 -tcsh (tcsh)
270 v0 IW+ 0:00.00 /bin/sh /usr/X11R6/bin/startx -- -bpp 16
280 v0 IW+ 0:00.00 xinit /home/nik/.xinitrc -- -bpp 16
284 v0 IW 0:00.00 /bin/sh /home/nik/.xinitrc
285 v0 S 0:38.45 /usr/X11R6/bin/sawfishWie Sie sehen, gibt &man.ps.1; mehrere Spalten aus. In der
PID Spalte findet sich die vorher besprochene
Prozess-ID. PIDs werden von 1 beginnend bis 99999 zugewiesen
und fangen wieder von vorne an, wenn die Grenze überschritten
wird. Die Spalte TT zeigt den Terminal, auf dem das
Programm läuft. STAT zeigt den Status
des Programms an und kann für die Zwecke dieser Diskussion ebenso
wie TT ignoriert werden. TIME
gibt die Zeit an, die das Programm auf der CPU gelaufen ist –
dies ist nicht unbedingt die Zeit, die seit dem Start des Programms
vergangen ist, da die meisten Programme hauptsächlich auf
bestimmte Dinge warten, bevor sie wirklich CPU-Zeit verbrauchen.
Unter der Spalte COMMAND finden Sie schließlich
die Kommandozeile, mit der das Programm gestartet wurde.&man.ps.1; besitzt viele Optionen, um die angezeigten Informationen
zu beeinflussen. Eine nützliche Kombination ist
auxww. Mit werden Information
über alle laufenden Prozesse und nicht nur Ihrer eigenen
angezeigt. Der Name des Besitzers des Prozesses, sowie Informationen
über den Speicherverbrauch werden mit
angezeigt. zeigt auch Dämonen-Prozesse an,
und veranlasst &man.ps.1; die komplette
Kommandozeile anzuzeigen, anstatt sie abzuschneiden, wenn sie
zu lang für die Bildschirmausgabe wird.Die Ausgabe von &man.top.1; sieht ähnlich aus:&prompt.user; top
last pid: 72257; load averages: 0.13, 0.09, 0.03 up 0+13:38:33 22:39:10
47 processes: 1 running, 46 sleeping
CPU states: 12.6% user, 0.0% nice, 7.8% system, 0.0% interrupt, 79.7% idle
Mem: 36M Active, 5256K Inact, 13M Wired, 6312K Cache, 15M Buf, 408K Free
Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND
72257 nik 28 0 1960K 1044K RUN 0:00 14.86% 1.42% top
7078 nik 2 0 15280K 10960K select 2:54 0.88% 0.88% xemacs-21.1.14
281 nik 2 0 18636K 7112K select 5:36 0.73% 0.73% XF86_SVGA
296 nik 2 0 3240K 1644K select 0:12 0.05% 0.05% xterm
48630 nik 2 0 29816K 9148K select 3:18 0.00% 0.00% navigator-linu
175 root 2 0 924K 252K select 1:41 0.00% 0.00% syslogd
7059 nik 2 0 7260K 4644K poll 1:38 0.00% 0.00% mutt
...Die Ausgabe ist in zwei Abschnitte geteilt. In den ersten
fünf Kopfzeilen finden sich die zuletzt zugeteilte PID, die
Systemauslastung (engl. load average),
die Systemlaufzeit (die Zeit seit dem letzten Reboot) und die
momentane Zeit. Die weiteren Zahlen im Kopf beschreiben wie viele
Prozesse momentan laufen (im Beispiel 47), wie viel Speicher
und Swap verbraucht wurde und wie viel Zeit das System in den
verschiedenen CPU-Modi verbringt.Darunter befinden sich einige Spalten mit ähnlichen
Informationen wie in der Ausgabe von &man.ps.1;. Wie im vorigen
Beispiel können Sie die PID, den Besitzer, die verbrauchte
CPU-Zeit und das Kommando erkennen. &man.top.1; zeigt auch den
Speicherverbrauch des Prozesses an, der in zwei Spalten aufgeteilt
ist. Die erste Spalte gibt den gesamten Speicherverbrauch des
Prozesses an, in der zweiten Spalte wird der aktuelle Verbrauch
angegeben. &netscape; hat im gezeigten
Beispiel insgesamt 30 MB Speicher verbraucht. Momentan benutzt
es allerdings nur 9 MB.Die Anzeige wird von &man.top.1; automatisch alle zwei Sekunden
aktualisiert. Der Zeitraum kann mit eingestellt
werden.Dämonen, Signale und Stoppen von ProzessenWenn Sie einen Editor starten, können Sie ihn leicht bedienen
und Dateien laden. Sie können das, weil der Editor dafür
Vorsorge getroffen hat und auf einem Terminal
läuft. Manche Programme erwarten keine Eingaben von einem
Benutzer und lösen sich bei erster Gelegenheit von ihrem
Terminal. Ein Web-Server zum Beispiel verbringt den ganzen Tag
damit, auf Anfragen zu antworten und erwartet keine Eingaben von Ihnen.
Programme, die E-Mail von einem Ort zu einem anderen Ort transportieren
sind ein weiteres Beispiel für diesen Typ von Anwendungen.Wir nennen diese Programme Dämonen.
Dämonen stammen aus der griechischen Mythologie und waren
weder gut noch böse. Sie waren kleine dienstbare Geister,
die meistens nützliche Sachen für die Menschheit vollbrachten.
Ähnlich wie heutzutage Web-Server und Mail-Server nützliche
Dienste verrichten. Seit langer Zeit ist daher das BSD Maskottchen
dieser fröhlich aussehende Dämon mit Turnschuhen
und Dreizack.Programme, die als Dämon laufen, werden entsprechend einer
Konvention mit einem d am Ende benannt.
BIND ist der Berkeley Internet Name Daemon
und das tatsächlich laufende Programm heißt
named. Der Apache Webserver wird
httpd genannt, der Druckerspool-Dämon heißt
lpd usw. Dies ist allerdings eine Konvention
und keine unumstößliche Regel: Der Dämon der
Anwendung sendmail heißt
sendmail und nicht maild, wie
Sie vielleicht gedacht hatten.Manchmal müssen Sie mit einem Dämon kommunizieren und
dazu benutzen Sie Signale. Sie können
mit einem Dämonen oder jedem anderen laufenden Prozess
kommunizieren, indem Sie diesem ein Signal schicken. Sie können
verschiedene Signale verschicken – manche haben eine festgelegte
Bedeutung, andere werden von der Anwendung interpretiert. Die
Dokumentation zur fraglichen Anwendung wird erklären, wie
die Anwendung Signale interpretiert. Sie können nur Signale
zu Prozessen senden, die Ihnen gehören. Normale Benutzer haben
nicht die Berechtigung, Prozessen anderer Benutzer mit &man.kill.1;
oder &man.kill.2; Signale zu schicken. Der Benutzer
root darf jedem Prozess Signale schicken.In manchen Fällen wird FreeBSD Signale senden. Wenn eine
Anwendung schlecht geschrieben ist und auf Speicher zugreift, auf
den sie nicht zugreifen soll, so sendet FreeBSD dem Prozess
das Segmentation Violation Signal
(SIGSEGV). Wenn eine Anwendung den &man.alarm.3;
Systemaufruf benutzt hat, um nach einiger Zeit benachrichtigt zu
werden, bekommt sie das Alarm Signal (SIGALRM)
gesendet.Zwei Signale können benutzt werden, um Prozesse zu stoppen:
SIGTERM und SIGKILL. Mit
SIGTERM fordern Sie den Prozess höflich zum
Beenden auf. Der Prozess kann das Signal abfangen und merken,
dass er sich beenden soll. Er hat dann Gelegenheit Logdateien
zu schließen und die Aktion, die er vor der Aufforderung
sich zu beenden durchführte, abzuschließen. Er kann
sogar SIGTERM ignorieren, wenn er eine Aktion
durchführt, die nicht unterbrochen werden darf.SIGKILL kann von keinem Prozess ignoriert
werden. Das Signal lässt sich mit Mich interessiert
nicht, was du gerade machst, hör sofort auf damit!
umschreiben. Wenn Sie einem Prozess SIGKILL
schicken, dann wird FreeBSD diesen sofort beenden
Das stimmt nicht ganz: Es gibt Fälle, in denen ein Prozess
nicht unterbrochen werden kann. Wenn der Prozesss zum Beispiel
eine Datei von einem anderen Rechner auf dem Netzwerk liest und dieser
Rechner aus irgendwelchen Gründen nicht erreichbar ist
(ausgeschaltet, oder ein Netzwerkfehler), dann ist der Prozess
nicht zu unterbrechen. Wenn der Prozess den Lesezugriff
nach einem Timeout von typischerweise zwei Minuten aufgibt,
dann wir er beendet..Andere Signale, die Sie vielleicht verschicken wollen, sind
SIGHUP, SIGUSR1 und
SIGUSR2. Diese Signale sind für allgemeine
Zwecke vorgesehen und verschiedene Anwendungen werden unterschiedlich
auf diese Signale reagieren.Nehmen wir an, Sie haben die Konfiguration Ihres Webservers
verändert und möchten dies dem Server mitteilen. Sie
könnten den Server natürlich stoppen und
httpd wieder starten. Die Folge wäre eine
kurze Zeit, in der der Server nicht erreichbar ist. Die meisten
Dämonen lesen Ihre Konfigurationsdatei beim Empfang eines
SIGHUP neu ein. Da es keinen Standard gibt, der
vorschreibt, wie auf diese Signale zu reagieren ist, lesen
Sie bitte die Dokumentation zu dem in Frage kommenden Dämon.Mit &man.kill.1; können Sie, wie unten gezeigt, Signale
verschicken.Verschicken von SignalenDas folgende Beispiel zeigt, wie Sie &man.inetd.8; ein
Signal schicken. Die Konfigurationsdatei von
inetd ist /etc/inetd.conf.
Diese Konfigurationsdatei liest inetd ein,
wenn er ein SIGHUP empfängt.Suchen Sie die Prozess-ID des Prozesses, dem Sie ein Signal
schicken wollen. Benutzen Sie dazu &man.ps.1; und &man.grep.1;.
Mit &man.grep.1; können Sie in einer Ausgabe nach einem
String suchen. Da &man.inetd.8; unter dem Benutzer
root läuft und Sie das Kommando als
normaler Benutzer absetzen, müssen Sie &man.ps.1; mit
aufrufen:&prompt.user; ps -ax | grep inetd
198 ?? IWs 0:00.00 inetd -wWDie Prozess-ID von &man.inetd.8; ist 198. In einigen
Fällen werden Sie auch das grep inetd
Kommando in der Ausgabe sehen. Dies hat damit zu tun, wie
&man.ps.1; die Liste der laufenden Prozesse untersucht.Senden Sie das Signal mit &man.kill.1;. Da &man.inetd.8;
unter dem Benutzer root läuft, müssen
Sie zuerst mit &man.su.1; root werden:&prompt.user; suPassword:
&prompt.root; /bin/kill -s HUP 198&man.kill.1; wird, wie andere Kommandos von &unix; Systemen auch, keine Ausgabe
erzeugen, wenn das Kommando erfolgreich war. Wenn Sie versuchen,
einem Prozess, der nicht Ihnen gehört, ein Signal zu
senden, dann werden Sie die Meldung
kill: PID: Operation not
permitted sehen. Wenn Sie sich bei der Eingabe der
PID vertippen, werden Sie das Signal dem falschen Prozess
schicken, was schlecht sein kann. Wenn Sie Glück haben,
existiert der Prozess nicht und Sie werden mit der Ausgabe
kill: PID: No such
process belohnt.Warum soll ich /bin/kill benutzen?Viele Shells stellen kill als internes
Kommando zur Verfügung, das heißt die Shell sendet
das Signal direkt, anstatt /bin/kill
zu starten. Das kann nützlich sein, aber die
unterschiedlichen Shells benutzen eine verschiedene Syntax,
um die Namen der Signale anzugeben. Anstatt jede Syntax zu
lernen, kann es einfacher sein, /bin/kill
... direkt aufzurufen.Andere Signale senden Sie auf die gleiche Weise, ersetzen
Sie nur TERM oder KILL
entsprechend.Es kann gravierende Auswirkungen haben, wenn Sie zufällig
Prozesse beenden. Insbesondere &man.init.8; mit der Prozess-ID
ist ein Spezialfall. Mit /bin/kill -s KILL 1
können Sie Ihr System schnell herunterfahren.
Überprüfen Sie die Argumente von &man.kill.1;
immer zweimal bevor
Sie Return drücken.ShellsShellsKommandozeileVon der tagtäglichen Arbeit mit FreeBSD wird eine Menge
mit der Kommandozeilen Schnittstelle der Shell erledigt. Die
Hauptaufgabe einer Shell besteht darin, Kommandos der Eingabe
anzunehmen und diese auszuführen. Viele Shells haben
außerdem eingebaute Funktionen, die die tägliche
Arbeit erleichtern, beispielsweise eine Dateiverwaltung,
die Vervollständigung von Dateinamen (Globbing), einen
Kommandozeileneditor, sowie Makros und Umgebungsvariablen. FreeBSD
enthält die Shells sh (die Bourne Shell) und
tcsh (die verbesserte C-Shell) im Basissystem.
Viele andere Shells, wie zsh oder
bash, befinden sich in der Ports-Sammlung.Welche Shell soll ich benutzen? Das ist wirklich eine
Geschmacksfrage. Sind Sie ein C-Programmierer, finden Sie
vielleicht eine C-artige Shell wie die tcsh
angenehmer. Kommen Sie von Linux oder ist Ihnen der Umgang mit &unix; Systemen
neu, so könnten Sie die bash probieren.
Der Punkt ist, dass
jede Shell ihre speziellen Eigenschaften hat, die mit Ihrer
bevorzugten Arbeitsumgebung harmonieren können oder nicht.
Sie müssen sich eine Shell aussuchen.Ein verbreitetes Merkmal in Shells ist die
Dateinamen-Vervollständigung. Sie müssen nur einige
Buchstaben eines Kommandos oder eines Dateinamen eingeben und
die Shell vervollständigt den Rest automatisch durch
drücken der Tab-Taste. Hier ist ein Beispiel.
Angenommen, Sie
haben zwei Dateien foobar und
foo.bar. Die Datei
foo.bar möchten Sie löschen. Nun
würden Sie an der Tastatur eingeben:
rm fo[Tab].
[Tab].Die Shell würde dann rm
foo[BEEP].bar ausgeben.[BEEP] meint den Rechner-Piepser. Diesen gibt die Shell
aus, um anzuzeigen, dass es den Dateinamen nicht
vervollständigen konnte, da es mehrere Möglichkeiten
gibt. Beide Dateien foobar und
foo.bar beginnen mit fo,
so konnte nur bis foo ergänzt werden.
Nachdem Sie . eingaben und dann die
Tab-Taste
drückten, konnte die Shell den Rest für Sie
ausfüllen.UmgebungsvariablenEin weiteres Merkmal der Shell ist der Gebrauch von
Umgebungsvariablen. Dies sind veränderbare Schlüsselpaare
im Umgebungsraum der Shell, die jedes von der Shell aufgerufene
Programm lesen kann. Daher enthält der Umgebungsraum viele
Konfigurationsdaten für Programme. Die folgende Liste zeigt
verbreitete Umgebungsvariablen und was sie bedeuten:UmgebungsvariablenVariableBeschreibungUSERName des angemeldeten Benutzers.PATHListe mit Verzeichnissen (getrennt durch Doppelpunkt)
zum Suchen nach Programmen.DISPLAYDer Name des X11-Bildschirms, auf dem
Ausgaben erfolgen sollen.SHELLDie aktuelle Shell.TERMName des Terminals des Benutzers. Benutzt, um die
Fähigkeiten des Terminals zu bestimmen.TERMCAPDatenbankeintrag der Terminal Escape Codes,
benötigt um verschieden Terminalfunktionen
auszuführen.OSTYPETyp des Betriebsystems, beispielsweise FreeBSD.MACHTYPEDie CPU Architektur auf dem das System
läuft.EDITORVom Benutzer bevorzugter Text-Editor.PAGERVom Benutzer bevorzugter Text-Betrachter.MANPATHListe mit Verzeichnissen (getrennt durch Doppelpunkt)
zum Suchen nach Manualpages.ShellsBourne ShellDas Setzen von Umgebungsvariablen funktioniert
von Shell zu Shell unterschiedlich. Zum Beispiel benutzt man
in C-artigen Shells wie der tcsh dazu
setenv. Unter Bourne-Shells wie sh
oder bash benutzen Sie zum Setzen von
Umgebungsvariablen export. Um
beispielsweise die Variable EDITOR mit
csh oder tcsh auf
/usr/local/bin/emacs zu setzen, setzen Sie das
folgende Kommando ab:&prompt.user; setenv EDITOR /usr/local/bin/emacsUnter Bourne-Shells:&prompt.user; export EDITOR="/usr/local/bin/emacs"Sie können die meisten Shells Umgebungsvariablen
expandieren lassen, in dem Sie in der Kommandozeile ein
$ davor eingeben. Zum Beispiel gibt
echo $TERM aus, worauf $TERM
gesetzt ist, weil die Shell $TERM expandiert
und das Ergebnis an echo gibt.Shells behandeln viele Spezialzeichen, so genannte
Metazeichen, als besondere Darstellungen für Daten.
Das allgemeinste ist das Zeichen *, das eine
beliebige Anzahl Zeichen in einem Dateinamen repräsentiert.
Diese Metazeichen können zum Vervollständigen von
Dateinamen (Globbing) benutzt werden. Beispielsweise liefert
das Kommando echo * nahezu das gleiche
wie die Eingabe von ls, da die Shell alle
Dateinamen die mit * übereinstimmen, an
echo weitergibt.Um zu verhindern, dass die Shell diese Sonderzeichen
interpretiert, kann man sie schützen, indem man ihnen einen
Backslash (\) voranstellt. echo
$TERM gibt aus, auf was auch immer Ihr Terminal
gesetzt ist. echo \$TERM gibt
$TERM genauso aus, wie es hier steht.Ändern der ShellDer einfachste Weg Ihre Shell zu ändern, ist das
Kommando chsh zu benutzen.
chsh platziert Sie im Editor, welcher durch
Ihre Umgebungsvariable EDITOR gesetzt ist,
im vi wenn die Variable nicht gesetzt ist.
Ändern Sie die Zeile mit Shell:
entsprechend Ihren Wünschen.Sie können auch chsh mit der Option
aufrufen, dann wird Ihre Shell gesetzt,
ohne dass Sie in einen Editor gelangen. Um Ihre Shell
zum Beispiel auf die bash zu ändern,
geben Sie das folgende Kommando ein:&prompt.user; chsh -s /usr/local/bin/bashDasselbe Ergebnis hätten Sie erzielt, wenn Sie einfach
chsh ohne Optionen aufgerufen und die
entsprechende Zeile editiert hätten.Die von Ihnen gewünschte Shell
muss in /etc/shells
aufgeführt sein. Haben Sie eine Shell aus der
- Ports Sammlung installiert,
+ Ports-Sammlung installiert,
sollte das schon automatisch erledigt werden. Installierten
Sie die Shell von Hand, so müssen Sie sie dort
eintragen.Haben Sie beispielsweise die bash nach
/usr/local/bin installiert, wollen Sie
dies tun:&prompt.root; echo "/usr/local/bin/bash" >> /etc/shellsDanach können Sie chsh aufrufen.Text-EditorenText EditorenEditorenEine großer Teil der Konfiguration wird bei FreeBSD durch
das Editieren von Textdateien erledigt. Deshalb ist es eine
gute Idee, mit einem Texteditor vertraut zu werden. FreeBSD hat
ein paar davon im Basissystem und sehr viel mehr in der
Ports-Sammlung.eeText EditoreneeDer am leichtesten und einfachsten zu erlernende Editor nennt
sich ee, was für
easy editor steht.
Um ee zu starten, gibt man in der
Kommandozeile ee filename ein, wobei
filename den Namen der zu editierenden
Datei darstellt. Um zum Beispiel /etc/rc.conf
zu editieren, tippen Sie ee /etc/rc.conf ein.
Einmal im Editor, finden Sie alle Editor-Funktionen oben im
Display aufgelistet. Das Einschaltungszeichen
^ steht für die Ctrl (oder
Strg) Taste, mit ^e ist also die
Tastenkombination Ctrle
gemeint. Um ee zu verlassen, drücken
Sie Esc und wählen dann aus. Der Editor fragt nach, ob Sie speichern
möchten, wenn die Datei verändert wurde.viText EditorenviemacsText EditorenemacsFreeBSD verfügt über leistungsfähigere
Editoren wie vi als Teil des
Basissystems, andere Editoren wie emacs
oder vim sind Teil der Ports-Sammlung.
Diese Editoren bieten höhere Funktionalität und
Leistungsfähigkeit, jedoch auf Kosten einer etwas
schwierigeren Erlernbarkeit. Wenn Sie viele Textdateien
editieren, sparen Sie auf lange Sicht mehr Zeit durch das Erlernen
von Editoren wie vim oder
emacs ein.Geräte und GerätedateienDer Begriff Gerät wird meist in Verbindung mit Hardware
wie Laufwerken, Druckern, Grafikkarten oder Tastaturen gebraucht.
Der Großteil der Meldungen, die beim Booten von FreeBSD angezeigt
werden, beziehen sich auf gefundene Geräte. Sie können sich
die Bootmeldungen später in /var/run/dmesg.boot
ansehen.Gerätenamen, die Sie wahrscheinlich in den Bootmeldungen sehen
werden, sind zum Beispiel acd0, das erste
IDE CD-ROM oder kbd0, die Tastatur.Auf die meisten Geräte wird unter &unix; Systemen über spezielle
Gerätedateien im /dev Verzeichnis
zugegriffen.Anlegen von GerätedateienWenn sie ein neues Gerät zu Ihrem System hinzufügen,
oder die Unterstützung für zusätzliche Geräte
kompilieren, müssen oft ein oder mehrere Gerätedateien
erstellt werden.MAKEDEV SkriptAuf Systemen ohne DEVFS (das sind alle
Systeme vor FreeBSD 5.0) müssen Gerätedateien mit
&man.MAKEDEV.8; wie unten gezeigt angelegt werden:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV ad1Im Beispiel werden alle Gerätedateien für das
zweite IDE Laufwerk angelegt.DEVFS (Gerätedateisystem)Das Gerätedateisystem DEVFS
ermöglicht durch den
Namensraum des Dateisystems Zugriff auf den Namensraum der
Geräte im Kernel. Damit müssen Gerätedateien
nicht mehr extra angelegt werden, sondern werden von
DEVFS verwaltet.Weitere Informationen finden Sie in &man.devfs.5;.DEVFS ist ab &os; 5.0
in der Grundeinstellung aktiviert.BinärformateUm zu verstehen, warum &os; das Format
&man.elf.5; benutzt, müssen Sie
zunächst etwas über die drei gegenwärtig
dominanten ausführbaren Formate
für &unix; Systeme wissen:&man.a.out.5;Das älteste und klassische
Objektformat von &unix; Systemen. Es benutzt einen kurzen,
kompakten Header mit einer magischen Nummer am Anfang, die oft
benutzt wird, um das Format zu charakterisieren
(weitere Details finden Sie unter &man.a.out.5;). Es
enthält drei geladene Segmente: .text, .data und
.bss, sowie eine Symboltabelle und eine
Stringtabelle.COFFDas Objektformat von SVR3. Der Header
enthält nun eine Sectiontable. Man kann
also mit mehr als nur den Sections .text, .data und .bss
arbeiten.&man.elf.5;Der Nachfolger von COFF.
Kennzeichnend sind mehrere Sections und mögliche
32-Bit- oder 64-Bit-Werte. Ein wesentlicher Nachteil:
ELF wurde auch unter der Annahme
entworfen, dass es nur eine ABI (Application
Binary Interface) pro Systemarchitektur geben wird.
Tatsächlich ist diese Annahme falsch – nicht
einmal für die kommerzielle SYSV-Welt (in der es
mindestens drei ABIs gibt: SVR4, Solaris, SCO) trifft
sie zu.FreeBSD versucht, dieses Problem zu umgehen, indem
ein Werkzeug bereitgestellt wird, um ausführbare
Dateien im ELF-Format mit
Informationen über die ABI zu versehen, zu der
sie passen. Weitere Informationen finden Sie in der
Manualpage &man.brandelf.1;.FreeBSD kommt aus dem klassischen Lager
und verwendete traditionell das Format &man.a.out.5;, eine
Technik, die bereits über viele BSD-Releases
hinweg eingesetzt und geprüft worden ist. Obwohl es
bereits seit einiger Zeit möglich war, auf einem
FreeBSD-System auch Binaries (und Kernel) im
ELF-Format zu erstellen und
auszuführen, widersetzte FreeBSD sich anfangs dem
Druck, auf ELF als
Standardformat umzusteigen. Warum? Nun, als das
Linux-Lager die schmerzhafte Umstellung auf
ELF durchführte, ging es nicht so
sehr darum, dem ausführbaren Format
a.out zu entkommen, als dem
unflexiblen, auf Sprungtabellen basierten Mechanismus
für Shared-Libraries der die Konstruktion von
Shared-Libraries für Hersteller und Entwickler
gleichermaßen sehr kompliziert machte. Da die
verfügbaren ELF-Werkzeuge eine
Lösung für das Problem mit den Shared-Libraries
anboten und ohnehin generell als ein Schritt
vorwärts angesehen wurden, wurde der Aufwand
für die Umstellung als notwendig akzeptiert und die
Umstellung wurde durchgeführt. Unter FreeBSD ist der
Mechanismus von Shared-Libraries enger an den Stil des
Shared-Library-Mechanismus von Suns &sunos;
angelehnt und von daher sehr einfach zu verwenden.Ja, aber warum gibt es so viele unterschiedliche Formate?In alter, grauer Vorzeit gab es simple Hardware.
Diese simple Hardware unterstützte ein einfaches,
kleines System. a.out war absolut passend
für die Aufgabe, Binaries auf diesem simplen System (eine PDP-11)
darzustellen. Als &unix; von diesem simplen System portiert
wurde, wurde auch das a.out-Format beibehalten,
weil es für die frühen Portierungen auf Architekturen
wie den Motorola 68000 und VAX ausreichte.Dann dachte sich ein schlauer Hardware-Ingenieur,
dass, wenn er Software zwingen könnte, einige
Tricks anzustellen, es ihm möglich wäre, ein
paar Gatter im Design zu sparen, und seinen CPU-Kern
schneller zu machen. Obgleich es dazu gebracht wurde, mit
dieser neuen Art von Hardware (heute als RISC
bekannt) zu arbeiten, war a.out für
diese Hardware schlecht geeignet. Deshalb wurden viele neue
Formate entwickelt, um eine bessere Leistung auf dieser
Hardware zu erreichen, als mit dem begrenzten, simplen
a.out-Format. Dinge wie
COFF, ECOFF und
einige andere obskure wurden erdacht und ihre Grenzen
untersucht, bevor die Dinge sich in Richtung
ELF entwickelten.Hinzu kam, dass die Größe von
Programmen gewaltig wurde und Festplatten sowie
physikalischer Speicher immer noch relativ klein waren.
Also wurde das Konzept von Shared-Libraries geboren. Das
VM-System wurde auch immer fortgeschrittener. Obwohl bei
jedem dieser Fortschritte das
a.out-Format benutzt worden ist,
wurde sein Nutzen mit jedem neuen Merkmal mehr und mehr
gedehnt. Zusätzlich wollte man Dinge dynamisch zur
Ausführungszeit laden, oder Teile ihres Programms
nach der Initialisierung wegwerfen, um Hauptspeicher
oder Swap-Speicher zu sparen. Programmiersprachen
wurden immer fortschrittlicher und man wollte, dass
Code automatisch vor der main-Funktion aufgerufen wird.
Das a.out-Format wurde oft
überarbeitet, um alle diese Dinge zu ermöglichen
und sie funktionierten auch für einige Zeit.
a.out konnte diese Probleme nicht
ohne ein ständiges Ansteigen eines Overheads im Code
und in der Komplexität handhaben. Obwohl
ELF viele dieser Probleme löste,
wäre es sehr aufwändig, ein System umzustellen, das
im Grunde genommen funktionierte. Also musste
ELF warten, bis es aufwändiger war, bei
a.out zu bleiben, als zu
ELF überzugehen.Im Laufe der Zeit haben sich die Erstellungswerkzeuge,
von denen FreeBSD seine Erstellungswerkzeuge abgeleitet
hat (speziell der Assembler und der Loader), in zwei
parallele Zweige entwickelt. Im FreeBSD-Zweig wurden
Shared-Libraries hinzugefügt und einige Fehler
behoben. Das GNU-Team, das diese Programme
ursprünglich geschrieben hat, hat sie umgeschrieben
und eine simplere Unterstützung zur Erstellung von
Cross-Compilern durch beliebiges Einschalten verschiedener
Formate usw. hinzugefügt. Viele Leute wollten
Cross-Compiler für FreeBSD erstellen, aber sie hatten
kein Glück, denn FreeBSD's ältere Sourcen
für as und ld
waren hierzu nicht geeignet. Die neuen
GNU-Werkzeuge (binutils) unterstützen
Cross-Compilierung, ELF, Shared-Libraries,
C++-Erweiterungen und mehr. Weiterhin geben viele
Hersteller ELF-Binaries heraus und es
ist gut, wenn FreeBSD sie ausführen kann.ELF ist ausdrucksfähiger als
a.out und gestattet eine bessere Erweiterbarkeit
des Basissystems. Die ELF-Werkzeuge werden
besser gewartet und bieten Unterstützung von
Cross-Compilierung, was für viele Leute wichtig ist.
ELF mag etwas langsamer sein, als
a.out, aber zu versuchen, das zu messen,
könnte schwierig werden. Es gibt unzählige Details, in
denen sich die beiden Formate unterscheiden, wie sie Pages
abbilden, Initialisierungscode handhaben usw. Keins davon
ist sehr wichtig, aber es sind Unterschiede. Irgendwann
wird die Unterstützung für Programme im
a.out-Format aus dem
GENERIC-Kernel entfernt werden.
Wenn es dann keinen oder kaum noch
Bedarf für die Unterstützung dieses Formates
gibt, werden die entsprechenden Routinen ganz entfernt
werden.Weitere InformationenManualpagesManualpagesDie umfassendste Dokumentation rund um FreeBSD gibt es in
Form von Manualpages. Annähernd jedes Programm im System
bringt eine kurze Referenzdokumentation mit, die die
grundsätzliche Funktion und verschiedene Parameter
erklärt. Diese Dokumentationen kann man mit dem
man Kommando benutzen. Die Benutzung des
man Kommandos ist einfach:&prompt.user; man KommandoKommando ist der Name des Kommandos,
über das Sie etwas erfahren wollen. Um beispielsweise
mehr über das Kommando ls zu lernen,
geben Sie ein:&prompt.user; man lsDie Online-Dokumentation ist in nummerierte Sektionen
unterteilt:Benutzerkommandos.Systemaufrufe und Fehlernummern.Funktionen der C Bibliothek.Gerätetreiber.Dateiformate.Spiele und andere Unterhaltung.Verschiedene Informationen.Systemverwaltung und -Kommandos.Kernel Entwickler.In einigen Fällen kann dasselbe Thema in mehreren
Sektionen auftauchen. Es gibt zum Beispiel ein chmod
Benutzerkommando und einen chmod()
Systemaufruf. In diesem Fall können Sie dem
man Kommando
sagen, aus welcher Sektion Sie die Information erhalten
möchten, indem Sie die Sektion mit angeben:&prompt.user; man 1 chmodDies wird Ihnen die Manualpage für das Benutzerkommando
chmod zeigen. Verweise auf eine Sektion
der Manualpages werden traditionell in Klammern
gesetzt. So bezieht sich &man.chmod.1; auf das
Benutzerkommando chmod und mit
&man.chmod.2; ist der Systemaufruf gemeint.Das ist nett, wenn Sie den Namen eines Kommandos wissen,
und lediglich wissen wollen, wie es zu benutzen ist. Aber was
tun Sie, wenn Sie Sich nicht an den Namen des Kommandos
erinnern können? Sie können mit man
nach Schlüsselbegriffen in den
Kommandobeschreibungen zu suchen, indem Sie den Parameter
benutzen:&prompt.user; man -k mailMit diesem Kommando bekommen Sie eine Liste der
Kommandos, deren Beschreibung das Schlüsselwort
mail enthält. Diese Funktionalität
erhalten Sie auch, wenn Sie das Kommando apropos
benutzen.Nun, Sie schauen Sich alle die geheimnisvollen Kommandos
in /usr/bin an, haben aber nicht den
blassesten Schimmer, wozu die meisten davon gut sind? Dann
rufen Sie doch einfach das folgende Kommando auf:&prompt.user; cd /usr/bin
&prompt.user; man -f *Dasselbe erreichen Sie durch Eingabe von:&prompt.user; cd /usr/bin
&prompt.user; whatis *GNU Info DateienFreeBSD enthält viele Anwendungen und Utilities
der Free Software Foundation (FSF). Zusätzlich zu den
Manualpages bringen diese Programme ausführlichere
Hypertext-Dokumente (info genannt) mit,
welche man sich mit dem Kommando info
ansehen kann. Wenn Sie emacs
installiert haben, können Sie auch dessen info-Modus
benutzen.Um das Kommando &man.info.1; zu benutzen, geben Sie
einfach ein:&prompt.user; infoEine kurze Einführung gibt es mit
h; eine Befehlsreferenz erhalten Sie durch
Eingabe von: ?.
diff --git a/de_DE.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml b/de_DE.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml
index 6386cea371..b729e6a80b 100644
--- a/de_DE.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml
@@ -1,3562 +1,3565 @@
JimMockRestrukturiert, neu organisiert und aktualisiert von ThomasSchwarzkopfÜbersetzt von PPP und SLIPÜbersichtPPPSLIPUnter FreeBSD stehen verschiedene Möglichkeiten zur
Verfügung, um Computer miteinander zu verbinden. Der Aufbau
einer Netzwerk- oder Internetverbindung mit Hilfe eines Einwahlmodems
– für den eigenen oder für andere Rechner –
erfordert den Einsatz von PPP oder SLIP.Nachdem Sie dieses Kapitel gelesen haben, werden Sie wissen:Wie Sie User-PPP einrichten.Wie Sie Kernel-PPP einrichten.Was zu tun ist, um PPPoE (PPP over
Ethernet) einzurichten.Wie Sie PPPoA (PPP over
ATM) einrichten.Wie Sie einen SLIP-Client und -Server einrichten und
konfigurierenPPPUser-PPPPPPKernel-PPPPPPover EthernetBevor Sie dieses Kapitel lesen, sollten Sie:mit den grundlegenden Begriffen der Netzwerktechnik
vertraut sein.die Grundlagen und den Zweck einer Einwahlverbindung sowie
PPP und/oder SLIP kennen.Sie fragen sich vielleicht, worin denn der Hauptunterschied
zwischen User-PPP und Kernel-PPP liegt. Die Antwort ist einfach:
User-PPP verarbeitet die ein- und ausgehenden Daten im Userland,
statt im Kernel. Dies ist zwar aufwändig, im Hinblick auf
die Daten, die dadurch zwischen Kernel und Userland hin und her
kopiert werden müssen, doch es ermöglicht auch eine
PPP-Implementierung mit weitaus mehr Funktionen. User-PPP verwendet
das Gerät tun, um mit anderen Rechnern
zu kommunizieren, während Kernel-PPP hierfür das
Gerät ppp benutzt.In diesem Kapitel wird durchgängig vom Programm
ppp gesprochen, wenn damit User-PPP
gemeint ist. Ausnahmen werden gemacht, wenn eine
Unterscheidung gegenüber anderer PPP-Software, wie
pppd, notwendig wird. Soweit nichts
anderes angegeben ist, sollten alle Befehle, die in diesem
Kapitel erklärt werden, als root
ausgeführt werden.TomRhodesAktualisiert und erweitert von BrianSomersUrsprünglich geschrieben von NikClaytonMit Beiträgen von DirkFrömbergPeterChildsUser-PPPUser-PPPVoraussetzungenDieses Dokument geht davon aus, dass Sie Folgendes zur
Verfügung haben:ISPPPPEinen Account bei einem Internet Service Provider (ISP),
zu dem Sie mit PPP eine Verbindung aufbauen können.Ein Modem oder ein anderes Gerät, das, richtig
konfiguriert und mit Ihrem Rechner verbunden, Ihnen die
Herstellung einer Verbindung zu Ihrem ISP erlaubt.Die Einwahlnummer(n) Ihres ISP.PAPCHAPUNIXLogin NamePasswortIhren Login-Namen und Ihr Passwort (entweder ein
reguläres Login/Passwort-Paar im UNIX-Stil oder
ein PAP bzw. CHAP Login/Passwort-Paar).NameserverDie IP-Adresse von einem oder mehreren Nameservern.
Üblicherweise werden Ihnen von Ihrem ISP zwei
IP-Adressen für diesen Zweck zur Verfügung gestellt.
Wenn Sie keine solche IP-Adresse von Ihrem
Provider bekommen haben, können Sie das Kommando
enable dns in der Datei
ppp.conf verwenden, um
ppp anzuweisen, den Nameserver
für Sie einzutragen. Diese Funktion setzt allerdings
voraus, dass Ihr ISP eine PPP-Implementierung verwendet,
die das Aushandeln eines Nameservers unterstützt.Die folgenden Informationen werden Ihnen möglicherweise
von Ihrem ISP zur Verfügung gestellt, sie sind aber nicht
zwingend erforderlich:Die Gateway IP-Adresse Ihres ISP. Als Gateway wird
der Computer bezeichnet, zu dem Sie eine Verbindung aufbauen.
Die IP-Adresse dieses Rechners wird als
default route eingetragen. Wenn Sie
diese Information nicht zur Verfügung haben, kann PPP so
konfiguriert werden, dass der PPP-Server Ihres ISP während
des Verbindungsaufbaus eine gültige Adresse
übermittelt.ppp bezieht sich mit
HISADDR auf diese IP-Adresse.Die Netzmaske, die Sie verwenden sollten. Falls Ihnen Ihr
ISP keine Netzmaske vorgegeben hat, können Sie
255.255.255.255 verwenden.feste IP-AdresseWenn Ihnen Ihr ISP eine statische IP-Adresse zur
Verfügung stellt, können Sie diese eintragen.
Andernfalls lassen wir uns einfach von der Gegenstelle
eine IP-Adresse zuweisen.Falls Ihnen die erforderlichen Informationen fehlen
sollten, nehmen Sie bitte Kontakt mit Ihrem ISP auf.Die Beispieldateien, die in diesem Kapitel dargestellt werden,
enthalten Zeilennummern. Die Nummerierung dient lediglich einer
leichteren Orientierung und sollte von Ihnen nicht in Ihre Dateien
übernommen werden. Richtiges Einrücken, durch
Tabulatoren und Leerzeichen, ist ebenfalls wichtig.PPP-Gerätedateien erstellenPPPGerätedateienUnter normalen Umständen werden die meisten Anwender
nur ein tun-Gerät benötigen:
(/dev/tun0). Weiter unten werden wir
uns statt auf tun0 auch auf
tunN beziehen, wobei N
jedem möglichen weiteren Tunnel-Gerät Ihres Rechners
entspricht.Bei FreeBSD-Installationen, die &man.devfs.5; nicht aktiviert
haben (FreeBSD 4.X und frühere Versionen),
sollte überprüft werden, ob
tun0 vorhanden ist. Dies ist nicht
erforderlich, wenn &man.devfs.5; aktiviert ist, da in diesem Fall
Gerätedateien bei Bedarf erzeugt werden.Der einfachste Weg, um sicherzustellen, dass das
tun0-Gerät richtig konfiguriert
ist, besteht darin, die Gerätedatei neu zu erzeugen.
Dazu geben Sie bitte Folgendes ein:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV tun0Wenn Sie 16 Tunnel-Geräte im Kernel benötigen,
können Sie die Gerätedateien mit
folgenden Befehlen erstellen:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV tun15Automatische Konfiguration von
PPPPPPKonfigurationSowohl ppp als auch pppd
(die PPP-Implementierung auf Kernelebene) verwenden die
Konfigurationsdateien im Verzeichnis /etc/ppp.
Beispiele für User-PPP sind in
/usr/share/examples/ppp/ zu finden.Die Konfiguration von ppp erfordert,
je nach Ihren besonderen Bedingungen, die Bearbeitung
einiger Dateien. Was Sie in diese Dateien eintragen, hängt
unter anderem davon ab, ob Ihnen Ihr ISP eine statische
IP-Adresse (Sie verwenden immer dieselbe IP-Adresse,
die Ihnen einmal zugeteilt wurde) oder eine dynamische IP-Adresse
(Ihre IP-Adresse ändert sich bei jeder Verbindung
mit dem ISP) zugewiesen hat.PPP und statische IP-AdressenPPPmit fester IP-AdresseSie müssen die Konfigurationsdatei
/etc/ppp/ppp.conf bearbeiten. Sie sollte
so aussehen, wie in dem unten angegebenen Beispiel.Zeilen die mit einem : enden,
beginnen in der ersten Spalte (am Beginn der Zeile). Alle
anderen Zeilen sollten wie dargestellt durch Leerzeichen
oder Tabulatoren eingerückt werden.1 default:
2 set log Phase Chat LCP IPCP CCP tun command
3 ident user-ppp VERSION (built COMPILATIONDATE)
4 set device /dev/cuaa0
5 set speed 115200
6 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
7 \"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT"
8 set timeout 180
9 enable dns
10
11 provider:
12 set phone "(123) 456 7890"
13 set authname foo
14 set authkey bar
15 set login "TIMEOUT 10 \"\" \"\" gin:--gin: \\U word: \\P col: ppp"
16 set timeout 300
17 set ifaddr x.x.x.xy.y.y.y 255.255.255.255 0.0.0.0
18 add default HISADDRZeile 1:Gibt den Standardeintrag an. Befehle dieses
Eintrags werden automatisch ausgeführt, wenn
ppp läuft.Zeile 2:Schaltet die Loggingparameter ein. Wenn die
Verbindung zufriedenstellend funktioniert, können
Sie diese Zeile verkürzen:set log phase tunDies verhindert ein übermäßiges
Anwachsen der Logdateien.Zeile 3:Gibt PPP an, wie es sich gegenüber der
Gegenstelle identifizieren soll. PPP identifiziert
sich gegenüber der Gegenstelle, wenn es Schwierigkeiten
bei der Aushandlung und beim Aufbau der Verbindung gibt.
Dabei werden Informationen bereitgestellt, die dem
Administrator der Gegenstelle helfen
können, die Ursache der Probleme zu finden.Zeile 4:Gibt das Device an, an dem das Modem
angeschlossen ist.
COM1 entspricht
/dev/cuaa0 und
COM2 entspricht
/dev/cuaa1.Zeile 5:Legt die Geschwindigkeit fest, mit der Sie
die Verbindung betreiben möchten. Falls ein Wert
von 115200 nicht funktioniert (was aber bei jedem
einigermaßen neuen Modem
funktionieren sollte), versuchen Sie es stattdessen
mit 38400.Zeilen 6 & 7:PPPUser-PPPDie Zeichenfolge für die Einwahl. User-PPP
verwendet eine expect-send Syntax, ähnlich dem
&man.chat.8;-Programm. Weitere Informationen zu den
Eigenschaften dieser Sprache bietet die Manual-Seite.Beachten Sie, dass dieser Befehl aufgrund der
besseren Lesbarkeit auf der nächsten Zeile weitergeht.
Das kann für jeden Befehl in
ppp.conf gelten, wenn ``\''
das letzte Zeichen in einer Zeile ist.Zeile 8:Legt den Zeitrahmen fest, innerhalb dessen eine Reaktion
erfolgen muss. Der Standardwert liegt bei 180 Sekunden, so
dass diese Zeile lediglich einen kosmetischen Charakter
hat.Zeile 9:Weist PPP an, bei der Gegenstelle eine Bestätigung
der lokalen Resolvereinstellungen anzufordern. Wenn Sie
einen lokalen Nameserver betreiben, sollte diese Zeile
auskommentiert oder gelöscht werden.Zeile 10:Eine leere Zeile zur besseren Lesbarkeit. Leere Zeilen
werden von PPP ignoriert.Zeile 11:Bestimmt einen Provider, namens
provider. Wenn Sie hier den Namen Ihres
ISP einsetzen, können Sie später die Verbindung
mit aufbauen.Zeile 12: Gibt die Telefonnummer des Providers an. Mehrere
Telefonnummern können angegeben werden, indem Doppelpunkte
(:) oder Pipe-Zeichen
(|) als Trennzeichen verwendet werden.
Der Unterschied zwischen diesen beiden Trennzeichen ist in
&man.ppp.8; beschrieben.
Zusammenfassend: Wenn Sie die verschiedenen Nummern
abwechselnd verwenden möchten, sollten Sie die
Nummern durch einen Doppelpunkt trennen.
Wenn Sie immer die erste Nummer verwenden möchten und
die anderen nur zum Einsatz kommen sollen, wenn eine Einwahl
mit der ersten Telefonnummer nicht möglich ist, sollten
Sie das Pipe-Zeichen zur Trennung verwenden.
Wie im Beispiel, sollten Sie die gesamte Reihe der
Telefonnummern in Anführungszeichen setzen.Sie müssen die Telefonnummer in
Anführungszeichen (") setzen,
wenn Sie Leerzeichen in der Telefonnummer verwenden,
ansonsten rufen Sie einen Fehler hervor, der vielleicht
schwer zu finden ist.Zeilen 13 & 14:Gibt den Benutzernamen und das Passwort an. Wenn Sie
zur Verbindung einen Login-Prompt im UNIX-Stil verwenden,
bezieht sich der Befehl set login
mit den \U und \P Variablen auf diese Werte. Wenn Sie
zum Verbindungsaufbau PAP oder CHAP verwenden, werden
diese Werte zum Zeitpunkt der
Authentifizierung verwendet.Zeile 15:PAPCHAPWenn Sie PAP oder CHAP einsetzen, gibt es an
dieser Stelle keinen Login-Prompt, weshalb Sie diese
Zeile auskommentieren oder löschen sollten. Der
Abschnitt Authentifizierung
mit PAP und CHAP enthält hierzu weitere
Einzelheiten.Der Login-String hat die gleiche chat-ähnliche
Syntax, wie der Einwahlstring. Der String in diesem
Beispiel funktioniert mit einem ISP, dessen
Login-Session folgendermaßen aussieht:J. Random Provider
login: foo
password: bar
protocol: pppSie müssen dieses Skript noch an Ihre
eigenen Erfordernisse anpassen. Wenn Sie dieses Skript
zum ersten Mal schreiben, sollten Sie sicherstellen,
dass Sie chat-logging aktiviert haben,
damit Sie überprüfen zu können, ob
die Konversation zwischen Ihrem Rechner und dem Rechner
des Providers wie erwartet abläuft.Zeile 16:ZeitbeschränkungSetzt einen Zeitrahmen (in Sekunden), innerhalb
dessen eine Reaktion erfolgen muss. In diesem Fall,
wird die Verbindung nach 300 Sekunden automatisch
geschlossen, wenn keine Aktivität zu
verzeichnen ist. Wenn Sie keinen Zeitrahmen festlegen
wollen, nach dessen Überschreiten die Verbindung
geschlossen wird, können Sie diesen Wert auf 0
setzen oder die Kommandozeilen-Option
verwenden.Zeile 17:ISPGibt die IP-Adresse für das Interface an.
Der String x.x.x.x sollte
durch die IP-Adresse ersetzt werden, die Ihnen Ihr
Provider zugeteilt hat. Der String
y.y.y.y sollte durch die
IP-Adresse ersetzt werden, die Ihr ISP als Gateway
angegeben hat (das ist der Rechner, mit dem Ihr Rechner
eine Verbindung aufbaut). Wenn Ihnen Ihr ISP keine
Gateway Adresse zur Verfügung gestellt hat,
verwenden Sie hier einfach 10.0.0.2/0. Wenn Sie
eine erratene IP-Adresse verwenden
müssen, sollten Sie in der Datei
/etc/ppp/ppp.linkup einen
entsprechenden Eintrag machen. Folgen Sie dazu den
Anweisungen im Abschnitt PPP und dynamische
IP-Adressen. Wenn diese Zeile ausgelassen
wird, kann ppp nicht im
Modus betrieben werden.Zeile 18:Fügt eine Defaultroute für das Gateway Ihres
Providers hinzu. Das Wort HISADDR wird
dabei durch die in Zeile 17 angegebene Gateway
Adresse ersetzt. Wichtig ist, dass diese Zeile nach
Zeile 17 erscheint, da andernfalls
HISADDR noch nicht initialisiert
ist.Wenn Sie ppp nicht im
Modus betreiben, sollte diese Zeile in die Datei
ppp.linkup
verschoben werden.Wenn Sie eine statische IP-Adresse verwenden und ppp im
Modus läuft, ist es nicht notwendig,
einen Eintrag in die Datei ppp.linkup
hinzuzufügen. In diesem Fall hat ihre Routingtabelle
bereits die richtigen Einträge, bevor Sie die Verbindung
aufbauen. Sie möchten aber vielleicht einen Eintrag
hinzufügen, um ein Programm aufzurufen, nachdem die
Verbindung aufgebaut ist. Dies wird weiter unten am Beispiel
von Sendmail erklärt.Beispiele für Konfigurationsdateien finden Sie
im Verzeichnis /usr/share/examples/ppp/.PPP und dynamische IP-AdressenPPPmit dynamischen IP-AdressenIPCPWenn Ihnen Ihr ISP keine statische IP-Adresse zuteilt,
kann ppp so konfiguriert werden, dass die
lokale und die entfernte IP-Adresse beim Verbindungsaufbau
ausgehandelt werden. Dies geschieht, indem zunächst eine
IP-Adresse erraten wird, die von
ppp, unter Verwendung des IP
Configuration Protocol (IPCP) durch eine richtige ersetzt wird,
wenn die Verbindung aufgebaut ist. Die Konfiguration der Datei
ppp.conf entspricht derjenigen, die im
Abschnitt PPP und statische IP-
Adressen dargestellt wurde, jedoch mit folgender
Änderung:17 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.255Auch hier dient die Zeilennummerierung lediglich der
besseren Übersichtlichkeit. Einrückungen, von
mindestens einem Leerzeichen, sind allerdings erforderlich.Zeile 17:Die Zahl nach dem / Zeichen,
gibt die Anzahl der Bits der Adresse an, auf die ppp
besteht. Sie möchten vielleicht andere IP-Adressen
verwenden, die oben angegebenen werden aber immer
funktionieren.Das letzte Argument (0.0.0.0) weist
PPP an, den Verbindungsaufbau mit der Adresse 0.0.0.0 zu beginnen, statt 10.0.0.1 zu verwenden. Dies ist bei
einigen ISPs notwendig. Verwenden Sie nicht
0.0.0.0
als erstes Argument für set ifaddr,
da so verhindert wird, dass
PPP im Modus eine initiale Route
setzt.Wenn PPP nicht im Modus läuft,
müssen Sie die Datei/etc/ppp/ppp.linkup
editieren. ppp.linkup kommt zum Einsatz, wenn
eine Verbindung aufgebaut worden ist. Zu diesem Zeitpunkt hat
ppp die Interface Adressen vergeben und es ist
möglich, die Einträge in der Routingtabelle
hinzuzufügen:1 provider:
2 add default HISADDRZeile 1:Beim Aufbau einer Verbindung sucht ppp
in der Datei ppp.linkup nach einem
Eintrag. PPP geht dabei nach folgenden Regeln vor:
Suche zunächst nach der gleichen Bezeichnung,
die wir auch in der Datei ppp.conf
verwendet haben. Falls das nicht
funktioniert, suche nach einem Eintrag der IP-Adresse unseres
Gateways. Dieser Eintrag ist eine Bezeichnung im Stil von
IP-Adressen, die sich aus vier Oktetts zusammensetzt. Falls
immer noch kein passender Eintrag gefunden wurde, suche nach
dem Eintrag MYADDR.Zeile 2:Diese Zeile weist ppp an, eine
Defaultroute zu verwenden, die auf HISADDR
zeigt. HISADDR wird nach der
Aushandlung mit IPCP durch die IP-Adresse des
Gateways ersetzt.Die Dateien
/usr/share/examples/ppp/ppp.conf.sample
und /usr/share/examples/ppp/ppp.linkup.sample
bieten detaillierte Beispiele für pmdemand
Einträge.Annahme eingehender AnrufePPPeingehende Anrufe annehmenWenn Sie ppp auf einem Rechner,
der in ein LAN eingebunden ist, so konfigurieren, dass eingehende
Anrufe angenommen werden, müssen Sie entscheiden,
ob Pakete an das LAN weitergeleitet werden sollen. Wenn Sie das
möchten, sollten Sie an die Gegenstelle eine IP-Adresse aus
Ihrem lokalen Subnetz vergeben und den Befehl
enable proxy
in die Datei /etc/ppp/ppp.conf einfügen.
Außerdem sollte die Datei /etc/rc.conf
Folgendes enthalten:gateway_enable="YES"Welches getty?Der Abschnitt Einwählverbindungen
bietet eine gute Beschreibung, wie Einwählverbindungen unter
Verwendung von &man.getty.8; genutzt werden können.Eine Alternative zu getty ist mgetty,
eine raffiniertere Version von getty, die mit
Blick auf Einwählverbindungen entworfen wurde.Der Vorteil von mgetty ist,
dass es auf aktive Weise mit Modems spricht,
das heißt wenn ein Port in /etc/ttys
ausgeschaltet ist, wird Ihr Modem nicht auf Anrufe
reagieren.Spätere Versionen von mgetty (von
0.99beta aufwärts) unterstützen auch die automatische
Erkennung von PPP-Streams, was Ihren Clients den skriptlosen
Zugang zu Ihren Servern erlaubt.Der Abschnitt Mgetty und
AutoPPP bietet weitere Informationen zu
mgetty.PPP und RechteDer Befehl ppp muss normalerweise als
root ausgeführt werden. Wenn Sie
jedoch möchten, dass ppp im Server-Modus
auch von einem normalen Benutzer, wie unten beschrieben,
durch Aufruf von ppp
ausgeführt werden kann, müssen Sie
diesem Benutzer die Rechte erteilen, ppp
auszuführen, indem Sie ihn in der Datei
/etc/group der Gruppe
network hinzufügen.Sie werden ihm ebenfalls den Zugriff auf einen oder mehrere
Abschnitte der Konfigurationsdatei geben müssen, indem Sie
den allow Befehl verwenden:allow users fred maryWenn dieser Befehl im default
Abschnitt verwendet wird, erhalten die angegebenen Benutzer
vollständigen Zugriff.PPP-Shells für dynamische IP-AdressenPPP ShellsErzeugen Sie eine Datei mit dem Namen
/etc/ppp/ppp-shell, die Folgendes
enthält:#!/bin/sh
IDENT=`echo $0 | sed -e 's/^.*-\(.*\)$/\1/'`
CALLEDAS="$IDENT"
TTY=`tty`
if [ x$IDENT = xdialup ]; then
IDENT=`basename $TTY`
fi
echo "PPP for $CALLEDAS on $TTY"
echo "Starting PPP for $IDENT"
exec /usr/sbin/ppp -direct $IDENTDieses Skript sollte ausführbar sein. Nun
erzeugen Sie einen symbolischen Link
ppp-dialup auf dieses Skript
mit folgendem Befehl:&prompt.root; ln -s ppp-shell /etc/ppp/ppp-dialupSie sollten dieses Skript als
Shell für alle Benutzer von
Einwählverbindungen verwenden. Dies ist ein Beispiel
aus der Datei /etc/password
für einen Benutzer namens pchilds,
der PPP für Einwählverbindungen verwenden kann
(Denken Sie daran, die Passwortdatei nicht direkt zu
editieren, sondern dafür den Befehl
vipw zu verwenden).pchilds:*:1011:300:Peter Childs PPP:/home/ppp:/etc/ppp/ppp-dialupErstellen Sie ein Verzeichnis /home/ppp,
das von allen Benutzern gelesen werden kann und die folgenden leeren
Dateien enthält:-r--r--r-- 1 root wheel 0 May 27 02:23 .hushlogin
-r--r--r-- 1 root wheel 0 May 27 02:22 .rhostsDies verhindert, dass /etc/motd
angezeigt wird.PPP-Shells für statische IP-AdressenPPP ShellsErstellen Sie die Datei ppp-shell
wie oben oben dargestellt. Erzeugen Sie nun für
jeden Account mit statischer IP-Adresse einen symbolischen
Link auf ppp-shell.Wenn Sie beispielsweise die drei Kunden,
fred, sam, und
mary haben, für die Sie Netzwerke
der Klasse C routen, schreiben Sie Folgendes:&prompt.root; ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-fred
&prompt.root; ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-sam
&prompt.root; ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-maryJeder Einwählzugang dieser Kunden sollte den
oben erzeugten symbolischen Link als Shell haben
(mary's Shell
sollte also /etc/ppp/ppp-mary sein).Einrichten von ppp.conf für
dynamische IP-AdressenDie Datei /etc/ppp/ppp.conf sollte in
etwa wie folgt aussehen:default:
set debug phase lcp chat
set timeout 0
ttyd0:
set ifaddr 203.14.100.1 203.14.100.20 255.255.255.255
enable proxy
ttyd1:
set ifaddr 203.14.100.1 203.14.100.21 255.255.255.255
enable proxyDie Einrückungen sind wichtig.Der Abschnitt default: wird für
jede Sitzung geladen. Erstellen Sie für jede
Einwählverbindung, die Sie in der Datei
/etc/ttys ermöglicht haben, einen
Eintrag, wie oben für ttyd0: gezeigt.
Jede Verbindung sollte eine eigene IP-Adresse aus dem Pool
der Adressen bekommen, die sie für diese Benutzergruppe
reserviert haben.Einrichten von ppp.conf für
statische IP-AdressenZu dem bisher dargestellten Inhalt der Beispieldatei
/usr/share/examples/ppp/ppp.conf sollten
Sie einen Abschnitt für jeden Benutzer mit statisch
zugewiesener IP-Adresse hinzufügen. Wir werden nun
unser Beispiel mit den
Accounts fred, sam und
mary weiterführen.fred:
set ifaddr 203.14.100.1 203.14.101.1 255.255.255.255
sam:
set ifaddr 203.14.100.1 203.14.102.1 255.255.255.255
mary:
set ifaddr 203.14.100.1 203.14.103.1 255.255.255.255Die Datei /etc/ppp/ppp.linkup sollte,
falls erforderlich, ebenfalls Routinginformationen für
jeden Benutzer mit statischer IP-Adresse enthalten. Die unten
dargestellte Zeile würde dem Klasse C Netzwerk 203.14.101.0 eine Route über die
PPP-Verbindung des Client hinzufügen.fred:
add 203.14.101.0 netmask 255.255.255.0 HISADDR
sam:
add 203.14.102.0 netmask 255.255.255.0 HISADDR
mary:
add 203.14.103.0 netmask 255.255.255.0 HISADDRmgetty und AutoPPPmgettyAutoPPPLCPWird mgetty mit der Option
AUTO_PPP konfiguriert und kompiliert,
kann mgetty die LCP Phase von PPP-Verbindungen
erkennen und automatisch eine ppp-Shell starten.
Da hierbei jedoch die Login/Passwort-Sequenz nicht
durchlaufen wird, ist es notwendig, Benutzer durch PAP
oder CHAP zu authentifizieren.In diesem Abschnitt wird davon ausgegangen, dass der
Benutzer eine Version von mgetty mit
der Option AUTO_PPP (v0.99beta oder
neuer) erfolgreich konfiguriert, kompiliert und
installiert hat.Stellen Sie sicher, dass die Datei
/usr/local/etc/mgetty+sendfax/login.config
Folgendes enthält:/AutoPPP/ - - /etc/ppp/ppp-pap-dialupHierdurch wird mgetty angewiesen,
das Skript ppp-pap-dialup für
die erkannten PPP-Verbindungen auszuführen.Erstellen Sie nun die Datei
/etc/ppp/ppp-pap-dialup mit folgendem
Inhalt (die Datei sollte ausführbar sein):#!/bin/sh
exec /usr/sbin/ppp -direct pap$IDENTErstellen Sie bitte für jede Einwählverbindung,
die Sie in /etc/ttys ermöglicht haben,
einen korrespondierenden Eintrag in der Datei
/etc/ppp/ppp.conf. Diese
Einträge können problemlos, mit den Definitionen
die wir weiter oben gemacht haben, koexistieren.pap:
enable pap
set ifaddr 203.14.100.1 203.14.100.20-203.14.100.40
enable proxyJeder Benutzer, der sich auf diese Weise anmeldet,
benötigt einen Benutzernamen und ein Passwort in der Datei
/etc/ppp/ppp.secret. Sie haben auch die
Möglichkeit, Benutzer mit Hilfe von PAP zu authentifizieren,
indem Sie der Datei /etc/password folgende
Option hinzufügen:enable passwdauthWenn Sie bestimmten Benutzern eine statische IP-Adresse
zuweisen möchten, können Sie diese als drittes
Argument in der Datei
/etc/ppp/ppp.secret angeben. In
/usr/share/examples/ppp/ppp.secret.sample
finden Sie hierfür Beispiele.MS-ErweiterungenDNSNetBIOSPPPErweiterungen von MicrosoftEs ist möglich PPP so zu konfigurieren, dass bei Bedarf
DNS und NetBIOS Nameserveradressen bereitgestellt werden.Um diese Erweiterungen für die PPP Version 1.x
zu aktivieren, sollte der entsprechende Abschnitt der Datei
/etc/ppp/ppp.conf um folgende Zeilen
ergänzt werden:enable msext
set ns 203.14.100.1 203.14.100.2
set nbns 203.14.100.5Für PPP Version 2 und höher:accept dns
set dns 203.14.100.1 203.14.100.2
set nbns 203.14.100.5Damit werden den Clients die primären und sekundären
Nameserveradressen sowie ein NetBIOS Nameserver-Host
mitgeteilt.In Version 2 und höher verwendet PPP die Werte, die
in /etc/resolv.conf zu finden sind, wenn
die Zeile set dns weggelassen wird.Authentifizierung durch PAP und CHAPPAPCHAPEinige ISPs haben ihr System so eingerichtet, dass der
Authentifizierungsteil eines Verbindungsaufbaus mit Hilfe von
PAP oder CHAP-Mechanismen durchgeführt wird. Wenn dies bei
Ihnen der Fall sein sollte, wird Ihnen Ihr ISP bei der Verbindung
keinen login:-Prompt präsentieren,
sondern sofort mit der Aushandlung der PPP-Verbindung
beginnen.PAP ist nicht so sicher wie CHAP, doch die Sicherheit ist
hierbei normalerweise kein Problem, da Passwörter, obgleich
von PAP im Klartext versandt, lediglich über die
serielle Verbindung verschickt werden. Es gibt für Cracker
wenig Möglichkeiten zu lauschen.Zurückkommend auf die Abschnitte
PPP und statische
IP-Adressen oder PPP und dynamische IP-Adressen
müssen folgende Veränderungen vorgenommen werden:13 set authname MyUserName
14 set authkey MyPassword
15 set loginZeile 13:Diese Zeile legt Ihren PAP/CHAP Benutzernamen fest.
Sie müssen den richtigen Wert für
MyUserName eingeben.Zeile 14:PasswortDiese Zeile legt Ihr PAP/CHAP Passwort fest. Sie
müssen den richtigen Wert für
MyPassword eingeben.
Sie können eine zusätzliche Zeile, wie etwa:16 accept PAPoder16 accept CHAPverwenden, um deutlich zu machen, dass dies
beabsichtigt ist, aber sowohl PAP wie auch CHAP als
standardmäßig akzeptiert werden.Zeile 15:Ihr ISP wird normalerweise nicht von Ihnen verlangen,
dass Sie sich am Server einloggen, wenn Sie PAP oder CHAP
verwenden. Sie müssen deshalb den String
set login deaktivieren.Veränderung Ihrer ppp
Konfiguration im laufenden BetriebEs ist möglich, dem Programm ppp
Befehle zu erteilen, während es im Hintergrund läuft.
Dazu ist jedoch die Einrichtung eines passenden Diagnose-Ports
erforderlich. Ergänzen Sie hierzu Ihre Konfigurationsdatei
um folgende Zeile:set server /var/run/ppp-tun%d DiagnosticPassword 0177Damit wird PPP angewiesen, auf den angegebenen
UNIX-Domainsocket zu hören und Clients nach dem angegebenen
Passwort zu fragen, bevor der Zugang Gewährt wird. Das
%d wird durch die Nummer des benutzten
tun-Devices ersetzt.Wenn ein Socket eingerichtet ist, kann das Programm
&man.pppctl.8; in Skripten verwendet werden, mit denen in das
laufende Programm eingegriffen wird.Interne NAT von PPP benutzenPPPNATPPP kann Network Address Translation (NAT) ohne Hilfe des
Kernels durchführen. Wenn Sie diese Funktion benutzen
wollen, fügen Sie die folgende Zeile in
/etc/ppp/ppp.conf ein:nat enable yesSie können NAT mit der Option
auf der Kommandozeile von PPP aktivieren. Weiterhin kann
NAT in /etc/rc.conf mit der Variablen
ppp_nat aktiviert werden. Dies ist auch die
Voreinstellung.Die nachstehende /etc/ppp/ppp.conf
benutzt NAT für bestimmte eingehende Verbindungen:nat port tcp 10.0.0.2:ftp ftp
nat port tcp 10.0.0.2:http httpWenn Sie Verbindungen von außen überhaupt nicht
trauen, benutzen Sie die folgende Zeile:nat deny_incoming yesAbschließende SystemkonfigurationPPPKonfigurationSie haben ppp nun konfiguriert,
aber bevor PPP eingesetzt werden kann, gibt noch einige
weitere Dinge zu erledigen, die alle die Bearbeitung der
Datei /etc/rc.conf erfordern.Gehen Sie diese Datei von oben nach unten durch, und stellen Sie
als Erstes sicher, dass die Zeile hostname=
vorhanden ist:hostname="foo.example.com"Wenn Ihnen Ihr ISP eine statische IP-Adresse und einen Namen
zugewiesen hat, ist es wahrscheinlich am besten, wenn Sie diesen
Namen als Hostnamen verwenden.Schauen Sie nach der Variable
network_interfaces. Wenn Sie Ihr System
so konfigurieren möchten, dass bei Bedarf
eine Verbindung zu Ihrem ISP aufgebaut wird, sollten Sie das Device
tun0 zu der Liste hinzufügen oder es
andernfalls entfernen.network_interfaces="lo0 tun0"
ifconfig_tun0=Die Variable ifconfig_tun0 sollte leer sein
und eine Datei namens /etc/start_if.tun0 sollte
erstellt werden. Diese Datei sollte die nachfolgende Zeile
enthalten:ppp -auto mysystemDieses Skript startet Ihren ppp-Dæmon im Automatik-Modus.
Es wird bei der Netzwerkkonfiguration ausgeführt.
Wenn Ihr Rechner als Gateway für ein LAN fungiert,
möchten Sie vielleicht auch die Option
verwenden. In der Manual-Seite sind
weitere Einzelheiten hierzu zu finden.Stellen Sie sicher, dass der Start eines Routerprogramms
in /etc/rc.conf wie folgt deaktiviert
ist:router_enable="NO"routedEs ist wichtig, dass der routed
Dæmon nicht gestartet wird da routed
dazu tendiert, die von ppp erstellten
Einträge der Standardroute zu überschreiben.Es ist außerdem sinnvoll, darauf zu achten, dass die Zeile
sendmail_flags nicht die Option
enthält, da sendmail sonst ab und zu
die Netzwerkverbindung prüfen wird, was möglicherweise dazu
führt, dass sich Ihr Rechner einwählt. Sie können
hier Folgendes angeben:sendmail_flags="-bd"sendmailDer Nachteil dieser Lösung ist, dass Sie
sendmail nach jedem Aufbau einer
ppp-Verbindung auffordern müssen, die Mailwarteschlange
zu überprüfen, indem Sie Folgendes eingeben:&prompt.root; /usr/sbin/sendmail -qVielleicht möchten Sie den Befehl !bg
in der Datei ppp.linkup verwenden, um dies
zu automatisieren:1 provider:
2 delete ALL
3 add 0 0 HISADDR
4 !bg sendmail -bd -q30mSMTPWenn Sie dies nicht möchten, ist es möglich,
einen dfilter einzusetzen, um SMTP-Verkehr
zu blockieren. Weitere Einzelheiten hierzu finden Sie in den
Beispieldateien.Das Einzige, was nun noch zu tun bleibt, ist Ihren Rechner neu
zu starten. Nach dem Neustart können Sie entweder:&prompt.root; pppund danach dial provider eingeben,
um eine PPP-Sitzung zu starten, oder Sie geben:&prompt.root; ppp -auto providerein, um ppp bei Datenverkehr aus Ihrem
Netzwerk heraus, automatisch eine Verbindung herstellen
zu lassen (vorausgesetzt Sie haben kein
start_if.tun0 Skript erstellt).ZusammenfassungDie folgenden Schritte sind nötig, wenn ppp zum ersten Mal
eingerichtet werden soll:Clientseite:Stellen Sie sicher, dass das
tun Device in den Kernel
eingebaut ist.Vergewissern Sie sich, dass die Gerätedatei
tunN
im Verzeichnis /dev vorhanden ist.Bearbeiten Sie die Datei
/etc/ppp/ppp.conf. Das Beispiel
pmdemand sollte für die meisten
ISP ausreichen.Wenn Sie eine dynamische IP-Adresse haben, erstellen Sie
einen Eintrag in der Datei
/etc/ppp/ppp.linkup.Aktualisieren Sie die Datei
/etc/rc.conf.Erstellen Sie das Skript start_if.tun0,
wenn Sie einen bedarfgesteuerten Einwahlprozess
(demand dialing)
benötigen.Serverseite:Stellen Sie sicher, dass das
tun Device in den Kernel
eingebaut ist.Vergewissern Sie sich, dass die Gerätedatei
tunN
im Verzeichnis /dev vorhanden istErstellen Sie einen Eintrag in der Datei
/etc/passwd
(verwenden Sie dazu das Programm &man.vipw.8;).Erstellen Sie ein Profil im Heimatverzeichnis des
Benutzers, das
ppp -direct direct-server o.Ä.
ausführt.Bearbeiten Sie die Datei
/etc/ppp/ppp.conf. Das Beispiel
direct-server sollte ausreichen.Erzeugen Sie einen Eintrag in
/etc/ppp/ppp.linkup.Aktualisieren Sie die Datei
/etc/rc.conf.Gennady B.SorokopudTeile wurden ursprünglich beigetragen von RobertHuffKernel-PPPEinrichtung von Kernel-PPPPPPKernel-PPPBevor Sie PPP auf Ihrem Computer einrichten, sollten Sie
dafür sorgen, dass pppd im Verzeichnis
/usr/sbin vorhanden ist und
/etc/ppp existiert.pppd kann auf zweierlei Weise arbeiten:Als Client – Sie möchten
Ihren Rechner mit einem Netz verbinden, indem Sie eine
serielle PPP-Verbindung aufbauen.PPPServerAls Server – Ihr Rechner ist in
ein Netzwerk eingebunden und stellt die PPP-Verbindung
für andere Rechner im Netzwerk her.In beiden Fällen werden Sie eine Datei mit den
benötigten Optionen erstellen müssen
(/etc/ppp/options oder,
wenn mehr als ein Benutzer PPP verwendet,
~/.ppprc).Sie benötigen außerdem eine Software
(vorzugsweise comms/kermit), mit der
Sie seriell per Modem wählen und eine Verbindung zu dem
entfernten Host aufbauen können.TrevRoydhouseBasierend auf Informationen von Verwendung von pppd als ClientPPPClientCiscoDie folgende Datei /etc/ppp/options
kann für einen Verbindungsaufbau mit PPP zu einem Cisco
Terminalserver verwendet werden.crtscts # enable hardware flow control
modem # modem control line
noipdefault # remote PPP server must supply your IP address
# if the remote host does not send your IP during IPCP
# negotiation, remove this option
passive # wait for LCP packets
domain ppp.foo.com # put your domain name here
:<remote_ip> # put the IP of remote PPP host here
# it will be used to route packets via PPP link
# if you didn't specified the noipdefault option
# change this line to <local_ip>:<remote_ip>
defaultroute # put this if you want that PPP server will be your
# default routerUm eine Verbindung herzustellen, sollten Sie:kermitModem
- Mit kermit (oder einem
+ Mit Kermit (oder einem
anderen Modemprogramm) den entfernten Host anwählen
und Ihren Benutzernamen sowie Ihr Passwort (oder was
sonst nötig ist, um PPP auf dem entfernten Host
zu aktivieren) eingeben.
- kermit beenden
+ Kermit beenden
(ohne die Verbindung abzubrechen).Folgendes eingeben:&prompt.root; /usr/src/usr.sbin/pppd.new/pppd /dev/tty0119200Achten Sie darauf, dass sie eine geeignete Geschwindigkeit
wählen und das richtige Device verwenden.Nun ist Ihr Computer mit Hilfe von PPP verbunden. Wenn
die Verbindung nicht funktionieren sollte, können Sie
die Option in die Datei
/etc/ppp/options eintragen und die Ausgaben
auf der Konsole beobachten, um die Fehler zu finden.Das folgende Skript /etc/ppp/pppup
führt alle 3 Schritte automatisch aus:#!/bin/sh
ps ax |grep pppd |grep -v grep
pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'`
if [ "X${pid}" != "X" ] ; then
echo 'killing pppd, PID=' ${pid}
kill ${pid}
fi
ps ax |grep kermit |grep -v grep
pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'`
if [ "X${pid}" != "X" ] ; then
echo 'killing kermit, PID=' ${pid}
kill -9 ${pid}
fi
ifconfig ppp0 down
ifconfig ppp0 delete
kermit -y /etc/ppp/kermit.dial
pppd /dev/tty01 19200
- kermit
+ Kermit/etc/ppp/kermit.dial ist
- ein kermit-Skript
+ ein Kermit-Skript
das den Einwählvorgang und alle notwendigen Autorisationen auf
dem entfernten Host durchführt (ein Beispiel für ein
solches Skript ist im Anhang zu diesem Dokument zu finden).Verwenden Sie das folgende Skript
/etc/ppp/pppdown, um die PPP-Verbindung
abzubrechen:#!/bin/sh
pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'`
if [ X${pid} != "X" ] ; then
echo 'killing pppd, PID=' ${pid}
kill -TERM ${pid}
fi
ps ax |grep kermit |grep -v grep
pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'`
if [ "X${pid}" != "X" ] ; then
echo 'killing kermit, PID=' ${pid}
kill -9 ${pid}
fi
/sbin/ifconfig ppp0 down
/sbin/ifconfig ppp0 delete
kermit -y /etc/ppp/kermit.hup
/etc/ppp/ppptestPrüfen Sie, ob pppd immer
noch läuft, indem Sie
/usr/etc/ppp/ppptest ausführen.
Dieses Skript sollte folgendermaßen aussehen:#!/bin/sh
pid=`ps ax| grep pppd |grep -v grep|awk '{print $1;}'`
if [ X${pid} != "X" ] ; then
echo 'pppd running: PID=' ${pid-NONE}
else
echo 'No pppd running.'
fi
set -x
netstat -n -I ppp0
ifconfig ppp0Um die Modemverbindung abzubrechen, können Sie das Skript
/etc/ppp/kermit.hup verwenden, das Folgendes
enthalten sollte:set line /dev/tty01 ; put your modem device here
set speed 19200
set file type binary
set file names literal
set win 8
set rec pack 1024
set send pack 1024
set block 3
set term bytesize 8
set command bytesize 8
set flow none
pau 1
out +++
inp 5 OK
out ATH0\13
echo \13
exitHier ist eine alternative Methode, bei der chat
- an Stelle von kermit eingesetzt wird:
+ an Stelle von Kermit eingesetzt wird:
Die folgenden beiden Dateien reichen aus, um eine
Verbindung über pppd herzustellen./etc/ppp/options:/dev/cuaa1 115200
crtscts # enable hardware flow control
modem # modem control line
connect "/usr/bin/chat -f /etc/ppp/login.chat.script"
noipdefault # remote PPP serve must supply your IP address
# if the remote host doesn't send your IP during
# IPCP negotiation, remove this option
passive # wait for LCP packets
domain <your.domain> # put your domain name here
: # put the IP of remote PPP host here
# it will be used to route packets via PPP link
# if you didn't specified the noipdefault option
# change this line to <local_ip>:<remote_ip>
defaultroute # put this if you want that PPP server will be
# your default router/etc/ppp/login.chat.script:Die folgenden Angaben sollten in einer Zeile stehen.ABORT BUSY ABORT 'NO CARRIER' "" AT OK ATDT<phone.number>
CONNECT "" TIMEOUT 10 ogin:-\\r-ogin: <login-id>
TIMEOUT 5 sword: <password>Wenn diese Dateien richtig installiert und modifiziert sind,
müssen Sie pppd, nur noch wie folgt
starten:&prompt.root; pppdVerwendung von pppd als Server/etc/ppp/options sollte etwa Folgendes
enthalten:crtscts # Hardware flow control
netmask 255.255.255.0 # netmask (not required)
192.114.208.20:192.114.208.165 # IP's of local and remote hosts
# local ip must be different from one
# you assigned to the Ethernet (or other)
# interface on your machine.
# remote IP is IP address that will be
# assigned to the remote machine
domain ppp.foo.com # your domain
passive # wait for LCP
modem # modem lineDas folgende Skript /etc/ppp/pppserv
lässt pppd als Server zu arbeiten:#!/bin/sh
ps ax |grep pppd |grep -v grep
pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'`
if [ "X${pid}" != "X" ] ; then
echo 'killing pppd, PID=' ${pid}
kill ${pid}
fi
ps ax |grep kermit |grep -v grep
pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'`
if [ "X${pid}" != "X" ] ; then
echo 'killing kermit, PID=' ${pid}
kill -9 ${pid}
fi
# reset ppp interface
ifconfig ppp0 down
ifconfig ppp0 delete
# enable autoanswer mode
kermit -y /etc/ppp/kermit.ans
# run ppp
pppd /dev/tty01 19200Verwenden Sie das Skript/etc/ppp/pppservdown,
um den Server zu beenden:#!/bin/sh
ps ax |grep pppd |grep -v grep
pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'`
if [ "X${pid}" != "X" ] ; then
echo 'killing pppd, PID=' ${pid}
kill ${pid}
fi
ps ax |grep kermit |grep -v grep
pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'`
if [ "X${pid}" != "X" ] ; then
echo 'killing kermit, PID=' ${pid}
kill -9 ${pid}
fi
ifconfig ppp0 down
ifconfig ppp0 delete
kermit -y /etc/ppp/kermit.noans
- Mit dem kermit-Skript
+ Mit dem Kermit-Skript
(/etc/ppp/kermit.ans) lässt sich
die Funktion Ihres Modems, automatisch zu antworten, ein- bzw.
ausschalten. Es sollte folgendermaßen aussehen:set line /dev/tty01
set speed 19200
set file type binary
set file names literal
set win 8
set rec pack 1024
set send pack 1024
set block 3
set term bytesize 8
set command bytesize 8
set flow none
pau 1
out +++
inp 5 OK
out ATH0\13
inp 5 OK
echo \13
out ATS0=1\13 ; change this to out ATS0=0\13 if you want to disable
; autoanswer mode
inp 5 OK
echo \13
exitEin Skript namens /etc/ppp/kermit.dial wird
für die Einwahl und Authentifizierung am entfernten Host verwendet.
Sie müssen es noch an Ihre lokalen Gegebenheiten anpassen.
Geben Sie in diesem Skript Ihren Benutzernamen und Ihr Passwort ein.
In Abhängigkeit von der Reaktion Ihres Modems und des
entfernten Hosts, werden Sie auch noch die input
Anweisungen verändern müssen.;
; put the com line attached to the modem here:
;
set line /dev/tty01
;
; put the modem speed here:
;
set speed 19200
set file type binary ; full 8 bit file xfer
set file names literal
set win 8
set rec pack 1024
set send pack 1024
set block 3
set term bytesize 8
set command bytesize 8
set flow none
set modem hayes
set dial hangup off
set carrier auto ; Then SET CARRIER if necessary,
set dial display on ; Then SET DIAL if necessary,
set input echo on
set input timeout proceed
set input case ignore
def \%x 0 ; login prompt counter
goto slhup
:slcmd ; put the modem in command mode
echo Put the modem in command mode.
clear ; Clear unread characters from input buffer
pause 1
output +++ ; hayes escape sequence
input 1 OK\13\10 ; wait for OK
if success goto slhup
output \13
pause 1
output at\13
input 1 OK\13\10
if fail goto slcmd ; if modem doesn't answer OK, try again
:slhup ; hang up the phone
clear ; Clear unread characters from input buffer
pause 1
echo Hanging up the phone.
output ath0\13 ; hayes command for on hook
input 2 OK\13\10
if fail goto slcmd ; if no OK answer, put modem in command mode
:sldial ; dial the number
pause 1
echo Dialing.
output atdt9,550311\13\10 ; put phone number here
assign \%x 0 ; zero the time counter
:look
clear ; Clear unread characters from input buffer
increment \%x ; Count the seconds
input 1 {CONNECT }
if success goto sllogin
reinput 1 {NO CARRIER\13\10}
if success goto sldial
reinput 1 {NO DIALTONE\13\10}
if success goto slnodial
reinput 1 {\255}
if success goto slhup
reinput 1 {\127}
if success goto slhup
if < \%x 60 goto look
else goto slhup
:sllogin ; login
assign \%x 0 ; zero the time counter
pause 1
echo Looking for login prompt.
:slloop
increment \%x ; Count the seconds
clear ; Clear unread characters from input buffer
output \13
;
; put your expected login prompt here:
;
input 1 {Username: }
if success goto sluid
reinput 1 {\255}
if success goto slhup
reinput 1 {\127}
if success goto slhup
if < \%x 10 goto slloop ; try 10 times to get a login prompt
else goto slhup ; hang up and start again if 10 failures
:sluid
;
; put your userid here:
;
output ppp-login\13
input 1 {Password: }
;
; put your password here:
;
output ppp-password\13
input 1 {Entering SLIP mode.}
echo
quit
:slnodial
echo \7No dialtone. Check the telephone line!\7
exit 1
; local variables:
; mode: csh
; comment-start: "; "
; comment-start-skip: "; "
; end:TomRhodesBeigetragen von Probleme bei PPP-VerbindungenPPPFehlersucheDieser Abschnitt behandelt Probleme, die auftauchen
können, wenn PPP über ein Modem verwendet wird.
Sie müssen beispielsweise genau die Eingabeaufforderung
des Systems kennen, in das Sie sich einwählen.
Einige ISPs verwenden ssword
andere verwenden password; wenn
das Einwahlskript falsch ist, scheitert die Anmeldung.
Üblicherweise suchen Sie nach Fehlern der PPP-Verbindung
indem Sie sich manuell verbinden. Wie das genau geht,
wird im Folgenden gezeigt.Gerätedateien überprüfenWenn Sie den Kernel neu konfiguriert haben, werden
Sie such an das sio-Gerät
erinnern. Falls Sie keinen Kernel konfiguriert haben,
machen Sie sich keine Sorgen. Die seriellen Geräte
finden Sie in der Ausgabe von dmesg:&prompt.root; dmesg | grep sioIn der Ausgabe sollten die entsprechenden
sio-Geräte, beispielsweise
sio1
(COM2), angezeigt werden.
Wird ein passendes Gerät angezeigt, brauchen Sie
keinen neuen Kernel zu erstellen, sondern lediglich
die Gerätedatei anzulegen. Wechseln Sie dazu
in das Verzeichnis /dev und rufen
MAKEDEV wie folgt auf:&prompt.root; sh MAKEDEV cuaa0 cuaa1 cuaa2 cuaa3Wenn Ihr Modem an sio1
angeschlossen ist (in DOS ist dieser Anschluss als
COM2 bekannt), ist
/dev/cuaa1 die
dazugehörende Gerätedatei.Manuelle VerbindungenEin Verbindungsaufbau zum Internet durch manuelle Steuerung
von ppp geht schnell, ist einfach und
stellt einen guten Weg dar, eine Verbindung auf Fehler hin
zu überprüfen oder einfach Informationen darüber
zu sammeln, wie Ihr ISP Verbindungen handhabt.
Lassen Sie uns PPP von der
Kommandozeile aus starten. Beachten Sie, dass in allen
Beispielen example
der Hostname der Maschine ist, auf der
PPP läuft. Sie starten
ppp, indem Sie einfach ppp
eingeben:&prompt.root; pppWir haben ppp nun gestartet.ppp ON example> set device /dev/cuaa1Wir geben das Device an, an das unser Modem angeschlossen ist.
In diesem Fall ist es cuaa1.ppp ON example> set speed 115200Wir geben die Verbindungsgeschwindigkeit an. Im Beispiel
verwenden wir 115200 kbpsppp ON example> enable dnsWir weisen ppp an, unseren
Resolver zu konfigurieren und in der Datei
/etc/resolv.conf Einträge für
den Nameserver hinzuzufügen. Falls ppp
unseren Hostnamen nicht bestimmen kann, geben wir diesen
später manuell an.ppp ON example> termWir wechseln in den Terminal-Modus, um
das Modem manuell kontrollieren zu können.deflink: Entering terminal mode on /dev/cuaa1
type '~h' for helpat
OK
atdt123456789Sie verwenden at zur Initialisierung
Ihres Modems und dann atdt sowie die Nummer Ihres
ISP, um den Einwählprozess zu starten.CONNECTDies ist die Bestätigung, dass eine Verbindung aufgebaut
wurde. Falls wir Verbindungsprobleme bekommen, die nicht
mit der Hardware zusammenhängen, werden wir an dieser
Stelle ansetzen müssen, um eine Lösung zu finden.ISP Login:myusernameHier werden Sie nach einem Benutzernamen gefragt. Geben Sie
am Prompt den Namen ein, den Ihnen Ihr ISP
zur Verfügung gestellt hat.ISP Pass:mypasswordAn dieser Stelle müssen Sie das Passwort angeben, das
Ihnen von Ihrem ISP vorgegeben wurde. Das
Passwort wird, analog dem normalen Anmeldevorgang,
nicht angezeigt.Shell or PPP:pppAbhängig von Ihrem ISP, kann es sein,
dass dieser Prompt bei Ihnen gar nicht erscheint. Wir werden
hier gefragt, ob wir eine Shell beim Provider verwenden oder
ppp starten wollen. Weil wir eine
Internetverbindung aufbauen wollen, haben wir uns in diesem
Beispiel für ppp entschieden.Ppp ON example>Beachten Sie, dass sich in diesem Beispiel das erste
in einen Großbuchstaben verwandelt hat.
Dies zeigt, dass wir erfolgreich eine Verbindung
zu unserem ISP hergestellt haben.PPp ON example>An dieser Stelle haben wir uns erfolgreich bei unserem
ISP authentifiziert und warten darauf, dass
uns eine IP-Adresse zugewiesen wird.PPP ON example>Wir haben uns mit der Gegenstelle auf eine
IP-Adresse geeinigt und den Verbindungsaufbau
erfolgreich abgeschlossenPPP ON example> add default HISADDRHier geben wir unsere Standardroute an. Weil zu diesem
Zeitpunkt unsere einzige Verbindung zu unserer Gegenstelle besteht,
müssen wir dies tun, bevor wir Kontakt zu unserer Umwelt
aufnehmen können. Falls dies aufgrund bestehender Routen
nicht funktionieren sollte, können Sie ein Ausrufungszeichen
! vor setzen.
Sie können diese Standardroute aber auch vor dem
eigentlichen Verbindungsaufbau angeben und
PPP wird entsprechend eine neue Route
aushandeln.Wenn alles gut ging, sollten wir nun eine aktive
Internetverbindung haben, die wir mit
Ctrlz
in den Hintergrund schicken können
Wenn sie feststellen, dass PPP wieder zu
ppp wird, ist die Verbindung abgebrochen.
Es ist gut dies zu wissen, weil dadurch der Verbindungsstatus
angezeigt wird. Große Ps zeigen an,
dass wir eine Verbindung zum ISP haben und
kleine ps zeigen an, dass
wir aus irgendeinem Grund die Verbindung verloren haben.
ppp hat nur diese beiden Zustände.FehlersucheWenn sie einen Direktanschluss haben und keine Verbindung
aufbauen können, schalten Sie die Hardware-Flusssteuerung
CTS/RTS aus, indem Sie die Option
verwenden. Dies ist
zumeist dann der Fall, wenn Sie mit einem
PPP-fähigen Terminalserver
verbunden sind. Hier bleibt PPP
bei dem Versuch hängen, Daten über Ihre
Nachrichtenverbindung zu schicken, weil auf ein
CTS-Signal (Clear-to-Send) gewartet
wird, das nie kommt. Wenn Sie diese Option jedoch gebrauchen,
sollten Sie auch die Option
verwenden, die erforderlich sein kann, um bestimmte Hardware
zu kontrollieren, die auf die Übertragung bestimmter
Zeichen zwischen den Kommunikations-Endpunkten (zumeist
XON/XOFF) angewiesen ist. Die Manual-Seite &man.ppp.8;
bietet mehr Informationen zu dieser Option und ihrer
Verwendung.Wenn Sie ein älteres Modem haben, benötigen Sie
vielleicht die Option .
Standardmäßig wird keine Parität vorausgesetzt,
sie ist aber für die Fehlerprüfung bei älteren
Modems und bei bestimmten ISPs erforderlich.
Sie könnten diese Option für den
ISP Compuserve benötigen.PPP kehrt möglicherweise
nicht in den Befehlsmodus zurück, was normalerweise
auf einen Fehler bei der Aushandlung hinweist, wobei der
ISP wartet, dass Ihre Seite den
Aushandlungsprozess beginnt. Die Option ~p
erzwingt in diesem Fall den Beginn des
Aushandlungsprozesses.Wenn Sie nie einen Login-Prompt erhalten, müssen
Sie statt des im Beispiel gezeigten UNIX-Stils höchst
wahrscheinlich PAP oder
CHAP für die Authentifizierung
verwenden. Um PAP oder
CHAP zu verwenden, ergänzen Sie
PPP einfach um folgende Optionen,
bevor Sie in den Terminalmodus wechseln:ppp ON example> set authname myusernameHierbei sollte myusername
durch den Benutzernamen ersetzt werden, den Sie von Ihrem
ISP bekommen haben.ppp ON example> set authkey mypasswordmypassword sollten Sie
durch das Passwort ersetzen, das Ihnen Ihr ISP
gegeben hat.Wenn die Verbindung aufgebaut wird, Sie aber keine Rechner
unter ihrem Domänen-Namen erreichen können, versuchen
Sie, einen Rechner mit &man.ping.8; und seiner
IP-Adresse zu erreichen. Wenn 100% der Pakete
verloren gehen, ist es sehr wahrscheinlich, dass Ihnen
keine Standardroute zugewiesen wurde. Überprüfen Sie,
ob während des Verbindungsaufbaus die Option
gesetzt war. Wenn Sie zu
einer entfernten IP-Adresse eine Verbindung
aufbauen können, ist es möglich, dass die
Adresse eines Nameservers nicht in die Datei
/etc/resolv.conf eingetragen
wurde. Diese Datei sollte folgendermaßen aussehen:domain example.com
nameserver x.x.x.x
nameserver y.y.y.y Dabei sollten x.x.x.x und
y.y.y.y durch die
IP-Adressen der DNS-Server Ihres
ISPs ersetzt werden. Diese Information
ist Ihnen bei Vertragsabschluss mitgeteilt worden. Wenn
nicht, sollte ein Anruf bei Ihrem ISP
Abhilfe schaffen.Mit &man.syslog.3; können Sie Ihre
PPP-Verbindung protokollieren.
Fügen Sie einfach die folgende Zeile in
/etc/syslog.conf ein:!ppp
*.* /var/log/ppp.logIn den meisten Fällen existiert diese
Funktionalität bereits.JimMockBeigetragen (durch http://node.to/freebsd/how-tos/how-to-freebsd-pppoe.html) von PPP over Ethernet (PPPoE)PPPover EthernetPPPoEPPP, over EthernetDieser Abschnitt beschreibt, wie Sie PPP over Ethernet
(PPPoE) einrichten.Konfiguration des KernelsEine besondere Kernelkonfiguration ist für PPPoE nicht
mehr erforderlich. Sofern die notwendige NetGraph-Unterstützung
nicht in den Kernel eingebaut wurde, wird diese von
ppp dynamisch geladen.Einrichtung von ppp.confDies hier ist ein Beispiel einer funktionierenden
ppp.conf:default:
set log Phase tun command # you can add more detailed logging if you wish
set ifaddr 10.0.0.1/0 10.0.0.2/0
name_of_service_provider:
set device PPPoE:xl1 # replace xl1 with your Ethernet device
set authname YOURLOGINNAME
set authkey YOURPASSWORD
set dial
set login
add default HISADDRppp ausführenAls root, geben Sie ein:&prompt.root; ppp -ddial name_of_service_providerppp beim Systemstart
ausführenFügen Sie Folgendes in Ihre Datei
/etc/rc.conf ein:ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="YES" # if you want to enable nat for your local network, otherwise NO
ppp_profile="name_of_service_provider"Verwendung einer PPPoE-Dienstbezeichnung (service tag)Manchmal kann es notwendig sein, eine Dienstbezeichnung
(service tag) zu verwenden, um
eine Verbindung aufzubauen.
Dienstbezeichnungen werden eingesetzt, um zwischen verschiedenen
PPPoE-Servern unterscheiden zu können, die einem
bestehenden Netzwerk zugeteilt sind.Die erforderlichen Dienstbezeichnungen sollten in der
Dokumentation, zu finden sein, die Ihnen Ihr ISP zur Verfügung
gestellt hat. Wenn Sie diese Informationen dort nicht finden,
fragen Sie beim technischen Kundendienst Ihres ISP danach.Als letzte Möglichkeit, bleibt die Methode, die von
dem Programm Roaring Penguin PPPoE
vorgeschlagen wird, das in der Ports-Sammlung zu finden ist. Bedenken
Sie aber, dass dadurch Daten Ihres Modems gelöscht werden
können, so dass es nicht mehr benutzt werden kann.
Überlegen Sie also genau, ob Sie dies machen wollen.
Installieren Sie einfach das Programm, das Ihnen Ihr Provider
zusammen mit dem Modem geliefert hat. Gehen Sie dann in das
Menü System dieses Programms. Der Name
Ihres Profils, sollte in der Liste aufgeführt sein.
Normalerweise ist dies ISP.Der Name des Profils (service tag)
wird im Eintrag für
die PPPoE-Konfiguration in der Datei ppp.conf
verwendet, als der Teil des Befehls
set device (die manpage &man.ppp.8;
enthält Einzelheiten hierzu), der den Provider angibt.
Dieser Eintrag sollte folgendermaßen aussehen:set device PPPoE:xl1:ISPVergessen Sie nicht, statt xl1
das richtige Device Ihrer Netzwerkkarte anzugeben.Denken sie auch daran, ISP
durch das Profil, das Sie oben gefunden haben zu ersetzen.Weitere Informationen bieten:Nutzung von T-DSL und T-Online mit
FreeBSD von Udo ErdelhoffCheaper Broadband with FreeBSD on
DSL von Renaud Waldura.PPPoE mit einem &tm.3com;
HomeConnect
ADSL Modem Dual LinkDieses Modem folgt nicht dem RFC 2516
(A Method for transmitting PPP over Ethernet
(PPPoE), verfasst von L. Mamakos, K. Lidl, J. Evarts,
D. Carrel, D. Simone, und R. Wheeler). Stattdessen wurden andere
Pakettyp-Codes für die Ethernet Frames verwendet.
Bitte beschweren Sie sich unter 3Com, wenn Sie
der Ansicht sind, dass dieses Modem die PPPoE-Spezifikation einhalten
sollte.Um FreeBSD in die Lage zu versetzen, mit diesem Gerät zu
kommunizieren, muss ein sysctl Befehl angegeben werden. Dies kann
beim Systemstart automatisch geschehen, indem die Datei
/etc/sysctl.conf angepasst wird:net.graph.nonstandard_pppoe=1oder, wenn der Befehl unmittelbar wirksam werden soll, durch
sysctl net.graph.nonstandard_pppoe=1.Da hiermit eine systemweit gültige Einstellung vorgenommen
wird, ist es nicht möglich, gleichzeitig mit einem normalen
PPPoE-Client oder Server und einem &tm.3com;
HomeConnect ADSL Modem
zu kommunizieren.PPP over ATM (PPPoA)PPPover ATMPPPoAPPP, over ATMNachfolgend wird beschrieben, wie PPP over ATM (PPPoA)
eingerichtet wird. PPPoA ist vor allem unter europäischen
DSL-Providern populär.Der Einsatz von PPPoA mit dem Alcatel &speedtouch; USBPPPoA-Unterstützung für dieses Gerät ist
unter FreeBSD als Port verfügbar, da die Firmware unter Alcatels
Lizenzvereinbarung vertrieben wird und deshalb nicht
mit dem FreeBSD-Basissystem frei verteilt werden kann.Um die Software zu installieren, verwenden Sie einfach die Ports-Sammlung. Installieren Sie den Port
net/pppoa und folgen Sie den dabei
angegebenen Instruktionen.Für den ordnungsgemäßen Betrieb muss
das Alcatel &speedtouch; USB, wie viele USB-Geräte,
Firmware auf den Gastrechner laden. FreeBSD kann die
Firmware automatisch laden, wenn das Gerät mit
dem USB-Anschluss verbunden wird. Dazu fügen Sie
als Benutzer root die nachstehenden
Zeilen in /etc/usbd.conf ein:device "Alcatel SpeedTouch USB"
devname "ugen[0-9]+"
vendor 0x06b9
product 0x4061
attach "/usr/local/sbin/modem_run -f /usr/local/libdata/mgmt.o"Den USB-Dæmon aktivieren Sie mit der folgenden
Zeile in /etc/rc.conf:usbd_enable="YES"Wenn die Verbindung beim Start von
ppp aufgebaut werden soll,
fügen Sie die nachstehenden Zeilen als Benutzer
root in /etc/rc.conf
ein:ppp_enable="YES"
ppp_mode="ddial"
ppp_profile="adsl"Verwenden Sie bitte diese Einstellungen zusammen mit
der Beispielkonfiguration in ppp.conf
des Ports net/pppoa.Die Verwendung von mpdSie können mpd verwenden,
um zu einer Reihe von Diensten, insbesondere PPTP-Diensten eine
Verbindung herzustellen. Sie finden
mpd in der Ports-Sammlung unter
net/mpd. Viele ADSL Modems,
wie das Alcatel &speedtouch; Home, sind auf einen PPTP-Tunnel
zwischen dem Modem und dem Rechner angewiesen.Zuerst müssen Sie den Port installieren, um danach
mpd entsprechend Ihren Anforderungen
und den Vorgaben Ihres Providers konfigurieren zu können. Der
Port installiert auch einige
gut dokumentierte Beispielkonfigurationsdateien in
PREFIX/etc/mpd/.
Beachten Sie, dass PREFIX hier das Verzeichnis
angibt, in das Ihre Ports installiert werden. Standardmäßig
ist dies das Verzeichnis /usr/local/.
Ein kompletter Leitfaden zur Konfiguration von
mpd ist im HTML-Format verfügbar,
sobald der Port installiert ist. Dieser ist in
PREFIX/share/doc/mpd/
zu finden. Hier ist eine Beispielkonfiguration, um mit
mpd eine Verbindung zu einem
ADSL-Dienst aufzubauen. Die Konfiguration ist auf zwei Dateien
verteilt. Zunächst die Datei
mpd.conf:default:
load adsl
adsl:
new -i ng0 adsl adsl
set bundle authname username
set bundle password password
set bundle disable multilink
set link no pap acfcomp protocomp
set link disable chap
set link accept chap
set link keep-alive 30 10
set ipcp no vjcomp
set ipcp ranges 0.0.0.0/0 0.0.0.0/0
set iface route default
set iface disable on-demand
set iface enable proxy-arp
set iface idle 0
openDer Benutzername, den Sie zur Authentifizierung bei
Ihrem ISP verwenden.Das Passwort, das Sie zur Authentifizierung bei
Ihrem ISP verwenden.Die Datei mpd.links enthält
Informationen über die Verbindung(en), die Sie aufbauen
möchten. Eine Beispieldatei mpd.links,
die das vorige Beispiel ergänzt, wird unten
angegeben:adsl:
set link type pptp
set pptp mode active
set pptp enable originate outcall
set pptp self 10.0.0.1
set pptp peer 10.0.0.138Die IP-Adresse des &os;-Rechners von dem aus Sie
mpd verwenden.Die IP-Adresse des ADSL-Modems.
Das Alcatel &speedtouch; Home hat die Adresse
10.0.0.138 voreingestellt.Ein Verbindungsaufbau kann einfach durch Eingabe des folgenden
Befehls als root gestartet werden:&prompt.root; mpd -b adslSie können sich den Status der Verbindung durch folgenden Befehl
anzeigen lassen:&prompt.user; ifconfig ng0
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1500
inet 216.136.204.117 --> 204.152.186.171 netmask 0xffffffffDie Verwendung von mpd ist der
empfehlenswerteste Weg, um mit &os; eine Verbindung zu
einem ADSL-Dienst aufzubauen.Die Verwendung von pptpclientEs ist außerdem möglich, mit FreeBSD eine
Verbindung zu anderen PPPoA-Diensten aufzubauen. Dazu wird
net/pptpclient verwendet.Um mit net/pptpclient eine
eine Verbindung zu einem DSL-Dienst aufbauen zu können,
müssen Sie den entsprechenden Port bzw. das Paket installieren
und die Datei /etc/ppp/ppp.conf bearbeiten.
Sie müssen root sein, um diese Schritte
durchführen zu können. Eine Beispieldatei für
ppp.conf ist weiter unten angegeben.
Weitere Informationen zu den Optionen von ppp.conf
bietet die Manual-Seite ppp
&man.ppp.8;:adsl:
set log phase chat lcp ipcp ccp tun command
set timeout 0
enable dns
set authname username
set authkey password
set ifaddr 0 0
add default HISADDRDer Benutzername für den Zugang zu den Diensten
Ihres ISP.Das Passwort für Ihren Account.Weil Sie Ihr Passwort in der Datei
ppp.conf in Klartext angeben müssen,
sollten Sie sicherstellen, dass niemand den Inhalt dieser Datei
lesen kann. Die folgende Reihe von Befehlen stellt sicher,
dass die Datei nur von root lesbar ist.
Zusätzliche Informationen bieten die Manual-Seiten
&man.chmod.1; und &man.chown.8;:&prompt.root; chown root:wheel /etc/ppp/ppp.conf
&prompt.root; chmod 600 /etc/ppp/ppp.confDies wird einen Tunnel für eine PPP-Session zu Ihrem
DSL-Router öffnen. Ethernet-DSL-Modems haben eine
vorkonfigurierte LAN-IP-Adresse, mit der Sie eine Verbindung
aufbauen. Im Falle des Alcatel &speedtouch; Home handelt es sich
dabei um die Adresse 10.0.0.138.
In der Dokumentation Ihres Routers sollte angegeben sein, welche
Adresse Ihr Gerät verwendet. Um den Tunnel zu öffnen
und eine PPP-Session zu starten, führen
Sie bitte folgenden Befehl aus:&prompt.root; pptp addressadslVielleicht möchten Sie ein kaufmännisches Und
(&) an das Ende oben angegebenen Kommandos
anfügen, da pptp sonst den
Prompt nicht zurückgibt.Ein virtuelles Tunnel-Device tun
wird für das Zusammenspiel der Prozesse
pptp und ppp
geschaffen. Wenn Sie den Prompt zurückerhalten haben
oder der pptp-Prozess das Vorliegen
einer Verbindung bestätigt, können Sie den Tunnel
folgendermaßen überprüfen:&prompt.user; ifconfig tun0
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
inet 216.136.204.21 --> 204.152.186.171 netmask 0xffffff00
Opened by PID 918Wenn Sie nicht in der Lage sein sollten, eine Verbindung
aufzubauen, überprüfen Sie die Konfiguration Ihres Routers,
den Sie normalerweise per telnet
oder mit einem Web-Browser erreichen können. Falls
dennoch keine Verbindung zustande kommt, sollten Sie die
Ausgabe des Befehls pptp und die
Logdatei /var/log/ppp.log von
ppp nach Hinweisen auf die Ursache
durchsuchen.SatoshiAsamiUrsprünglich beigetragen von GuyHelmerMit Beiträgen von PieroSeriniSLIPSLIPEinrichtung eines SLIP-ClientsSLIPClientIm Folgenden wird ein Weg beschrieben, SLIP auf einer
FreeBSD-Maschine für ein Netzwerk mit festen Hostnamen
einzurichten. Bei einer dynamischen Zuweisung des Hostnamens
(das heißt wenn sich Ihre Adresse bei jeder Einwahl ändert)
wird die Einrichtung wahrscheinlich etwas komplexer aussehen.Bestimmen Sie zuerst, an welcher seriellen Schnittstelle Ihr Modem
angeschlossen ist. Viele Leute erzeugen einen symbolischen Link,
wie etwa /dev/modem, der auf den
wirklichen Gerätenamen /dev/cuaaN
verweist. Damit ist es Ihnen möglich,
vom eigentlichen Gerätenamen zu abstrahieren, sollten Sie
das Modem einmal an eine andere Schnittstelle anschließen
müssen. Es kann ziemlich umständlich sein, wenn Sie
eine viele Dateien in /etc und
.kermrc-Dateien, die über
das ganze System verstreut sind, anpassen müssen!/dev/cuaa0 ist
COM1, cuaa1 ist
COM2, etc.Stellen Sie sicher, dass Folgendes in Ihrer
Kernelkonfigurationsdatei steht:pseudo-device sl 1Dieses pseudo-device ist im GENERIC Kernel
enthalten. Falls es von Ihnen nicht gelöscht wurde, sollten
Sie hier kein Problem haben.Dinge, die Sie nur einmal erledigen müssenTragen Sie Ihren lokalen Rechner, das Gateway, sowie
die Nameserver in Ihre Datei /etc/hosts
ein. Diese Datei sieht bei mir so aus:127.0.0.1 localhost loghost
136.152.64.181 water.CS.Example.EDU water.CS water
136.152.64.1 inr-3.CS.Example.EDU inr-3 slip-gateway
128.32.136.9 ns1.Example.EDU ns1
128.32.136.12 ns2.Example.EDU ns2Vergewissern Sie sich, dass in der Datei
/etc/host.conf
- vor steht, wenn
+ hosts vor bind steht, wenn
Sie ein System vor FreeBSD 5.0 verwenden. Ab
FreeBSD 5.0 wird die Datei
/etc/nsswitch.conf verwendet, in deren
- -Zeile vor
- stehen sollte. Ohne diese Reihenfolge
+ -Zeile files vor
+ dns stehen sollte. Ohne diese Reihenfolge
könnten lustige Dinge passieren.Editieren Sie die Datei
/etc/rc.conf.Ihren Hostnamen geben Sie an, indem Sie folgende Zeile
bearbeiten:hostname="myname.my.domain"Hier sollte der vollständige Internethostname
Ihres Rechners angegeben werden.Fügen Sie sl0
zur Liste der Netzwerkinterfaces hinzu, indem Sie die
folgende Zeile abändern:network_interfaces="lo0"wird zu:network_interfaces="lo0 sl0"Legen Sie die Startwerte von sl0 fest, indem Sie
die Zeile ergänzen:ifconfig_sl0="inet ${hostname} slip-gateway netmask 0xffffff00 up"DefaultrouteDen Defaultrouter geben Sie durch die Modifikation
folgender Zeile an:defaultrouter="NO"wird zu:defaultrouter="slip-gateway"Erstellen Sie die Datei
/etc/resolv.conf, die Folgendes
enthält:domain CS.Example.EDU
nameserver 128.32.136.9
nameserver 128.32.136.12NameserverDomain NameWie Sie sehen, werden hiermit die Nameserver angegeben.
Natürlich hängen die tatsächlichen Domainnamen
und Adressen von Ihren Gegebenheiten ab.Legen Sie ein Passwort für root und
toor (sowie für alle anderen Accounts
die kein Passwort haben) fest.Starten Sie Ihren Rechner neu und überprüfen
Sie, ob er mir dem richtigen Hostnamen startet.Aufbau einer SLIP-VerbindungSLIPVerbindungsaufbauWählen Sie sich ein, geben Sie
slip und am Prompt den Namen Ihres
Rechners sowie Ihr Passwort ein. Was Sie eingeben müssen,
- hängt von Ihren Gegebenheiten ab. Wenn Sie kermit
- verwenden, können Sie ein Skript wie das
- Folgende verwenden:
+ hängt von Ihren Gegebenheiten ab. Wenn Sie
+ Kermit verwenden, können Sie
+ ein Skript ähnlich dem Folgenden verwenden:
# kermit setup
set modem hayes
set line /dev/modem
set speed 115200
set parity none
set flow rts/cts
set terminal bytesize 8
set file type binary
# The next macro will dial up and login
define slip dial 643-9600, input 10 =>, if failure stop, -
output slip\x0d, input 10 Username:, if failure stop, -
output silvia\x0d, input 10 Password:, if failure stop, -
output ***\x0d, echo \x0aCONNECTED\x0aNatürlich müssen Sie hier Ihren Hostnamen
und Ihr Passwort eintragen. Wenn Sie das getan haben,
- können Sie am kermit-Propmt einfach slip
- eingeben, um sich zu verbinden.
+ können Sie am Kermit-Prompt
+ einfach slip eingeben, um sich zu
+ verbinden.
Es ist generell eine schlechte
Idee, Ihr Passwort in einer unverschlüsselten
Textdatei irgendwo im Dateisystem zu speichern.
Tun Sie dies auf Ihr eigenes Risiko.
- Belassen Sie kermit so (Sie können es mit
+ Belassen Sie Kermit so (Sie
+ können es mit
Ctrlz unterbrechen) und geben Sie als
root ein:&prompt.root; slattach -h -c -s 115200 /dev/modemWenn Sie mit ping Hosts auf der anderen
Seite des Routers erreichen können, sind Sie verbunden!
Wenn es nicht funktionieren sollte, können Sie versuchen
statt als Argument
für slattach zu verwenden.Beenden der VerbindungUm slattach zu beenden, geben Sie
Folgendes ein:&prompt.root; kill -INT `cat /var/run/slattach.modem.pid`Beachten Sie, dass Sie
root sein müssen, um dies
- durchführen zu können. Kehren Sie zu kermit
+ durchführen zu können. Kehren Sie zu Kermit
zurück (mit Hilfe von fg, wenn Sie es
unterbrochen haben) und beenden Sie dieses Programm
(q).Die slattach Manual-Seite gibt an,
dass ifconfig sl0 down verwendet werden
soll, um das Interface zu deaktivieren, doch das
scheint in meinem Fall keinen Unterschied zu machen.
(ifconfig sl0 gibt dasselbe aus).Es kann vorkommen, dass Ihr Modem sich weigert, das
Trägersignal zu beenden (mein Modem macht dies oft).
- In diesem Fall starten Sie einfach kermit und beenden es wieder.
+ In diesem Fall starten Sie einfach
+ Kermit und beenden es wieder.
Beim zweiten Versuch geht es meist aus.Lösungen bei ProblemenWenn es nicht funktionieren sollte, können Sie
mich gerne fragen. Über diese Dinge sind Benutzer
bisher gestolpert:Nicht oder in
slattach verwenden (Das sollte
nicht entscheidend sein, aber einige Benutzer haben
berichtet, dass dies ihre Probleme löst).Verwendung von statt
(bei einigen Schriftarten kann der
Unterschied schwer zu erkennen sein).Probieren Sie ifconfig sl0,
um den Status Ihrer Schnittstelle abzufragen. Das Ergebnis
könnte beispielsweise so aussehen:&prompt.root; ifconfig sl0
sl0: flags=10<POINTOPOINT>
inet 136.152.64.181 --> 136.152.64.1 netmask ffffff00Wenn ping die Fehlermeldung
no route to host ausgibt, kann
die Routingtabelle falsch sein. Die Routen können Sie
sich mit dem Kommando netstat -r
ansehen:&prompt.root; netstat -r
Routing tables
Destination Gateway Flags Refs Use IfaceMTU Rtt Netmasks:
(root node)
(root node)
Route Tree for Protocol Family inet:
(root node) =>
default inr-3.Example.EDU UG 8 224515 sl0 - -
localhost.Exampl localhost.Example. UH 5 42127 lo0 - 0.438
inr-3.Example.ED water.CS.Example.E UH 1 0 sl0 - -
water.CS.Example localhost.Example. UGH 34 47641234 lo0 - 0.438
(root node)Die Zahlen im Beispiel stammen von einer recht
ausgelasteten Maschine. Die Zahlen auf Ihrem System werden,
je nach Netzaktivität, von den gezeigten
abweichen.Einrichtung eines SLIP-ServersSLIPServerDieses Dokument bietet Empfehlungen, wie Sie Ihr FreeBSD-System als
SLIP-Server einrichten. Typischerweise bedeutet dies, Ihr System so zu,
konfigurieren, dass beim Login automatisch eine Verbindung für
entfernte SLIP-Clients aufgebaut wird.VoraussetzungenTCP/IP NetzeDieser Abschnitt ist ausgesprochen technischer Natur, weshalb
Hintergrundwissen erforderlich ist. Wir gehen davon aus, dass Sie
mit dem TCP/IP Protokoll, insbesondere mit
Netzwerk- und Rechneradressierung, Netzwerkmasken, Subnetzen,
Routing und Routingprotokollen, wie RIP, vertraut sind.
Die Konfiguration von SLIP-Diensten
auf einem Einwählserver erfordert die Kenntnis dieser Konzepte.
Wenn Sie damit nicht vertraut sein sollten, lesen Sie bitte
Craig Hunt's TCP/IP Network Administration
publiziert von O'Reilly & Associates, Inc. (ISBN Nummer
0-937175-82-X) oder die Bücher von Douglas Comer über
das TCP/IP Protokoll.ModemWir gehen außerdem davon aus, dass Sie Ihr(e) Modem(s)
eingerichtet haben und die entsprechenden Systemdateien so
konfiguriert haben, dass Logins durch Ihr Modem zugelassen sind.
Wenn Sie Ihr System dafür noch nicht vorbereitet haben,
sehen Sie sich bitte das Tutorium zur Konfiguration von
Einwähldiensten an. Wenn Sie einen WWW-Browser zur
Verfügung haben, schauen Sie in der Liste der Tutorien unter
http://www.FreeBSD.org/docs.html
nach. Sie können auch die Manual-Seiten &man.sio.4;
für Informationen zum Gerätetreiber der seriellen
Schnittstelle &man.ttys.5;, &man.gettytab.5;, &man.getty.8;,
& &man.init.8; für Informationen zu Rate ziehen, die
benötigt werden, um das System so zu konfigurieren, dass Logins
über ein Modem akzeptiert werden. &man.stty.1; bietet
Informationen zur Einstellung der Parameter der seriellen
Schnittstelle (wie beispielsweise clocal für
direkt angeschlossene serielle Geräte).Ein kurzer ÜberblickMit der normal verwendeten Konfiguration funktioniert der
FreeBSD-SLIP-Server folgendermaßen: Ein SLIP-Benutzer
wählt einen FreeBSD-SLIP-Server an und meldet sich mit einer
speziellen SLIP-Login-ID ein, wobei
/usr/sbin/sliplogin als Shell dieses
besonderen Accounts dient. Das Programm
sliplogin durchsucht die Datei
/etc/sliphome/slip.hosts nach einer
passenden Zeile für diesen Account. Falls ein
Treffer erzielt wird, verbindet es den seriellen Anschluss mit
einem verfügbaren SLIP-Interface und führt das
Shellskript /etc/sliphome/slip.login
aus, um das SLIP-Interface zu konfigurieren.Ein Beispiel für ein Login eines SLIP-ServersWenn beispielsweise die Kennung eines SLIP-Benutzers,
Shelmerg wäre, könnte der Eintrag des
Benutzers Shelmerg in der Datei
/etc/master.passwd etwa so aussehen:Shelmerg:password:1964:89::0:0:Guy Helmer - SLIP:/usr/users/Shelmerg:/usr/sbin/sliploginWenn sich Shelmerg anmeldet,
wird sliplogin die Datei
/etc/sliphome/slip.hosts nach einer
übereinstimmenden Benutzerkennung durchsuchen. So
könnte etwa folgende Zeile in
/etc/sliphome/slip.hosts stehen:Shelmerg dc-slip sl-helmer 0xfffffc00 autocompsliplogin wird die passende Zeile finden,
den seriellen Anschluss mit dem nächsten verfügbaren
SLIP-Interface verbinden und dann
/etc/sliphome/slip.login wie hier
dargestellt ausführen:/etc/sliphome/slip.login 0 19200 Shelmerg dc-slip sl-helmer 0xfffffc00 autocompWenn alles gut läuft, wird
/etc/sliphome/slip.login ein
ifconfig für das SLIP-Interface
durchführen, mit dem sich sliplogin
verbunden hat (in obigem Beispiel ist das slip 0, der als
erster Parameter in der Liste an slip.login
übergeben wurde), um die lokale IP-Adresse
(dc-slip), die entfernte IP-Adresse
(sl-helmer), die Netzmaske
des SLIP-Interface (0xfffffc00) und
alle zusätzlichen Optionen (autocomp)
festzulegen. Wenn etwas schief laufen sollte, bietet,
sliplogin normalerweise informative
Meldungen durch den Syslog daemon, der
die Meldungen standardmäßig nach
/var/log/messages schreibt (sehen Sie
hierzu auch in den Manual-Seiten für &man.syslogd.8;
und &man.syslog.conf.5; nach). Überprüfen Sie
vielleicht auch /etc/syslog.conf,
um zu sehen was syslogd aufzeichnet und
wohin es aufgezeichnet wird.OK, genug der Beispiele – lassen Sie uns ein
System einrichten.KernelkonfigurationKernelKonfigurationDie FreeBSD Standardkernels haben normalerweise bereits
zwei SLIP-Interfaces definiert (sl0 und
sl1). Sie können netstat
-i verwenden, um zu überprüfen, ob diese
beiden Interfaces in Ihrem Kernel definiert sind.Ein Beispiel für die Ausgabe von
netstat -i:Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll
ed0 1500 <Link>0.0.c0.2c.5f.4a 291311 0 174209 0 133
ed0 1500 138.247.224 ivory 291311 0 174209 0 133
lo0 65535 <Link> 79 0 79 0 0
lo0 65535 loop localhost 79 0 79 0 0
sl0* 296 <Link> 0 0 0 0 0
sl1* 296 <Link> 0 0 0 0 0Die sl0 und
sl1 Interfaces, die von
netstat -i angezeigt werden, weisen darauf hin,
dass zwei SLIP-Interfaces in den Kernel eingebaut sind. (Der
Asteriskus nach sl0 und sl1
zeigt an, dass diese Interfaces deaktiviert sind.)Der FreeBSD-Standardkernel ist jedoch nicht so konfiguriert,
dass Pakete weitergeleitet werden (standardmäßig wird
sich ihre FreeBSD-Maschine nicht als Router verhalten), aufgrund
von Internet RFC Maßgaben für Internet Hosts (vergleichen
Sie hierzu RFCs 1009 [Requirements for Internet Gateways], 1122
[Requirements for Internet Hosts – Communication Layers],
und vielleicht auch 1127 [A Perspective on the Host Requirements
RFCs]). Wenn Sie Ihren FreeBSD-SLIP-Server als Router einsetzen
möchten, müssen Sie die Datei editieren
/etc/rc.conf und und den Wert der
Variable gateway_enable auf
setzen.Danach sollten Sie Ihren Rechner neu starten, damit die neuen
Einstellungen wirksam werden.Sie werden im unteren Teil der Konfigurationsdatei des
Standardkernels (/sys/i386/conf/GENERIC)
die folgende Zeile finden:pseudo-device sl 2SLIPDies ist die Zeile, in der die Anzahl der SLIP-Devices
festgelegt wird, die im Kernel verfügbar sind. Die Zahl
am Ende der Zeile gibt die maximale Anzahl an SLIP-Verbindungen
an, die gleichzeitig betrieben werden können.Weitere Informationen zur Konfiguration Ihres Kernels,
finden Sie in dieses Handbuches.Konfiguration des SliploginWie bereits erwähnt, gibt es im Verzeichnis
/etc/sliphome drei Dateien, die Teil der
Konfiguration für /usr/sbin/sliplogin
sind (sliplogin ist in &man.sliplogin.8;
beschrieben): slip.hosts,
definiert die SLIP-Benutzer sowie deren IP-Adresse;
slip.login, womit normalerweise nur das
SLIP-Interface konfiguriert wird und (optional)
slip.logout, womit die Auswirkungen von
slip.login rückgängig gemacht
werden, wenn die serielle Verbindung beendet wird.Konfiguration der Datei
slip.hosts/etc/sliphome/slip.hosts enthält
Zeilen, die mindestens vier durch Leerzeichen getrennte Elemente
enthalten:Login-Kennung des SLIP-BenutzersLokale Adresse (lokal für den SLIP-Server)
der SLIP-VerbindungEntfernte Adresse der SLIP-VerbindungNetzwerkmaskeDie lokalen und entfernten Adressen können
Hostnamen sein, deren zugehörige IP-Adresse durch die
Datei /etc/hosts oder mithilfe des
Domain Name Service aufgelöst wird. Wie die Adressen
aufgelöst werden, hängt auf FreeBSD 5.X
von den Einstellungen in /etc/nsswitch.conf
und auf FreeBSD 4.X von den Einstellungen in
/etc/host.conf ab. Die Netzwerkmaske
kann ein Name sein, der durch
eine Suche in /etc/networks aufgelöst
werden kann. Auf einem Beispielsystem, würde die Datei
/etc/sliphome/slip.hosts
folgendermaßen aussehen:#
# login local-addr remote-addr mask opt1 opt2
# (normal,compress,noicmp)
#
Shelmerg dc-slip sl-helmerg 0xfffffc00 autocompAm Ende der Zeile stehen eine oder mehrere der folgenden
Optionen. – keine
Header-Kompression – Header werden
komprimiert – Header werden
komprimiert, sofern die Gegenstelle es erlaubt – ICMP-Pakete werden
deaktiviert (ping Pakete werden
unterdrückt, statt die Ihnen zur Verfügung
stehende Bandbreite aufzubrauchen)SLIPTCP/IP NetzeDie Auswahl von lokalen und entfernten Adressen für Ihre
SLIP-Verbindung, hängt davon ab, ob Sie ein TCP/IP-Subnetz
reservieren oder ob Sie proxy ARP auf Ihrem
SLIP-Server verwenden (es handelt sich nicht um
echtes proxy ARP, aber dieser Begriff wird
in diesem Abschnitt verwendet, um diesen Sachverhalt zu
beschreiben). Wenn Sie nicht sicher sind, welche Methode
Sie wählen sollen oder wie IP-Adressen zugewiesen werden,
lesen Sie bitte in den Büchern
zum Thema TCP/IP nach, die als Voraussetzungen für SLIP
() angegeben worden sind
oder fragen Sie Ihren IP-Netzwerkadministrator.Wenn Sie für Ihre SLIP-Clients ein eigenes Subnetz
verwenden, werden Sie die Nummer des Subnetzes aus der Ihnen
zugewiesenen IP-Netzwerknummer zuteilen und die IP-Adressen
Ihrer SLIP-Clients aus diesem Subnetz verwenden müssen.
Dann können Sie eine statische Route zu Ihrem
SLIP-Subnetz über Ihren SLIP-Server auf Ihren
nächsten IP-Router konfigurieren.EthernetWenn Sie aber andererseits die proxy ARP
Methode verwenden möchten, werden Sie die IP-Adressen Ihrer
SLIP-Clients aus dem Subnetz Ihres SLIP-Server nehmen und die
Skripte /etc/sliphome/slip.login/etc/sliphome/slip.logout anpassen
müssen, damit diese &man.arp.8; zur Verwaltung der
proxy-ARP-Einträge in der ARP-Tabelle Ihres SLIP-Servers
verwendenKonfiguration von slip.loginEine typische Datei
/etc/sliphome/slip.login sieht
folgendermaßen aus:#!/bin/sh -
#
# @(#)slip.login 5.1 (Berkeley) 7/1/90
#
# generic login file for a slip line. sliplogin invokes this with
# the parameters:
# 1 2 3 4 5 6 7-n
# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 inet $4 $5 netmask $6Diese slip.login Datei führt
lediglich ifconfig für das entsprechende
SLIP-Interface mit den lokalen und entfernten Adressen und der
Netzwerkmaske des SLIP-Interface aus.Wenn Sie sich dafür entschieden haben, die
proxy ARP Methode zu verwenden (statt eines
separaten Subnetzes für Ihre SLIP-Clients)
sollte Ihre Datei /etc/sliphome/slip.login
etwa folgendermaßen aussehen:#!/bin/sh -
#
# @(#)slip.login 5.1 (Berkeley) 7/1/90
#
# generic login file for a slip line. sliplogin invokes this with
# the parameters:
# 1 2 3 4 5 6 7-n
# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 inet $4 $5 netmask $6
# Answer ARP requests for the SLIP client with our Ethernet addr
/usr/sbin/arp -s $5 00:11:22:33:44:55 pubDie zusätzliche Zeile arp -s
$5 00:11:22:33:44:55 pub in der Datei
slip.login erzeugt einen ARP-Eintrag
in der ARP-Tabelle des SLIP-Servers. Dieser ARP-Eintrag
veranlasst den SLIP-Server mit seiner Ethernet MAC-Adresse
zu antworten, sobald ein anderer IP-Knoten im Ethernet mit
der IP-Adresse des SLIP-Clients Kontakt aufnehmen
möchte.EthernetMAC AdresseWenn Sie das Beispiel von oben verwenden, achten Sie darauf
die Ethernet MAC-Adresse (00:11:22:33:44:55) durch die MAC-Adresse der
Ethernetkarte Ihres Systems zu ersetzen. Sonst wird Ihr
proxy ARP sicher nicht funktionieren! Sie
können die MAC-Adresse Ihres SLIP-Servers herausfinden,
indem Sie sich die Ausgabe von netstat -i
ansehen. Die zweite Zeile der Ausgabe sollte ungefähr
aussehen wie diese hier:ed0 1500 <Link>0.2.c1.28.5f.4a 191923 0 129457 0 116Dies zeigt an, dass die Ethernet MAC-Adresse dieses
Systems 00:02:c1:28:5f:4a lautet.
Die Punkte in der Ethernet MAC-Adresse, die von
netstat -i ausgegeben wird, müssen
durch Doppelpunkte ersetzt werden. Bei jeder einstelligen
Hexadezimalzahl sollten außerdem führende Nullen
hinzugefügt werden, um die Adresse in die Form zu bringen,
die von &man.arp.8; verlangt wird.
Die Manual-Seite von &man.arp.8; bietet hierzu eine
vollständige Übersicht.Wenn Sie die Dateien
/etc/sliphome/slip.login und
/etc/sliphome/slip.logout erstellen,
müssen diese ausführbar gemacht werden
(chmod 755 /etc/sliphome/slip.login
/etc/sliphome/slip.logout),
da sliplogin auf deren Ausführbarkeit
angewiesen ist. Konfiguration von slip.logoutDie Datei/etc/sliphome/slip.logout ist
nicht zwingend erforderlich (außer Sie verwenden proxy
ARP), aber falls Sie diese Datei erzeugen möchten,
ist hier ein Beispiel für ein grundlegendes
slip.logout Skript:#!/bin/sh -
#
# slip.logout
#
# logout file for a slip line. sliplogin invokes this with
# the parameters:
# 1 2 3 4 5 6 7-n
# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 downWenn Sie proxy ARP einsetzen, muss
/etc/sliphome/slip.logout den
ARP-Eintrag für den SLIP-Client löschen:#!/bin/sh -
#
# @(#)slip.logout
#
# logout file for a slip line. sliplogin invokes this with
# the parameters:
# 1 2 3 4 5 6 7-n
# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 down
# Quit answering ARP requests for the SLIP client
/usr/sbin/arp -d $5arp -d $5 löscht den ARP-Eintrag,
den die proxy ARPslip.login
hinzufügte, als der SLIP-Client sich eingeloggt hatte.Es soll nochmals darauf hingewiesen werden, dass für die
Datei /etc/sliphome/slip.logout das
Ausführungs-Bit gesetzt werden muss, nachdem die Datei
erstellt worden ist (z.B. chmod 755
/etc/sliphome/slip.logout).Überlegungen zum RoutingSLIPRoutingWenn Sie nicht die proxy ARP Methode benutzen,
um Datenpakete zwischen Ihren SLIP-Clients und dem Rest Ihres
Netzwerkes (oder vielleicht dem Internet) zu routen, werden Sie
wahrscheinlich statische Routen zu Ihrem nächsten
Standardrouter hinzufügen müssen, um Pakete aus dem
Subnetz Ihres SLIP-Clients über Ihren SLIP-Server
weiterzuleiten.Statische Routenstatische RoutenDas Hinzufügen von statischen Routen zu Ihrem
nächsten Standardrouter kann problematisch sein
(oder unmöglich, wenn Sie nicht die erforderliche
Berechtigung haben...). Wenn Sie in Ihrer Organisation ein
Netzwerk mit mehreren Routern haben, müssen einige Router,
wie etwa die von Cisco und Proteon hergestellten, nicht nur mit
der statischen Route zum SLIP-Subnetz konfiguriert werden, sondern
es muss ihnen auch mitgeteilt werden, über welche statischen
Routen sie andere Router informieren sollen. Daher ist einiges
an Fachwissen und Problemlösungskompetenz erforderlich, um auf
statischen Routen basierendes Routing erfolgreich
einzurichten.Der Einsatz von &gated;gated&gated; ist inzwischen
proprietäre Software und steht der Öffentlichkeit
nicht mehr als Sourcecode zur Verfügung
(weitere Informationen hierzu sind auf der
&gated;
Webseite zu finden). Dieser Abschnitt existiert lediglich,
um die Rückwärtskompatibilität für
diejenigen sicherzustellen, die noch eine ältere Version
verwenden.Eine Alternative zu dem aufwändigen Einsatz von
statischen Routen ist die Installation von
&gated; auf Ihrem FreeBSD-SLIP-Server.
&gated; kann so konfiguriert
werden, dass er die passenden Routingprotokolle (RIP/OSPF/BGP/EGP)
verwendet, um die anderen Router über Ihr SLIP-Subnetz zu
informieren. Sie müssen die Datei
/etc/gated.conf erstellen,
um &gated; zu konfigurieren.
Hier ist eine Beispieldatei, ähnlich derjenigen,
die der Autor auf einem FreeBSD-SLIP-Server verwendet hat:#
# gated configuration file for dc.dsu.edu; for gated version 3.5alpha5
# Only broadcast RIP information for xxx.xxx.yy out the ed Ethernet interface
#
#
# tracing options
#
traceoptions "/var/tmp/gated.output" replace size 100k files 2 general ;
rip yes {
interface sl noripout noripin ;
interface ed ripin ripout version 1 ;
traceoptions route ;
} ;
#
# Turn on a bunch of tracing info for the interface to the kernel:
kernel {
traceoptions remnants request routes info interface ;
} ;
#
# Propagate the route to xxx.xxx.yy out the Ethernet interface via RIP
#
export proto rip interface ed {
proto direct {
xxx.xxx.yy mask 255.255.252.0 metric 1; # SLIP connections
} ;
} ;
#
# Accept routes from RIP via ed Ethernet interfaces
import proto rip interface ed {
all ;
} ;RIPDie oben angegebene Beispieldatei
gated.conf sendet Routinginformationen,
die das SLIP-Subnetz xxx.xxx.yy
betreffen, mit Hilfe von RIP zum Ethernet. Wenn Sie einen
anderen Ethernet-Treiber als ed
verwenden, werden Sie die Einträge,
die sich auf ed beziehen, entsprechend
abändern müssen. Mit dieser Beispieldatei wird auch
die Aufzeichnung der Aktivitäten von
&gated; in der Datei
/var/tmp/gated.output
eingerichtet, was für eine eventuelle Fehlersuche
nützlich sein kann. Sie können diese Option
natürlich auch abschalten, wenn
&gated;
bei Ihnen ohne Probleme läuft. Sie müssen
xxx.xxx.yy noch durch die
Netzwerkadresse Ihres SLIP-Subnetzes ersetzen (ändern
Sie die Netzmaske im Abschnitt proto direct
ebenfalls).Wenn Sie &gated; auf Ihrem System
installiert und konfiguriert haben, müssen Sie die
FreeBSD-Startskripten noch anweisen,
&gated;
statt routed zu verwenden. Am
einfachsten können Sie dies erreichen, indem Sie
die Variablen router und
router_flags in der Datei
/etc/rc.conf entsprechend setzen.
Die Manual-Seite für &gated; bietet
weitere Informationen zu den Kommandozeilenparametern.
diff --git a/de_DE.ISO8859-1/flyer/flyer.tex b/de_DE.ISO8859-1/flyer/flyer.tex
index 57799c86d7..9796e07a04 100644
--- a/de_DE.ISO8859-1/flyer/flyer.tex
+++ b/de_DE.ISO8859-1/flyer/flyer.tex
@@ -1,186 +1,186 @@
% Copyright (c) 2004 Marc Fonvieille
% All rights reserved.
%
% Redistribution and use in source and binary forms, with or without
% modification, are permitted provided that the following conditions
% are met:
% 1. Redistributions of source code must retain the above copyright
% notice, this list of conditions and the following disclaimer.
% 2. Redistributions in binary form must reproduce the above copyright
% notice, this list of conditions and the following disclaimer in the
% documentation and/or other materials provided with the distribution.
%
% THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
% ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
% IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
% ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
% FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
% DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
% OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
% HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
% LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
% OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
% SUCH DAMAGE.
%
% $FreeBSD$
-% $FreeBSDde: de-docproj/flyer/flyer.tex,v 1.2 2005/01/16 13:42:15 mheinen Exp $
-% basiert auf: 1.6
+% $FreeBSDde: de-docproj/flyer/flyer.tex,v 1.3 2005/02/12 01:58:31 brueffer Exp $
+% basiert auf: 1.9
%
% FreeBSD Flyer
% Use make FORMAT (with FORMAT: pdf, ps or dvi) to build the flyer.
%
\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
% Use the right language
\usepackage[german]{babel}
\usepackage{pslatex}
\usepackage{graphicx}
\usepackage{fancybox}
\usepackage{url}
% Use the right papersize, do not forget to change also the Makefile
\usepackage[verbose,a4paper,noheadfoot,margin=1cm]{geometry}
% Colors settings
\usepackage{color}
\definecolor{bkgrdtitle}{rgb}{1,.84,.22}
%\definecolor{bkgrdtitle}{rgb}{1,.81,.3}
%\definecolor{bkgrdtitle}{rgb}{1,.87,.32}
%\definecolor{redtitle}{rgb}{.82,0,0}
%\definecolor{redtitle}{rgb}{.7,.7,.9}
%\definecolor{redtitle}{rgb}{.6,0,0}
%\definecolor{redtitle}{rgb}{.4,0,0}
\definecolor{redtitle}{rgb}{.65,.16,.22}
\definecolor{ovalboxcolor}{rgb}{.65,.16,.22}
% Some macros
\newcommand{\titledframe}[3]{%
\boxput*(0,1){\colorbox{bkgrdtitle}{\color{black} \large{\textbf{\textsf{#1}}}}} {\setlength {\fboxsep}{12pt} \color{ovalboxcolor}\Ovalbox {\color{black}\begin{minipage}{#3}#2\end{minipage}}}
}
\newcommand{\reg}{$^{\mbox{\tiny \textregistered}}$}
\newcommand{\tm}{$^{\mbox{\tiny TM}}$}
\newenvironment{itemizeflyer}%
{ \begin{list}%
{\textendash}%
{ \setlength{\leftmargin}{5pt}%
\setlength{\itemsep}{0pt}%
\setlength{\parskip}{0pt}%
\setlength{\parsep}{0pt}}}
{ \end{list}}
\pagestyle{empty}
\begin{document}
\begin{center}
\fontsize{40}{36}\selectfont
{\color{redtitle} \textrm{\textbf{FreeBSD}}}
\end{center}
%\vspace{2mm}
% Main part
\begin{center}
\titledframe{Was ist FreeBSD?}{
-FreeBSD ist ein modernes Betriebssystem für x86 kompatible (Intel\reg
-und AMD\tm), AMD64 (AMD Opteron\tm und Athlon\tm 64), Alpha, IA-64
-(Intel\reg Itanium\reg Prozessorfamilie), PC-98 und UltraSPARC\reg
--Architekturen. Portierungen auf die PowerPC\reg und MIPS
-Architekturen sind in Arbeit.
+FreeBSD ist ein modernes Betriebssystem für x86 kompatible (einschließlich
+Pentium\reg und Athlon\tm), amd64 kompatible (einschließlich Opteron\tm,
+Athlon\tm 64 und EM64T), Alpha/AXP, IA-64 (Intel\reg Itanium\reg
+Prozessorfamilie), PC-98 und UltraSPARC\reg-Architekturen. Portierungen
+auf die PowerPC\reg und MIPS Architekturen sind in Arbeit.
FreeBSD ist eine Weiterentwicklung von BSD, dem UNIX\reg
Betriebssystem der University of California, Berkeley.
}{12.7cm}
\begin{minipage}{4cm}
\includegraphics[scale=0.3]{../../share/images/flyer/beastie.eps}
\end{minipage}
\vspace{1mm}
\titledframe{Herausragende Funktionen}{
In den Bereichen Netzwerk, Leistungsfähigkeit, Sicherheit und
Kompatibilität besitzt FreeBSD heute schon Funktionen, die in
anderen Betriebssystemen, selbst in den besten kommerziellen,
fehlen.
}{5cm}
\titledframe{\textsf{\textbf{Leistungsfähige Internet-Dienste}}}{
FreeBSD enthält eine von vielen Leuten als Referenzimplementierung
betrachtete TCP/IP Software, den 4.4BSD TCP/IP Protokoll-Stack.
Es ist daher ideal für Netzwerkanwendungen und das Internet.
FreeBSD ist bestens geeignet für Internet- oder Intranet- Server.
Auch unter höchsten Lasten arbeiten die Netzwerkdienste zuverlässig.
Der effiziente Umgang mit dem Speicher garantiert schnelle Antwortzeiten
für tausende gleichzeitig laufende Benutzerprozesse.
}{11cm}
\vspace{5mm}
\titledframe{Wählen Sie aus einer Vielzahl von Anwendungen!}{
-FreeBSD wird mit mehr als 10000 installationsfertigen Softwarepaketen
+FreeBSD wird mit mehr als 12000 installationsfertigen Softwarepaketen
ausgeliefert, unter anderem: Apache, Samba, MySQL\reg,
OpenOffice.org, KDE, GNOME, MPlayer, etc.\\
FreeBSD bietet die Ports Sammlung. Dies ist ein System, das Quellcode
aus dem Internet, oder von einer CD-ROM, herunterlädt und daraus
Binärdateien kompiliert, inklusive dem Bau und der Installation von
abhängigen Paketen. Alle Operationen sind dabei für den Benutzer
transparent.
Die meisten GNU/Linux Applikationen sind auch unter FreeBSD lauffähig,
zum Beispiel: Acrobat Reader\reg, Oracle\reg, SAP/R3\reg, Mathematica\reg,
Quake3, etc. Diese laufen ohne merkliche Geschwindigkeitsverluste.
}{17.3cm}
\vspace{5mm}
\titledframe{FreeBSD ist einfach zu installieren}{
FreeBSD kann von verschiedenen Medien installiert werden, beispielsweise
CD-ROM, DVD-ROM, Disketten, Bandlaufwerken, MS-DOS\reg Partitionen,
oder, wenn eine Netzwerkverbindung verfügbar ist, per anonymem FTP
oder NFS.
}{17.3cm}
\vspace{5mm}
\titledframe{FreeBSD ist frei}{
FreeBSD ist kostenlos verfügbar und wird mit vollständigem Quellcode
ausgeliefert. Der Großteil dieses Quellcodes steht unter der BSD
Lizenz. Im Gegensatz zur GPL Lizenz des Linux Kernels erlaubt es
die BSD Lizenz, veränderte Versionen des Originalquellcodes als
Binärdateien zu verbreiten, ohne den Quellcode mitliefern zu müssen.
Dies führt dazu, dass Firmen den FreeBSD Quellcode als Basis für ihre
Produkte nutzen. Oft fließen dabei Teile des weiterentwickelten
Codes zurück an die Gemeinschaft.
}{17.3cm}
\vspace{5mm}
\titledframe{Für nahezu jede Aufgabe geeignet}{
FreeBSD ist für eine große Anzahl von Desktop-, Server, Embedded- und
Applianceanwendungen gut geeignet.
Heutzutage ist FreeBSD nicht nur ein Betriebssystem für Server,
sondern bietet sich auch für Endnutzer, vor allem Umsteiger von
Windows\reg und GNU/Linux, an.
}{17.3cm}
\vspace{5mm}
\titledframe{Kontakt}{
\begin{itemizeflyer}
\item Webseite: \url{http://www.FreeBSD.org/de/}
\item FreeBSD Handbuch: \url{http://www.FreeBSD.org/de/handbook/}
\end {itemizeflyer}
}{17.3cm}
\end{center}
%
% Copyrights
\begin{center}
-\tiny \copyright 2004 Das FreeBSD Projekt\\
+\tiny \copyright 2004-2005 Das FreeBSD Projekt\\
FreeBSD ist ein registriertes Markenzeichen der FreeBSD Foundation.\\
Alle anderen Firmen- und Produktnamen können Markenzeichen der
jeweiligen Firmen sein.\\
BSD Daemon, \copyright 1988 von Marshall Kirk McKusick. Alle Rechte
vorbehalten.
\end{center}
\end{document}