- MFH
This commit is contained in:
commit
a06603e1e8
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/projects/xml-tools/; revision=40889
601 changed files with 116067 additions and 90373 deletions
bn_BD.ISO10646-1/articles/explaining-bsd
da_DK.ISO8859-1/htdocs
de_DE.ISO8859-1
articles
Makefile
contributing-ports
contributing
explaining-bsd
laptop
linux-comparison
new-users
port-mentor-guidelines
solid-state
books
htdocs
share/xml
el_GR.ISO8859-7
en_US.ISO8859-1
articles
committers-guide
contributing-ports
contributing
contributors
contrib.additional.xmlcontrib.committers.xmlcontrib.corealumni.xmlcontrib.develalumni.xmlcontrib.portmgralumni.xml
freebsd-update-server
geom-class
hubs
linux-users
mailing-list-faq
portbuild
problem-reports
rc-scripting
solid-state
books
Makefile
arch-handbook
bibliography
corp-net-guide
dev-model
developers-handbook
faq
fdp-primer
handbook
Makefile
advanced-networking
audit
basics
book.xmlboot
bsdinstall
colophon.xmlconfig
cutting-edge
desktop
disks
dtrace
eresources
filesystems
firewalls
geom
index.xmlinstall
introduction
jails
kernelconfig
l10n
linuxemu
mac
mail
mirrors
multimedia
network-servers
ports
ppp-and-slip
preface
|
@ -11,7 +11,7 @@ FORMATS?= html
|
|||
INSTALL_COMPRESSED?= gz
|
||||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
# SGML content
|
||||
# XML content
|
||||
SRCS= article.xml
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
.endif
|
||||
|
||||
# Subdirectories
|
||||
# SGML
|
||||
# XML
|
||||
.if !defined(WEB_ONLY) || empty(WEB_ONLY)
|
||||
SUBDIR= doc
|
||||
.endif
|
||||
|
|
|
@ -12,6 +12,7 @@ SUBDIR+= explaining-bsd
|
|||
SUBDIR+= laptop
|
||||
SUBDIR+= linux-comparison
|
||||
SUBDIR+= new-users
|
||||
SUBDIR+= port-mentor-guidelines
|
||||
SUBDIR+= solid-state
|
||||
|
||||
# ROOT_SYMLINKS+= new-users
|
||||
|
|
|
@ -15,8 +15,8 @@
|
|||
<title>Zur FreeBSD Ports-Sammlung beitragen</title>
|
||||
|
||||
<abstract>
|
||||
<para>Dieser Artikel beschreibt, wie man zur FreeBSD Ports-Sammlung
|
||||
beitragen kann.</para>
|
||||
<para>Dieser Artikel beschreibt, wie man zur FreeBSD
|
||||
Ports-Sammlung beitragen kann.</para>
|
||||
|
||||
<para><emphasis>Übersetzt von Martin Wilke</emphasis>.</para>
|
||||
</abstract>
|
||||
|
@ -78,7 +78,8 @@
|
|||
<listitem>
|
||||
<para>Finden Sie eine begehrte oder nützliche
|
||||
Software und <link
|
||||
linkend="create-port">erstellen Sie einen Port</link>.</para>
|
||||
linkend="create-port">erstellen Sie einen
|
||||
Port</link>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -150,16 +151,17 @@
|
|||
bedingte Abhängigkeiten, die nicht im Standard-Index
|
||||
<filename>INDEX</filename> zu finden sind. Wir erwarten, dass
|
||||
Sie in der Lage sind, solche Ports zu erkennen, indem Sie sich
|
||||
die <filename>Makefile</filename>s anderer Ports ansehen.</para>
|
||||
</sect2>
|
||||
die <filename>Makefile</filename>s anderer Ports
|
||||
ansehen.</para> </sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Wie man einen Port übernimmt</title>
|
||||
|
||||
<para>Bitte vergewissern Sie sich, dass Sie die
|
||||
<link linkend="maintain-port">Aufgaben eines Maintainers</link>
|
||||
verstanden haben. Lesen Sie bitte auch das
|
||||
<ulink url="&url.books.porters-handbook;">Porter-Handbuch</ulink>.
|
||||
<link linkend="maintain-port">Aufgaben eines
|
||||
Maintainers</link> verstanden haben. Lesen Sie bitte auch
|
||||
das <ulink
|
||||
url="&url.books.porters-handbook;">Porter-Handbuch</ulink>.
|
||||
<emphasis>Übernehmen Sie nicht mehr Aufgaben, als Sie
|
||||
bewältigen können</emphasis>.</para>
|
||||
|
||||
|
@ -168,23 +170,23 @@
|
|||
Sie dazu bereit sind, setzen Sie <makevar>MAINTAINER</makevar>
|
||||
auf Ihre E-Mail-Adresse und reichen einen Problembericht (PR)
|
||||
mit den von Ihnen vorgenommenen Änderungen ein. Wenn beim
|
||||
Kompilieren des Ports Fehler auftreten oder eine Aktualisierung
|
||||
notwendig ist, können Sie derartige Änderungen dem
|
||||
selben PR beifügen. Das ist sehr hilfreich, weil sich viele
|
||||
Committer weigern, die Wartung eines Ports zu übergeben,
|
||||
Kompilieren des Ports Fehler auftreten oder eine
|
||||
Aktualisierung notwendig ist, können Sie derartige Änderungen
|
||||
dem selben PR beifügen. Das ist sehr hilfreich, weil sich
|
||||
viele Committer weigern, die Wartung eines Ports zu übergeben,
|
||||
wenn jemand nicht die nötige Erfahrung mit &os; vorweisen
|
||||
kann. Das Einreichen von PRs, die Kompilierfehler beheben oder
|
||||
Ports aktualisieren, ist der beste Weg, um Erfahrung zu
|
||||
kann. Das Einreichen von PRs, die Kompilierfehler beheben
|
||||
oder Ports aktualisieren, ist der beste Weg, um Erfahrung zu
|
||||
sammeln.</para>
|
||||
|
||||
<para>Erstellen Sie Ihren PR mit der
|
||||
<foreignphrase>category</foreignphrase> <literal>ports</literal>
|
||||
und der <foreignphrase>class</foreignphrase>
|
||||
<literal>change-request</literal>. Ein Committer wird
|
||||
Ihren PR analysieren, die Änderungen committen und danach
|
||||
den PR abschließen. Manchmal kann dieser Prozess eine
|
||||
Weile dauern (auch Committer sind "nur" freiwillige
|
||||
Helfer!).</para>
|
||||
<foreignphrase>category</foreignphrase>
|
||||
<literal>ports</literal> und der
|
||||
<foreignphrase>class</foreignphrase>
|
||||
<literal>change-request</literal>. Ein Committer wird Ihren
|
||||
PR analysieren, die Änderungen committen und danach den PR
|
||||
abschließen. Manchmal kann dieser Prozess eine Weile dauern
|
||||
(auch Committer sind "nur" freiwillige Helfer!).</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
|
@ -219,7 +221,8 @@
|
|||
<itemizedlist>
|
||||
<listitem>
|
||||
<formalpara>
|
||||
<title>Neue Software-Versionen und Aktualisierungen</title>
|
||||
<title>Neue Software-Versionen und
|
||||
Aktualisierungen</title>
|
||||
|
||||
<para>Neue Versionen und Aktualisierung von bereits
|
||||
portierter Software werden kontinuierlich
|
||||
|
@ -260,8 +263,8 @@
|
|||
<para>Ein Teil der Aufgabe eines Maintainers ist es,
|
||||
Support zu leisten. Damit ist kein Hauptsupport
|
||||
für die Software gemeint (wir haben allerdings nichts
|
||||
dagegen, wenn Sie sich dennoch entscheiden, dies zu tun).
|
||||
Ihre Aufgabe ist aber, sich um &os;-spezifische
|
||||
dagegen, wenn Sie sich dennoch entscheiden, dies zu
|
||||
tun). Ihre Aufgabe ist aber, sich um &os;-spezifische
|
||||
Fragen zu Ihren Ports zu kümmern.</para>
|
||||
</formalpara>
|
||||
</listitem>
|
||||
|
@ -271,11 +274,11 @@
|
|||
<title>Bugs finden</title>
|
||||
|
||||
<para>Eine Portierung könnte vielleicht von
|
||||
&os;-spezifischen Bugs beeinflusst werden. In einem solchen
|
||||
Fall ist es Ihre Aufgabe, den Fehler zu finden und zu
|
||||
beheben. Daher sollten Sie Ihren Port umfassend testen,
|
||||
um derartige Probleme zu entdecken, bevor Sie einen
|
||||
Port in die Ports-Sammlung aufnehmen.</para>
|
||||
&os;-spezifischen Bugs beeinflusst werden. In einem
|
||||
solchen Fall ist es Ihre Aufgabe, den Fehler zu finden
|
||||
und zu beheben. Daher sollten Sie Ihren Port umfassend
|
||||
testen, um derartige Probleme zu entdecken, bevor Sie
|
||||
einen Port in die Ports-Sammlung aufnehmen.</para>
|
||||
</formalpara>
|
||||
</listitem>
|
||||
|
||||
|
@ -284,10 +287,10 @@
|
|||
<title>Änderungen an Ports, Infrastruktur und
|
||||
Lizenzen</title>
|
||||
|
||||
<para>Gelegentlich werden die Werkzeuge für das Bauen von Ports
|
||||
erneuert oder es wird ein neuer Vorschlag zur
|
||||
Infrastruktur der Ports-Sammlung gemacht. Sie sollten von
|
||||
diesen Änderungen wissen, falls Ihre Ports betroffen
|
||||
<para>Gelegentlich werden die Werkzeuge für das Bauen von
|
||||
Ports erneuert oder es wird ein neuer Vorschlag zur
|
||||
Infrastruktur der Ports-Sammlung gemacht. Sie sollten
|
||||
von diesen Änderungen wissen, falls Ihre Ports betroffen
|
||||
sind und aktualisiert werden müssen.</para>
|
||||
</formalpara>
|
||||
</listitem>
|
||||
|
@ -365,8 +368,8 @@
|
|||
Architekturen, wie Sie können. Es kommt sehr
|
||||
häufig vor, dass ein Port auf einem
|
||||
Entwicklungszweig oder einer Plattform
|
||||
funktioniert, auf einer anderen Plattform aber Fehler
|
||||
erzeugt.</para>
|
||||
funktioniert, auf einer anderen Plattform aber
|
||||
Fehler erzeugt.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -399,15 +402,15 @@
|
|||
Port nicht den Bau eines anderen Ports verhindern.
|
||||
Ist dies der Fall, besprechen Sie die von Ihnen
|
||||
durchgeführten Änderungen mit den
|
||||
Maintainern der betroffenen Ports. Dies ist besonders
|
||||
dann wichtig, wenn Ihre Aktualisierung die
|
||||
<quote>Shared Library</quote>-Version ändert;
|
||||
in diesem Fall werden Sie für die abhängigen
|
||||
Ports einen <makevar>PORTREVISION</makevar>-Bump
|
||||
benötigen, damit diese von automatisierten Werkzeugen
|
||||
wie <application>portmaster</application> oder
|
||||
&man.portupgrade.1; auf dem neuesten Stand gehalten
|
||||
werden.</para>
|
||||
Maintainern der betroffenen Ports. Dies ist
|
||||
besonders dann wichtig, wenn Ihre Aktualisierung die
|
||||
<quote>Shared Library</quote>-Version ändert; in
|
||||
diesem Fall werden Sie für die abhängigen Ports
|
||||
einen <makevar>PORTREVISION</makevar>-Bump
|
||||
benötigen, damit diese von automatisierten
|
||||
Werkzeugen wie <application>portmaster</application>
|
||||
oder &man.portupgrade.1; auf dem neuesten Stand
|
||||
gehalten werden.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</step>
|
||||
|
@ -427,11 +430,11 @@
|
|||
<note>
|
||||
<para>Bitte schicken Sie kein &man.shar.1;-Archiv
|
||||
des gesamten Ports. Benutzen Sie stattdessen
|
||||
&man.diff.1; <literal>-ruN</literal>. Auf diese Art und
|
||||
Weise können Committer viel einfacher erkennen,
|
||||
&man.diff.1; <literal>-ruN</literal>. Auf diese Art
|
||||
und Weise können Committer viel einfacher erkennen,
|
||||
welche Änderungen vorgenommen wurden. Das
|
||||
Porter-Handbuch enthält viele nützliche
|
||||
Informationen zum <ulink
|
||||
Porter-Handbuch enthält viele nützliche Informationen
|
||||
zum <ulink
|
||||
url="&url.books.porters-handbook;/port-upgrading.html">Upgrading</ulink>
|
||||
eines Ports.</para>
|
||||
</note>
|
||||
|
@ -441,9 +444,9 @@
|
|||
<title>Warten</title>
|
||||
|
||||
<para>Es kann nur sehr wenig Zeit vergehen, bis sich ein
|
||||
Committer mit Ihrem PR befasst. Es kann aber auch mehrere
|
||||
Wochen dauern, bis eine Reaktion erfolgt - haben Sie bitte
|
||||
Geduld.</para>
|
||||
Committer mit Ihrem PR befasst. Es kann aber auch
|
||||
mehrere Wochen dauern, bis eine Reaktion erfolgt - haben
|
||||
Sie bitte Geduld.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
|
@ -472,8 +475,8 @@
|
|||
<title>Stellen Sie sicher, dass Ihre Ports den Buildprozess
|
||||
weiterhin erfolgreich durchlaufen</title>
|
||||
|
||||
<para>Dieser Abschnitt beschreibt, wie Sie Probleme entdecken und
|
||||
beheben, die ihre Ports daran hindern, den Buildprozess
|
||||
<para>Dieser Abschnitt beschreibt, wie Sie Probleme entdecken
|
||||
und beheben, die ihre Ports daran hindern, den Buildprozess
|
||||
erfolgreich zu durchlaufen.</para>
|
||||
|
||||
<para>&os; garantiert nur für die
|
||||
|
@ -490,11 +493,11 @@
|
|||
<para>Seit die Mehrheit von &os;-Installationen auf
|
||||
PC-kompatiblen Maschinen arbeitet
|
||||
(<literal>i386</literal>-Architektur) erwarten wir, dass Ihr
|
||||
Port auf dieser Architektur funktioniert. Ebenfalls bevorzugen
|
||||
wir es, wenn Ports nativ auf der
|
||||
<literal>amd64</literal>-Architektur funktionieren. Es ist durchaus
|
||||
in Ordnung, um Hilfe zu fragen, wenn Sie keine solche Maschine
|
||||
besitzen.</para>
|
||||
Port auf dieser Architektur funktioniert. Ebenfalls
|
||||
bevorzugen wir es, wenn Ports nativ auf der
|
||||
<literal>amd64</literal>-Architektur funktionieren. Es ist
|
||||
durchaus in Ordnung, um Hilfe zu fragen, wenn Sie keine
|
||||
solche Maschine besitzen.</para>
|
||||
|
||||
<note>
|
||||
<para>Häufige Fehler beim Umgang mit
|
||||
|
@ -522,12 +525,12 @@
|
|||
und den <ulink
|
||||
url="http://www.portscout.org">Distfiles-Scanner</ulink>,
|
||||
um festzustellen, ob einer Ihrer Ports nicht gebaut oder
|
||||
die Distfiles nicht geladen werden können (lesen Sie
|
||||
den Abschnitt <link linkend="resources">Ressourcen</link>
|
||||
die Distfiles nicht geladen werden können (lesen Sie den
|
||||
Abschnitt <link linkend="resources">Ressourcen</link>
|
||||
dieses Artikels für weitere Informationen zu diesen
|
||||
Systemen). Fehlerberichte kommen eventuell auch
|
||||
von anderen Benutzern oder als automatisierte Meldungen
|
||||
per E-Mail.</para>
|
||||
Systemen). Fehlerberichte kommen eventuell auch von
|
||||
anderen Benutzern oder als automatisierte Meldungen per
|
||||
E-Mail.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
|
@ -607,10 +610,10 @@
|
|||
einen Port unter FreeBSD zum Laufen zu bekommen.
|
||||
Einige (aber nicht alle) Programmautoren nehmen
|
||||
diese Patches in Ihren Code für das nächste
|
||||
Release auf. Dies kann den Benutzern anderer BSD-Systeme
|
||||
helfen und einiges an unnötiger Mehrarbeit ersparen.
|
||||
Bitte betrachten Sie das Versenden von verwertbaren
|
||||
Patches an die Autoren als ein Gebot der
|
||||
Release auf. Dies kann den Benutzern anderer
|
||||
BSD-Systeme helfen und einiges an unnötiger Mehrarbeit
|
||||
ersparen. Bitte betrachten Sie das Versenden von
|
||||
verwertbaren Patches an die Autoren als ein Gebot der
|
||||
Höflichkeit.</para>
|
||||
</step>
|
||||
</procedure>
|
||||
|
@ -626,8 +629,8 @@
|
|||
entdecken ist oft sehr schwierig, glücklicherweise
|
||||
sind derartige Probleme aber nicht sehr häufig.</para>
|
||||
|
||||
<para>Folgende Schritte sind notwendig, um sicherzustellen, dass
|
||||
ihr Port weiterhin wie gewünscht funktioniert:</para>
|
||||
<para>Folgende Schritte sind notwendig, um sicherzustellen,
|
||||
dass ihr Port weiterhin wie gewünscht funktioniert:</para>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
|
@ -645,9 +648,10 @@
|
|||
dass Sie noch etwas Zeit brauchen, bevor Sie den PR
|
||||
bearbeiten können.</para>
|
||||
|
||||
<para>Sollten Sie nicht innerhalb von 14 Tagen geantwortet haben,
|
||||
darf jeder Committer via <literal>maintainer-timeout</literal>
|
||||
auf einen PR, den Sie nicht beantwortet haben, reagieren.</para>
|
||||
<para>Sollten Sie nicht innerhalb von 14 Tagen geantwortet
|
||||
haben, darf jeder Committer via
|
||||
<literal>maintainer-timeout</literal> auf einen PR, den
|
||||
Sie nicht beantwortet haben, reagieren.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
|
@ -665,8 +669,8 @@
|
|||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Eine genaue Beschreibung dessen, was Er/Sie getan
|
||||
hat, den erwarteten Programmverlauf und den
|
||||
<para>Eine genaue Beschreibung dessen, was Er/Sie
|
||||
getan hat, den erwarteten Programmverlauf und den
|
||||
tatsächlichen Ablauf.</para>
|
||||
</listitem>
|
||||
|
||||
|
@ -695,14 +699,14 @@
|
|||
<step>
|
||||
<title>Schließen Sie falsche Reports aus</title>
|
||||
|
||||
<para>Einige Fehlerberichte sind eventuell falsch. Es kommt
|
||||
vor, dass ein Programm falsch benutzt wird. Weiterhin
|
||||
können installierten Pakete veraltet sein und
|
||||
müssten einfach nur aktualisiert werden. Manchmal
|
||||
ist ein gemeldeter Fehler auch nicht &os;-spezifisch. In
|
||||
<para>Einige Fehlerberichte sind eventuell falsch. Es
|
||||
kommt vor, dass ein Programm falsch benutzt wird.
|
||||
Weiterhin können installierten Pakete veraltet sein und
|
||||
müssten einfach nur aktualisiert werden. Manchmal ist
|
||||
ein gemeldeter Fehler auch nicht &os;-spezifisch. In
|
||||
diesem Fall melden Sie den Fehler den derzeitigen
|
||||
Entwicklern der Software. Wenn Sie in der Lage sind, den
|
||||
Fehler zu beheben, können Sie dies natürlich
|
||||
Entwicklern der Software. Wenn Sie in der Lage sind,
|
||||
den Fehler zu beheben, können Sie dies natürlich
|
||||
trotzdem tun und den Entwicklern Ihren Patch zukommen
|
||||
lassen.</para>
|
||||
</step>
|
||||
|
@ -746,13 +750,13 @@
|
|||
<para>Manchmal müssen Sie eventuell ihre diplomatischen
|
||||
Fähigkeiten auffrischen und Benutzer freundlich an die
|
||||
korrekten Anlaufstellen für den Hauptsupport verweisen.
|
||||
Nur selten werden Sie auf eine Person treffen, die Sie fragt,
|
||||
warum die <literal>RPM</literal>s nicht aktuell sind oder wie
|
||||
Sie die Software unter <literal>Foo Linux</literal> zum Laufen
|
||||
bringen. Ergreifen Sie die Gelegenheit und berichten Sie,
|
||||
dass Ihr Port aktuell ist (natürlich nur, wenn er es auch
|
||||
tatsächlich ist) und schlagen Sie vor, einmal &os;
|
||||
auszuprobieren.</para>
|
||||
Nur selten werden Sie auf eine Person treffen, die Sie
|
||||
fragt, warum die <literal>RPM</literal>s nicht aktuell sind
|
||||
oder wie Sie die Software unter <literal>Foo Linux</literal>
|
||||
zum Laufen bringen. Ergreifen Sie die Gelegenheit und
|
||||
berichten Sie, dass Ihr Port aktuell ist (natürlich nur,
|
||||
wenn er es auch tatsächlich ist) und schlagen Sie vor,
|
||||
einmal &os; auszuprobieren.</para>
|
||||
|
||||
<para>Wenn Sie Glück haben, werden Benutzer und Entwickler
|
||||
gelegentlich daran denken, dass Sie eine sehr
|
||||
|
@ -763,7 +767,8 @@
|
|||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Einen PR einreichen oder Ihnen Patches schicken.</para>
|
||||
<para>Einen PR einreichen oder Ihnen Patches
|
||||
schicken.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -849,9 +854,10 @@
|
|||
<para>In jedem Fall behält sich das Ports Management
|
||||
Team (<literal>portmgr</literal>) das Recht vor, Ihnen den
|
||||
Maintainer-Status abzuerkennen, wenn Sie für längere
|
||||
Zeit nicht aktiv sind (derzeit liegt diese Grenze bei drei Monaten).
|
||||
Damit ist gemeint, dass ungelöste Probleme oder ausstehende
|
||||
Aktualisierungen in diesem Zeitraum nicht bearbeitet wurden.</para>
|
||||
Zeit nicht aktiv sind (derzeit liegt diese Grenze bei drei
|
||||
Monaten). Damit ist gemeint, dass ungelöste Probleme oder
|
||||
ausstehende Aktualisierungen in diesem Zeitraum nicht bearbeitet
|
||||
wurden.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="resources">
|
||||
|
@ -859,8 +865,8 @@
|
|||
|
||||
<para>Das <ulink
|
||||
url="&url.books.porters-handbook;">Porter-Handbuch</ulink>
|
||||
ist Ihr <quote>Ratgeber zum Ports-System</quote> und sollte stets
|
||||
in Ihrer Reichweite sein!</para>
|
||||
ist Ihr <quote>Ratgeber zum Ports-System</quote> und sollte
|
||||
stets in Ihrer Reichweite sein!</para>
|
||||
|
||||
<para>Der Artikel <ulink
|
||||
url="&url.articles.problem-reports.en;">Writing FreeBSD Problem
|
||||
|
@ -889,8 +895,8 @@
|
|||
müssten.</para>
|
||||
|
||||
<para>Der <ulink url="http://www.portscout.org">&os; Ports
|
||||
Distfile-Scanner</ulink> kann Ihnen die Ports anzeigen, deren Distfiles
|
||||
nicht erreichbar sind. Sie können damit Ihre eigenen
|
||||
Distfile-Scanner</ulink> kann Ihnen die Ports anzeigen, deren
|
||||
Distfiles nicht erreichbar sind. Sie können damit Ihre eigenen
|
||||
Ports prüfen oder auch herauszufinden, ob die
|
||||
<makevar>MASTER_SITES</makevar>-Einträge bestimmter Ports
|
||||
nicht mehr aktuell sind.</para>
|
||||
|
|
|
@ -65,23 +65,23 @@
|
|||
<para>Das FreeBSD-Projekt ist für ein komplettes Betriebssytem
|
||||
verantwortlich, nicht nur für einen Kernel oder ein paar
|
||||
verstreute Werkzeuge. Daher umfasst unsere
|
||||
<filename>TODO</filename>-Liste viele verschiedene Aufgabenbereiche:
|
||||
Angefangen von der Dokumentation, über Betatests und
|
||||
Präsentationen bis zu Systeminstallationen und speziellen
|
||||
<filename>TODO</filename>-Liste viele verschiedene
|
||||
Aufgabenbereiche: Angefangen von der Dokumentation, über Betatests
|
||||
und Präsentationen bis zu Systeminstallationen und speziellen
|
||||
Weiterentwicklungen des Kernels. Da Fähigkeiten in den
|
||||
verschiedensten Bereichen benötigt werden, kann fast jeder
|
||||
etwas zu diesem Projekt beitragen.</para>
|
||||
|
||||
<para>Personen, die im kommerziellen Umfeld mit FreeBSD zu tun haben,
|
||||
sind ebenfalls aufgefordert, sich bei uns zu melden. Brauchen Sie
|
||||
eine spezielle Erweiterung, damit Ihr Produkt funktioniert? Wir
|
||||
kommen Ihren Wünschen gerne entgegen, vorausgesetzt, sie sind
|
||||
nicht zu speziell. Arbeiten Sie an einem Mehrwertprodukt? Dann
|
||||
informieren Sie uns bitte! Wir könnten in der Lage sein, an
|
||||
einem Teil davon mitzuarbeiten. Die Welt der freien Software
|
||||
fordert viele bestehenden Annahmen über die Entwicklung, den
|
||||
Verkauf und die Wartung von Software heraus, und wir bitten Sie,
|
||||
ernsthaft darüber nachzudenken.</para>
|
||||
<para>Personen, die im kommerziellen Umfeld mit FreeBSD zu tun
|
||||
haben, sind ebenfalls aufgefordert, sich bei uns zu melden.
|
||||
Brauchen Sie eine spezielle Erweiterung, damit Ihr Produkt
|
||||
funktioniert? Wir kommen Ihren Wünschen gerne entgegen,
|
||||
vorausgesetzt, sie sind nicht zu speziell. Arbeiten Sie an einem
|
||||
Mehrwertprodukt? Dann informieren Sie uns bitte! Wir könnten in
|
||||
der Lage sein, an einem Teil davon mitzuarbeiten. Die Welt der
|
||||
freien Software fordert viele bestehenden Annahmen über die
|
||||
Entwicklung, den Verkauf und die Wartung von Software heraus, und
|
||||
wir bitten Sie, ernsthaft darüber nachzudenken.</para>
|
||||
|
||||
<sect1 id="contrib-what">
|
||||
<title>Was wird gebraucht?</title>
|
||||
|
@ -95,10 +95,10 @@
|
|||
<title>Aufgaben für Nicht-Programmierer</title>
|
||||
|
||||
<para>Viele Menschen, die an FreeBSD beteiligt sind, sind keine
|
||||
Programmierer. Es sind Leute, die an der Dokumentation arbeiten,
|
||||
Internetseiten erstellen oder einfach Hilfe anbieten. Alles, was
|
||||
diese Leute mitbringen müssen, sind Zeit und die
|
||||
Bereitschaft, etwas zu lernen.</para>
|
||||
Programmierer. Es sind Leute, die an der Dokumentation
|
||||
arbeiten, Internetseiten erstellen oder einfach Hilfe
|
||||
anbieten. Alles, was diese Leute mitbringen müssen, sind Zeit
|
||||
und die Bereitschaft, etwas zu lernen.</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
|
@ -111,10 +111,10 @@
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Helfen Sie dabei, die Dokumentation in Ihre Muttersprache
|
||||
zu übersetzen. Wenn an der Übersetzung in Ihre
|
||||
Sprache bereits gearbeitet wird, helfen Sie, indem Sie
|
||||
weitere Dokumente übersetzen, oder sorgen Sie dafür,
|
||||
<para>Helfen Sie dabei, die Dokumentation in Ihre
|
||||
Muttersprache zu übersetzen. Wenn an der Übersetzung in
|
||||
Ihre Sprache bereits gearbeitet wird, helfen Sie, indem
|
||||
Sie weitere Dokumente übersetzen, oder sorgen Sie dafür,
|
||||
dass die Übersetzungen aktuell sind. Lesen Sie zuerst
|
||||
die <ulink url="&url.books.fdp-primer;/translations.html">
|
||||
Übersetzungs-FAQ</ulink> der Fibel für neue
|
||||
|
@ -178,7 +178,8 @@
|
|||
|
||||
<listitem>
|
||||
<para>Verschieben Sie beigetragene Software im Quellcodebaum
|
||||
nach <filename class="directory">src/contrib</filename>.</para>
|
||||
nach <filename
|
||||
class="directory">src/contrib</filename>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -203,8 +204,8 @@
|
|||
<listitem>
|
||||
<para>Wenn Sie einen Port beigetragen und dabei irgendwelche
|
||||
&os;-spezifischen Änderungen getätigt haben, senden Sie
|
||||
Ihre Patches an die ursprünglichen Autoren (das wird ihr Leben
|
||||
einfacher machen, wenn die nächste Version des Ports
|
||||
Ihre Patches an die ursprünglichen Autoren (das wird ihr
|
||||
Leben einfacher machen, wenn die nächste Version des Ports
|
||||
erscheint).</para>
|
||||
</listitem>
|
||||
|
||||
|
@ -213,13 +214,13 @@
|
|||
&posix;. Als Ausgangspunkt für Ihre Suche können
|
||||
Sie die Seite des <ulink
|
||||
url="&url.base;/projects/c99/index.html">FreeBSD
|
||||
C99 & POSIX Standards Conformance Project</ulink> verwenden.
|
||||
Vergleichen Sie das Verhalten von FreeBSD mit dem von dem
|
||||
jeweiligen Standard geforderten Verhalten. Verhält
|
||||
sich FreeBSD in einem Bereich unterschiedlich, sollten Sie
|
||||
einen Problembericht (PR) einsenden. Wenn Sie dazu in der
|
||||
Lage sind, können Sie sich auch eine Lösung des
|
||||
Problems überlegen und Ihrem PR einen Patch
|
||||
C99 & POSIX Standards Conformance Project</ulink>
|
||||
verwenden. Vergleichen Sie das Verhalten von FreeBSD mit
|
||||
dem von dem jeweiligen Standard geforderten Verhalten.
|
||||
Verhält sich FreeBSD in einem Bereich unterschiedlich,
|
||||
sollten Sie einen Problembericht (PR) einsenden. Wenn Sie
|
||||
dazu in der Lage sind, können Sie sich auch eine Lösung
|
||||
des Problems überlegen und Ihrem PR einen Patch
|
||||
anfügen. Wenn Sie der Meinung sind, dass der Standard
|
||||
nicht korrekt ist, können Sie auch das jeweilige
|
||||
Standardgremium um weitere Informationen bitten.</para>
|
||||
|
@ -243,9 +244,9 @@
|
|||
Problemberichte und Verbesserungswüsche, die von
|
||||
Anwendern eingereicht wurden. Die PR-Datenbank enthält
|
||||
sowohl Aufgaben für Programmierer als auch für
|
||||
Nichtprogrammierer. Gehen Sie die Liste der offenen PRs durch,
|
||||
um festzustellen, ob Sie ein Problem interessiert. Bei manchen
|
||||
Berichten geht es nur darum, zu überprüfen, ob der
|
||||
Nichtprogrammierer. Gehen Sie die Liste der offenen PRs
|
||||
durch, um festzustellen, ob Sie ein Problem interessiert. Bei
|
||||
manchen Berichten geht es nur darum, zu überprüfen, ob der
|
||||
bereitgestellte Patch korrekt funktioniert. Andere
|
||||
Problemberichte sind hingegen komplexer, oder beinhalten
|
||||
überhaupt keinen Lösungsvorschlag.</para>
|
||||
|
@ -255,8 +256,8 @@
|
|||
bereits jemandem zugewiesen, nehmen Sie mit dem dafür
|
||||
Zuständigen Kontakt auf und fragen Sie ihn, ob Sie an
|
||||
der Lösung mitarbeiten können — es könnte
|
||||
etwa bereits ein Patch existieren, der nur noch getestet werden
|
||||
muss, oder Sie könnten weitere Ideen mit ihm
|
||||
etwa bereits ein Patch existieren, der nur noch getestet
|
||||
werden muss, oder Sie könnten weitere Ideen mit ihm
|
||||
diskutieren.</para>
|
||||
</sect2>
|
||||
|
||||
|
@ -269,8 +270,8 @@
|
|||
für Freiwillige interessant, die etwas zum &os; Projekt
|
||||
beitragen möchten. Diese Liste wird regelmäßig
|
||||
aktualisiert und enthält Einträge für Programmierer
|
||||
und Nicht-Programmierer sowie Informationen zu jedem Projekt.</para>
|
||||
</sect2>
|
||||
und Nicht-Programmierer sowie Informationen zu jedem
|
||||
Projekt.</para> </sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="contrib-how">
|
||||
|
@ -297,25 +298,26 @@
|
|||
&man.send-pr.1; oder dessen <ulink
|
||||
url="&url.base;/de/send-pr.html">Internetschnittstelle</ulink>
|
||||
zu erstellen. Versuchen Sie bitte, jedes Feld auszufüllen.
|
||||
Ist Ihr Patch kleiner als 65 KB, sollten Sie ihn direkt in
|
||||
den Bericht einbauen. Kann der Patch direkt auf den Quellcodebaum
|
||||
angewendet werden, fügen Sie <literal>[PATCH]</literal>
|
||||
im Synopsis-Feld ein. Wenn Sie einen Patch einfügen,
|
||||
verwenden Sie bitte <emphasis>kein copy-and-paste</emphasis>,
|
||||
weil dadurch Tabulatoren in Leerzeichen umgewandelt werden, was
|
||||
den Patch unbrauchbar macht. Sind die Patches viel größer
|
||||
als 20 KB, sollten Sie sie komprimieren (z.B. mit &man.gzip.1;
|
||||
oder &man.bzip2.1;) und &man.uuencode.1; verwenden, um diese in ihren
|
||||
Problembericht einzufügen.</para>
|
||||
Ist Ihr Patch kleiner als 65 KB, sollten Sie ihn direkt
|
||||
in den Bericht einbauen. Kann der Patch direkt auf den
|
||||
Quellcodebaum angewendet werden, fügen Sie
|
||||
<literal>[PATCH]</literal> im Synopsis-Feld ein. Wenn Sie
|
||||
einen Patch einfügen, verwenden Sie bitte <emphasis>kein
|
||||
copy-and-paste</emphasis>, weil dadurch Tabulatoren in
|
||||
Leerzeichen umgewandelt werden, was den Patch unbrauchbar
|
||||
macht. Sind die Patches viel größer als 20 KB, sollten
|
||||
Sie sie komprimieren (z.B. mit &man.gzip.1; oder
|
||||
&man.bzip2.1;) und &man.uuencode.1; verwenden, um diese in
|
||||
ihren Problembericht einzufügen.</para>
|
||||
|
||||
<para>Nachdem Sie einen Bericht versandt haben, erhalten Sie eine
|
||||
E-Mail, die eine Bestätigung sowie eine
|
||||
<para>Nachdem Sie einen Bericht versandt haben, erhalten Sie
|
||||
eine E-Mail, die eine Bestätigung sowie eine
|
||||
Identifikationsnummer enthält. Geben Sie diese Nummer im
|
||||
Betreff der Nachricht an (<literal>"Re: kern/3377"</literal>),
|
||||
wenn Sie neue Informationen zu diesem Problem an
|
||||
&a.bugfollowup; senden.
|
||||
Zusätzliche Informationen zu Problemberichten sollten immer
|
||||
auf diese Art und Weise verschickt werden.</para>
|
||||
Betreff der Nachricht an (<literal>"Re:
|
||||
kern/3377"</literal>), wenn Sie neue Informationen zu diesem
|
||||
Problem an &a.bugfollowup; senden. Zusätzliche Informationen
|
||||
zu Problemberichten sollten immer auf diese Art und Weise
|
||||
verschickt werden.</para>
|
||||
|
||||
<para>Sollten Sie innerhalb einer Woche keine Bestätigung
|
||||
erhalten, oder &man.send-pr.1; nicht verwenden können,
|
||||
|
@ -422,7 +424,8 @@
|
|||
wir sind aber manchmal nicht in der Lage, das Problem sofort
|
||||
anzugehen. Es verbleibt aber in der PR-Datenbank, bis wir
|
||||
dafür Zeit finden. Verwenden Sie den Begriff
|
||||
<literal>[PATCH]</literal> im Synopsis-Feld des Berichts.</para>
|
||||
<literal>[PATCH]</literal> im Synopsis-Feld des
|
||||
Berichts.</para>
|
||||
|
||||
<indexterm>
|
||||
<primary><command>uuencode</command></primary>
|
||||
|
@ -487,19 +490,19 @@
|
|||
|
||||
<indexterm><primary>GNU General Public License</primary></indexterm>
|
||||
|
||||
<para>Der GNU General Public License, oder <quote>GPL</quote>.
|
||||
Diese Lizenz ist nicht ganz so beliebt bei uns, da sie
|
||||
die kommerzielle Nutzung des Quellcodes einschränkt.
|
||||
In Anbetracht der schieren Menge an GPL-Quellcode, den
|
||||
wir derzeit benötigen (wie Compiler, Assembler oder
|
||||
Textformatierer) wären wir aber schlecht beraten,
|
||||
Beiträge, die unter dieser Lizenz stehen, abzulehnen.
|
||||
Code, der unter der GPL steht, befindet sich in einem
|
||||
gesonderten Bereich des Quellcodebaums, und zwar unter
|
||||
<filename class="directory">/sys/gnu</filename> oder
|
||||
<filename class="directory">/usr/src/gnu</filename>, und ist daher
|
||||
für jeden, für den die GPL ein Problem darstellt, sofort
|
||||
erkennbar.</para>
|
||||
<para>Der GNU General Public License, oder
|
||||
<quote>GPL</quote>. Diese Lizenz ist nicht ganz so
|
||||
beliebt bei uns, da sie die kommerzielle Nutzung des
|
||||
Quellcodes einschränkt. In Anbetracht der schieren Menge
|
||||
an GPL-Quellcode, den wir derzeit benötigen (wie Compiler,
|
||||
Assembler oder Textformatierer) wären wir aber schlecht
|
||||
beraten, Beiträge, die unter dieser Lizenz stehen,
|
||||
abzulehnen. Code, der unter der GPL steht, befindet sich
|
||||
in einem gesonderten Bereich des Quellcodebaums, und zwar
|
||||
unter <filename class="directory">/sys/gnu</filename> oder
|
||||
<filename class="directory">/usr/src/gnu</filename>, und
|
||||
ist daher für jeden, für den die GPL ein Problem
|
||||
darstellt, sofort erkennbar.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
|
||||
|
@ -588,10 +591,9 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
<para>Für weitere Informationen zur FreeBSD Foundation
|
||||
sollten Sie den Artikel <ulink
|
||||
url="http://people.FreeBSD.org/~jdp/foundation/announcement.html">
|
||||
The FreeBSD Foundation -- an Introduction</ulink> lesen. Sie
|
||||
erreichen die FreeBSD Foundation über die
|
||||
E-Mail-Adresse <email>bod@FreeBSDFoundation.org</email>.</para>
|
||||
</sect3>
|
||||
The FreeBSD Foundation -- an Introduction</ulink> lesen.
|
||||
Sie erreichen die FreeBSD Foundation über die E-Mail-Adresse
|
||||
<email>bod@FreeBSDFoundation.org</email>.</para> </sect3>
|
||||
|
||||
<sect3>
|
||||
<title>Hardwarespenden</title>
|
||||
|
@ -610,12 +612,11 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
|
||||
<para>Wir sind ständig auf der Suche nach neuen FTP-,
|
||||
WWW- oder <command>cvsup</command>-Spiegeln. Wenn Sie einen
|
||||
solchen Spiegel einrichten wollen, lesen Sie bitte den Artikel
|
||||
<ulink
|
||||
url="&url.articles.hubs.en;/index.html">Mirroring FreeBSD</ulink>,
|
||||
der weitere Informationen enthält.</para>
|
||||
solchen Spiegel einrichten wollen, lesen Sie bitte den
|
||||
Artikel <ulink
|
||||
url="&url.articles.hubs.en;/index.html">Mirroring
|
||||
FreeBSD</ulink>, der weitere Informationen enthält.</para>
|
||||
</sect3>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
</article>
|
||||
|
|
|
@ -50,14 +50,14 @@
|
|||
url="http://www.leb.net/hzo/ioscount/data/r.9904.txt">Internet
|
||||
Operating System Counter</ulink> liefen im April 1999
|
||||
weltweit 31,3 Prozent der vernetzten Rechner unter Linux,
|
||||
14,6 Prozent liefen hingegen unter BSD &unix;. Einige
|
||||
der weltweit größten Internetdienstleister, darunter
|
||||
<ulink url="http://www.yahoo.com/">Yahoo!</ulink>, verwenden BSD.
|
||||
Der im Jahre 1999 weltgrößte FTP-Server <ulink
|
||||
url="ftp://ftp.cdrom.com/">ftp.cdrom.com</ulink> (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
|
||||
14,6 Prozent liefen hingegen unter BSD &unix;.
|
||||
Einige der weltweit größten Internetdienstleister, darunter
|
||||
<ulink url="http://www.yahoo.com/">Yahoo!</ulink>, verwenden
|
||||
BSD. Der im Jahre 1999 weltgrößte FTP-Server <ulink
|
||||
url="ftp://ftp.cdrom.com/">ftp.cdrom.com</ulink> (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.</para>
|
||||
|
||||
<para>Worin besteht nun dieses Geheimnis? Warum ist BSD nicht
|
||||
|
@ -81,8 +81,8 @@
|
|||
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
|
||||
Softwarepakete anderer Open Source-Projekte, insbesondere jene
|
||||
des GNU-Projekts, enthalten. Das komplette Betriebssystem
|
||||
umfasst:</para>
|
||||
|
||||
<itemizedlist>
|
||||
|
@ -153,21 +153,23 @@
|
|||
<para>Es stimmt, dass AT&T &unix; kein Open Source ist. Im
|
||||
Sinne des Copyright ist BSD daher eindeutig
|
||||
<emphasis>kein</emphasis> &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 <emphasis>Berkeley Software Distribution</emphasis> oder
|
||||
<emphasis>BSD</emphasis> nannten.</para>
|
||||
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 <emphasis>Berkeley Software
|
||||
Distribution</emphasis> oder <emphasis>BSD</emphasis>
|
||||
nannten.</para>
|
||||
|
||||
<para>Anfangs wurden vor allem Anwendungen veröffentlicht.
|
||||
Das änderte sich schlagartig, als die CSRG von der Advanced
|
||||
Research Projects Agency (DARPA) den Auftrag bekam, deren
|
||||
Kommunikationsprotokolle (ARPANET) zu überarbeiten. Die
|
||||
neuen Protokolle wurden als <emphasis>Internet Protocols</emphasis>
|
||||
bezeichnet, und wurden später als <emphasis>TCP/IP</emphasis>
|
||||
weltbekannt. Die erste Implementierung dieser Protokolle erfolgte
|
||||
1982 als Teil von 4.2BSD.</para>
|
||||
neuen Protokolle wurden als <emphasis>Internet
|
||||
Protocols</emphasis> bezeichnet, und wurden später als
|
||||
<emphasis>TCP/IP</emphasis> weltbekannt. Die erste
|
||||
Implementierung dieser Protokolle erfolgte 1982 als Teil von
|
||||
4.2BSD.</para>
|
||||
|
||||
<para>Im Laufe der 80er Jahre entstanden einige neue Firmen, die
|
||||
Workstations vertrieben. Viele zogen es vor, &unix; zu
|
||||
|
@ -243,8 +245,9 @@
|
|||
<listitem>
|
||||
<para>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.</para>
|
||||
die Benutzung des Systems einfacher zu gestalten.
|
||||
Einsteiger sind bei Linux wahrscheinlich besser
|
||||
aufgehoben.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -254,8 +257,8 @@
|
|||
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 <quote>kürzlich</quote> eingestellt worden.</para>
|
||||
behauptete ein im Web publizierter Artikel, das Verfahren
|
||||
sei erst <quote>kürzlich</quote> eingestellt worden.</para>
|
||||
|
||||
<para>Bezüglich der Bezeichnung schaffte der
|
||||
Gerichtsprozess jedoch Klarheit: In den 80er Jahren war
|
||||
|
@ -312,12 +315,12 @@
|
|||
weiterentwickelt. Jedes Projekt unterhält einen
|
||||
öffentlich zugänglichen
|
||||
<emphasis>Quellcode-Baum</emphasis>, der mit dem <ulink
|
||||
url="http://www.cvshome.org/">Concurrent Versions System</ulink>
|
||||
(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 <quote>auszuchecken</quote> (mit anderen Worten, eine
|
||||
Kopie des System zu erhalten).</para>
|
||||
url="http://www.cvshome.org/">Concurrent Versions
|
||||
System</ulink> (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 <quote>auszuchecken</quote> (mit anderen Worten,
|
||||
eine Kopie des System zu erhalten).</para>
|
||||
|
||||
<para>Eine Vielzahl von Entwicklern trägt weltweit zur
|
||||
Verbesserung von BSD bei. Dabei werden drei Typen
|
||||
|
@ -328,8 +331,8 @@
|
|||
<para>Ein <firstterm>Contributor</firstterm> 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
|
||||
Bevor dieser Code in das System eingebracht wird, muss er
|
||||
von einem registrierten Entwickler, dem
|
||||
<emphasis>Committer</emphasis> geprüft werden.</para>
|
||||
</listitem>
|
||||
|
||||
|
@ -348,13 +351,13 @@
|
|||
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 <firstterm>backing out</firstterm>
|
||||
bezeichnet. Alle Committer werden durch eine E-Mail
|
||||
über die erfolgte Änderung informiert. Es ist
|
||||
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 <firstterm>backing
|
||||
out</firstterm> bezeichnet. Alle Committer werden durch
|
||||
eine E-Mail über die erfolgte Änderung informiert. Es ist
|
||||
daher nicht möglich, heimlich eine Änderung
|
||||
durchzuführen.</para>
|
||||
</listitem>
|
||||
|
@ -396,11 +399,11 @@
|
|||
|
||||
<listitem>
|
||||
<para>BSD-Projekte pflegen das komplette
|
||||
<quote>Betriebssystem</quote>, 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.</para>
|
||||
<quote>Betriebssystem</quote>, 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.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -408,8 +411,8 @@
|
|||
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
|
||||
Das FreeBSD-Repository wird beispielsweise etwa 100 Mal
|
||||
pro Tag verändert. Viele dieser Änderungen betreffen
|
||||
aber nur einen relativen kleinen Bereich von FreeBSD.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
|
@ -427,16 +430,15 @@
|
|||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Die Entwicklerversion hat das Suffix
|
||||
<firstterm>CURRENT</firstterm>. 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
|
||||
<quote>OpenBSD-current</quote>.
|
||||
Neue Entwicklungen werden zuerst in diesen Zweig
|
||||
eingefügt.</para>
|
||||
<firstterm>CURRENT</firstterm>. 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
|
||||
<quote>OpenBSD-current</quote>. Neue Entwicklungen werden
|
||||
zuerst in diesen Zweig eingefügt.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -446,22 +448,22 @@
|
|||
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
|
||||
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).</para>
|
||||
Ziffer, um gepatchte Releases zu kennzeichnen (etwa NetBSD
|
||||
1.4.2).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>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 <firstterm>STABLE</firstterm> 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.</para>
|
||||
<para>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 <firstterm>STABLE</firstterm>
|
||||
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.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
|
||||
|
@ -484,8 +486,8 @@
|
|||
<sect2>
|
||||
<title>Welche BSD-Versionen gibt es überhaupt?</title>
|
||||
|
||||
<para>Im Gegensatz zu den zahlreichen Linux-Distributionen gibt es
|
||||
nur vier große frei verfügbare BSDs. Jedes BSD-Projekt
|
||||
<para>Im Gegensatz zu den zahlreichen Linux-Distributionen gibt
|
||||
es nur vier große 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.</para>
|
||||
|
@ -494,7 +496,6 @@
|
|||
genau zu trennen, da die Unterschiede eher subtiler Natur
|
||||
sind:</para>
|
||||
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>FreeBSD will eine hohe Leistung erreichen, für
|
||||
|
@ -513,11 +514,11 @@
|
|||
<listitem>
|
||||
<para>Bei NetBSD ist Portabilität das oberste Ziel:
|
||||
<quote>Natürlich läuft NetBSD darauf</quote>.
|
||||
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.</para>
|
||||
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.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -534,12 +535,12 @@
|
|||
|
||||
<listitem>
|
||||
<para>Das Ziel von DragonFlyBSD ist eine hohe Leistung und
|
||||
Skalierbarkeit auf allen Systemen, vom Einzelplatzrechner bis
|
||||
hin zu riesigen Cluster-Systemen. DragonFlyBSD verfolgt dabei
|
||||
langfristig verschiedene technische Ziele, der Schwerpunkt der
|
||||
Entwicklung liegt aber auf der Bereitstellung einer
|
||||
SMP-fähigen Infrastruktur, die leicht zu verstehen, zu
|
||||
warten und weiterzuentwickeln ist.</para>
|
||||
Skalierbarkeit auf allen Systemen, vom Einzelplatzrechner
|
||||
bis hin zu riesigen Cluster-Systemen. DragonFlyBSD
|
||||
verfolgt dabei langfristig verschiedene technische Ziele,
|
||||
der Schwerpunkt der Entwicklung liegt aber auf der
|
||||
Bereitstellung einer SMP-fähigen Infrastruktur, die leicht
|
||||
zu verstehen, zu warten und weiterzuentwickeln ist.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
|
@ -553,12 +554,12 @@
|
|||
Betriebssystem. Es war zwar nicht Open Source,
|
||||
Quellcode-Lizenzen konnten aber relativ günstig
|
||||
erworben werden. Es wies viele Gemeinsamkeiten mit
|
||||
FreeBSD auf. Zwei Jahre, nachdem BSDi von Wind River Systems
|
||||
übernommen worden war, wurde die Entwicklung von BSD/OS
|
||||
als eigenständiges Produkt eingestellt. Zwar wird BSD/OS
|
||||
von Wind River noch unterstützt, eine aktive Weiterentwicklung
|
||||
erfolgt allerdings nur noch für das Embedded-Betriebssystem
|
||||
VxWorks.</para>
|
||||
FreeBSD auf. Zwei Jahre, nachdem BSDi von Wind River
|
||||
Systems übernommen worden war, wurde die Entwicklung von
|
||||
BSD/OS als eigenständiges Produkt eingestellt. Zwar wird
|
||||
BSD/OS von Wind River noch unterstützt, eine aktive
|
||||
Weiterentwicklung erfolgt allerdings nur noch für das
|
||||
Embedded-Betriebssystem VxWorks.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -609,10 +610,11 @@
|
|||
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
|
||||
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.</para>
|
||||
Rechner sind in der Praxis so gut wie nicht
|
||||
feststellbar.</para>
|
||||
|
||||
<para>Die <quote>Alles-aus-einer-Hand</quote>-Natur von BSD
|
||||
hat den Vorteil, dass Upgrades im Vergleich zu Linux häufig
|
||||
|
@ -643,12 +645,11 @@
|
|||
|
||||
<listitem>
|
||||
<para>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.</para>
|
||||
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.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -693,8 +694,10 @@
|
|||
|
||||
<para>Darüber hinaus finden sich auf den folgenden Seiten der
|
||||
einzelnen Projekte Firmen, die Supportleistungen anbieten:
|
||||
<ulink url="&url.base;/commercial/consult_bycat.html">FreeBSD</ulink>,
|
||||
<ulink url="http://www.netbsd.org/gallery/consultants.html">NetBSD</ulink>,
|
||||
<ulink
|
||||
url="&url.base;/commercial/consult_bycat.html">FreeBSD</ulink>,
|
||||
<ulink
|
||||
url="http://www.netbsd.org/gallery/consultants.html">NetBSD</ulink>,
|
||||
und <ulink url="http://www.openbsd.org/support.html">OpenBSD</ulink>.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
|
|
@ -38,24 +38,24 @@
|
|||
</articleinfo>
|
||||
|
||||
<para>FreeBSD wird oft für ein reines Server-Betriebssystem
|
||||
gehalten, obwohl es auch auf Desktoprechnern sehr gut einsetzbar ist.
|
||||
Falls Sie es auf einem Notebook einsetzen möchten, können
|
||||
Sie auch hier die Vorzüge von FreeBSD nutzen: Ein
|
||||
systematisches und stringentes Layout, einfache Administration und
|
||||
gehalten, obwohl es auch auf Desktoprechnern sehr gut einsetzbar
|
||||
ist. Falls Sie es auf einem Notebook einsetzen möchten, können
|
||||
Sie auch hier die Vorzüge von FreeBSD nutzen: Ein systematisches
|
||||
und stringentes Layout, einfache Administration und
|
||||
Aktualisierung, das Ports- und Packagesystem für die
|
||||
Softwareinstallation und vieles andere mehr. Weitere Vorzüge,
|
||||
wie lange Laufzeiten, Netzwerkperformance und gute Performance unter
|
||||
hoher Last sind natürlich auf einem Notebookrechner nicht ganz
|
||||
so wichtig. Auf Notebookrechnern können aber während der
|
||||
Softwareinstallation und vieles andere mehr. Weitere Vorzüge, wie
|
||||
lange Laufzeiten, Netzwerkperformance und gute Performance unter
|
||||
hoher Last sind natürlich auf einem Notebookrechner nicht ganz so
|
||||
wichtig. Auf Notebookrechnern können aber während der
|
||||
Installation Probleme auftreten, die bei Desktoprechnern nicht
|
||||
existieren und die daher hier diskutiert werden (Notebooks sind
|
||||
– anders als Desktoprechner – oft auf µsoft.windows;
|
||||
abgestimmt). In diesem Artikel sollen solche Probleme angesprochen
|
||||
werden. Einige Leute haben Ihre Erfahrungen mit dem Betrieb von
|
||||
&os; auf Notebooks auf eigenen Webseiten veröffentlicht, die
|
||||
nicht Teil der &os;-Dokumentation sind. Wenn Sie den Namen Ihres
|
||||
Notebooks zusammen mit <quote>&os;</quote> in der Suchmaschine
|
||||
Ihrer Wahl eingeben, ist es gut möglich, dass Sie
|
||||
– anders als Desktoprechner – oft auf
|
||||
µsoft.windows; abgestimmt). In diesem Artikel sollen solche
|
||||
Probleme angesprochen werden. Einige Leute haben Ihre Erfahrungen
|
||||
mit dem Betrieb von &os; auf Notebooks auf eigenen Webseiten
|
||||
veröffentlicht, die nicht Teil der &os;-Dokumentation sind. Wenn
|
||||
Sie den Namen Ihres Notebooks zusammen mit <quote>&os;</quote> in
|
||||
der Suchmaschine Ihrer Wahl eingeben, ist es gut möglich, dass Sie
|
||||
Informationen finden, die Ihnen weiterhelfen. Zusätzlich
|
||||
existiert eine &os;-spezifische Online-Datenbank unter <ulink
|
||||
url="http://laptop.bsdgroup.de/freebsd/">The &os; Laptop
|
||||
|
@ -80,12 +80,13 @@
|
|||
<para>Lesen Sie das Handbuch Ihres Notebooks, um herauszufinden,
|
||||
welche Grafikkarte (oder welcher Grafikchip) eingebaut wurde.
|
||||
Danach überprüfen Sie die
|
||||
<application>&xorg;</application>-Dokumentation, um festzustellen,
|
||||
ob Ihre Grafikkarte unterstützt wird. Ist dies nicht der
|
||||
Fall, verwenden Sie einen allgemeinen Treiber. Versuchen Sie
|
||||
nicht, einfach einen Treiber mit einem ähnlichen Namen zu
|
||||
verwenden. Mit <userinput>Xorg -configure</userinput> lassen sich
|
||||
viele Konfigurationsparameter automatisch einstellen.</para>
|
||||
<application>&xorg;</application>-Dokumentation, um
|
||||
festzustellen, ob Ihre Grafikkarte unterstützt wird. Ist dies
|
||||
nicht der Fall, verwenden Sie einen allgemeinen Treiber.
|
||||
Versuchen Sie nicht, einfach einen Treiber mit einem ähnlichen
|
||||
Namen zu verwenden. Mit <userinput>Xorg -configure</userinput>
|
||||
lassen sich viele Konfigurationsparameter automatisch
|
||||
einstellen.</para>
|
||||
|
||||
<para>Manchmal verursacht auch die Konfiguration des Displays
|
||||
Probleme. Die verfügbaren &xorg;-Ressourcen
|
||||
|
@ -95,12 +96,11 @@
|
|||
und Sie müssen keine Modelines angeben, da die einfache
|
||||
Angabe von horizontaler und vertikalen Wiederholrate ausreicht.
|
||||
Reichen diese Angaben nicht aus, sollten Sie im Internet nach
|
||||
Seiten suchen, die sich mit der Konfiguration von X auf Notebooks
|
||||
beschäftigen (diese beziehen sich zwar oft auf Linux, da
|
||||
allerdings sowohl &os; als auch Linux &xorg; verwenden, spielt
|
||||
dies keine Rolle). Von dort können Sie sich eine
|
||||
Modeline kopieren, die für ähnliche Hardware
|
||||
gültig ist.</para>
|
||||
Seiten suchen, die sich mit der Konfiguration von X auf
|
||||
Notebooks beschäftigen (diese beziehen sich zwar oft auf Linux,
|
||||
da allerdings sowohl &os; als auch Linux &xorg; verwenden,
|
||||
spielt dies keine Rolle). Von dort können Sie sich eine
|
||||
Modeline kopieren, die für ähnliche Hardware gültig ist.</para>
|
||||
|
||||
<para>Die meisten Notebooks haben zwei Maustasten, die unter X nur
|
||||
selten Probleme verursachen (abgesehen von der mittleren
|
||||
|
@ -127,13 +127,13 @@
|
|||
bereitzustellen). Besitzt Ihr Modem beispielsweise einen
|
||||
Lucent LT-Chipsatz, wird dieser wahrscheinlich vom
|
||||
<filename role="package">comms/ltmdm</filename>-Port
|
||||
unterstützt. Hat Ihr Notebook aber ein
|
||||
<quote>Winmodem</quote> eingebaut, müssen Sie sich ein
|
||||
externes Modem kaufen: Die kompakteste Lösung sind hier
|
||||
PCMCIA-Modems, die weiter unten besprochen werden. Serielle oder
|
||||
über USB angeschlossene Modems sind aber deutlich billiger.
|
||||
In der Regel sollten <quote>normale</quote> Modems (so genannte
|
||||
Non-Winmodems) problemlos funktionieren.</para>
|
||||
unterstützt. Hat Ihr Notebook aber ein <quote>Winmodem</quote>
|
||||
eingebaut, müssen Sie sich ein externes Modem kaufen: Die
|
||||
kompakteste Lösung sind hier PCMCIA-Modems, die weiter unten
|
||||
besprochen werden. Serielle oder über USB angeschlossene Modems
|
||||
sind aber deutlich billiger. In der Regel sollten
|
||||
<quote>normale</quote> Modems (so genannte Non-Winmodems)
|
||||
problemlos funktionieren.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="pcmcia">
|
||||
|
@ -143,29 +143,29 @@
|
|||
PC-Card-Slots. Diese werden von FreeBSD sehr gut
|
||||
unterstützt. Verwenden Sie &man.dmesg.8;, um festzustellen,
|
||||
ob die PCMCIA-Geräte beim Systemstart korrekt erkannt wurden.
|
||||
Ist dies der Fall, sollten Einträge ähnlich den
|
||||
folgenden auftauchen: <devicename>pccard0</devicename>,
|
||||
Ist dies der Fall, sollten Einträge ähnlich den folgenden
|
||||
auftauchen: <devicename>pccard0</devicename>,
|
||||
<devicename>pccard1</devicename> sowie Geräte wie
|
||||
<devicename>pcic0</devicename>.</para>
|
||||
|
||||
<para>&os; 4.X unterstützt nur 16-Bit PCMCIA-Karten,
|
||||
&os; 5.X unterstützt sowohl 16-Bit-Karten als auch
|
||||
32-Bit-Karten. Eine Liste der unterstützten Karten finden
|
||||
Sie in <filename>/etc/defaults/pccard.conf</filename>. Kaufen
|
||||
Sie möglichst nur Karten, die in dieser Liste aufgeführt
|
||||
sind. Ist Ihre Karte nicht aufgeführt, kann sie aber
|
||||
trotzdem funktionieren, da die meisten 16-Bit-Modems trotzdem
|
||||
unterstützt werden, vorausgesetzt, es handelt sich nicht um
|
||||
32-Bit-Karten. Eine Liste der unterstützten Karten finden Sie
|
||||
in <filename>/etc/defaults/pccard.conf</filename>. Kaufen Sie
|
||||
möglichst nur Karten, die in dieser Liste aufgeführt sind. Ist
|
||||
Ihre Karte nicht aufgeführt, kann sie aber trotzdem
|
||||
funktionieren, da die meisten 16-Bit-Modems trotzdem unterstützt
|
||||
werden, vorausgesetzt, es handelt sich nicht um
|
||||
<quote>Winmodems</quote> (diese gibt es auch bei PCMCIA-Karten,
|
||||
sie sollten daher beim Kauf der Karte aufpassen). Sollte Ihre
|
||||
Karte als generisches Modem (<foreignphrase>generic
|
||||
modem</foreignphrase>) erkannt werden, müssen Sie daran
|
||||
denken, dass in der Defaultkonfiguration von
|
||||
modem</foreignphrase>) erkannt werden, müssen Sie daran denken,
|
||||
dass in der Defaultkonfiguration von
|
||||
<filename>pccard.conf</filename> eine Verzögerung von
|
||||
10 Sekunden angegeben ist (dies verhindert das Einfrieren
|
||||
bestimmter Modems). Für Ihr Modem kann dieser Eintrag
|
||||
überflüssig sein, Sie sollten daher versuchen, die Zeit
|
||||
zu reduzieren oder die Zeile komplett zu entfernen.</para>
|
||||
überflüssig sein, Sie sollten daher versuchen, die Zeit zu
|
||||
reduzieren oder die Zeile komplett zu entfernen.</para>
|
||||
|
||||
<para>Einige Abschnitte der Datei <filename>pccard.conf</filename>
|
||||
müssen angepasst werden. Prüfen Sie die Zeile, in der
|
||||
|
@ -261,20 +261,20 @@
|
|||
dass nur einige oder keiner dieser Befehle
|
||||
funktionieren.</para>
|
||||
|
||||
<para>Vielleicht können Sie den Suspend-/Standby-Modus
|
||||
nur auf der Konsole aktivieren, aber nicht unter X
|
||||
(dann bleibe der Bildschirm nach dem Reaktivieren dunkel).
|
||||
Seit &os; 5.X könnte eine Lösung darin bestehen,
|
||||
die Zeile <literal>options SC_NO_SUSPEND_VTYSWITCH</literal> in
|
||||
die Kernel-Konfigurationsdatei aufzunehmen und den Kernel
|
||||
neu zu kompilieren. Eine andere Lösung wäre es, vor
|
||||
dem &man.apm.8;-Aufruf in den Konsolen-Modus zu wechseln, indem
|
||||
<para>Vielleicht können Sie den Suspend-/Standby-Modus nur auf
|
||||
der Konsole aktivieren, aber nicht unter X (dann bleibe der
|
||||
Bildschirm nach dem Reaktivieren dunkel). Seit &os; 5.X
|
||||
könnte eine Lösung darin bestehen, die Zeile <literal>options
|
||||
SC_NO_SUSPEND_VTYSWITCH</literal> in die
|
||||
Kernel-Konfigurationsdatei aufzunehmen und den Kernel neu zu
|
||||
kompilieren. Eine andere Lösung wäre es, vor dem
|
||||
&man.apm.8;-Aufruf in den Konsolen-Modus zu wechseln, indem
|
||||
die Tastenkombination <keycombo
|
||||
action="simul"><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F1</keycap></keycombo>
|
||||
oder eine andere Funktionstaste gedrückt wird. Dieser
|
||||
Vorgang kann mit &man.apmd.8; automatisiert werden, falls der
|
||||
&man.apmd.8;-Daemon läuft. Dazu fügen Sie die
|
||||
folgenden Abschnitte in <filename>/etc/apmd.conf</filename>
|
||||
oder eine andere Funktionstaste gedrückt wird. Dieser Vorgang
|
||||
kann mit &man.apmd.8; automatisiert werden, falls der
|
||||
&man.apmd.8;-Daemon läuft. Dazu fügen Sie die folgenden
|
||||
Abschnitte in <filename>/etc/apmd.conf</filename>
|
||||
ein:</para>
|
||||
|
||||
<programlisting>apm_event SUSPENDREQ {
|
||||
|
@ -312,13 +312,13 @@ apm_event NORMRESUME, STANDBYRESUME {
|
|||
kann sogar so weit kommen, dass &os; auf manchen Notebooks
|
||||
nicht startet, wenn ACPI aktiviert ist.</para>
|
||||
|
||||
<para>Sollte ACPI auf Ihrem Notebook Probleme verursachen, sollten
|
||||
Sie prüfen, ob der Hersteller Ihres Notebooks eine neuere
|
||||
BIOS-Version bereitstellt, in der die ACPI-Fehler behoben sind.
|
||||
Da die ACPI-Implementierung von &os; sich noch im
|
||||
Entwicklungsstatus befindet, könnten Sie auch Ihr System
|
||||
aktualisieren. Die Chancen stehen gut, dass sich Ihre Probleme
|
||||
damit beheben lassen.</para>
|
||||
<para>Sollte ACPI auf Ihrem Notebook Probleme verursachen,
|
||||
sollten Sie prüfen, ob der Hersteller Ihres Notebooks eine
|
||||
neuere BIOS-Version bereitstellt, in der die ACPI-Fehler
|
||||
behoben sind. Da die ACPI-Implementierung von &os; sich noch
|
||||
im Entwicklungsstatus befindet, könnten Sie auch Ihr System
|
||||
aktualisieren. Die Chancen stehen gut, dass sich Ihre
|
||||
Probleme damit beheben lassen.</para>
|
||||
|
||||
<para>Möchten Sie ACPI abschalten, bearbeiten Sie die
|
||||
Zeile <literal>hint.acpi.0.disabled="1"</literal> in
|
||||
|
|
|
@ -84,30 +84,29 @@ Copyright (c) 2005 Dru Lavigne
|
|||
<sect1 id="introduction">
|
||||
<title>Einleitung</title>
|
||||
|
||||
<para>&os; ist ein &unix;-ähnliches Betriebssystem, das auf
|
||||
der
|
||||
<para>&os; ist ein &unix;-ähnliches Betriebssystem, das auf der
|
||||
Berkeley Software Distribution (<acronym>BSD</acronym>)
|
||||
basiert. Während &os; und &linux; häufig als sehr
|
||||
ähnlich empfunden werden, gibt es doch Unterschiede:</para>
|
||||
basiert. Während &os; und &linux; häufig als sehr ähnlich
|
||||
empfunden werden, gibt es doch Unterschiede:</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>&linux; selbst ist ein Kernel. Distributionen (z.B.
|
||||
Red Hat, Debian, SUSE) stellen dem Benutzer ein
|
||||
Installationswerkzeug und Programme zur Verfügung. Auf
|
||||
der &linux;-Projektseite befindet sich eine <ulink
|
||||
Installationswerkzeug und Programme zur Verfügung. Auf der
|
||||
&linux;-Projektseite befindet sich eine <ulink
|
||||
url="http://www.linux.org/dist/">Auflistung verschiedener
|
||||
Distributionen</ulink> mit mehr als 300 Einträgen.
|
||||
Während dem Benutzer ein Höchstmaß an
|
||||
Flexibilität geboten wird, erhöht das Bestehen
|
||||
dieser Vielzahl an Distributionen auch die Schwierigkeit,
|
||||
die eigenen Kenntnisse von einer Distribution auf eine
|
||||
andere zu übertragen. Distributionen unterscheiden sich
|
||||
nicht nur in der Einfachheit der Installation und der zur
|
||||
Verfügung stehenden Programme, sie unterscheiden sich
|
||||
auch in der Verzeichnisstruktur, in den verfügbaren
|
||||
Shells und Window Managern sowie in den Vorgehensweisen
|
||||
bei der Installation und Aktualisierung von Software.</para>
|
||||
Während dem Benutzer ein Höchstmaß an Flexibilität geboten
|
||||
wird, erhöht das Bestehen dieser Vielzahl an Distributionen
|
||||
auch die Schwierigkeit, die eigenen Kenntnisse von einer
|
||||
Distribution auf eine andere zu übertragen. Distributionen
|
||||
unterscheiden sich nicht nur in der Einfachheit der
|
||||
Installation und der zur Verfügung stehenden Programme, sie
|
||||
unterscheiden sich auch in der Verzeichnisstruktur, in den
|
||||
verfügbaren Shells und Window Managern sowie in den
|
||||
Vorgehensweisen bei der Installation und Aktualisierung von
|
||||
Software.</para>
|
||||
|
||||
<para>&os; ist ein komplettes Betriebssystem (Kernel und
|
||||
Userland) mit einem hoch angesehenem Erbe, das bis in die
|
||||
|
@ -121,38 +120,36 @@ Copyright (c) 2005 Dru Lavigne
|
|||
zurückreicht. Da der Kernel und die bereitgestellten
|
||||
Programme unter der Aufsicht desselben
|
||||
Release Engineering Teams stehen, ist die
|
||||
Wahrscheinlichkeit gering, dass Inkompatibilitäten
|
||||
zwischen Bibliotheken auftreten. Mit Sicherheitslücken
|
||||
kann sich das Security Team zeitnah befassen. Wenn neue
|
||||
Programm- oder Kernel-Funktionen hinzugefügt werden,
|
||||
braucht der Benutzer nur die Release Notes lesen, die
|
||||
auf der <ulink url="&url.base;/">&os;-Projektseite</ulink>
|
||||
Wahrscheinlichkeit gering, dass Inkompatibilitäten zwischen
|
||||
Bibliotheken auftreten. Mit Sicherheitslücken kann sich das
|
||||
Security Team zeitnah befassen. Wenn neue Programm-
|
||||
oder Kernel-Funktionen hinzugefügt werden, braucht der
|
||||
Benutzer nur die Release Notes lesen, die auf der
|
||||
<ulink url="&url.base;/">&os;-Projektseite</ulink>
|
||||
veröffentlicht werden.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&os; verfügt über eine großen und gut
|
||||
organisierten Entwicklerstamm, der gewährleistet, dass
|
||||
Änderungen auf schnelle und geregelte Art und Weise
|
||||
durchgeführt werden. Dazu gehören mehrere tausend
|
||||
Entwickler, die regelmäßig Code beisteuern, von
|
||||
denen jedoch nur etwa 300 ein sogenanntes Commit Bit
|
||||
besitzen, das es ihnen erlaubt, direkt Änderungen am
|
||||
Kernel, den Programmen und der offiziellen Dokumentation
|
||||
durchzuführen. Das Release Engineering Team
|
||||
ist zuständig für die Qualitätssicherung und
|
||||
das Security Team für die Behandlung von
|
||||
Sicherheitsproblemen. Des Weiteren existiert eine
|
||||
<para>&os; verfügt über eine großen und gut organisierten
|
||||
Entwicklerstamm, der gewährleistet, dass Änderungen auf
|
||||
schnelle und geregelte Art und Weise durchgeführt werden.
|
||||
Dazu gehören mehrere tausend Entwickler, die regelmäßig Code
|
||||
beisteuern, von denen jedoch nur etwa 300 ein sogenanntes
|
||||
Commit Bit besitzen, das es ihnen erlaubt, direkt
|
||||
Änderungen am Kernel, den Programmen und der offiziellen
|
||||
Dokumentation durchzuführen. Das
|
||||
Release Engineering Team ist zuständig für die
|
||||
Qualitätssicherung und das Security Team für die Behandlung
|
||||
von Sicherheitsproblemen. Des Weiteren existiert eine
|
||||
gewählte Core Group, die aus
|
||||
8 Senior Committern besteht und die Gesamtleitung
|
||||
des Projekts übernimmt.</para>
|
||||
|
||||
<para>Im Gegensatz dazu müssen Änderungen am
|
||||
&linux;-Kernel erst vom Kernel Source Maintainer
|
||||
Linus Torvalds bewilligt werden. Wie Änderungen an
|
||||
Distributionen erfolgen, kann von Projekt zu Projekt stark
|
||||
variieren und ist abhängig von der Größe des
|
||||
jeweiligen Entwicklerstamms sowie dessen
|
||||
<para>Im Gegensatz dazu müssen Änderungen am &linux;-Kernel
|
||||
erst vom Kernel Source Maintainer Linus Torvalds
|
||||
bewilligt werden. Wie Änderungen an Distributionen erfolgen,
|
||||
kann von Projekt zu Projekt stark variieren und ist abhängig
|
||||
von der Größe des jeweiligen Entwicklerstamms sowie dessen
|
||||
Organisation.</para>
|
||||
</listitem>
|
||||
|
||||
|
@ -186,7 +183,7 @@ Copyright (c) 2005 Dru Lavigne
|
|||
und BSDL</ulink>, ohne Partei zu beziehen.</para>
|
||||
</footnote>
|
||||
|
||||
. Stabilen und sicheren Code unter die BSD-Lizenz zu stellen
|
||||
Stabilen und sicheren Code unter die BSD-Lizenz zu stellen
|
||||
ermöglicht, dass viele Betriebssysteme wie <ulink
|
||||
url="http://developer.apple.com/opensource/">Mac OS X</ulink>
|
||||
auf &os;-Code basieren. Daneben bedeutet die Nutzung von
|
||||
|
@ -268,8 +265,8 @@ Copyright (c) 2005 Dru Lavigne
|
|||
zur einfachen Installation bereit
|
||||
|
||||
<footnote>
|
||||
<para><ulink url="&url.base;/de/ports/">&os;-Ports</ulink>: Zur
|
||||
Installation von Software genügt ein einfaches
|
||||
<para><ulink url="&url.base;/de/ports/">&os;-Ports</ulink>:
|
||||
Zur Installation von Software genügt ein einfaches
|
||||
<command>pkg_add -r
|
||||
<replaceable>Paketname</replaceable></command></para>
|
||||
</footnote>
|
||||
|
@ -318,14 +315,13 @@ Copyright (c) 2005 Dru Lavigne
|
|||
<para>Netgraph ist ein baukastenartiges
|
||||
Netzwerkteilsystem, das verwendet werden kann, um die
|
||||
bestehende Netzwerkinfrastruktur des Kernels zu
|
||||
erweitern. Entwickler haben durch Hooks die
|
||||
Möglichkeit, eigene Komponenten abzuleiten.
|
||||
Infolgedessen gestaltet sich der kurzfristige Bau von
|
||||
Prototypen und die anschließende
|
||||
Produktionsentwicklung bei erweiterten Netzwerkdiensten
|
||||
viel einfacher und weniger fehleranfällig. Viele
|
||||
funktionsfähige Komponenten werden mit &os;
|
||||
mitgeliefert, die unter anderem Unterstützung
|
||||
erweitern. Entwickler haben durch Hooks die Möglichkeit,
|
||||
eigene Komponenten abzuleiten. Infolgedessen gestaltet
|
||||
sich der kurzfristige Bau von Prototypen und die
|
||||
anschließende Produktionsentwicklung bei erweiterten
|
||||
Netzwerkdiensten viel einfacher und weniger
|
||||
fehleranfällig. Viele funktionsfähige Komponenten werden
|
||||
mit &os; mitgeliefert, die unter anderem Unterstützung
|
||||
bieten für:</para>
|
||||
|
||||
<itemizedlist>
|
||||
|
@ -613,13 +609,12 @@ Copyright (c) 2005 Dru Lavigne
|
|||
url="&url.base;/doc/de_DE.ISO8859-1/books/handbook/eresources.html#ERESOURCES-MAIL">Mailinglisten</ulink>
|
||||
zu &os;. Der Nachrichtenverkehr wird archiviert und ist
|
||||
durchsuchbar. Falls eine Frage mit Hilfe des Handbuchs
|
||||
nicht beantwortet werden konnte, wurde sie mit
|
||||
größer Wahrscheinlichkeit schon auf einer der
|
||||
Mailinglisten beantwortet. Handbuch und Mailinglisten
|
||||
stehen in verschiedenen Sprachen zur Verfügung, die
|
||||
alle auf der Startseite des <ulink
|
||||
url="&url.base;/">&os; Projects</ulink>
|
||||
auswählbar sind.</para>
|
||||
nicht beantwortet werden konnte, wurde sie mit größer
|
||||
Wahrscheinlichkeit schon auf einer der Mailinglisten
|
||||
beantwortet. Handbuch und Mailinglisten stehen in
|
||||
verschiedenen Sprachen zur Verfügung, die alle auf der
|
||||
Startseite des <ulink url="&url.base;/">&os;
|
||||
Projects</ulink> auswählbar sind.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -665,16 +660,16 @@ Copyright (c) 2005 Dru Lavigne
|
|||
</itemizedlist>
|
||||
|
||||
<para>Es gibt außerdem die Initiative, eine Zertifizierung von
|
||||
BSD-Systemadministratoren anzubieten. Weitere Informationen dazu
|
||||
finden Sie unter <ulink
|
||||
BSD-Systemadministratoren anzubieten. Weitere Informationen
|
||||
dazu finden Sie unter <ulink
|
||||
url="http://www.bsdcertification.org"></ulink>.</para>
|
||||
|
||||
<para>Projekte, die eine Common Criteria-Zertifizierung
|
||||
benötigen, können die Hilfe von <ulink
|
||||
url="http://www.trustedbsd.org">TrustedBSD</ulink> in
|
||||
Anspruch nehmen, um (beispielsweise durch den Einsatz des
|
||||
&os; MAC Frameworks) diesen Prozess zu erleichtern.</para>
|
||||
</sect2>
|
||||
&os; MAC Frameworks) diesen Prozess zu
|
||||
erleichtern.</para> </sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="freebsd-advantages">
|
||||
|
|
|
@ -211,8 +211,8 @@
|
|||
<listitem>
|
||||
<para>Zeigt uns, wo wir uns befinden, gibt also das aktuelle
|
||||
Verzeichnis
|
||||
(<foreignphrase>working directory</foreignphrase>) aus.</para>
|
||||
</listitem>
|
||||
(<foreignphrase>working directory</foreignphrase>)
|
||||
aus.</para> </listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
|
@ -647,12 +647,12 @@
|
|||
als der DOS-Editor EDIT. Rufen Sie doch einmal das Kommando
|
||||
<command>:r</command> auf.) Drücken Sie die
|
||||
<keycap>Esc</keycap>-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 <command>:w</command>, und geben Sie
|
||||
<command>:q!</command> ein, um von vorne zu beginnen (genauer
|
||||
gesagt, vom letzten <command>:w</command>-Kommando), falls dies
|
||||
nötig sein sollte.</para>
|
||||
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 <command>:w</command>, und geben
|
||||
Sie <command>:q!</command> ein, um von vorne zu beginnen
|
||||
(genauer gesagt, vom letzten <command>:w</command>-Kommando),
|
||||
falls dies nötig sein sollte.</para>
|
||||
|
||||
<para>Danach können Sie mit <command>cd</command> nach
|
||||
<filename>/etc</filename> wechseln, mit <command>su</command>
|
||||
|
@ -674,10 +674,10 @@
|
|||
|
||||
<para>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 <command>man chmod</command> die entsprechende
|
||||
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 <command>man chmod</command> die entsprechende
|
||||
Manualpage auf. Der Befehl</para>
|
||||
|
||||
<informalexample>
|
||||
|
@ -703,8 +703,8 @@
|
|||
benötigen, werden Sie durch die Eingabe von
|
||||
<command>exit</command> wieder zu <username>jack</username>
|
||||
und wechseln dann in das Verzeichnis, in dem sich
|
||||
<filename>chmod.txt</filename> befindet, und kopieren diese Datei
|
||||
mit</para>
|
||||
<filename>chmod.txt</filename> befindet, und kopieren diese
|
||||
Datei mit</para>
|
||||
|
||||
<informalexample>
|
||||
<screen>&prompt.user; <userinput>cp chmod.txt /mnt</userinput></screen>
|
||||
|
@ -715,21 +715,22 @@
|
|||
<filename>/mnt</filename> an. Als Ergebnis sollten Sie
|
||||
<filename>chmod.txt</filename> erhalten.</para>
|
||||
|
||||
<para>Leiten Sie nun die Ausgabe von <command>/sbin/dmesg</command>
|
||||
in eine Datei um, indem Sie</para>
|
||||
<para>Leiten Sie nun die Ausgabe von
|
||||
<command>/sbin/dmesg</command> in eine Datei um, indem
|
||||
Sie</para>
|
||||
|
||||
<informalexample>
|
||||
<screen>&prompt.user; <userinput>/sbin/dmesg > dmesg.txt</userinput></screen>
|
||||
</informalexample>
|
||||
|
||||
<para>eingeben und diese Datei ebenfalls auf die Diskette kopieren.
|
||||
Mit <command>/sbin/dmesg</command> 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 <quote>FreeBSD erkennt
|
||||
mein Bandlaufwerk nicht, was soll ich tun?</quote>), wird man Sie
|
||||
<para>eingeben und diese Datei ebenfalls auf die Diskette
|
||||
kopieren. Mit <command>/sbin/dmesg</command> 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 <quote>FreeBSD erkennt mein
|
||||
Bandlaufwerk nicht, was soll ich tun?</quote>), wird man Sie
|
||||
fragen, was <command>dmesg</command> ausgibt.</para>
|
||||
|
||||
<para>Anschließend können Sie das Diskettenlaufwerk
|
||||
|
@ -876,19 +877,19 @@
|
|||
<sect1 id="next-steps">
|
||||
<title>Die nächsten Schritte</title>
|
||||
|
||||
<para>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 <ulink
|
||||
url="http://www.FreeBSD.org/index.html">FreeBSD Webseite</ulink>.
|
||||
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
|
||||
<para>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 <ulink
|
||||
url="http://www.FreeBSD.org/index.html">FreeBSD
|
||||
Webseite</ulink>. 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
|
||||
<command>pkg_add /cdrom/packages/All/<replaceable>Paketname</replaceable></command>,
|
||||
wobei <replaceable>Paketname</replaceable> für den
|
||||
Dateinamen des Paketes steht. Auf der CD-ROM finden Sie auch eine
|
||||
wobei <replaceable>Paketname</replaceable> 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
|
||||
<filename>cdrom/packages/index</filename>,
|
||||
|
@ -917,9 +918,9 @@
|
|||
</informalexample>
|
||||
|
||||
<para>Danach wird das Verzeichnis
|
||||
<filename>/usr/local/kermit</filename> angelegt, in dem sich alle
|
||||
Dateien des Unterverzeichnisses <filename>kermit</filename> der
|
||||
CD-ROM finden.</para>
|
||||
<filename>/usr/local/kermit</filename> angelegt, in dem sich
|
||||
alle Dateien des Unterverzeichnisses <filename>kermit</filename>
|
||||
der CD-ROM finden.</para>
|
||||
|
||||
<para>Danach legen Sie mit <command>mkdir</command>
|
||||
das Verzeichnis <filename>/usr/ports/distfiles</filename> an,
|
||||
|
@ -933,8 +934,8 @@
|
|||
|
||||
<para>Wechseln Sie nun mit <command>cd</command> nach
|
||||
<filename>/usr/local/kermit</filename>. In diesem Verzeichnis
|
||||
befindet sich bereits ein <filename>Makefile</filename>. Geben Sie
|
||||
hier Folgendes ein:</para>
|
||||
befindet sich bereits ein <filename>Makefile</filename>. Geben
|
||||
Sie hier Folgendes ein:</para>
|
||||
|
||||
<informalexample>
|
||||
<screen>&prompt.root; <userinput>make all install</userinput></screen>
|
||||
|
@ -947,25 +948,23 @@
|
|||
Falls Sie noch keine Internetverbindung haben und die
|
||||
benötigten Dateien nicht in
|
||||
<filename>/cdrom/ports/distfiles</filename> vorhanden sind,
|
||||
müssen Sie sich die Dateien über einem anderen Rechner
|
||||
besorgen und manuell nach <filename>/usr/ports/distfiles</filename>
|
||||
kopieren (entweder über eine Diskette oder durch das
|
||||
Einhängen einer DOS-Partition. Sehen Sie im
|
||||
<filename>Makefile</filename> (mit <command>cat</command>,
|
||||
<command>more</command> oder <command>view</command>) 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
|
||||
<filename>/usr/ports/distfiles</filename> kopiert wurde, den
|
||||
ursprünglichen Namen mit <command>mv</command>
|
||||
wiederherstellen, damit die Datei von der
|
||||
müssen Sie sich die Dateien über einem anderen Rechner besorgen
|
||||
und manuell nach <filename>/usr/ports/distfiles</filename>
|
||||
kopieren (entweder über eine Diskette oder durch das Einhängen
|
||||
einer DOS-Partition. Sehen Sie im <filename>Makefile</filename>
|
||||
(mit <command>cat</command>, <command>more</command> oder
|
||||
<command>view</command>) 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 <filename>/usr/ports/distfiles</filename>
|
||||
kopiert wurde, den ursprünglichen Namen mit
|
||||
<command>mv</command> 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
|
||||
<filename>/usr/local/kermit</filename> (hier befindet sich ja
|
||||
das zur Installation nötige <filename>Makefile</filename>)
|
||||
und installieren das Programm mit
|
||||
mit FTP herunter, müssen Sie den Binär-Modus verwenden. Nun
|
||||
wechseln Sie zurück nach <filename>/usr/local/kermit</filename>
|
||||
(hier befindet sich ja das zur Installation nötige
|
||||
<filename>Makefile</filename>) und installieren das Programm mit
|
||||
<command>make all install</command>.</para>
|
||||
|
||||
<para>Beim Installieren von Ports oder Paketen kann es auch
|
||||
|
@ -1163,23 +1162,22 @@ setenv XNLSPATH /usr/X11R6/lib/X11/nls</programlisting>
|
|||
<sect1 id="other">
|
||||
<title>Einige abschließende Bemerkungen</title>
|
||||
|
||||
<para>Als <username>root</username> können Sie das
|
||||
CD-ROM-Laufwerk mit <command>/sbin/umount /cdrom</command>
|
||||
abhängen, eine andere CD-ROM einlegen und mit
|
||||
<command>/sbin/mount_cd9660 /dev/cd0a /cdrom</command> wieder
|
||||
einhängen (falls <hardware>cd0a</hardware> der Devicename
|
||||
Ihres CD-ROM-Laufwerkes ist). Bei neueren FreeBSD-Versionen
|
||||
muss dafür nur <command>/sbin/mount /cdrom</command>
|
||||
eingegeben werden.</para>
|
||||
<para>Als <username>root</username> können Sie das CD-ROM-Laufwerk
|
||||
mit <command>/sbin/umount /cdrom</command> abhängen, eine andere
|
||||
CD-ROM einlegen und mit <command>/sbin/mount_cd9660 /dev/cd0a
|
||||
/cdrom</command> wieder einhängen (falls
|
||||
<hardware>cd0a</hardware> der Devicename Ihres CD-ROM-Laufwerkes
|
||||
ist). Bei neueren FreeBSD-Versionen muss dafür nur
|
||||
<command>/sbin/mount /cdrom</command> eingegeben werden.</para>
|
||||
|
||||
<para>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
|
||||
<para>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
|
||||
<command>lndir</command> vorhanden sein, damit diese Programme
|
||||
wissen, wo sie die von ihnen benötigten Dateien finden, da
|
||||
sich diese unter <filename>/cdrom</filename> und nicht unter
|
||||
wissen, wo sie die von ihnen benötigten Dateien finden, da sich
|
||||
diese unter <filename>/cdrom</filename> und nicht unter
|
||||
<filename>/usr</filename> und den entsprechenden
|
||||
Unterverzeichnissen befinden, wie es diese Programme erwarten.
|
||||
Lesen Sie dazu auch &man.lndir.1;.</para>
|
||||
|
|
22
de_DE.ISO8859-1/articles/port-mentor-guidelines/Makefile
Normal file
22
de_DE.ISO8859-1/articles/port-mentor-guidelines/Makefile
Normal file
|
@ -0,0 +1,22 @@
|
|||
#
|
||||
# The FreeBSD Documentation Project
|
||||
# The FreeBSD German Documentation Project
|
||||
#
|
||||
# $FreeBSD$
|
||||
# basiert auf: r39631
|
||||
#
|
||||
# Article: Port Mentor Guidelines
|
||||
#
|
||||
|
||||
DOC?= article
|
||||
|
||||
FORMATS?= html
|
||||
WITH_ARTICLE_TOC?= YES
|
||||
|
||||
INSTALL_COMPRESSED?= gz
|
||||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
SRCS= article.xml
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
266
de_DE.ISO8859-1/articles/port-mentor-guidelines/article.xml
Normal file
266
de_DE.ISO8859-1/articles/port-mentor-guidelines/article.xml
Normal file
|
@ -0,0 +1,266 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.5-Based Extension//EN"
|
||||
"../../../share/xml/freebsd45.dtd">
|
||||
|
||||
<!-- The FreeBSD Documentation Project
|
||||
The FreeBSD German Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
basiert auf: r396332
|
||||
-->
|
||||
|
||||
<article lang="en">
|
||||
<articleinfo>
|
||||
<title>Richtlinien für Port-Mentoren</title>
|
||||
|
||||
<authorgroup>
|
||||
<corpauthor>Das &os; Ports-Management Team</corpauthor>
|
||||
</authorgroup>
|
||||
|
||||
<pubdate>$FreeBSD$</pubdate>
|
||||
|
||||
<releaseinfo>$FreeBSD$</releaseinfo>
|
||||
|
||||
<copyright>
|
||||
<year>2011</year>
|
||||
<holder role="mailto:tabthorpe@FreeBSD.org">Thomas
|
||||
Abthorpe</holder>
|
||||
<holder role="mailto:crees@FreeBSD.org">Chris Rees</holder>
|
||||
</copyright>
|
||||
</articleinfo>
|
||||
|
||||
<sect1 id="port-mentor.guidelines">
|
||||
<title>Richtlinien für Mentor/Mentee Beziehungen</title>
|
||||
|
||||
<para>Dieser Abschnitt soll dazu dienen, den Mythos des
|
||||
Mentoringprozesses zu entzaubern und gleichzeitig einen offenen
|
||||
Dialog zu führen, um diese Richtlinien anzupassen und zu
|
||||
erweitern. Es gibt bereits sehr viele Regeln in unserem Leben
|
||||
und wir sind auch keine Regierungsorganisation, die Gesetze
|
||||
aufzwingt. Stattdessen verstehen wir uns als eine Gemeinschaft
|
||||
von gleichgesinnten Individuen, die an einem gemeinsamen Ziel
|
||||
arbeiten, um die Qualitätsansprüche an das Produkt,
|
||||
welches als Portbaum bekannt ist, zu gewährleisten.</para>
|
||||
|
||||
<sect2 id="why.mentor">
|
||||
<title>Warum Mentor sein?</title>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Die meisten von uns kamen durch die Hife eines Mentors
|
||||
in das Projekt hinein. Also sollte man jemand anderem auch
|
||||
diesen Gefallen tun.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Sie haben das unwiderstehliche Bedürfnis, anderen
|
||||
Ihr Wissen mitzuteilen.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Die übliche Bestrafung wird angewendet, da Sie es
|
||||
mittlerweile Leid sind, die gute Arbeit von anderen Leuten
|
||||
zu committen.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="mentor.comentor">
|
||||
<title>Mentor/Mit-Mentor</title>
|
||||
|
||||
<para>Gründe für eine Mit-Mentorenschaft:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Signifikanter Zeitzonenunterschied. Verfügbare
|
||||
Mentoren, mit denen man interaktiv Dinge via Instant
|
||||
Messenger besprechen kann, sind extrem hilfreich.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Potentielle Sprachbarriere. Ja, &os; ist, wie die
|
||||
meiste Softwareentwicklung auch, sehr Englisch-orientiert.
|
||||
Jedoch kann ein Mentor, der die eigene Sprache spricht,
|
||||
hilfreich sein.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>ENOTIME! Solange es keinen 30-Stunden Tag und eine
|
||||
8-Tage Woche gibt, haben manche von uns nur eine begrenzte
|
||||
Menge Zeit zur Verfügung. Diese Last mit jemandem zu
|
||||
teilen macht die Sache einfacher.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Ein Mentor-Neuling kann von den Erfahrungen eines
|
||||
erfahrenen Committers bzw. Mentors profitieren.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Zwei Köpfe sind besser als einer allein.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Gründe für einen Einzelmentor:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Sie arbeiten nicht so gut mit anderen zusammen.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Sie bevorzugen eine 1:1-Beziehung.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Die Gründe für die Mit-Mentorenschaft
|
||||
treffen auf Sie nicht zu.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="mentor.expectations">
|
||||
<title>Erwartungen</title>
|
||||
|
||||
<para>Wir erwarten, dass Mentoren alle vorgeschlagenen Patche,
|
||||
zumindest für einen Anfangszeitraum, welcher mehr als
|
||||
eine oder zwei Wochen dauert, prüfen und testweise bauen
|
||||
sollten.</para>
|
||||
|
||||
<para>Wir erwarten, dass Mentoren die Verantwortung für die
|
||||
Aktionen Ihres Mentees übernehmen. Ein Mentor sollte
|
||||
hinter den Commits des Mentees stehen, sowohl implizit als
|
||||
auch explizit.</para>
|
||||
|
||||
<para>Wir erwarten, dass Mentoren ihre Mentees die Lektüre
|
||||
des <ulink url="&url.books.porters-handbook;">Handbuch
|
||||
für Ports Committer</ulink>, die <ulink
|
||||
url="&url.articles.pr-guidelines;">PR-Richtlinien</ulink> sowie
|
||||
den <ulink url="&url.articles.committers-guide;">Committer's
|
||||
Guide</ulink> empfehlen. Obwohl es nicht notwendig ist, all
|
||||
diese Details im Gedächtnis zu behalten, sollte jeder
|
||||
Committer einen Überblick über diese Dinge haben, um
|
||||
ein effizienter Teil der Gemeinschaft zu sein (und um
|
||||
Anfängerfehler so weit wie möglich zu vermeiden).</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="mentees">
|
||||
<title>Auswahl eines Mentees</title>
|
||||
|
||||
<para>Es existiert keine definierte Regel, die festlegt, dass
|
||||
ein Kandidat bereit ist. Es kann eine Kombination der Anzahl
|
||||
von PRs sein, die an <application>GNATS</application>
|
||||
geschickt wurden, die Anzahl an Ports, die von dieser Person
|
||||
gepflegt werden, die Häfigkeit von Ports-Aktualisierungen
|
||||
bzw. die Menge von Beteiligungen in einem bestimmten Bereich,
|
||||
z.B. <application>GNOME</application>,
|
||||
<application>KDE</application>,
|
||||
<application>Gecko</application> oder andere.</para>
|
||||
|
||||
<para>Ein Kandidat sollte fasst keine Auszeiten haben, auf
|
||||
Anfragen antworten und generell sehr hilfreich in der
|
||||
Unterstützung seiner Ports sein.</para>
|
||||
|
||||
<para>Es sollte eine Historie von Einsatzbereitschaft vorliegen,
|
||||
da es bekanntermassen Zeit und Aufwand benötigt, um einen
|
||||
Committer zu trainieren. Falls jemand schon längere Zeit
|
||||
dabei ist und Zeit damit verbringt, zu beobachten, wie die
|
||||
Dinge funktionieren, ergibt sich eine Erwartungshaltung von
|
||||
angehäuftem Wissen. Viel zu oft schon haben wir
|
||||
beobachten müssen, dass jemand viele PRs schickt, um
|
||||
anschliessend im IRC aufzutauchen um zu fragen, wann das
|
||||
Commit-Bit gewährt wird.</para>
|
||||
|
||||
<para>Eine Mailingliste abonniert zu haben und dieser zu folgen
|
||||
ist vorteilhaft. Es gibt keine echte Erwartungshaltung, dass
|
||||
durch das schreiben auf einer Mailingliste jemand zum
|
||||
Committer wird, doch es zeigt dennoch die Bereitschaft. Manche
|
||||
Mails bieten Einsichten in das Wissen eines Kandidaten
|
||||
genauso, wie gut jemand mit anderen interagiert. Gleichfalls
|
||||
kann durch Teilnahme im IRC jemand ein höheres Ansehen
|
||||
erhalten.</para>
|
||||
|
||||
<para>Fragen Sie sechs verschiedene Committer, wieviele PRs
|
||||
jemand vor seiner Nominierung einschicken sollte und Sie
|
||||
erhalten sechs verschiedene Antworten. Fragen Sie diese
|
||||
Individuen wie lange jemand schon etwas beigetragen haben
|
||||
sollte, ergibt sich das gleiche Dilemma. Wieviele Ports sollte
|
||||
jemand als Minimum betreuen? Jetzt haben wir wirklich eine
|
||||
Diskussion ausgelöst! Manche Dinge sind einfach schwer als
|
||||
Mengen abzubilden, also muss ein Mentor eine Einschätzung
|
||||
machen und hoffen, dass portmgr zustimmt.</para>
|
||||
|
||||
</sect2>
|
||||
<sect2 id="mentorship.duration">
|
||||
<title>Dauer der Mentorenschaft</title>
|
||||
|
||||
<para>Mit der Zeit wird das Vertrauen in jemanden wachsen und
|
||||
der Mentee wird <quote>implizite</quote> Commitrechte
|
||||
erhalten. Dies kann triviale Änderungen für
|
||||
<filename>Makefile</filename>, <filename>pkg-descr</filename>
|
||||
und andere Dateien beinhalten. Genauso kann dies
|
||||
Aktualisierungen der <makevar>PORTVERSION</makevar>, die keine
|
||||
<makevar>plist</makevar>-Änderungen sind, betreffen.
|
||||
Andere Umstände können nach Gutdünken des
|
||||
Mentors formuliert werden. Allerdings sollten
|
||||
Versionsänderungen bei Ports, die andere Ports betreffen,
|
||||
vorher von einem Mentor geprüft werden.</para>
|
||||
|
||||
<para>Genauso wie wir alle verschiedene Individuen sind, besitzt
|
||||
jeder Mentee unterschiedliche Lernkurven, Zeitinvestitionen
|
||||
und andere Einflussfaktoren, die zu der Zeit beitragen, bevor
|
||||
jemand <quote>allein fliegt</quote>. Empirisch sollte ein
|
||||
Mentee für mindestens 3 Monate beobachtet werden. 90-100
|
||||
Commits ist ein weiteres Ziel, dass ein Mentor nutzen kann,
|
||||
bevor jemand als Mentee entlassen wird. Andere Faktoren, die
|
||||
man vor der Freilassung seines Mentees berücksichtigen
|
||||
sollte, ist die Anzahl der gemachten Fehler, die erhaltenen
|
||||
QATs, usw. Falls immer noch Fehler gemacht werden, ist die
|
||||
Betreuung durch einen Mentor weiterhin notwendig.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="mentor.comentor.debate">
|
||||
<title>Mentor/Mit-Mentor Debatten</title>
|
||||
|
||||
<para>Wenn eine Anfrage an portmgr geht, sieht dies
|
||||
normalerweise so aus: <quote>I propose 'foo' for a ports
|
||||
commit bit, I will co-mentor with 'bar'</quote>. Anfrage wurde
|
||||
erhalten, abgestimmt und die Entscheidung wird
|
||||
getragen.</para>
|
||||
|
||||
<para>Der Mentor ist die primäre Kontaktperson, oder
|
||||
zumindest der <quote>erste unter gleichgestellten</quote>, der
|
||||
Co-Mentor dient als Absicherung.</para>
|
||||
|
||||
<para>Mancher Schurke, dessen Name hier nicht genannt werden
|
||||
soll, machte den <ulink
|
||||
url="http://lists.freebsd.org/pipermail/cvs-ports/2007-September/134614.html">
|
||||
ersten aufgezeichneten Mit-Mentoren Commit</ulink>. Es wurden
|
||||
auch schon Mit-Mentoren commits im src-Baum beobachtet. Macht
|
||||
dieses Vorgehen die Sache richtig? Ist es falsch? Es scheint
|
||||
Teil dessen zu sein, wie die Dinge sich entwickeln.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="mentee.expectations">
|
||||
<title>Erwartungen</title>
|
||||
|
||||
<para>Wir erwarten von Mentees, dass diese für konstruktive
|
||||
Kritik aus der Gemeinschaft offen sind. Es gibt immer noch
|
||||
viel <quote>Wissen</quote>, welches nicht geschrieben steht.
|
||||
Richtig auf konstruktive Kritik zu antworten ist was wir
|
||||
hoffen zu erkennen, wenn wir jemanden anhand seiner
|
||||
Beiträge im IRC und auf den Mailinglisten
|
||||
auswählen.</para>
|
||||
|
||||
<para>Wir warnen Mentees davor, dass manche Kritik, die sie
|
||||
erhalten werden, weniger <quote>konstruktiv</quote> als andere
|
||||
sein wird (egal ob durch Verständigungsprobleme, die
|
||||
durch die Sprache bedingt sind oder durch Pingeligkeit). Mit
|
||||
dieser Art von Kritik kultiviert umzugehen ist auch Teil
|
||||
davon, einer grossen Gemeinschaft anzugehören. Bei
|
||||
spezifischen Problemen mit bestimmten Leuten oder falls fragen
|
||||
aufkommen, hoffen wir dass diese sich an ein Mitglied von
|
||||
portmgr wenden, entweder via IRC oder per eMail.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</article>
|
|
@ -72,22 +72,26 @@
|
|||
<para>Dieser Artikel behandelt die Verwendung von Solid State Festplatten
|
||||
in &os;, um eingebettete Systeme zu erstellen.</para>
|
||||
|
||||
<para>Eingebettete Systeme haben den Vorteil, dass sie eine höhere
|
||||
Stabilität aufgrund des fehlens von beweglichen Bauteilen
|
||||
(Festplatten) besitzen. Es muss jedoch beachtet werden, dass generell
|
||||
weniger Speicherplatz zur Verfügung steht und die Lebensdauer des
|
||||
Speichermediums geringer ist.</para>
|
||||
<para>Eingebettete Systeme haben den Vorteil, dass sie eine
|
||||
höhere Stabilität aufgrund des fehlens von beweglichen
|
||||
Bauteilen (Festplatten) besitzen. Es muss jedoch beachtet
|
||||
werden, dass generell weniger Speicherplatz zur Verfügung
|
||||
steht und die Lebensdauer des Speichermediums geringer
|
||||
ist.</para>
|
||||
|
||||
<para>Spezielle Themen die behandelt werden beinhalten die Typen und
|
||||
Attribute von Solid State Datenträgern, die in &os; verwendet
|
||||
werden, Kernel-Optionen die in solch einer Umgebung von Interesse sind,
|
||||
der <filename>rc.initdiskless</filename>-Mechanismus, welcher die
|
||||
Initalisierung solcher Systeme automatisiert, sowie die Notwendigkeit
|
||||
von Nur-Lese-Dateisystemen und das Erstellen von Dateisystemen von
|
||||
Grund auf. Der Artikel schliesst mit ein paar generellen Strategien
|
||||
für kleine und Nur-Lese-&os; Umgebungen.</para>
|
||||
<para>Spezielle Themen die behandelt werden beinhalten die Typen
|
||||
und Attribute von Solid State Datenträgern, die in &os;
|
||||
verwendet werden, Kernel-Optionen die in solch einer Umgebung
|
||||
von Interesse sind, der
|
||||
<filename>rc.initdiskless</filename>-Mechanismus, welcher die
|
||||
Initalisierung solcher Systeme automatisiert, sowie die
|
||||
Notwendigkeit von Nur-Lese-Dateisystemen und das Erstellen von
|
||||
Dateisystemen von Grund auf. Der Artikel schliesst mit ein
|
||||
paar generellen Strategien für kleine und Nur-Lese-&os;
|
||||
Umgebungen.</para>
|
||||
|
||||
<para><emphasis>Übersetzt von Benedict Reuschling</emphasis>.</para>
|
||||
<para><emphasis>Übersetzt von Benedict
|
||||
Reuschling</emphasis>.</para>
|
||||
</abstract>
|
||||
</articleinfo>
|
||||
|
||||
|
@ -95,39 +99,42 @@
|
|||
<title>Solid State Festplattengeräte</title>
|
||||
|
||||
<para>Der Umfang des Artikels ist auf Solid State Geräte
|
||||
beschränkt, die auf Flash-Speicher basieren. Flash-Speicher ist ein
|
||||
Solid State Speicher (keine beweglichen Teile), der nicht flüchtig
|
||||
ist (der Speicher behält die Daten sogar nachdem alle Energiequellen
|
||||
ausgeschaltet wurden). Flash-Speicher kann grossen physischen Schock
|
||||
aushalten und ist vergleichsweise schnell (die Flash-Speicher
|
||||
Lösungen, die in diesem Artikel behandelt werden, sind nur wenig
|
||||
langsamer als eine EIDE-Festplatte in der Schreibgeschwindigkeit und viel
|
||||
schneller bei Lese-Operationen). Ein sehr wichtiger Aspekt von
|
||||
beschränkt, die auf Flash-Speicher basieren. Flash-Speicher ist
|
||||
ein Solid State Speicher (keine beweglichen Teile), der nicht
|
||||
flüchtig ist (der Speicher behält die Daten sogar nachdem alle
|
||||
Energiequellen ausgeschaltet wurden). Flash-Speicher kann
|
||||
grossen physischen Schock aushalten und ist vergleichsweise
|
||||
schnell (die Flash-Speicher Lösungen, die in diesem Artikel
|
||||
behandelt werden, sind nur wenig langsamer als eine
|
||||
EIDE-Festplatte in der Schreibgeschwindigkeit und viel schneller
|
||||
bei Lese-Operationen). Ein sehr wichtiger Aspekt von
|
||||
Flash-Speichern, dessen Auswirkungen später in diesem Artikel
|
||||
diskutiert werden, ist, dass jeder Sektor eine begrenzte Kapazität
|
||||
zur Wiederbeschreibung besitzt. Man kann nur eine bestimmte Anzahl von
|
||||
Schreib-, Lösch- und Wiederbeschreibungsvorgängen
|
||||
durchführen, bevor der Sektor permanent unbrauchbar wird. Obwohl
|
||||
viele Flash-Speicher Produkte automatisch schlechte Blöcke markieren
|
||||
und manche Geräte Schreiboperationen gleichmässig verteilen,
|
||||
bleibt weiterhin die Anzahl der durchführbaren Schreibvorgänge
|
||||
begrenzt. Verschiedene Geräteeinheiten besitzen zwischen 1,000,000
|
||||
und 10,000,000 Schreibzyklen pro Sektor in ihren Spezifikationen. Diese
|
||||
Zahlen variieren aufgrund der Umgebungstemperatur.</para>
|
||||
diskutiert werden, ist, dass jeder Sektor eine begrenzte
|
||||
Kapazität zur Wiederbeschreibung besitzt. Man kann nur eine
|
||||
bestimmte Anzahl von Schreib-, Lösch- und
|
||||
Wiederbeschreibungsvorgängen durchführen, bevor der Sektor
|
||||
permanent unbrauchbar wird. Obwohl viele Flash-Speicher
|
||||
Produkte automatisch schlechte Blöcke markieren und manche
|
||||
Geräte Schreiboperationen gleichmässig verteilen, bleibt
|
||||
weiterhin die Anzahl der durchführbaren Schreibvorgänge
|
||||
begrenzt. Verschiedene Geräteeinheiten besitzen zwischen
|
||||
1,000,000 und 10,000,000 Schreibzyklen pro Sektor in ihren
|
||||
Spezifikationen. Diese Zahlen variieren aufgrund der
|
||||
Umgebungstemperatur.</para>
|
||||
|
||||
<para>Im Speziellen werden wir ATA-kompatible Compact-Flash-Karten
|
||||
betrachten, welche als Speichermedien für Digitalkameras ziemlich
|
||||
populär sind. Von besonderem Interesse ist der Umstand, dass diese
|
||||
direkt an den IDE-Bus angeschlossen werden und kompatibel zu den
|
||||
ATA-Befehlen sind. Aus diesem Grund können diese Geräte mit
|
||||
einem einfachen und billigen Adapter direkt an den IDE-Bus eines
|
||||
Computers angeschlossen werden. Auf diese Weise sehen Betriebssysteme
|
||||
wie &os; diese Geräte dann als normale (wenn auch sehr kleine)
|
||||
Festplatten an.</para>
|
||||
betrachten, welche als Speichermedien für Digitalkameras
|
||||
ziemlich populär sind. Von besonderem Interesse ist der
|
||||
Umstand, dass diese direkt an den IDE-Bus angeschlossen werden
|
||||
und kompatibel zu den ATA-Befehlen sind. Aus diesem Grund
|
||||
können diese Geräte mit einem einfachen und billigen Adapter
|
||||
direkt an den IDE-Bus eines Computers angeschlossen werden. Auf
|
||||
diese Weise sehen Betriebssysteme wie &os; diese Geräte dann als
|
||||
normale (wenn auch sehr kleine) Festplatten an.</para>
|
||||
|
||||
<para>Andere Solid State Plattenlösungen existieren, jedoch platzieren
|
||||
deren Kosten, Obskurität und ihre Unhandlichkeit sie aussserhalb
|
||||
des Umfangs dieses Artikels.</para>
|
||||
<para>Andere Solid State Plattenlösungen existieren, jedoch
|
||||
platzieren deren Kosten, Obskurität und ihre Unhandlichkeit sie
|
||||
aussserhalb des Umfangs dieses Artikels.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="kernel">
|
||||
|
@ -137,17 +144,18 @@
|
|||
diejenigen, welche diese eingebetteten &os;-Systeme erstellen
|
||||
möchten.</para>
|
||||
|
||||
<para>Alle eingebetteten &os;-Systeme, die Flash-Speicher als Systemplatte
|
||||
verwenden, sind interessant für Dateisysteme im Hauptspeicher und
|
||||
RAM-Disks. Wegen der begrenzten Anzahl von Schreibzyklen, die auf
|
||||
Flash-Speicher durchgeführt werden können, werden die Platte
|
||||
und die Dateisysteme darauf mit grosser Wahrscheinlichkeit nur lesend
|
||||
eingehängt werden. In dieser Umgebung werden Dateisysteme wie
|
||||
<filename>/tmp</filename> und <filename>/var</filename> als RAM-Disks
|
||||
eingebunden, um dem System zu erlauben, Logdateien anzulegen und
|
||||
Zähler sowie temporäre Dateien zu aktualisieren. RAM-Disks
|
||||
sind eine kritische Komponente für eine erfolgreiche Solid State
|
||||
Umsetzung in &os;.</para>
|
||||
<para>Alle eingebetteten &os;-Systeme, die Flash-Speicher als
|
||||
Systemplatte verwenden, sind interessant für Dateisysteme im
|
||||
Hauptspeicher und RAM-Disks. Wegen der begrenzten Anzahl von
|
||||
Schreibzyklen, die auf Flash-Speicher durchgeführt werden
|
||||
können, werden die Platte und die Dateisysteme darauf mit
|
||||
grosser Wahrscheinlichkeit nur lesend eingehängt werden. In
|
||||
dieser Umgebung werden Dateisysteme wie
|
||||
<filename>/tmp</filename> und <filename>/var</filename> als
|
||||
RAM-Disks eingebunden, um dem System zu erlauben, Logdateien
|
||||
anzulegen und Zähler sowie temporäre Dateien zu aktualisieren.
|
||||
RAM-Disks sind eine kritische Komponente für eine erfolgreiche
|
||||
Solid State Umsetzung in &os;.</para>
|
||||
|
||||
<para>Sie sollten dafür sorgen, dass die folgenden Zeilen in Ihrer
|
||||
Kernelkonfigurationsdatei vorhanden sind:</para>
|
||||
|
@ -166,55 +174,58 @@ pseudo-device md # memory disk</programlisting>
|
|||
kontrolliert.</para>
|
||||
|
||||
<para><filename>/etc/rc.d/var</filename> hängt
|
||||
<filename>/var</filename> als RAM-Disk ein, erstellt eine konfigurierbare
|
||||
Liste von Verzeichnissen in <filename>/var</filename> mittels des
|
||||
&man.mkdir.1;-Kommandos und ändert die Attribute von ein paar dieser
|
||||
Verzeichnisse. Bei der Ausführung von
|
||||
<filename>/etc/rc.d/var</filename> kommt eine andere
|
||||
<filename>rc.conf</filename>-Variable ins Spiel:
|
||||
<filename>/var</filename> als RAM-Disk ein, erstellt eine
|
||||
konfigurierbare Liste von Verzeichnissen in
|
||||
<filename>/var</filename> mittels des &man.mkdir.1;-Kommandos
|
||||
und ändert die Attribute von ein paar dieser Verzeichnisse. Bei
|
||||
der Ausführung von <filename>/etc/rc.d/var</filename> kommt eine
|
||||
andere <filename>rc.conf</filename>-Variable ins Spiel:
|
||||
<literal>varsize</literal>. Die Datei <filename>/etc/rc.d/var</filename>
|
||||
erstellt eine <filename>/var</filename>-Partition basierend auf dem Wert
|
||||
dieser Variable in <filename>rc.conf</filename>:</para>
|
||||
erstellt eine <filename>/var</filename>-Partition basierend auf
|
||||
dem Wert dieser Variable in <filename>rc.conf</filename>:</para>
|
||||
|
||||
<programlisting>varsize=8192</programlisting>
|
||||
|
||||
<para>Standardmässig wird dieser Wert in Sektoren angegeben.</para>
|
||||
<para>Standardmässig wird dieser Wert in Sektoren
|
||||
angegeben.</para>
|
||||
|
||||
<para>Der Fakt, dass es sich bei <filename>/var</filename> um ein nur-Lese
|
||||
Dateisystem handelt, ist eine wichtige Unterscheidung, da die
|
||||
<filename>/</filename>-Partition (und jede andere Partition, die Sie auf
|
||||
Ihrem Flash-Medium haben) nur lesend eingehängt wird. Erinnern Sie
|
||||
sich, dass in <xref linkend="intro"/> die Beschränkungen von
|
||||
Flash-Speichern erläutert wurden, speziell deren begrenzte
|
||||
Kapazität zum Schreiben. Die Notwendigkeit, Dateisysteme auf
|
||||
Flash-Speichern nur lesend einzubinden und keine Swap-Dateien zu
|
||||
verwenden, kann nicht oft genug erwähnt werden. Eine Swap-Datei auf
|
||||
einem ausgelasteten System kann in weniger als einem Jahr den gesamten
|
||||
<para>Der Fakt, dass es sich bei <filename>/var</filename> um ein
|
||||
nur-Lese Dateisystem handelt, ist eine wichtige Unterscheidung,
|
||||
da die <filename>/</filename>-Partition (und jede andere
|
||||
Partition, die Sie auf Ihrem Flash-Medium haben) nur lesend
|
||||
eingehängt wird. Erinnern Sie sich, dass in <xref
|
||||
linkend="intro"/> die Beschränkungen von Flash-Speichern
|
||||
erläutert wurden, speziell deren begrenzte Kapazität zum
|
||||
Schreiben. Die Notwendigkeit, Dateisysteme auf Flash-Speichern
|
||||
nur lesend einzubinden und keine Swap-Dateien zu verwenden, kann
|
||||
nicht oft genug erwähnt werden. Eine Swap-Datei auf einem
|
||||
ausgelasteten System kann in weniger als einem Jahr den gesamten
|
||||
Flash-Speicher aufbrauchen. Häufige Protokollierung oder das
|
||||
Erstellen und Löschen von temporären Dateien kann das gleiche
|
||||
verursachen. Aus diesem Grund sollten Sie zusätzlich zum entfernen
|
||||
des <literal>swap</literal>-Eintrags aus ihrer
|
||||
<filename>/etc/fstab</filename>-Datei auch noch die Optionsfelder
|
||||
für jedes Dateisystem auf <literal>ro</literal> wie folgt
|
||||
stellen:</para>
|
||||
verursachen. Aus diesem Grund sollten Sie zusätzlich zum
|
||||
entfernen des <literal>swap</literal>-Eintrags aus ihrer
|
||||
<filename>/etc/fstab</filename>-Datei auch noch die
|
||||
Optionsfelder für jedes Dateisystem auf <literal>ro</literal>
|
||||
wie folgt stellen:</para>
|
||||
|
||||
<programlisting># Device Mountpoint FStype Options Dump Pass#
|
||||
/dev/ad0s1a / ufs ro 1 1</programlisting>
|
||||
|
||||
<para>Ein paar Anwendungen im normalen System werden sofort nach dieser
|
||||
Änderung ausfallen. Beispielsweise wird Cron nicht richtig
|
||||
funktionieren, aufgrund von fehlenden Cron-Tabellen in
|
||||
<para>Ein paar Anwendungen im normalen System werden sofort nach
|
||||
dieser Änderung ausfallen. Beispielsweise wird Cron nicht
|
||||
richtig funktionieren, aufgrund von fehlenden Cron-Tabellen in
|
||||
<filename>/var</filename> die von
|
||||
<filename>/etc/rc.d/var</filename> erstellt wurden. Syslog und DHCP
|
||||
werden ebenfalls Probleme durch das nur-Lese Dateisystem
|
||||
<filename>/etc/rc.d/var</filename> erstellt wurden. Syslog und
|
||||
DHCP werden ebenfalls Probleme durch das nur-Lese Dateisystem
|
||||
und fehlende Elemente im Verzeichnis <filename>/var</filename>
|
||||
verursachen, die <filename>/etc/rc.d/var</filename> erstellt hat. Diese
|
||||
Probleme sind jedoch nur vorübergehend und werden zusammen mit
|
||||
Lösungen zur Ausführung von anderen gebräuchlichen
|
||||
Softwarepaketen in <xref linkend="strategies"/> angesprochen.</para>
|
||||
verursachen, die <filename>/etc/rc.d/var</filename> erstellt
|
||||
hat. Diese Probleme sind jedoch nur vorübergehend und werden
|
||||
zusammen mit Lösungen zur Ausführung von anderen gebräuchlichen
|
||||
Softwarepaketen in <xref linkend="strategies"/>
|
||||
angesprochen.</para>
|
||||
|
||||
<para>Eine wichtige Sache, an die man sich erinnern sollte, ist, dass
|
||||
ein Dateisystem, welches als nur lesend in
|
||||
<para>Eine wichtige Sache, an die man sich erinnern sollte, ist,
|
||||
dass ein Dateisystem, welches als nur lesend in
|
||||
<filename>/etc/fstab</filename> eingebunden wurde, jederzeit als
|
||||
schreibend durch das folgende Kommando eingehängt werden
|
||||
kann:</para>
|
||||
|
@ -229,55 +240,58 @@ pseudo-device md # memory disk</programlisting>
|
|||
<sect1>
|
||||
<title>Ein Dateisystem von Grund auf neu erstellen</title>
|
||||
|
||||
<para>Wenn ATA-kompatible Compact-Flash-Karten von &os; als normale
|
||||
IDE-Festplatten erkannt werden, könnten Sie theoretisch &os; aus dem
|
||||
Netzwerk mittels der Kern- und mfsroot-Floppies oder einer CD
|
||||
installieren.</para>
|
||||
<para>Wenn ATA-kompatible Compact-Flash-Karten von &os; als
|
||||
normale IDE-Festplatten erkannt werden, könnten Sie theoretisch
|
||||
&os; aus dem Netzwerk mittels der Kern- und mfsroot-Floppies
|
||||
oder einer CD installieren.</para>
|
||||
|
||||
<para>Jedoch kann selbst eine kleine Installation von &os; durch die
|
||||
normale Installationsprozedur ein System erzeugen, dass grösser als
|
||||
200 MB ist. Da die meisten Leute kleinere Flash-Speichermedien
|
||||
einsetzen (128 MB wird hier als gross angesehen - 32 oder sogar
|
||||
16 MB sind gebräuchlich) ist eine gewöhnliche Installation
|
||||
mit normalen Methoden nicht möglich, da es einfach nicht genug
|
||||
freien Plattenplatz gibt, selbst für die kleinste
|
||||
Installationsart.</para>
|
||||
<para>Jedoch kann selbst eine kleine Installation von &os; durch
|
||||
die normale Installationsprozedur ein System erzeugen, dass
|
||||
grösser als 200 MB ist. Da die meisten Leute kleinere
|
||||
Flash-Speichermedien einsetzen (128 MB wird hier als gross
|
||||
angesehen - 32 oder sogar 16 MB sind gebräuchlich) ist eine
|
||||
gewöhnliche Installation mit normalen Methoden nicht möglich, da
|
||||
es einfach nicht genug freien Plattenplatz gibt, selbst für die
|
||||
kleinste Installationsart.</para>
|
||||
|
||||
<para>Der einfachste Weg, diese Speicherlimitierung zu umgehen, ist, &os;
|
||||
auf konventionelle Weise auf eine normale Festplatte zu installieren.
|
||||
Nachdem die Installation abgeschlossen wurde, kürzen Sie das
|
||||
Betriebssystem auf das nötigste, bis Sie eine Grösse erreicht
|
||||
hat, die auf das Flash-Medium passt und benutzen Sie dann tar auf dem
|
||||
gesamten Dateisystem. Die folgenden Schritte werden Sie durch den
|
||||
Prozess der Vorbereitung eines Flash-Mediums für ihr getartes
|
||||
Dateisystem führen. Beachten Sie, dass Operationen wie
|
||||
Partitionierung, Benennung, Erstellung von Dateisystemen, etc. von Hand
|
||||
durchgeführt werden müssen, da eine normale Installation nicht
|
||||
möglich ist. Zusätzlich zu den Kern- und mfsroot-Disketten
|
||||
benötigen Sie auch die fixit-Floppy.</para>
|
||||
<para>Der einfachste Weg, diese Speicherlimitierung zu umgehen,
|
||||
ist, &os; auf konventionelle Weise auf eine normale Festplatte
|
||||
zu installieren. Nachdem die Installation abgeschlossen wurde,
|
||||
kürzen Sie das Betriebssystem auf das nötigste, bis Sie eine
|
||||
Grösse erreicht hat, die auf das Flash-Medium passt und benutzen
|
||||
Sie dann tar auf dem gesamten Dateisystem. Die folgenden
|
||||
Schritte werden Sie durch den Prozess der Vorbereitung eines
|
||||
Flash-Mediums für ihr getartes Dateisystem führen. Beachten
|
||||
Sie, dass Operationen wie Partitionierung, Benennung, Erstellung
|
||||
von Dateisystemen, etc. von Hand durchgeführt werden müssen, da
|
||||
eine normale Installation nicht möglich ist. Zusätzlich zu den
|
||||
Kern- und mfsroot-Disketten benötigen Sie auch die
|
||||
fixit-Floppy.</para>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<title>Partitionierung Ihrer Flash-Medien</title>
|
||||
|
||||
<para>Wählen Sie nach dem Starten der Kern- und mfsroot-Disketten,
|
||||
<literal>custom</literal> aus dem Installationsmenü. In diesem
|
||||
Menü wählen Sie dann <literal>partition</literal> aus.
|
||||
Dort sollten Sie alle bestehenden Partitionen mit Hilfe der Taste
|
||||
<para>Wählen Sie nach dem Starten der Kern- und
|
||||
mfsroot-Disketten, <literal>custom</literal> aus dem
|
||||
Installationsmenü. In diesem Menü wählen Sie dann
|
||||
<literal>partition</literal> aus. Dort sollten Sie alle
|
||||
bestehenden Partitionen mit Hilfe der Taste
|
||||
<keycap>d</keycap> löschen. Nachdem alle bestehenden
|
||||
Partitionen gelöscht wurden, erstellen Sie mittels der Taste
|
||||
<keycap>c</keycap> eine Partition und akzeptieren Sie den
|
||||
Standardwert für die Grösse der Partition. Wenn Sie nach
|
||||
dem Typ der Partition gefragt werden, stellen Sie sicher, dass der
|
||||
Wert auf <literal>165</literal> eingestellt ist. Schreiben Sie jetzt
|
||||
diese Partitionstabelle auf die Platte durch betätigen der Taste
|
||||
<keycap>w</keycap> (dies ist die versteckte Option auf diesem
|
||||
Bildschirm). Wenn Sie eine ATA-kompatible Compact Flash-Karte
|
||||
verwenden, sollten Sie den &os; Bootmanager auswählen.
|
||||
Drücken Sie nun die Taste <keycap>q</keycap>, um das
|
||||
Partitionsmenü zu verlassen. Sie werden das Menü des
|
||||
Bootmanagers noch ein weiteres Mal gezeigt bekommt. In diesem Fall
|
||||
wiederholen Sie die Auswahl von vorher.</para>
|
||||
dem Typ der Partition gefragt werden, stellen Sie sicher,
|
||||
dass der Wert auf <literal>165</literal> eingestellt ist.
|
||||
Schreiben Sie jetzt diese Partitionstabelle auf die Platte
|
||||
durch betätigen der Taste <keycap>w</keycap> (dies ist die
|
||||
versteckte Option auf diesem Bildschirm). Wenn Sie eine
|
||||
ATA-kompatible Compact Flash-Karte verwenden, sollten Sie
|
||||
den &os; Bootmanager auswählen. Drücken Sie nun die Taste
|
||||
<keycap>q</keycap>, um das Partitionsmenü zu verlassen. Sie
|
||||
werden das Menü des Bootmanagers noch ein weiteres Mal
|
||||
gezeigt bekommt. In diesem Fall wiederholen Sie die Auswahl
|
||||
von vorher.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
|
@ -285,27 +299,28 @@ pseudo-device md # memory disk</programlisting>
|
|||
Flashspeicher-Gerät</title>
|
||||
|
||||
<para>Verlassen Sie das Installationsmenü und wählen Sie aus
|
||||
dem Hauptinstallationsmenü die Option <literal>fixit</literal>.
|
||||
In der fixit-Umgebung angelangt, geben Sie den folgenden Befehl
|
||||
ein:</para>
|
||||
dem Hauptinstallationsmenü die Option
|
||||
<literal>fixit</literal>. In der fixit-Umgebung angelangt,
|
||||
geben Sie den folgenden Befehl ein:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>disklabel -e /dev/ad0c</userinput></screen>
|
||||
|
||||
<para>Zu diesem Zeitpunkt sollten Sie sich im vi-Editor unter der
|
||||
Herrschaft des disklabel-Kommandos befinden. Als nächstes
|
||||
müssen Sie die eine <literal>a:</literal>-Zeile an das Ende der
|
||||
Datei hinzufügen. Diese
|
||||
<literal>a:</literal>-Zeile sollte wie folgt aussehen:</para>
|
||||
<para>Zu diesem Zeitpunkt sollten Sie sich im vi-Editor unter
|
||||
der Herrschaft des disklabel-Kommandos befinden. Als
|
||||
nächstes müssen Sie die eine <literal>a:</literal>-Zeile an
|
||||
das Ende der Datei hinzufügen. Diese
|
||||
<literal>a:</literal>-Zeile sollte wie folgt
|
||||
aussehen:</para>
|
||||
|
||||
<programlisting>a: <replaceable>123456</replaceable> 0 4.2BSD 0 0</programlisting>
|
||||
|
||||
<para>Wobei <replaceable>123456</replaceable> eine Zahl darstellt, die
|
||||
exakt der gleichen Zahl in der bestehenden Zeile mit dem
|
||||
<literal>c:</literal>-Eintrag entspricht. Sie kopieren quasi
|
||||
die bestehende Zeile <literal>c:</literal> als eine neue Zeile
|
||||
<literal>a:</literal> und stellen sicher, dass fstype
|
||||
<literal>4.2BSD</literal> entspricht. Speichern Sie die Datei und
|
||||
verlassen Sie den Editor.</para>
|
||||
<para>Wobei <replaceable>123456</replaceable> eine Zahl
|
||||
darstellt, die exakt der gleichen Zahl in der bestehenden
|
||||
Zeile mit dem <literal>c:</literal>-Eintrag entspricht. Sie
|
||||
kopieren quasi die bestehende Zeile <literal>c:</literal>
|
||||
als eine neue Zeile <literal>a:</literal> und stellen
|
||||
sicher, dass fstype <literal>4.2BSD</literal> entspricht.
|
||||
Speichern Sie die Datei und verlassen Sie den Editor.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>disklabel -B -r /dev/ad0c</userinput>
|
||||
&prompt.root; <userinput>newfs /dev/ad0a</userinput></screen>
|
||||
|
@ -318,24 +333,26 @@ pseudo-device md # memory disk</programlisting>
|
|||
|
||||
<screen>&prompt.root; <userinput>mount /dev/ad0a /flash</userinput></screen>
|
||||
|
||||
<para>Verbinden Sie diese Maschine mit dem Netzwerk, um die tar-Datei
|
||||
zu übertragen und extrahieren Sie es auf das Dateisystem des
|
||||
Flash-Mediums. Ein Beispiel dazu wäre folgendes:</para>
|
||||
<para>Verbinden Sie diese Maschine mit dem Netzwerk, um die
|
||||
tar-Datei zu übertragen und extrahieren Sie es auf das
|
||||
Dateisystem des Flash-Mediums. Ein Beispiel dazu wäre
|
||||
folgendes:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>ifconfig xl0 192.168.0.10 netmask 255.255.255.0</userinput>
|
||||
&prompt.root; <userinput>route add default 192.168.0.1</userinput></screen>
|
||||
|
||||
<para>Jetzt da die Maschine ans Netzwerk angeschlossen ist, kopieren
|
||||
Sie die tar-Datei. An diesem Punkt werden Sie möglicherweise
|
||||
mit einem Dilemma konfrontiert - sollte Ihr Flash-Speicher
|
||||
beispielsweise 128 MB gross sein und Ihre tar-Datei grösser
|
||||
als 64 MB, können Sie ihre tar-Datei auf dem Flash-Speicher
|
||||
nicht entpacken - Ihnen wird vorher der Speicherplatz ausgehen. Eine
|
||||
Lösung für dieses Problem, sofern Sie FTP verwenden, ist,
|
||||
dass Sie die Datei entpacken können, während es von FTP
|
||||
übertragen wird. Wenn Sie die Übertragung auf diese Weise
|
||||
durchführen, haben Sie niemals die tar-Datei und deren Inhalt
|
||||
zur gleichen Zeit auf Ihrem Medium:</para>
|
||||
<para>Jetzt da die Maschine ans Netzwerk angeschlossen ist,
|
||||
kopieren Sie die tar-Datei. An diesem Punkt werden Sie
|
||||
möglicherweise mit einem Dilemma konfrontiert - sollte Ihr
|
||||
Flash-Speicher beispielsweise 128 MB gross sein und
|
||||
Ihre tar-Datei grösser als 64 MB, können Sie ihre
|
||||
tar-Datei auf dem Flash-Speicher nicht entpacken - Ihnen
|
||||
wird vorher der Speicherplatz ausgehen. Eine Lösung für
|
||||
dieses Problem, sofern Sie FTP verwenden, ist, dass Sie die
|
||||
Datei entpacken können, während es von FTP übertragen wird.
|
||||
Wenn Sie die Übertragung auf diese Weise durchführen, haben
|
||||
Sie niemals die tar-Datei und deren Inhalt zur gleichen Zeit
|
||||
auf Ihrem Medium:</para>
|
||||
|
||||
<screen><prompt>ftp></prompt> <userinput>get tarfile.tar "| tar xvf -"</userinput></screen>
|
||||
|
||||
|
@ -344,19 +361,20 @@ pseudo-device md # memory disk</programlisting>
|
|||
|
||||
<screen><prompt>ftp></prompt> <userinput>get tarfile.tar "| zcat | tar xvf -"</userinput></screen>
|
||||
|
||||
<para>Nachdem der Inhalt Ihrer tar-Datei auf dem Dateisystem des
|
||||
Flash-Mediums abgelegt wurden, können Sie den Flash-Speicher
|
||||
aushängen und neu starten:</para>
|
||||
<para>Nachdem der Inhalt Ihrer tar-Datei auf dem Dateisystem
|
||||
des Flash-Mediums abgelegt wurden, können Sie den
|
||||
Flash-Speicher aushängen und neu starten:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>cd /</userinput>
|
||||
&prompt.root; <userinput>umount /flash</userinput>
|
||||
&prompt.root; <userinput>exit</userinput></screen>
|
||||
|
||||
<para>In der Annahme, dass Sie Ihr Dateisystem richtig konfiguriert
|
||||
haben, als es noch auf der gewöhnlichen Festplatte gebaut wurde
|
||||
(mit Ihren Nur-Lese-Dateisystemen und den nötigen Optionen im
|
||||
Kernel), sollten Sie nun erfolgreich von Ihrem &os; Embedded-System
|
||||
starten können.</para>
|
||||
<para>In der Annahme, dass Sie Ihr Dateisystem richtig
|
||||
konfiguriert haben, als es noch auf der gewöhnlichen
|
||||
Festplatte gebaut wurde (mit Ihren Nur-Lese-Dateisystemen
|
||||
und den nötigen Optionen im Kernel), sollten Sie nun
|
||||
erfolgreich von Ihrem &os; Embedded-System starten
|
||||
können.</para>
|
||||
</step>
|
||||
</procedure>
|
||||
</sect1>
|
||||
|
@ -364,13 +382,14 @@ pseudo-device md # memory disk</programlisting>
|
|||
<sect1 id="strategies">
|
||||
<title>Systemstrategien für kleine und Nur-Lese-Umgebungen</title>
|
||||
|
||||
<para>In <xref linkend="ro-fs"/> wurde darauf hingewiesen, dass das
|
||||
<filename>/var</filename>-Dateisystem von
|
||||
<filename>/etc/rc.d/var</filename> konstruiert wurde und die Präsenz
|
||||
eines Nur-Lese-Wurzeldateisystems Probleme mit vielen in &os;
|
||||
gebrächlichen Softwarepaketen verursacht. In diesem Artikel werden
|
||||
Vorschläge für das erfolgreiche Betreiben von cron, syslog,
|
||||
Installationen von Ports und dem Apache-Webserver unterbreitet.</para>
|
||||
<para>In <xref linkend="ro-fs"/> wurde darauf hingewiesen, dass
|
||||
das <filename>/var</filename>-Dateisystem von
|
||||
<filename>/etc/rc.d/var</filename> konstruiert wurde und die
|
||||
Präsenz eines Nur-Lese-Wurzeldateisystems Probleme mit vielen in
|
||||
&os; gebrächlichen Softwarepaketen verursacht. In diesem
|
||||
Artikel werden Vorschläge für das erfolgreiche Betreiben von
|
||||
cron, syslog, Installationen von Ports und dem Apache-Webserver
|
||||
unterbreitet.</para>
|
||||
|
||||
<sect2>
|
||||
<title>cron</title>
|
||||
|
@ -385,36 +404,39 @@ pseudo-device md # memory disk</programlisting>
|
|||
Standardverzeichnisse erstellt werden.</para>
|
||||
|
||||
<para>Jedoch löst das noch nicht das Problem, Crontabs über
|
||||
Neustarts des Systems hinaus zu erhalten. Wenn das System neu
|
||||
gestartet wird, verschwindet das <filename>/var</filename>-Dateiystem,
|
||||
welches sich im Hauptspeicher befunden hat und jegliche Crontabs, die
|
||||
Sie hatten werden ebenfalls verschwinden. Aus diesem Grund besteht eine
|
||||
Lösung darin, Crontabs für diejenigen Benutzer zu erstellen,
|
||||
die diese auch benötigen. Dazu sollte das
|
||||
<filename>/</filename>-Dateisystem lesend und schreibend
|
||||
eingehängt und diese Crontabs an einen sicheren Ort kopiert
|
||||
werden, wie beispielsweise <filename>/etc/tabs</filename>. Fügen
|
||||
Sie dann eine Zeile an das Ende der Datei
|
||||
<filename>/etc/rc.initdiskless</filename> hinzu, die diese Crontabs in
|
||||
<filename>/var/cron/tabs</filename> kopiert, nachdem dieses Verzeichnis
|
||||
während der Systeminitialisierung erstellt wurde. Sie werden auch
|
||||
eine Zeile hinzufügen mössen, welche die Besitzer und
|
||||
Berechtigungen auf diesen Verzeichnissen, die Sie erstellen und den
|
||||
dazugehörigen Dateien, die Sie mittels
|
||||
<filename>/etc/rc.initdiskless</filename> kopieren, setzen.</para>
|
||||
Neustarts des Systems hinaus zu erhalten. Wenn das System neu
|
||||
gestartet wird, verschwindet das
|
||||
<filename>/var</filename>-Dateiystem, welches sich im
|
||||
Hauptspeicher befunden hat und jegliche Crontabs, die Sie
|
||||
hatten werden ebenfalls verschwinden. Aus diesem Grund besteht
|
||||
eine Lösung darin, Crontabs für diejenigen Benutzer zu
|
||||
erstellen, die diese auch benötigen. Dazu sollte das
|
||||
<filename>/</filename>-Dateisystem lesend und schreibend
|
||||
eingehängt und diese Crontabs an einen sicheren Ort kopiert
|
||||
werden, wie beispielsweise <filename>/etc/tabs</filename>.
|
||||
Fügen Sie dann eine Zeile an das Ende der Datei
|
||||
<filename>/etc/rc.initdiskless</filename> hinzu, die diese
|
||||
Crontabs in <filename>/var/cron/tabs</filename> kopiert,
|
||||
nachdem dieses Verzeichnis während der Systeminitialisierung
|
||||
erstellt wurde. Sie werden auch eine Zeile hinzufügen mössen,
|
||||
welche die Besitzer und Berechtigungen auf diesen
|
||||
Verzeichnissen, die Sie erstellen und den dazugehörigen
|
||||
Dateien, die Sie mittels
|
||||
<filename>/etc/rc.initdiskless</filename> kopieren,
|
||||
setzen.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>syslog</title>
|
||||
|
||||
<para>Die Datei <filename>syslog.conf</filename> spezifiziert den Ort von
|
||||
bestimmten Logdateien, welche in <filename>/var/log</filename>
|
||||
existieren. Diese Dateien werden nicht von
|
||||
<filename>/etc/rc.d/var</filename> während der
|
||||
Systeminitialisierung erstellt. Aus diesem Grund müssen Sie
|
||||
irgendwo in <filename>/etc/rc.d/var</filename> nach dem Abschnitt, der
|
||||
die Verzeichnisse in <filename>/var</filename> erstellt, eine Zeile
|
||||
ähnlich der folgenden hinzufügen:</para>
|
||||
<para>Die Datei <filename>syslog.conf</filename> spezifiziert
|
||||
den Ort von bestimmten Logdateien, welche in
|
||||
<filename>/var/log</filename> existieren. Diese Dateien
|
||||
werden nicht von <filename>/etc/rc.d/var</filename> während
|
||||
der Systeminitialisierung erstellt. Aus diesem Grund müssen
|
||||
Sie irgendwo in <filename>/etc/rc.d/var</filename> nach dem
|
||||
Abschnitt, der die Verzeichnisse in <filename>/var</filename>
|
||||
erstellt, eine Zeile ähnlich der folgenden hinzufügen:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>touch /var/log/security /var/log/maillog /var/log/cron /var/log/messages</userinput>
|
||||
&prompt.root; <userinput>chmod 0644 /var/log/*</userinput></screen>
|
||||
|
@ -424,56 +446,60 @@ pseudo-device md # memory disk</programlisting>
|
|||
<title>Installation von Ports</title>
|
||||
|
||||
<para>Bevor die notwendigen Änderungen erkärt werden, einen
|
||||
Ports-Baum zu verwenden, ist es notwendig, Sie an die
|
||||
Nur-Lese-Besonderheit Ihres Dateisystems auf dem Flash-Medium zu
|
||||
erinnern. Da dieses nur lesend verfügbar ist, müssen Sie es
|
||||
vorübergehend mit Schreibrechten ausstatten, indem Sie die
|
||||
mount-Syntax, wie in <xref linkend="ro-fs"/> dargestellt wird,
|
||||
verwenden. Sie sollten immer diese Dateisysteme erneut mit
|
||||
nur-Lese-Rechten einhängen wenn Sie damit fertig sind -
|
||||
unnötige Schreibvorgänge auf dem Flash-Medium kann dessen
|
||||
Lebenszeit erheblich verkürzen.</para>
|
||||
Ports-Baum zu verwenden, ist es notwendig, Sie an die
|
||||
Nur-Lese-Besonderheit Ihres Dateisystems auf dem Flash-Medium
|
||||
zu erinnern. Da dieses nur lesend verfügbar ist, müssen Sie
|
||||
es vorübergehend mit Schreibrechten ausstatten, indem Sie die
|
||||
mount-Syntax, wie in <xref linkend="ro-fs"/> dargestellt wird,
|
||||
verwenden. Sie sollten immer diese Dateisysteme erneut mit
|
||||
nur-Lese-Rechten einhängen wenn Sie damit fertig sind -
|
||||
unnötige Schreibvorgänge auf dem Flash-Medium kann dessen
|
||||
Lebenszeit erheblich verkürzen.</para>
|
||||
|
||||
<para>Um es zu ermöglichen, in das Ports-Verzeichnis zu wechseln
|
||||
und erfolgreich
|
||||
<command>make</command> <maketarget>install</maketarget>
|
||||
auszuführen, müssen wir ein Paketverzeichnis auf einem
|
||||
Nicht-Hauptspeicherdateisystem erstellen, welches die Pakete über
|
||||
Neustarts hinweg im Auge behält. Weil es sowieso nötig ist,
|
||||
Ihre Dateisysteme mit Lese-Schreibrechten für die Installation
|
||||
eines Pakets einzuhängen, ist es sinnvoll anzunehmen, dass ein
|
||||
Bereich Ihres Flash-Mediums ebenfalls für Paketinformationen, die
|
||||
darauf abgespeichert werden, verwendet wird.</para>
|
||||
und erfolgreich <command>make</command>
|
||||
<maketarget>install</maketarget> auszuführen, müssen wir ein
|
||||
Paketverzeichnis auf einem Nicht-Hauptspeicherdateisystem
|
||||
erstellen, welches die Pakete über Neustarts hinweg im Auge
|
||||
behält. Weil es sowieso nötig ist, Ihre Dateisysteme mit
|
||||
Lese-Schreibrechten für die Installation eines Pakets
|
||||
einzuhängen, ist es sinnvoll anzunehmen, dass ein Bereich
|
||||
Ihres Flash-Mediums ebenfalls für Paketinformationen, die
|
||||
darauf abgespeichert werden, verwendet wird.</para>
|
||||
|
||||
<para>Erstellen Sie zuerst ein Verzeichnis für die Paketdatenbank.
|
||||
Normalerweise ist dies <filename>/var/db/pkg</filename>, jedoch
|
||||
können wir es dort nicht unterbringen, da es jedesmal verschwinden
|
||||
wird, wenn das System neu gestartet wird.</para>
|
||||
<para>Erstellen Sie zuerst ein Verzeichnis für die
|
||||
Paketdatenbank. Normalerweise ist dies
|
||||
<filename>/var/db/pkg</filename>, jedoch können wir es dort
|
||||
nicht unterbringen, da es jedesmal verschwinden wird, wenn das
|
||||
System neu gestartet wird.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mkdir /etc/pkg</userinput></screen>
|
||||
|
||||
<para>Fügen Sie nun eine Zeile in <filename>/etc/rc.d/var</filename>
|
||||
hinzu, welche das <filename>/etc/pkg</filename>-Verzeichnis mit
|
||||
<filename>/var/db/pkg</filename> verknüpft. Ein Beispiel:</para>
|
||||
<para>Fügen Sie nun eine Zeile in
|
||||
<filename>/etc/rc.d/var</filename> hinzu, welche das
|
||||
<filename>/etc/pkg</filename>-Verzeichnis mit
|
||||
<filename>/var/db/pkg</filename> verknüpft. Ein
|
||||
Beispiel:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>ln -s /etc/pkg /var/db/pkg</userinput></screen>
|
||||
|
||||
<para>Nun wird jedes Mal, wenn Sie Ihre Dateisysteme mit
|
||||
Lese-Schreibrechten einbinden und ein Paket installieren, der Befehl
|
||||
<command>make</command> <maketarget>install</maketarget> funktionieren
|
||||
und Paketinformationen werden erfolgreich nach
|
||||
<filename>/etc/pkg</filename> geschrieben (da zu diesem Zeitpunkt das
|
||||
Dateisystem mit Lese-Schreibrechten eingebunden ist), welche dann stets
|
||||
dem Betriebssystem als <filename>/var/db/pkg</filename> zur
|
||||
Verfügung stehen.</para>
|
||||
Lese-Schreibrechten einbinden und ein Paket installieren, der
|
||||
Befehl <command>make</command>
|
||||
<maketarget>install</maketarget> funktionieren und
|
||||
Paketinformationen werden erfolgreich nach
|
||||
<filename>/etc/pkg</filename> geschrieben (da zu diesem
|
||||
Zeitpunkt das Dateisystem mit Lese-Schreibrechten eingebunden
|
||||
ist), welche dann stets dem Betriebssystem als
|
||||
<filename>/var/db/pkg</filename> zur Verfügung stehen.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Apache Webserver</title>
|
||||
|
||||
<note>
|
||||
<para>Die Anweisungen in diesem Abschnitt sind nur notwendig, wenn
|
||||
Apache so eingerichtet ist, dass dieser seine PID oder
|
||||
<para>Die Anweisungen in diesem Abschnitt sind nur notwendig,
|
||||
wenn Apache so eingerichtet ist, dass dieser seine PID oder
|
||||
Protokollierungsinformationen ausserhalb von <filename
|
||||
class="directory">/var</filename> ablegt. Standardmässig
|
||||
bewahrt Apache seine PID-Datei in <filename
|
||||
|
@ -482,28 +508,31 @@ pseudo-device md # memory disk</programlisting>
|
|||
class="directory">/var/log</filename> auf.</para>
|
||||
</note>
|
||||
|
||||
<para>Es wird nun davon ausgegangen, dass Apache seine Protokolldateien
|
||||
in einem Verzeichnis namens <filename
|
||||
<para>Es wird nun davon ausgegangen, dass Apache seine
|
||||
Protokolldateien in einem Verzeichnis namens <filename
|
||||
class="directory"><replaceable>apache_log_dir</replaceable></filename>
|
||||
ausserhalb von <filename class="directory">/var</filename> speichert.
|
||||
Wenn dieses Verzeichnis auf einem nur-Lese-Dateisystem existiert, wird
|
||||
Apache nicht in der Lage sein, Protokolldateien zu speichern und wird
|
||||
vermutlich nicht richtig funktionieren. Wenn dies der Fall ist, muss
|
||||
ein neues Verzeichnis zu der Liste der Verzeichnisse in
|
||||
<filename>/etc/rc.d/var</filename> hinzugefügt werden, um dieses
|
||||
in <filename>/var</filename> zu erstellen und um <filename
|
||||
ausserhalb von <filename class="directory">/var</filename>
|
||||
speichert. Wenn dieses Verzeichnis auf einem
|
||||
nur-Lese-Dateisystem existiert, wird Apache nicht in der Lage
|
||||
sein, Protokolldateien zu speichern und wird vermutlich nicht
|
||||
richtig funktionieren. Wenn dies der Fall ist, muss ein neues
|
||||
Verzeichnis zu der Liste der Verzeichnisse in
|
||||
<filename>/etc/rc.d/var</filename> hinzugefügt werden, um
|
||||
dieses in <filename>/var</filename> zu erstellen und um
|
||||
<filename
|
||||
class="directory"><replaceable>apache_log_dir</replaceable></filename>
|
||||
nach <filename>/var/log/apache</filename> zu verknüpfen. Es ist
|
||||
auch nötig, Berechtigungen und Besitzer auf diesem neuen
|
||||
nach <filename>/var/log/apache</filename> zu verknüpfen. Es
|
||||
ist auch nötig, Berechtigungen und Besitzer auf diesem neuen
|
||||
Verzeichnis zu setzen.</para>
|
||||
|
||||
<para>Fügen Sie zuerst das Verzeichnis <literal>log/apache</literal>
|
||||
zu der Liste von Verzeichnissen hinzu, die in
|
||||
<filename>/etc/rc.d/var</filename> angelegt werden sollen.</para>
|
||||
<para>Fügen Sie zuerst das Verzeichnis
|
||||
<literal>log/apache</literal> zu der Liste von Verzeichnissen
|
||||
hinzu, die in <filename>/etc/rc.d/var</filename> angelegt
|
||||
werden sollen.</para>
|
||||
|
||||
<para>Danach tragen Sie die folgenden Befehle in
|
||||
<filename>/etc/rc.d/var</filename> nach dem Abschnitt zum Erstellen der
|
||||
Verzeichnisse ein:</para>
|
||||
<filename>/etc/rc.d/var</filename> nach dem Abschnitt zum
|
||||
Erstellen der Verzeichnisse ein:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>chmod 0774 /var/log/apache</userinput>
|
||||
&prompt.root; <userinput>chown nobody:nobody /var/log/apache</userinput></screen>
|
||||
|
|
|
@ -23,11 +23,11 @@ INSTALL_ONLY_COMPRESSED?=
|
|||
IMAGES_EN= sockets/layers.eps sockets/sain.eps sockets/sainfill.eps sockets/sainlsb.eps sockets/sainmsb.eps sockets/sainserv.eps sockets/serv.eps sockets/serv2.eps sockets/slayers.eps
|
||||
|
||||
#
|
||||
# SRCS lists the individual SGML files that make up the document. Changes
|
||||
# SRCS lists the individual XML files that make up the document. Changes
|
||||
# to any of these files will force a rebuild
|
||||
#
|
||||
|
||||
# SGML content
|
||||
# XML content
|
||||
SRCS= book.xml
|
||||
SRCS+= introduction/chapter.xml
|
||||
SRCS+= ipv6/chapter.xml
|
||||
|
|
|
@ -20,11 +20,11 @@ INSTALL_ONLY_COMPRESSED?=
|
|||
|
||||
WITH_BIBLIOXREF_TITLE?=YES
|
||||
#
|
||||
# SRCS lists the individual SGML files that make up the document. Changes
|
||||
# SRCS lists the individual XML files that make up the document. Changes
|
||||
# to any of these files will force a rebuild
|
||||
#
|
||||
|
||||
# SGML content
|
||||
# XML content
|
||||
SRCS= book.xml
|
||||
|
||||
URL_RELPREFIX?= ../../../..
|
||||
|
|
|
@ -15,11 +15,11 @@ INSTALL_COMPRESSED?= gz
|
|||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
#
|
||||
# SRCS lists the individual SGML files that make up the document. Changes
|
||||
# SRCS lists the individual XML files that make up the document. Changes
|
||||
# to any of these files will force a rebuild
|
||||
#
|
||||
|
||||
# SGML content
|
||||
# XML content
|
||||
SRCS= book.xml
|
||||
SRCS+= overview/chapter.xml
|
||||
SRCS+= psgml-mode/chapter.xml
|
||||
|
|
|
@ -224,11 +224,11 @@ IMAGES_LIB+= callouts/14.png
|
|||
IMAGES_LIB+= callouts/15.png
|
||||
|
||||
#
|
||||
# SRCS lists the individual SGML files that make up the document. Changes
|
||||
# SRCS lists the individual XML files that make up the document. Changes
|
||||
# to any of these files will force a rebuild
|
||||
#
|
||||
|
||||
# SGML content
|
||||
# XML content
|
||||
SRCS+= audit/chapter.xml
|
||||
SRCS+= book.xml
|
||||
SRCS+= bsdinstall/chapter.xml
|
||||
|
@ -275,8 +275,8 @@ SRCS+= chapters.ent
|
|||
# alle Kapitel bauen
|
||||
CHAPTERS?= ${SRCS:M*chapter.xml}
|
||||
|
||||
SGMLFLAGS+= ${CHAPTERS:S/\/chapter.xml//:S/^/-i chap./}
|
||||
SGMLFLAGS+= -i chap.freebsd-glossary
|
||||
XMLFLAGS+= ${CHAPTERS:S/\/chapter.xml//:S/^/-i chap./}
|
||||
XMLFLAGS+= -i chap.freebsd-glossary
|
||||
|
||||
pgpkeyring: pgpkeys/chapter.xml
|
||||
@${JADE} -V nochunks ${OTHERFLAGS} ${JADEOPTS} -d ${DSLPGP} -t sgml ${MASTERDOC}
|
||||
|
|
|
@ -15,11 +15,11 @@ INSTALL_COMPRESSED?= gz
|
|||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
#
|
||||
# SRCS lists the individual SGML files that make up the document. Changes
|
||||
# SRCS lists the individual XML files that make up the document. Changes
|
||||
# to any of these files will force a rebuild
|
||||
#
|
||||
|
||||
# SGML content
|
||||
# XML content
|
||||
SRCS= book.xml
|
||||
|
||||
# Use the local DSSSL file
|
||||
|
|
|
@ -36,7 +36,7 @@ DOCS+= where.xml
|
|||
#DATA+= vendors.html
|
||||
|
||||
# Subdirectories
|
||||
# SGML
|
||||
# XML
|
||||
SUBDIR= community
|
||||
SUBDIR+= developers
|
||||
SUBDIR+= docproj
|
||||
|
@ -61,7 +61,7 @@ SUBDIR+= doc
|
|||
SUBDIR+= relnotes
|
||||
.endif
|
||||
|
||||
# Non-SGML
|
||||
# Non-XML
|
||||
SUBDIR+= gifs
|
||||
|
||||
WEBDIR?= data/de
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<!DOCTYPE html PUBLIC "-//FreeBSD//DTD XHTML 1.0 Transitional-Based Extension//EN"
|
||||
"http://www.FreeBSD.org/XML/doc/share/xml/xhtml10-freebsd.dtd" [
|
||||
<!ENTITY dedate "$FreeBSDde$">
|
||||
<!ENTITY reference "basiert auf: r39260">
|
||||
<!ENTITY reference "basiert auf: r39867">
|
||||
<!ENTITY title "FreeBSD Project - Administration und Management">
|
||||
]>
|
||||
|
||||
|
@ -44,7 +44,7 @@
|
|||
<li><a href="#t-donations">Donations Team</a></li>
|
||||
<li><a href="#t-marketing">Marketing Team</a></li>
|
||||
<li><a href="#t-secteam">Security Team</a></li>
|
||||
<li><a href="#t-vendor">Vendor Relations Team</a></li>
|
||||
<li><a href="#t-vendor">Vendor Relations</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Sekretäre
|
||||
|
@ -62,7 +62,6 @@
|
|||
<li><a href="#t-bugmeister">Bugmeisters & GNATS
|
||||
Administrators</a></li>
|
||||
<li><a href="#t-clusteradm">Cluster Administrators</a></li>
|
||||
<li><a href="#t-dcvs">CVS doc/www Repository Managers</a></li>
|
||||
<li><a href="#t-pcvs">CVS ports Repository Managers</a></li>
|
||||
<li><a href="#t-ncvs">CVS src Repository Managers</a></li>
|
||||
<li><a href="#t-cvsup-master">CVSup Mirror Site
|
||||
|
@ -133,12 +132,11 @@
|
|||
<li>&a.tabthorpe; <<a href="mailto:tabthorpe@FreeBSD.org">tabthorpe@FreeBSD.org</a>></li>
|
||||
<li>&a.marcus; <<a href="mailto:marcus@FreeBSD.org">marcus@FreeBSD.org</a>></li>
|
||||
<li>&a.bapt; <<a href="mailto:bapt@FreeBSD.org">bapt@FreeBSD.org</a>></li>
|
||||
<li>&a.decke; <<a href="mailto:decke@FreeBSD.org">decke@FreeBSD.org</a>></li>
|
||||
<li>&a.beat; <<a href="mailto:beat@FreeBSD.org">beat@FreeBSD.org</a>></li>
|
||||
<li>&a.erwin; <<a href="mailto:erwin@FreeBSD.org">erwin@FreeBSD.org</a>></li>
|
||||
<li>&a.linimon; <<a href="mailto:linimon@FreeBSD.org">linimon@FreeBSD.org</a>></li>
|
||||
<li>&a.pav; <<a href="mailto:pav@FreeBSD.org">pav@FreeBSD.org</a>></li>
|
||||
<li>&a.itetcu; <<a href="mailto:itetcu@FreeBSD.org">itetcu@FreeBSD.org</a>></li>
|
||||
<li>&a.flz; <<a href="mailto:flz@FreeBSD.org">flz@FreeBSD.org</a>></li>
|
||||
<li>&a.miwi; <<a href="mailto:miwi@FreeBSD.org">miwi@FreeBSD.org</a>></li>
|
||||
</ul>
|
||||
|
||||
|
@ -163,8 +161,6 @@
|
|||
<li>&a.hrs; <<a href="mailto:hrs@FreeBSD.org">hrs@FreeBSD.org</a>></li>
|
||||
<li>&a.kensmith; <<a href="mailto:kensmith@FreeBSD.org">kensmith@FreeBSD.org</a>>
|
||||
(Lead)</li>
|
||||
<li>&a.rwatson; <<a href="mailto:rwatson@FreeBSD.org">rwatson@FreeBSD.org</a>></li>
|
||||
<li>&a.bz; <<a href="mailto:bz@FreeBSD.org">bz@FreeBSD.org</a>></li>
|
||||
</ul>
|
||||
|
||||
<h3><a name="t-re-builder">Builders Release Engineering Team</a>
|
||||
|
@ -177,6 +173,7 @@
|
|||
<ul>
|
||||
<li>&a.marcel; <<a href="mailto:marcel@FreeBSD.org">marcel@FreeBSD.org</a>></li>
|
||||
<li>&a.nyan; <<a href="mailto:nyan@FreeBSD.org">nyan@FreeBSD.org</a>></li>
|
||||
<li>&a.nwhitehorn; <<a href="mailto:nwhitehorn@FreeBSD.org">nwhitehorn@FreeBSD.org</a>></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
@ -192,8 +189,8 @@
|
|||
href="&enbase;/donations/">FreeBSD Donations Liaison</a>.</p>
|
||||
|
||||
<ul>
|
||||
<li>&a.tabthorpe; <<a href="mailto:tabthorpe@FreeBSD.org">tabthorpe@FreeBSD.org</a>></li>
|
||||
<li>&a.gjb; <<a href="mailto:gjb@FreeBSD.org">gjb@FreeBSD.org</a>></li>
|
||||
<li>&a.wilko; <<a href="mailto:wilko@FreeBSD.org">wilko@FreeBSD.org</a>></li>
|
||||
<li>&a.gahr; <<a href="mailto:gahr@FreeBSD.org">gahr@FreeBSD.org</a>></li>
|
||||
<li>&a.pgollucci; <<a href="mailto:pgolluci@FreeBSD.org">pgolluci@FreeBSD.org</a>></li>
|
||||
<li>&a.skreuzer; <<a href="mailto:skreuzer@FreeBSD.org">skreuzer@FreeBSD.org</a>></li>
|
||||
|
@ -245,25 +242,29 @@
|
|||
Verantwortungsbereiche des Security Officers ausführlich.</p>
|
||||
|
||||
<ul>
|
||||
<li>&a.benl; <<a href="mailto:benl@FreeBSD.org">benl@FreeBSD.org</a>></li>
|
||||
<li>&a.bz; <<a href="mailto:bz@FreeBSD.org">bz@FreeBSD.org</a>></li>
|
||||
<li>&a.cperciva; <<a href="mailto:cperciva@FreeBSD.org">cperciva@FreeBSD.org</a>></li>
|
||||
<li>&a.csjp; <<a href="mailto:csjp@FreeBSD.org">csjp@FreeBSD.org</a>></li>
|
||||
<li>&a.delphij; <<a href="mailto:delphij@FreeBSD.org">delphij@FreeBSD.org</a>></li>
|
||||
<li>&a.miwi; <<a href="mailto:miwi@FreeBSD.org">miwi@FreeBSD.org</a>></li>
|
||||
<li>&a.des; <<a href="mailto:des@FreeBSD.org">des@FreeBSD.org</a>></li>
|
||||
<li>&a.gavin; <<a href="mailto:gavin@FreeBSD.org">gavin@FreeBSD.org</a>></li>
|
||||
<li>&a.jonathan; <<a href="mailto:jonathan@FreeBSD.org">jonathan@FreeBSD.org</a>></li>
|
||||
<li>&a.philip; <<a href="mailto:philip@FreeBSD.org">philip@FreeBSD.org</a>></li>
|
||||
<li>&a.qingli; <<a href="mailto:qingli@FreeBSD.org">qingli@FreeBSD.org</a>></li>
|
||||
<li>&a.remko; <<a href="mailto:remko@FreeBSD.org">remko@FreeBSD.org</a>></li>
|
||||
<li>&a.rwatson; <<a href="mailto:rwatson@FreeBSD.org">rwatson@FreeBSD.org</a>>
|
||||
(Core Team Liaison)</li>
|
||||
<li>&a.rwatson; <<a href="mailto:rwatson@FreeBSD.org">rwatson@FreeBSD.org</a>></li>
|
||||
<li>&a.simon; <<a href="mailto:simon@FreeBSD.org">simon@FreeBSD.org</a>>
|
||||
(Officer)</li>
|
||||
<li>&a.stas; <<a href="mailto:stas@FreeBSD.org">stas@FreeBSD.org</a>></li>
|
||||
</ul>
|
||||
|
||||
<h3><a name="t-vendor">Vendor Relations Team</a>
|
||||
<h3><a name="t-vendor">Vendor Relations</a>
|
||||
<<a href="mailto:vendor-relations@FreeBSD.org">vendor-relations@FreeBSD.org</a>></h3>
|
||||
|
||||
<p>Ansprechpartner für Unternehmen und Verkäufer.</p>
|
||||
<p>&os; Vendor Relations ist für die Bearbeitung der E-Mails
|
||||
von Hard- und Softwareverkäufern verantwortlich. An Vendor
|
||||
Relations geschickte E-Mails werden zusätzlich an das
|
||||
&os; Core Team sowie die &os; Foundation weitergeleitet.</p>
|
||||
|
||||
<ul>
|
||||
<li>&a.gioria; <<a href="mailto:gioria@FreeBSD.org">gioria@FreeBSD.org</a>></li>
|
||||
|
@ -364,10 +365,10 @@
|
|||
ungültige Einträge.</p>
|
||||
|
||||
<ul>
|
||||
<li>&a.eadler; < <a href="mailto:eadler@FreeBSD.org">eadler@FreeBSD.org</a>></li>
|
||||
<li>&a.gavin; <<a href="mailto:gavin@FreeBSD.org">gavin@FreeBSD.org</a>></li>
|
||||
<li>&a.gonzo; <<a href="mailto:gonzo@FreeBSD.org">gonzo@FreeBSD.org</a>></li>
|
||||
<li>&a.linimon; <<a href="mailto:linimon@FreeBSD.org">linimon@FreeBSD.org</a>></li>
|
||||
<li>&a.remko; <<a href="mailto:remko@FreeBSD.org">remko@FreeBSD.org</a>></li>
|
||||
<li>&a.vwe; <<a href="mailto:vwe@FreeBSD.org">vwe@FreeBSD.org</a>></li>
|
||||
</ul>
|
||||
|
||||
<h3><a name="t-clusteradm">Cluster Administrator</a>
|
||||
|
@ -384,30 +385,12 @@
|
|||
werden.</p>
|
||||
|
||||
<ul>
|
||||
<li>&a.bhaga; <<a href="mailto:bhaga@FreeBSD.org">bhaga@FreeBSD.org</a>></li>
|
||||
<li>&a.brd; <<a href="mailto:brd@FreeBSD.org">brd@FreeBSD.org</a>></li>
|
||||
<li>&a.billf; <<a href="mailto:billf@FreeBSD.org">billf@FreeBSD.org</a>></li>
|
||||
<li>&a.simon; <<a href="mailto:simon@FreeBSD.org">simon@FreeBSD.org</a>></li>
|
||||
<li>&a.ps; <<a href="mailto:ps@FreeBSD.org">ps@FreeBSD.org</a>></li>
|
||||
<li>&a.kensmith; <<a href="mailto:kensmith@FreeBSD.org">kensmith@FreeBSD.org</a>></li>
|
||||
<li>&a.peter; <<a href="mailto:peter@FreeBSD.org">peter@FreeBSD.org</a>></li>
|
||||
</ul>
|
||||
|
||||
<h3><a name="t-dcvs">CVS doc/www Repository Manager</a>
|
||||
<<a href="mailto:dcvs@FreeBSD.org">dcvs@FreeBSD.org</a>></h3>
|
||||
|
||||
<p>CVS doc/www Repository Manager dürfen das doc/www-Repository
|
||||
ohne CVS-Mittel modifizieren. Sie achten darauf, dass Probleme
|
||||
innerhalb des Repositories umgehend gelöst werden.
|
||||
CVS www/doc Repository Manager haben das Recht, Committs
|
||||
rückgängig zu machen, falls dies zur Lösung eines
|
||||
CVS-Problems erforderlich ist. Anfragen bezüglich
|
||||
Repo-copies sollten ebenfalls direkt an die Repository Manager
|
||||
gestellt werden.</p>
|
||||
|
||||
<ul>
|
||||
<li>&a.joe; <<a href="mailto:joe@FreeBSD.org">joe@FreeBSD.org</a>></li>
|
||||
<li>&a.kuriyama; <<a href="mailto:kuriyama@FreeBSD.org">kuriyama@FreeBSD.org</a>></li>
|
||||
<li>&a.markm; <<a href="mailto:markm@FreeBSD.org">markm@FreeBSD.org</a>></li>
|
||||
<li>&a.gioria; <<a href="mailto:gioria@FreeBSD.org">gioria@FreeBSD.org</a>></li>
|
||||
<li>&a.sbruno; <<a href="mailto:sbruno@FreeBSD.org">sbruno@FreeBSD.org</a>></li>
|
||||
<li>&a.simon; <<a href="mailto:simon@FreeBSD.org">simon@FreeBSD.org</a>></li>
|
||||
</ul>
|
||||
|
||||
|
@ -475,7 +458,6 @@
|
|||
<p>DNS Administrators verwalten DNS und verwandte Dienste.</p>
|
||||
|
||||
<ul>
|
||||
<li>&a.billf; <<a href="mailto:billf@FreeBSD.org">billf@FreeBSD.org</a>></li>
|
||||
<li>&a.dg; <<a href="mailto:dg@FreeBSD.org">dg@FreeBSD.org</a>></li>
|
||||
<li>&a.ps; <<a href="mailto:ps@FreeBSD.org">ps@FreeBSD.org</a>></li>
|
||||
<li>&a.kensmith; <<a href="mailto:kensmith@FreeBSD.org">kensmith@FreeBSD.org</a>></li>
|
||||
|
@ -525,6 +507,7 @@
|
|||
<ul>
|
||||
<li>&a.jmb; <<a href="mailto:jmb@FreeBSD.org">jmb@FreeBSD.org</a>></li>
|
||||
<li>&a.brd; <<a href="mailto:brd@FreeBSD.org">brd@FreeBSD.org</a>></li>
|
||||
<li>&a.flo; <<a href="mailto:flo@FreeBSD.org">flo@FreeBSD.org</a>></li>
|
||||
<li>&a.sahil; <<a href="mailto:sahil@FreeBSD.org">sahil@FreeBSD.org</a>></li>
|
||||
<li>&a.dhw; <<a href="mailto:dhw@FreeBSD.org">dhw@FreeBSD.org</a>></li>
|
||||
</ul>
|
||||
|
|
|
@ -6,17 +6,19 @@
|
|||
]>
|
||||
|
||||
<!-- $FreeBSD$ -->
|
||||
<!-- $FreeBSDde: de-www/community.xsl,v 1.7 2011/08/01 09:27:32 jkois Exp $ -->
|
||||
<!-- basiert auf: 1.9 -->
|
||||
<!-- $FreeBSDde$ -->
|
||||
<!-- basiert auf: r40558 -->
|
||||
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
xmlns:date="http://exslt.org/dates-and-times"
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
extension-element-prefixes="date">
|
||||
|
||||
<xsl:import href="http://www.FreeBSD.org/XML/www/lang/share/xml/libcommon.xsl"/>
|
||||
<xsl:import href="http://www.FreeBSD.org/XML/www/share/xml/xhtml.xsl"/>
|
||||
|
||||
<xsl:key name="last-year-event-by-country" match="event[number(enddate/year) = (number($curdate.year) - 1)]"
|
||||
<xsl:key name="last-year-event-by-country" match="event[number(enddate/year) = (number(date:year()) - 1)]"
|
||||
use="location/country" />
|
||||
|
||||
<xsl:key name="event-by-year" match="event" use="enddate/year" />
|
||||
|
@ -39,7 +41,7 @@
|
|||
select="count(document($usergroups.xml)//entry)"
|
||||
/><xsl:text> </xsl:text>--> <a
|
||||
href="&enbase;/usergroups.html">User Groups</a> in
|
||||
36 Ländern. <!--<xsl:value-of
|
||||
38 Ländern. <!--<xsl:value-of
|
||||
select="count(document($usergroups.xml)//country)" />-->
|
||||
Zusätzlich existiert eine aktive <a
|
||||
href="&base;/community/irc.html">IRC</a>-Gemeinde.
|
||||
|
@ -54,10 +56,10 @@
|
|||
href="&enbase;/community/social.html">Sozialen
|
||||
Netzwerken</a> vertreten.</p>
|
||||
|
||||
<p>Letztes Jahr gab es insgesamt 19 <!-- <xsl:value-of
|
||||
<p>Letztes Jahr gab es insgesamt 9 <!-- <xsl:value-of
|
||||
select="count(/events/event[number(enddate/year) =
|
||||
(number($curdate.year) -1)])" />-->
|
||||
&os;-Veranstaltungen in 12 <!--<xsl:value-of
|
||||
&os;-Veranstaltungen in 9 <!--<xsl:value-of
|
||||
select="count(/events/event[(number(enddate/year) =
|
||||
(number($curdate.year) -1)) and (generate-id() =
|
||||
generate-id(key('last-year-event-by-country',
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE html PUBLIC "-//FreeBSD//DTD XHTML 1.0 Transitional-Based Extension//EN"
|
||||
"http://www.FreeBSD.org/XML/doc/share/xml/xhtml10-freebsd.dtd" [
|
||||
<!ENTITY dedate "$FreeBSDde: de-www/features.xml,v 1.22 2008/03/24 14:30:04 jkois Exp $">
|
||||
<!ENTITY reference "basiert auf: 1.34">
|
||||
<!ENTITY dedate "$FreeBSDde$">
|
||||
<!ENTITY reference "basiert auf: r39632">
|
||||
<!ENTITY title "Die technischen Fortschritte von FreeBSD">
|
||||
]>
|
||||
|
||||
|
@ -299,7 +299,7 @@
|
|||
sichere Shells, Kerberos-Authentifizierung,
|
||||
"virtuelle Server" durch die Verwendung von Jails, den Betrieb
|
||||
von Diensten in chroot-Umgebungen, um den Zugang der Dienste
|
||||
zum Dateisystem einzuschräken, Secure RPCs sowie
|
||||
zum Dateisystem einzuschränken, Secure RPCs sowie
|
||||
Zugriffslisten für Dienste, die TCP-Wrapper
|
||||
unterstützen.</p>
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<!DOCTYPE html PUBLIC "-//FreeBSD//DTD XHTML 1.0 Transitional-Based Extension//EN"
|
||||
"http://www.FreeBSD.org/XML/doc/share/xml/xhtml10-freebsd.dtd" [
|
||||
<!ENTITY dedate "$FreeBSDde$">
|
||||
<!ENTITY reference "basiert auf: r39198">
|
||||
<!ENTITY reference "basiert auf: r40515">
|
||||
<!ENTITY title "Release Information">
|
||||
]>
|
||||
|
||||
|
@ -49,7 +49,7 @@
|
|||
|
||||
<h3>Produktion</h3>
|
||||
|
||||
<p><b>Release &rel.current;</b> (Januar 2012) <!--(&rel.current.date;) -->
|
||||
<p><b>Release &rel.current;</b> (Dezember 2012) <!--(&rel.current.date;) -->
|
||||
<em>
|
||||
<a href="&u.rel.announce;">Announcement</a> :
|
||||
<a href="&u.rel.notes;">Release Notes</a> :
|
||||
|
@ -96,17 +96,37 @@
|
|||
href="&enbase;/doc/de_DE.ISO8859-1/books/handbook/current-stable.html#CURRENT">FreeBSD-CURRENT</a>
|
||||
sind ebenfalls verfügbar. Weitere Informationen finden Sie
|
||||
unter <a href="&base;/where.html">FreeBSD Bezugsquellen</a>.</p>
|
||||
|
||||
<!--
|
||||
<a name="prior-supported"></a>
|
||||
|
||||
<h2>Alte, aber noch unterstützte Versionen</h2>
|
||||
-->
|
||||
<a name="prior-unsupported"></a>
|
||||
|
||||
<p>Information zu aktuell unterstützten Versionen sowie
|
||||
finden Sie auf der Seite <a
|
||||
href="&base;/security/security.html#sup">&os;
|
||||
Sicherheit</a>.</p>
|
||||
<h2>Alte, nicht mehr unterstützte Versionen
|
||||
(End-of-Life-Versionen)</h2>
|
||||
|
||||
<p>Alle Informationen zu diesen Versionen, darunter Datum der
|
||||
Veröffentlichung, Versionsart, Ende der
|
||||
Unterstützung mit Sicherheitsupdates (End-of-Life-Datum)
|
||||
finden Sie im Abschnitt <a
|
||||
href="&base;/security/security.html#sup">Unterstützte
|
||||
FreeBSD-Versionen</a> auf der Seite <a
|
||||
href="&base;/security/security.html">FreeBSD Sicherheit</a>.</p>
|
||||
|
||||
<ul>
|
||||
<li><b>9.0</b> (Januar 2012)
|
||||
<em>
|
||||
<a href="&enbase;/releases/9.0R/announce.html">Announcement</a>:
|
||||
<a href="&enbase;/releases/9.0R/relnotes.html">Release Notes</a>:
|
||||
<a href="&enbase;/releases/9.0R/installation.html">Installation
|
||||
Instructions</a>:
|
||||
<a href="&enbase;/releases/9.0R/hardware.html">Hardware Notes</a>:
|
||||
<a href="&enbase;/releases/9.0R/readme.html">Readme</a>:
|
||||
<a href="&enbase;/releases/9.0R/errata.html">Errata</a>
|
||||
</em>
|
||||
</li>
|
||||
|
||||
<li><b>8.2</b> (Februar 2011)
|
||||
<em>
|
||||
<a href="&enbase;/releases/8.2R/announce.html">Announcement</a>:
|
||||
|
@ -126,22 +146,7 @@
|
|||
<a href="&enbase;/releases/8.1R/errata.html">Errata</a>
|
||||
</em>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<a name="prior-unsupported"></a>
|
||||
|
||||
<h2>Alte, nicht mehr unterstützte Versionen
|
||||
(End-of-Life-Versionen)</h2>
|
||||
|
||||
<p>Alle Informationen zu diesen Versionen, darunter Datum der
|
||||
Veröffentlichung, Versionsart, Ende der
|
||||
Unterstützung mit Sicherheitsupdates (End-of-Life-Datum)
|
||||
finden Sie im Abschnitt <a
|
||||
href="&base;/security/security.html#sup">Unterstützte
|
||||
FreeBSD-Versionen</a> auf der Seite <a
|
||||
href="&base;/security/security.html">FreeBSD Sicherheit</a>.</p>
|
||||
|
||||
<ul>
|
||||
<li><b>8.0</b> (November 2009)
|
||||
<em>
|
||||
<a href="&enbase;/releases/8.0R/announce.html">Announcement</a>:
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<!DOCTYPE html PUBLIC "-//FreeBSD//DTD XHTML 1.0 Transitional-Based Extension//EN"
|
||||
"http://www.FreeBSD.org/XML/doc/share/xml/xhtml10-freebsd.dtd" [
|
||||
<!ENTITY dedate "$FreeBSDde$">
|
||||
<!ENTITY reference "basiert auf: r39195">
|
||||
<!ENTITY reference "basiert auf: r39632">
|
||||
<!ENTITY title "FreeBSD Sicherheit">
|
||||
<!ENTITY advisories.html.inc SYSTEM "advisories.html.inc">
|
||||
<!ENTITY advisories.html.inc SYSTEM "advisories.html.inc">
|
||||
|
@ -285,22 +285,6 @@
|
|||
<td>letztes Release + 2 Jahre</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>RELENG_8_1</td>
|
||||
<td>8.1-RELEASE</td>
|
||||
<td>erweitert</td>
|
||||
<td>23. Juli 2010</td>
|
||||
<td>31. Juli 2012</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>RELENG_8_2</td>
|
||||
<td>8.2-RELEASE</td>
|
||||
<td>normal</td>
|
||||
<td>24. Februar 2011</td>
|
||||
<td>31. Juli 2012</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>RELENG_8_3</td>
|
||||
<td>8.3-RELEASE</td>
|
||||
|
@ -502,6 +486,22 @@
|
|||
<td>25. November 2009</td>
|
||||
<td>30. November 2010</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>RELENG_8_1</td>
|
||||
<td>8.1-RELEASE</td>
|
||||
<td>erweitert</td>
|
||||
<td>23. Juli 2010</td>
|
||||
<td>31. Juli 2012</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>RELENG_8_2</td>
|
||||
<td>8.2-RELEASE</td>
|
||||
<td>normal</td>
|
||||
<td>24. Februar 2011</td>
|
||||
<td>31. Juli 2012</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<!DOCTYPE html PUBLIC "-//FreeBSD//DTD XHTML 1.0 Transitional-Based Extension//EN"
|
||||
"http://www.FreeBSD.org/XML/doc/share/xml/xhtml10-freebsd.dtd" [
|
||||
<!ENTITY dedate "$FreeBSDde$">
|
||||
<!ENTITY reference "basiert auf: r39304">
|
||||
<!ENTITY reference "basiert auf: r40536">
|
||||
<!ENTITY title "FreeBSD Bezugsquellen">
|
||||
<!ENTITY url.rel "ftp://ftp.FreeBSD.org/pub/FreeBSD/releases">
|
||||
]>
|
||||
|
@ -50,11 +50,8 @@
|
|||
|
||||
<p>Wenn Sie FreeBSD über FTP oder HTTP beziehen wollen, suchen Sie in der <a
|
||||
href="&enbase;/doc/de_DE.ISO8859-1/books/handbook/mirrors-ftp.html"><strong>Liste
|
||||
der Spiegel</strong></a> des Handbuchs einen Spiegel in
|
||||
Ihrer Nähe. Alternativ können Sie auch BitTorrent
|
||||
verwenden, um &os; herunterzuladen. Die dazu benötigten
|
||||
<q>.torrent</q>-Dateien finden Sie über den <a
|
||||
href="http://torrents.FreeBSD.org:8080/">&os; BitTorrent-Tracker</a>.</p>
|
||||
der FTP-Spiegelserver</strong></a> des Handbuchs einen Spiegelserver in
|
||||
Ihrer Nähe.</p>
|
||||
|
||||
<table class="tblbasic">
|
||||
<thead>
|
||||
|
@ -72,10 +69,10 @@
|
|||
<tr>
|
||||
<td colspan="2">FreeBSD &rel.current;-RELEASE</td>
|
||||
<td colspan="2"></td>
|
||||
<td rowspan="7"><a href="&enbase;/releases/&rel.current;R/relnotes.html">[Lesen]</a></td>
|
||||
<td rowspan="7"><a href="&enbase;/releases/&rel.current;R/hardware.html">[Lesen]</a></td>
|
||||
<td rowspan="7"><a href="&enbase;/releases/&rel.current;R/installation.html">[Lesen]</a></td>
|
||||
<td rowspan="7"><a href="&enbase;/releases/&rel.current;R/errata.html">[Lesen]</a></td>
|
||||
<td rowspan="5"><a href="&enbase;/releases/&rel.current;R/relnotes.html">[Lesen]</a></td>
|
||||
<td rowspan="5"><a href="&enbase;/releases/&rel.current;R/hardware.html">[Lesen]</a></td>
|
||||
<td rowspan="5"><a href="&enbase;/releases/&rel.current;R/installation.html">[Lesen]</a></td>
|
||||
<td rowspan="5"><a href="&enbase;/releases/&rel.current;R/errata.html">[Lesen]</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
|
@ -89,6 +86,7 @@
|
|||
<td><a href="&url.rel;/i386/i386/&rel.current;-RELEASE">[Distribution]</a></td>
|
||||
<td><a href="&url.rel;/i386/i386/ISO-IMAGES/&rel.current;/">[ISO]</a></td>
|
||||
</tr>
|
||||
<!--
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>ia64</td>
|
||||
|
@ -101,6 +99,7 @@
|
|||
<td><a href="&url.rel;/powerpc/powerpc/&rel.current;-RELEASE">[Distribution]</a></td>
|
||||
<td><a href="&url.rel;/powerpc/powerpc/ISO-IMAGES/&rel.current;/">[ISO]</a></td>
|
||||
</tr>
|
||||
-->
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>powerpc64</td>
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $FreeBSD$
|
||||
$FreeBSDde: de-www/share/xml/header.l10n.ent,v 1.18 2012/02/12 09:46:42 jkois Exp $
|
||||
basiert auf: 1.19
|
||||
$FreeBSDde$
|
||||
basiert auf: r39675
|
||||
-->
|
||||
|
||||
<!-- Components making up the standard headers and footers. -->
|
||||
<!-- Override in the prolog <em>before</em> including this -->
|
||||
<!-- file if necessary.-->
|
||||
<!ENTITY copyright '<span xmlns="http://www.w3.org/1999/xhtml"><a href="&enbase;/search/index-site.html">Sitemap</a> | <a href="&enbase;/copyright/">Legal Notices</a> | © 1995-2012 The FreeBSD Project. Alle Rechte vorbehalten.</span>'>
|
||||
<!ENTITY copyright '<span xmlns="http://www.w3.org/1999/xhtml"><a href="&enbase;/search/index-site.html">Sitemap</a> | <a href="&enbase;/copyright/">Legal Notices</a> | © 1995–2012 The FreeBSD Project. Alle Rechte vorbehalten.</span>'>
|
||||
<!ENTITY author '<a href="&base;/index.html">Startseite</a> |
|
||||
<a href="&base;/mailto.html">Ansprechpartner</a> |
|
||||
<a href="&enbase;/copyright/index.html">Legal</a> |
|
||||
|
@ -67,7 +67,7 @@
|
|||
<li><a href="&enbase;/projects/index.html">Entwicklung</a>
|
||||
<ul>
|
||||
<li><a href="http://wiki.FreeBSD.org/IdeasPage">Projektideen</a></li>
|
||||
<li><a href="http://svn.FreeBSD.org/viewvc/base/">SVN-Repository</a></li>
|
||||
<li><a href="http://svnweb.FreeBSD.org">SVN-Repository</a></li>
|
||||
<li><a href="http://cvsweb.FreeBSD.org">CVS-Repository</a></li>
|
||||
<li><a href="http://p4web.FreeBSD.org">Perforce-Repository</a></li>
|
||||
</ul>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<!--
|
||||
$FreeBSD$
|
||||
$FreeBSDde$
|
||||
basiert auf: r39424
|
||||
basiert auf: r40659
|
||||
-->
|
||||
|
||||
<!-- Simple schema for FreeBSD Project news.
|
||||
|
@ -35,9 +35,406 @@
|
|||
$FreeBSD$
|
||||
</cvs:keyword>
|
||||
|
||||
<year>
|
||||
<name>2013</name>
|
||||
|
||||
<month>
|
||||
<name>1</name>
|
||||
|
||||
<day>
|
||||
<name>16</name>
|
||||
|
||||
<event>
|
||||
<p>Neuer Committer: <a
|
||||
href="mailto:carl@FreeBSD.org">Carl Delsey</a> (src)</p>
|
||||
</event>
|
||||
</day>
|
||||
|
||||
<day>
|
||||
<name>15</name>
|
||||
|
||||
<event>
|
||||
<p>Erweiterte Commit-Privilegien: <a
|
||||
href="mailto:rene@FreeBSD.org">René Ladan</a> (ports,
|
||||
full doc/www)</p>
|
||||
</event>
|
||||
</day>
|
||||
|
||||
<day>
|
||||
<name>14</name>
|
||||
|
||||
<event>
|
||||
<p>Neuer Committer: <a
|
||||
href="mailto:dbn@FreeBSD.org">David Naylor</a> (ports)</p>
|
||||
</event>
|
||||
</day>
|
||||
|
||||
<day>
|
||||
<name>13</name>
|
||||
|
||||
<event>
|
||||
<title>Statusreport April-Juni 2012</title>
|
||||
|
||||
<p>Der Statusreport für die Monate April bis Juni 2012 mit
|
||||
17 Einträgen ist ab sofort <a
|
||||
href="&enbase;/news/status/report-2012-04-2012-06.html">verfügbar</a>.</p>
|
||||
</event>
|
||||
</day>
|
||||
|
||||
<day>
|
||||
<name>10</name>
|
||||
<event>
|
||||
<title>Ports-CVS: End-of-Life am 28. Februar 2013</title>
|
||||
|
||||
<p>Die Entwicklung von &os;-Ports erfolgt seit einiger Zeit
|
||||
ausschließlich in Subversion. Ab 28. Februar 2013 wird
|
||||
daher der &os;-Portsbaum nicht mehr nach CVS exportiert
|
||||
werden. Ab diesem Zeitpunkt wird es nicht mehr möglich
|
||||
sein, den Portsbaum via CVS, CVSup oder csup(1) zu
|
||||
aktualisieren. Anwendern, die diese Programme derzeit
|
||||
noch nutzen, wird empfohlen, künftig portsnap(8)
|
||||
einzusetzen. Alternativ können Sie Subversion auch
|
||||
direkt verwenden. Weitere Informationen zu diesem Thema
|
||||
finden sich in der offiziellen <a
|
||||
href="&lists.ports-announce;/2012-September/000026.html">Ankündigung</a>
|
||||
auf der Mailingliste freebsd-ports-announce.</p>
|
||||
|
||||
<p>Eine Anleitung zur Migration von CVSup oder csup(1) nach
|
||||
portsnap(8) finden Sie im <a
|
||||
href="&enbase;/doc/en_US.ISO8859-1/books/handbook/ports-using.html#cvsup-migration">&os;-Handbuch</a>.</p>
|
||||
</event>
|
||||
</day>
|
||||
|
||||
<day>
|
||||
<name>8</name>
|
||||
|
||||
<event>
|
||||
<title>Faces of &os; ‐ Thomas Abthorpe</title>
|
||||
|
||||
<p>Wir freuen uns, Ihnen unsere nächste Geschichte aus der
|
||||
Reihe "Faces of &os;" präsentieren zu können. Diese Reihe
|
||||
erlaubt es uns zu zeigen, wie wir verschiedene Personen
|
||||
bei Ihrer Arbeit an/für &os; unterstützen.
|
||||
Diese Unterstützung besteht beispielsweise in der
|
||||
Finanzierung von Entwicklungsprojekten, der Organisation
|
||||
von Konferenzen, der Übernahme von Reisekosten sowie
|
||||
der allgemeinen Förderung von &os;.</p>
|
||||
|
||||
<p>Diesmal stellen wir Ihnen Thomas Abthorpe vor. Wir haben
|
||||
es ihm ermöglicht, an der BSDCan 2009, 2011 und 2012
|
||||
teilzunehmen, indem wir uns an seinen Reisekosten
|
||||
beteiligt haben. Lesen Sie seine Geschichte <a
|
||||
href="http://freebsdfoundation.blogspot.com/2013/01/faces-of-freebsd-thomas-abthorpe.html">hier.</a></p>
|
||||
</event>
|
||||
</day>
|
||||
</month>
|
||||
</year>
|
||||
|
||||
<year>
|
||||
<name>2012</name>
|
||||
|
||||
<month>
|
||||
<name>12</name>
|
||||
|
||||
<day>
|
||||
<name>31</name>
|
||||
|
||||
<event>
|
||||
<title>&os; 9.1-RELEASE verfügbar</title>
|
||||
|
||||
<p><a href="&enbase;/releases/9.1R/announce.html">FreeBSD
|
||||
9.1-RELEASE</a> ist ab sofort verfügbar. Lesen Sie unbedingt
|
||||
die <a
|
||||
href="&enbase;/releases/9.1R/relnotes.html">Release Notes</a>
|
||||
(<a
|
||||
href="&enbase;/releases/9.1R/relnotes-detailed.html">ausführliche
|
||||
Version</a>) sowie die <a
|
||||
href="&enbase;/releases/9.1R/errata.html">Release Errata</a>,
|
||||
bevor Sie mit der Installation beginnen, um
|
||||
sich über aktuelle Neuigkeiten und/oder eventuelle
|
||||
Probleme im Umgang mit 9.1-RELEASE zu informieren.
|
||||
Weitere Informationen zu verschiedenen FreeBSD-Versionen
|
||||
finden Sie auf der Seite <a
|
||||
href="&base;/releases/index.html">Release Information</a>.</p>
|
||||
</event>
|
||||
</day>
|
||||
|
||||
<day>
|
||||
<name>20</name>
|
||||
|
||||
<event>
|
||||
<title>T&os; Foundation Newsletter Dezember 2012.</title>
|
||||
|
||||
<p>Die &os; Foundation hat ihren <a
|
||||
href="http://www.freebsdfoundation.org/press/2012Dec-newsletter.shtml">End-of-Year Newsletter</a>
|
||||
für das Jahr 2012 veröffentlicht.</p>
|
||||
</event>
|
||||
</day>
|
||||
|
||||
<day>
|
||||
<name>18</name>
|
||||
|
||||
<event>
|
||||
<p>Neuer Committer: <a
|
||||
href="mailto:markj@FreeBSD.org">Mark Johnston</a> (src)</p>
|
||||
</event>
|
||||
|
||||
<event>
|
||||
<title>PC-BSD 9.1 ist verfügbar</title>
|
||||
|
||||
<p>Das PC-BSD Team hat PC-BSD 9.1 <a
|
||||
href="http://blog.pcbsd.org/2012/12/pc-bsd-9-1-now-available/">veröffentlicht</a>.</p>
|
||||
</event>
|
||||
</day>
|
||||
|
||||
<day>
|
||||
<name>17</name>
|
||||
|
||||
<event>
|
||||
<title>Faces of &os; ‐ Dan Langille</title>
|
||||
|
||||
<p>Wir freuen uns, Ihnen unsere nächste Geschichte aus der
|
||||
Reihe "Faces of &os;" präsentieren zu können. Diese Reihe
|
||||
erlaubt es uns zu zeigen, wie wir verschiedene Personen
|
||||
bei Ihrer Arbeit an/für &os; unterstützen.
|
||||
Diese Unterstützung besteht beispielsweise in der
|
||||
Finanzierung von Entwicklungsprojekten, der Organisation
|
||||
von Konferenzen, der Übernahme von Reisekosten sowie
|
||||
der allgemeinen Förderung von &os;.</p>
|
||||
|
||||
<p>Diesmal stellen wir Ihnen Dan Langille vor. Wir
|
||||
unterstützen ihn seit 2006 durch das Sponsering der jährlichen
|
||||
BSDCan. Lesen Sie seine Geschichte <a
|
||||
href="http://freebsdfoundation.blogspot.com/2012/12/faces-of-freebsd-dan-langille_17.html">hier.</a></p>
|
||||
</event>
|
||||
</day>
|
||||
|
||||
<day>
|
||||
<name>12</name>
|
||||
|
||||
<event>
|
||||
<title>Neuer Spendenrekord: Mehr als 650 neue
|
||||
Spenden über insgesamt $43.200 in nur 3 Tagen!</title>
|
||||
|
||||
<p>Aufmerksame Leser des Blogs der FreeBSD Foundation
|
||||
wissen, dass wir letzte Woche mit unserer jährlichen
|
||||
Spendenaktion begonnen haben, mit der wir in der Regel
|
||||
mehr als 50 Prozent aller Spenden erzielen. Weitere
|
||||
Informationen zu dieser Aktion finden Sie <a
|
||||
href="http://freebsdfoundation.blogspot.com/2012/12/stunning-news-website-fundraising.html">hier</a>.</p>
|
||||
</event>
|
||||
</day>
|
||||
|
||||
<day>
|
||||
<name>10</name>
|
||||
|
||||
<event>
|
||||
<title>Faces of &os; ‐ Alberto Mijares</title>
|
||||
|
||||
<p>Wissen Sie, wie die &os; Foundation die &os;-Gemeinde im
|
||||
letzten Jahr unterstützt hat? Im Rahmen unserer jährlichen
|
||||
Spendenkampagne stellen wir Ihnen auf unserer Webseite, in
|
||||
unserem Blog sowie auf Facebook verschiedene Personen vor,
|
||||
die wir durch die Finanzierung von Entwicklungsprojekten,
|
||||
die Organisation von Konferenzen, die Übernahme von
|
||||
Reisekosten sowie die generelle Förderung von &os;
|
||||
unterstützt haben. Weitere Information finden Sie <a
|
||||
href="http://freebsdfoundation.blogspot.com/2012/12/faces-of-freebsd-alberto-mijares.html">hier</a>.</p>
|
||||
</event>
|
||||
</day>
|
||||
|
||||
<day>
|
||||
<name>5</name>
|
||||
|
||||
<event>
|
||||
<title>&os;-Spendenkampagne</title>
|
||||
|
||||
<p>Ihre Spenden haben uns dabei geholfen, &os; zum besten
|
||||
derzeit verfügbaren Betriebssystem zu machen. Indem Sie
|
||||
die &os; Foundation unterstützen, helfen Sie uns dabei,
|
||||
&os; als leistungsfähiges, sicheres und stabiles
|
||||
Betriebssystem weiterzuentwickeln.</p>
|
||||
|
||||
<p>Dank Personen wie Ihnen konnte die &os; Foundation das
|
||||
&os; Project sowie die &os;-Gemeinde in den letzten
|
||||
zwölf Jahren kontinuierlich unterstützen. Weitere Informationen
|
||||
zu unserer jährlichen Spendenkampagne finden Sie <a
|
||||
href="http://freebsdfoundation.blogspot.com/2012/12/year-end-fundraising-campaign.html">hier</a>.</p>
|
||||
</event>
|
||||
|
||||
<event>
|
||||
<title>Die Webseite des &os; Projects verwendet ab sofort
|
||||
Google Analytics</title>
|
||||
|
||||
<p>Das &os; Project hat Google Analytics aktiviert, um
|
||||
anonymisierte Statistiken über die Nutzung der Webseiten
|
||||
zu erhalten. Weitere Informationen zu dieser Umstellung
|
||||
finden Sie in der offiziellen <a
|
||||
href="&lists.announce;/2012-December/001441.html">Ankündigung</a>.</p>
|
||||
</event>
|
||||
</day>
|
||||
</month>
|
||||
|
||||
<month>
|
||||
<name>11</name>
|
||||
|
||||
<day>
|
||||
<name>26</name>
|
||||
|
||||
<event>
|
||||
<p>Neuer Committer: <a
|
||||
href="mailto:syuu@FreeBSD.org">Takuya ASADA</a> (src)</p>
|
||||
</event>
|
||||
</day>
|
||||
|
||||
<day>
|
||||
<name>25</name>
|
||||
|
||||
<event>
|
||||
<p>Neuer Committer: <a
|
||||
href="mailto:bar@FreeBSD.org">Barbara Guida</a> (ports)</p>
|
||||
</event>
|
||||
</day>
|
||||
|
||||
<day>
|
||||
<name>17</name>
|
||||
|
||||
<event>
|
||||
<title>Angriffsversuch auf die FreeBSD-Infrastruktur</title>
|
||||
|
||||
<p>Am 11. November 2012 wurde ein unerlaubter Zugriff auf zwei
|
||||
Systeme innerhalb des FreeBSD.org-Clusters entdeckt. Wir
|
||||
konnten zwar keinen Hinweis darauf finden, dass Dateien
|
||||
manipuliert wurden, dennoch empfehlen wir allen Benutzern,
|
||||
den dazu erstellten <a
|
||||
href="&enbase;/news/2012-compromise.html">Bericht</a>
|
||||
zu lesen und selbst zu entscheiden, ob Handlungsbedarf
|
||||
besteht.</p>
|
||||
</event>
|
||||
</day>
|
||||
|
||||
<day>
|
||||
<name>5</name>
|
||||
|
||||
<event>
|
||||
<p>Neuer Committer: <a
|
||||
href="mailto:bryanv@FreeBSD.org">Bryan Venteicher</a> (src)</p>
|
||||
</event>
|
||||
</day>
|
||||
|
||||
<day>
|
||||
<name>4</name>
|
||||
|
||||
<event>
|
||||
<p>Neuer Committer: <a
|
||||
href="mailto:gblach@FreeBSD.org">Grzegorz Blach</a> (ports)</p>
|
||||
</event>
|
||||
</day>
|
||||
|
||||
<day>
|
||||
<name>3</name>
|
||||
|
||||
<event>
|
||||
<title>&os; 9.1-RC3 verfügbar</title>
|
||||
|
||||
<p>Der dritte Release Candidate aus dem &os;-9.1-Releasezyklus
|
||||
ist <a
|
||||
href="&lists.stable;/2012-November/070401.html">verfügbar</a>.
|
||||
ISO-Images für die Architekturen amd64, i386, sparc64 sowie
|
||||
powerpc64 sind inzwischen auf den meisten <a
|
||||
href="&enbase;/doc/de_DE.ISO8859-1/books/handbook/mirrors-ftp.html">&os;
|
||||
Spiegelservern</a> vorhanden.</p>
|
||||
</event>
|
||||
</day>
|
||||
</month>
|
||||
|
||||
<month>
|
||||
<name>10</name>
|
||||
|
||||
<day>
|
||||
<name>24</name>
|
||||
|
||||
<event>
|
||||
<p>Erweiterte Commit-Privilegien: <a
|
||||
href="mailto:erwin@FreeBSD.org">Erwin Lansing</a> (src, ports)</p>
|
||||
</event>
|
||||
</day>
|
||||
|
||||
<day>
|
||||
<name>23</name>
|
||||
|
||||
<event>
|
||||
<p>Neuer Committer: <a
|
||||
href="mailto:sjg@FreeBSD.org">Simon J. Gerraty</a> (src)</p>
|
||||
</event>
|
||||
</day>
|
||||
|
||||
<day>
|
||||
<name>20</name>
|
||||
|
||||
<event>
|
||||
<p>Erweiterte Commit-Privilegien: <a
|
||||
href="mailto:eadler@FreeBSD.org">Eitan Adler</a> (src, ports, doc)</p>
|
||||
</event>
|
||||
</day>
|
||||
|
||||
<day>
|
||||
<name>19</name>
|
||||
|
||||
<event>
|
||||
<p>Neues Mitglied im Ports Management Team: <a
|
||||
href="mailto:decke@FreeBSD.org">Bernhard Fröhlich</a></p>
|
||||
</event>
|
||||
</day>
|
||||
|
||||
<day>
|
||||
<name>10</name>
|
||||
|
||||
<event>
|
||||
<title>&os; 9.1-RC2 verfügbar</title>
|
||||
|
||||
<p>Der zweite Release Candidate aus dem &os;-9.1-Releasezyklus
|
||||
ist <a
|
||||
href="&lists.stable;/2012-October/069998.html">verfügbar</a>.
|
||||
ISO-Images für die Architekturen amd64, i386, ia64, powerpc
|
||||
sowie powerpc64 sind inzwischen auf den meisten <a
|
||||
href="&enbase;/doc/de_DE.ISO8859-1/books/handbook/mirrors-ftp.html">&os;
|
||||
Spiegelservern</a> vorhanden.</p>
|
||||
</event>
|
||||
</day>
|
||||
</month>
|
||||
|
||||
<month>
|
||||
<name>9</name>
|
||||
|
||||
<day>
|
||||
<name>15</name>
|
||||
|
||||
<event>
|
||||
<p>Neuer Committer: <a
|
||||
href="mailto:peterj@FreeBSD.org">Peter Jeremy</a> (src)</p>
|
||||
</event>
|
||||
</day>
|
||||
|
||||
<day>
|
||||
<name>13</name>
|
||||
|
||||
<event>
|
||||
<p>Neuer Committer: <a
|
||||
href="mailto:ebrandi@FreeBSD.org">Edson Brandi</a> (doc/pt_BR, www/pt_BR)</p>
|
||||
</event>
|
||||
</day>
|
||||
|
||||
<day>
|
||||
<name>10</name>
|
||||
|
||||
<event>
|
||||
<p>Neuer Committer: <a
|
||||
href="mailto:jhale@FreeBSD.org">Jason E. Hale</a> (ports)</p>
|
||||
</event>
|
||||
</day>
|
||||
</month>
|
||||
|
||||
<month>
|
||||
<name>8</name>
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
"freefall:/c/www/bsddoc/press/".
|
||||
$FreeBSD$
|
||||
$FreeBSDde$
|
||||
basiert auf: r39030
|
||||
basiert auf: r40251
|
||||
-->
|
||||
|
||||
<press>
|
||||
|
@ -18,6 +18,39 @@
|
|||
<year>
|
||||
<name>2012</name>
|
||||
|
||||
<month>
|
||||
<name>11</name>
|
||||
|
||||
<story>
|
||||
<name>A world without Linux: Where would Apache,
|
||||
Microsoft — even Apple be today?</name>
|
||||
<url>http://www.infoworld.com/d/data-center/world-without-linux-where-would-apache-microsoft-even-apple-be-today-206680</url>
|
||||
<site-name>Infoworld</site-name>
|
||||
<site-url>http://www.infoworld.com</site-url>
|
||||
<date>12. November 2012</date>
|
||||
<author>Paul Venezia</author>
|
||||
<p>Hätte Linux nicht die Welt erobert, würden wir heute alle FreeBSD
|
||||
verwenden. Vielleicht sogar auf dem Desktop.</p>
|
||||
</story>
|
||||
</month>
|
||||
|
||||
<month>
|
||||
<name>8</name>
|
||||
|
||||
<story>
|
||||
<name>FreeBSD Now Supported on Windows Server Hyper-V Via Beta
|
||||
Release</name>
|
||||
<url>http://redmondmag.com/articles/2012/08/09/freebsd-beta-for-windows-server-hyper-v.aspx</url>
|
||||
<site-name>Redmondmag</site-name>
|
||||
<site-url>http://redmondmag.com</site-url>
|
||||
<date>9. August 2012</date>
|
||||
<author>Kurt Mackie</author>
|
||||
<p>Microsoft hat heute die Betaversion eines Treibers veröffentlicht,
|
||||
mit der erstmals das frei verfügbare FreeBSD 8.2 in einer virtuellen
|
||||
Machine von Microsofts Hyper-V Server installiert werden kann.</p>
|
||||
</story>
|
||||
</month>
|
||||
|
||||
<month>
|
||||
<name>6</name>
|
||||
|
||||
|
|
|
@ -16,11 +16,11 @@ INSTALL_ONLY_COMPRESSED?=
|
|||
WITH_ARTICLE_TOC?=YES
|
||||
|
||||
#
|
||||
# SRCS lists the individual SGML files that make up the document. Changes
|
||||
# SRCS lists the individual XML files that make up the document. Changes
|
||||
# to any of these files will force a rebuild
|
||||
#
|
||||
|
||||
# SGML content
|
||||
# XML content
|
||||
SRCS= article.xml
|
||||
|
||||
URL_RELPREFIX?= ../../../..
|
||||
|
|
|
@ -19,11 +19,11 @@ INSTALL_ONLY_COMPRESSED?=
|
|||
WITH_BIBLIOXREF_TITLE?=YES
|
||||
|
||||
#
|
||||
# Η λίστα SRCS περιέχει όλα τα SGML αρχεία που αποτελούν μέρη του κειμένου.
|
||||
# Η λίστα SRCS περιέχει όλα τα XML αρχεία που αποτελούν μέρη του κειμένου.
|
||||
# Αλλαγές σε οποιοδήποτε από αυτά τα αρχεία προκαλούν rebuild.
|
||||
#
|
||||
|
||||
# SGML content
|
||||
# XML content
|
||||
SRCS= book.xml
|
||||
|
||||
URL_RELPREFIX?= ../../../..
|
||||
|
|
|
@ -246,11 +246,11 @@ IMAGES_LIB+= callouts/14.png
|
|||
IMAGES_LIB+= callouts/15.png
|
||||
|
||||
#
|
||||
# Η λίστα SRCS περιέχει όλα τα SGML αρχεία που αποτελούν μέρη του κειμένου.
|
||||
# Η λίστα SRCS περιέχει όλα τα XML αρχεία που αποτελούν μέρη του κειμένου.
|
||||
# ÁëëáãÝò óå ïðïéïäÞðïôå áðü áõôÜ ôá áñ÷åßá ðñïêáëïýí rebuild.
|
||||
#
|
||||
|
||||
# SGML content
|
||||
# XML content
|
||||
SRCS+= audit/chapter.xml
|
||||
SRCS+= book.xml
|
||||
SRCS+= bsdinstall/chapter.xml
|
||||
|
@ -299,8 +299,8 @@ SYMLINKS= ${DESTDIR} index.html handbook.html
|
|||
# Turn on all the chapters.
|
||||
CHAPTERS?= ${SRCS:M*chapter.xml}
|
||||
|
||||
SGMLFLAGS+= ${CHAPTERS:S/\/chapter.xml//:S/^/-i chap./}
|
||||
SGMLFLAGS+= -i chap.freebsd-glossary
|
||||
XMLFLAGS+= ${CHAPTERS:S/\/chapter.xml//:S/^/-i chap./}
|
||||
XMLFLAGS+= -i chap.freebsd-glossary
|
||||
|
||||
pgpkeyring: pgpkeys/chapter.xml
|
||||
@${JADE} -V nochunks ${OTHERFLAGS} ${JADEOPTS} -d ${DSLPGP} -t sgml ${MASTERDOC}
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
.endif
|
||||
|
||||
# Subdirectories
|
||||
# SGML
|
||||
# XML
|
||||
SUBDIR= FAQ
|
||||
.if !defined(WEB_ONLY) || empty(WEB_ONLY)
|
||||
SUBDIR+= doc
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
<year>2010</year>
|
||||
<year>2011</year>
|
||||
<year>2012</year>
|
||||
<year>2013</year>
|
||||
<holder>The FreeBSD Documentation Project</holder>
|
||||
</copyright>
|
||||
|
||||
|
@ -209,7 +210,7 @@
|
|||
<row>
|
||||
<entry>doc</entry>
|
||||
<entry>doceng@</entry>
|
||||
<entry>doc/, www/, src/ documentation</entry>
|
||||
<entry>doc/, src/ documentation</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
|
@ -367,7 +368,7 @@
|
|||
<sect2 id="svn-getting-started">
|
||||
<title>Getting Started</title>
|
||||
|
||||
<para>There are three ways to obtain a working copy of the tree
|
||||
<para>There are a few ways to obtain a working copy of the tree
|
||||
from Subversion. This section will explain them.</para>
|
||||
|
||||
<sect3>
|
||||
|
@ -463,119 +464,6 @@
|
|||
information on how to set one up.</para>
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title>Checkout from a Local Mirror Using
|
||||
<acronym>SVK</acronym></title>
|
||||
|
||||
<para>The third alternative is to use <acronym>SVK</acronym>
|
||||
to maintain a local mirror. It is a version control system
|
||||
build on top of Subversion's storage engine. It is
|
||||
identical to Subversion in most respects, except that it
|
||||
allows for setting up parts of repositories as mirrors of
|
||||
other repositories, and keeping local branches for merging
|
||||
back into the upstream repositories. There are extensions
|
||||
that allow <acronym>SVK</acronym> to mirror
|
||||
<acronym>CVS</acronym> and Perforce repositories in addition
|
||||
to Subversion ones.</para>
|
||||
|
||||
<para>Like everything, <acronym>SVK</acronym> has its
|
||||
disadvantages, one being that local revision numbers will
|
||||
not match upstream revision numbers. This makes it
|
||||
difficult to <command>svk log</command>, <command>svk
|
||||
diff</command>, or <command>svk update</command> to an
|
||||
arbitrary upstream revision.</para>
|
||||
|
||||
<para>To set up a mirror of the &os; repository, do:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>svk mirror svn+ssh://svn.freebsd.org/base //freebsd/base</userinput></screen>
|
||||
|
||||
<para>The local <acronym>SVK</acronym> repository will be
|
||||
stored in <filename
|
||||
class="directory">~/.svk/local/</filename>, but can be
|
||||
moved to an alternate location. If it is moved,
|
||||
<filename>~/.svk/config</filename> should be amended
|
||||
manually to reflect the move.</para>
|
||||
|
||||
<para>Any path can be used, not just the one in the example
|
||||
above. A common pattern is to place mirrors under
|
||||
<literal>//mirror</literal>, e.g.,
|
||||
<filename
|
||||
class="directory">//mirror/freebsd/base/</filename>, and
|
||||
local branches under <literal>//local</literal>.</para>
|
||||
|
||||
<para>To pull down the contents of the repository to the
|
||||
mirror:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>svk sync //freebsd/base</userinput></screen>
|
||||
|
||||
<note>
|
||||
<para><command>svk sync</command> will take a very long
|
||||
time, possibly several days over a slow network
|
||||
connection. &a.peter; has a tarball that can be used to
|
||||
jumpstart the mirror, but only if one does not exist
|
||||
already.</para>
|
||||
</note>
|
||||
|
||||
<para>To use the tarball referenced above:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>cd ~</userinput>
|
||||
&prompt.user; <userinput>scp freefall:/home/peter/dot_svk_r179646.tbz2 .</userinput>
|
||||
&prompt.user; <userinput>tar xf dot_svk_r179646.tbz2</userinput></screen>
|
||||
|
||||
<para>Then edit <filename>~/.svk/config</filename> and replace
|
||||
<filename
|
||||
class="directory">/scratch/tmp/peter/.svk/local/</filename>
|
||||
with the equivalent of <filename
|
||||
class="directory">/home/<replaceable>jarjar</replaceable>/.svk/local/</filename>.</para>
|
||||
|
||||
<para>You can check out files directly from your mirror, once
|
||||
it has been created:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>svk checkout //freebsd/base/head /usr/src</userinput></screen>
|
||||
|
||||
<para>Unlike <acronym>SVN</acronym>, <acronym>SVK</acronym>
|
||||
does not store metadata or reference copies in the working
|
||||
copy. All metadata is recorded in
|
||||
<filename>~/.svk/config</filename>; reference copies are not
|
||||
used at all because <acronym>SVK</acronym> always operates
|
||||
on a local repository.</para>
|
||||
|
||||
<para>When committing from a working copy like the one above,
|
||||
<acronym>SVN</acronym> will commit directly to the upstream
|
||||
repository, then synchronise the mirror.</para>
|
||||
|
||||
<para>However, the <quote>killer app</quote> for
|
||||
<acronym>SVK</acronym> is the ability to work without a
|
||||
network connection. To do that, a local branch must be set
|
||||
up:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>svk mkdir //local/freebsd</userinput>
|
||||
&prompt.user; <userinput>svk copy //freebsd/base/head //local/freebsd/head</userinput></screen>
|
||||
|
||||
<para>Once again, any path can be used, it does not have to
|
||||
specifically be the one in the example.</para>
|
||||
|
||||
<para>Before use, the local branch has to be synchronized,
|
||||
like so:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>svk pull //local/freebsd/head</userinput></screen>
|
||||
|
||||
<para>Then check out from the newly created local
|
||||
branch:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>svk checkout //local/freebsd/head /usr/src</userinput></screen>
|
||||
|
||||
<para>The point of this exercise is showing that it is
|
||||
possible to commit work-in-progress to a local branch, and
|
||||
only push it to the upstream repository when work is
|
||||
complete. The easy way to push is with <command>svk
|
||||
push</command>, but there is a serious disadvantage to it:
|
||||
it will push every single commit made to the local branch
|
||||
incrementally instead of lumping them all into a single
|
||||
commit. Therefore, using <command>svk smerge</command> is
|
||||
preferable.</para>
|
||||
</sect3>
|
||||
|
||||
<sect3 id="subversion-primer-base-layout">
|
||||
<title><literal>RELENG_*</literal> Branches and General
|
||||
Layout</title>
|
||||
|
@ -708,16 +596,6 @@
|
|||
daily use, except for the revision renumbering mentioned
|
||||
earlier.</para>
|
||||
|
||||
<note>
|
||||
<para><acronym>SVN</acronym> and <acronym>SVK</acronym>
|
||||
commands that have direct <acronym>CVS</acronym> equivalents
|
||||
usually have the same name and abbreviations. For example:
|
||||
<emphasis>checkout</emphasis> and <emphasis>co</emphasis>,
|
||||
<emphasis>update</emphasis> and <emphasis>up</emphasis>, and
|
||||
<emphasis>commit</emphasis> and
|
||||
<emphasis>ci</emphasis>.</para>
|
||||
</note>
|
||||
|
||||
<sect3>
|
||||
<title>Help</title>
|
||||
|
||||
|
@ -821,11 +699,7 @@
|
|||
|
||||
<screen>&prompt.user; <userinput>svn status</userinput></screen>
|
||||
|
||||
<para><acronym>CVS</acronym> has no direct equivalent of this
|
||||
command. The nearest would be <command>cvs up -N</command>
|
||||
which shows local changes and files that are out-of-date.
|
||||
Doing this in <acronym>SVN</acronym> is possible too,
|
||||
however:</para>
|
||||
<para>To show local changes and files that are out-of-date do:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>svn status --show-updates</userinput></screen>
|
||||
</sect3>
|
||||
|
@ -833,7 +707,7 @@
|
|||
<sect3>
|
||||
<title>Editing and Committing</title>
|
||||
|
||||
<para>Like <acronym>CVS</acronym> but unlike Perforce,
|
||||
<para>Unlike Perforce,
|
||||
<acronym>SVN</acronym> and <acronym>SVK</acronym> do not
|
||||
need to be told in advance about file editing.</para>
|
||||
|
||||
|
@ -879,7 +753,7 @@
|
|||
</para>
|
||||
</note>
|
||||
|
||||
<para>As with <acronym>CVS</acronym>, files are added to a
|
||||
<para>Files are added to a
|
||||
<acronym>SVN</acronym> repository with <command>svn
|
||||
add</command>. To add a file named
|
||||
<emphasis>foo</emphasis>, edit it, then:</para>
|
||||
|
@ -907,10 +781,9 @@
|
|||
|
||||
<screen>&prompt.user; <userinput>svn mkdir <replaceable>bar</replaceable></userinput></screen>
|
||||
|
||||
<para>In <acronym>CVS</acronym>, the directory is immediately
|
||||
created in the repository when you <command>cvs
|
||||
add</command> it; this is not the case in Subversion.
|
||||
Furthermore, unlike <acronym>CVS</acronym>, Subversion
|
||||
<para>The directory is not immediately
|
||||
created in the repository when you use <command>svn
|
||||
mkdir</command>. Subversion
|
||||
allows directories to be removed using <command>svn
|
||||
rm</command>, however there is no <command>svn
|
||||
rmdir</command>:</para>
|
||||
|
@ -935,9 +808,6 @@
|
|||
|
||||
<screen>&prompt.user; <userinput>svn copy <replaceable>foo.c</replaceable> <replaceable>bar.c</replaceable></userinput>
|
||||
&prompt.user; <userinput>svn remove <replaceable>foo.c</replaceable></userinput></screen>
|
||||
|
||||
<para>Neither of these operations have equivalents in
|
||||
<acronym>CVS</acronym>.</para>
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
|
@ -962,11 +832,11 @@
|
|||
|
||||
<para><command>svn diff</command> displays changes to the
|
||||
working copy of the repository. Diffs generated by
|
||||
<acronym>SVN</acronym> are unified by default, unlike
|
||||
<acronym>CVS</acronym>, and include new files by default
|
||||
<acronym>SVN</acronym> are unified
|
||||
and include new files by default
|
||||
in the diff output.</para>
|
||||
|
||||
<para>As with <acronym>CVS</acronym>, <command>svn
|
||||
<para><command>svn
|
||||
diff</command> can show the changes between two revisions
|
||||
of the same file:</para>
|
||||
|
||||
|
@ -984,8 +854,8 @@
|
|||
<title>Reverting</title>
|
||||
|
||||
<para>Local changes (including additions and deletions) can be
|
||||
reverted using <command>svn revert</command>. Unlike
|
||||
<command>cvs up -C</command>, it does not update out-of-date
|
||||
reverted using <command>svn revert</command>.
|
||||
It does not update out-of-date
|
||||
files—it just replaces them with pristine copies of
|
||||
the original version.</para>
|
||||
</sect3>
|
||||
|
@ -1848,6 +1718,13 @@ U stable/9/share/man/man4/netmap.4
|
|||
|
||||
<screen>&prompt.user; <userinput>svn merge -r179454:179453 svn+ssh://svn.freebsd.org/base/ROADMAP.txt</userinput></screen>
|
||||
|
||||
<note>
|
||||
<para>It is important to ensure that the mergeinfo
|
||||
is correct when reverting a file in order to permit
|
||||
<command>svn mergeinfo --eligible</command> to work as
|
||||
expected.</para>
|
||||
</note>
|
||||
|
||||
<para>Reverting the deletion of a file is slightly different.
|
||||
Copying the version of the file that predates the deletion
|
||||
is required. For example, to restore a file that was
|
||||
|
@ -1874,8 +1751,8 @@ U stable/9/share/man/man4/netmap.4
|
|||
of <command>svn status</command> and <command>svn
|
||||
diff</command> before committing.</para>
|
||||
|
||||
<para>Mistakes will happen, but, unlike with
|
||||
<acronym>CVS</acronym>, they can generally be fixed without
|
||||
<para>Mistakes will happen but,
|
||||
they can generally be fixed without
|
||||
disruption.</para>
|
||||
|
||||
<para>Take a case of adding a file in the wrong location. The
|
||||
|
@ -2011,37 +1888,20 @@ U stable/9/share/man/man4/netmap.4
|
|||
<para>Don't remove and re-add the same file in a single commit
|
||||
as this will break the CVS exporter.</para>
|
||||
|
||||
<para>Speeding up checkouts and minimising network traffic is
|
||||
possible with the following recipe:</para>
|
||||
<para>Speeding up svn is
|
||||
possible by adding the following to <filename>~/.ssh/config</filename>:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>svn co --depth=empty svn+ssh://svn.freebsd.org/base fbsvn</userinput>
|
||||
&prompt.user; <userinput>cd fbsvn</userinput>
|
||||
&prompt.user; <userinput>svn up --depth=empty stable</userinput>
|
||||
&prompt.user; <userinput>svn up head</userinput>
|
||||
&prompt.user; <userinput>cd stable</userinput>
|
||||
&prompt.user; <userinput>cp -r ../head/ 7</userinput>
|
||||
&prompt.user; <userinput>cd 7</userinput>
|
||||
&prompt.user; <userinput>svn switch svn+ssh://svn.freebsd.org/base/stable/7</userinput>
|
||||
&prompt.user; <userinput>cd ..</userinput>
|
||||
&prompt.user; <userinput>cp -r 7/ 6</userinput>
|
||||
&prompt.user; <userinput>cd 6</userinput>
|
||||
&prompt.user; <userinput>svn switch svn+ssh://svn.freebsd.org/base/stable/6</userinput></screen>
|
||||
<screen>Host *
|
||||
ControlPath ~/.ssh/sockets/master-%l-%r@%h:%p
|
||||
ControlMaster auto
|
||||
ControlPersist yes</screen>
|
||||
|
||||
<para>What this bit of evil does is check out head, stable/7 and
|
||||
stable/6. We create the empty checkout directories under
|
||||
<acronym>SVN</acronym>'s control. In <acronym>SVN</acronym>,
|
||||
subtrees are self identifying, like in <acronym>CVS</acronym>.
|
||||
We check out head and clone it as stable/7. Except we don't
|
||||
want the head version so we <quote>switch</quote> it to the
|
||||
7.x tree location. <acronym>SVN</acronym> downloads diffs to
|
||||
convert the <quote>head</quote> files to
|
||||
<quote>stable/7</quote> instead of doing a fresh checkout.
|
||||
The same goes for stable/6. This does, however, definitely
|
||||
count as abuse of the working copy client code!</para>
|
||||
<para>and then typing</para>
|
||||
<screen><userinput>mkdir ~/.ssh/sockets</userinput></screen>
|
||||
|
||||
<para>Checking out a working copy with a stock Subversion client
|
||||
without &os;-specific patches
|
||||
(<makevar>WITH_FREEBSD_TEMPLATE</makevar>) will mean that
|
||||
(<makevar>OPTIONS_SET=FREEBSD_TEMPLATE</makevar>) will mean that
|
||||
<literal>$FreeBSD$</literal> tags will not be
|
||||
expanded. Once the correct version has been installed, trick
|
||||
Subversion into expanding them like so:</para>
|
||||
|
@ -2049,8 +1909,7 @@ U stable/9/share/man/man4/netmap.4
|
|||
<screen>&prompt.user; <userinput>svn propdel -R svn:keywords .</userinput>
|
||||
&prompt.user; <userinput>svn revert -R .</userinput></screen>
|
||||
|
||||
<para>This is not a good idea if uncommitted patches exist,
|
||||
however.</para>
|
||||
<para>This will wipe out uncommitted patches.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
|
@ -2078,7 +1937,7 @@ U stable/9/share/man/man4/netmap.4
|
|||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Add your author entity to
|
||||
<filename>head/en_US.ISO8859-1/share/xml/authors.ent</filename>;
|
||||
<filename>head/share/xml/authors.ent</filename>;
|
||||
this should be done first since an omission of this commit will
|
||||
cause the next commits to break the doc/ build.</para>
|
||||
|
||||
|
@ -2186,8 +2045,8 @@ U stable/9/share/man/man4/netmap.4
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>(For committers only:)
|
||||
If you subscribe to &a.svn-src-all.name; or the &a.cvsall;,
|
||||
<para>If you subscribe to &a.svn-src-all.name;,
|
||||
&a.svn-ports-all.name; or &a.svn-doc-all.name;,
|
||||
you will probably want to unsubscribe to avoid receiving duplicate
|
||||
copies of commit messages and their followups.</para>
|
||||
</listitem>
|
||||
|
@ -2591,14 +2450,13 @@ U stable/9/share/man/man4/netmap.4
|
|||
<term>&a.committers;</term>
|
||||
|
||||
<listitem>
|
||||
<para>cvs-committers is the entity that the version control system uses to send you all your
|
||||
commit messages. You should <emphasis>never</emphasis> send email
|
||||
directly to this list. You should only send replies to this list
|
||||
when they are short and are directly related to a commit.</para>
|
||||
|
||||
<para>There is a similar list, svn-committers, which has a
|
||||
similar purpose but is a normal list, i.e., you are free to
|
||||
send any suitable message to this list.</para>
|
||||
<para>&a.svn-src-all.name;, &a.svn-ports-all.name; and
|
||||
&a.svn-doc-all.name; are the mailing lists that the
|
||||
version control system uses to send commit messages to.
|
||||
You should <emphasis>never</emphasis> send email directly
|
||||
to these lists. You should only send replies to this list
|
||||
when they are short and are directly related to a
|
||||
commit.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
@ -3488,9 +3346,9 @@ U stable/9/share/man/man4/netmap.4
|
|||
from the port <filename>Makefile</filename>.
|
||||
It will also add an entry to the port's
|
||||
category <filename>Makefile</filename>. It was
|
||||
written by &a.mharo; and &a.will;, and is currently maintained
|
||||
by &a.garga;, so please send questions/patches about
|
||||
<command>addport</command> to him.</para>
|
||||
written by &a.mharo;, &a.will;, and &a.garga;. When sending
|
||||
questions about this script to the &a.ports;, please also CC
|
||||
&a.crees;, the current maintainer.</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
|
@ -3597,9 +3455,9 @@ U stable/9/share/man/man4/netmap.4
|
|||
|
||||
<para>Alternatively, you can use the <command>rmport</command>
|
||||
script, from <filename class="directory">ports/Tools/scripts</filename>.
|
||||
This script has been written by &a.vd;, who is also its current
|
||||
maintainer, so please send questions, patches or suggestions
|
||||
about <command>rmport</command> to him.</para>
|
||||
This script was written by &a.vd;. When sending
|
||||
questions about this script to the &a.ports;, please also CC
|
||||
&a.crees;, the current maintainer.</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
</qandadiv>
|
||||
|
@ -3657,6 +3515,12 @@ U stable/9/share/man/man4/netmap.4
|
|||
one step.</para>
|
||||
</step>
|
||||
</procedure>
|
||||
|
||||
<tip>
|
||||
<para><command>addport</command> now detects when the port to
|
||||
add has previously existed, and should handle all except
|
||||
the <filename>ports/LEGAL</filename> step automatically.</para>
|
||||
</tip>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
</qandadiv>
|
||||
|
@ -3954,7 +3818,7 @@ U stable/9/share/man/man4/netmap.4
|
|||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>Perform any needed repocopies. (This only applies
|
||||
<para>Perform any needed moves. (This only applies
|
||||
to physical categories.)</para>
|
||||
</step>
|
||||
|
||||
|
@ -3978,12 +3842,9 @@ U stable/9/share/man/man4/netmap.4
|
|||
</question>
|
||||
|
||||
<answer>
|
||||
<para>The procedure is a strict superset of the one to
|
||||
repocopy individual ports (see above).</para>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>Upgrade each copied port's
|
||||
<para>Upgrade each moved port's
|
||||
<filename>Makefile</filename>. Do not connect the
|
||||
new category to the build yet.</para>
|
||||
|
||||
|
@ -4030,10 +3891,11 @@ U stable/9/share/man/man4/netmap.4
|
|||
sh -e <replaceable>/path/to/ports</replaceable>/Tools/scripts/chkorigin.sh
|
||||
</command>. This will check <emphasis>every</emphasis>
|
||||
port in the ports tree, even those not connected to the
|
||||
build, so you can run it directly after the repocopy.
|
||||
build, so you can run it directly after the move
|
||||
operation.
|
||||
Hint: do not forget to look at the
|
||||
<makevar>PKGORIGIN</makevar>s of any slave ports of the
|
||||
ports you just repocopied!</para>
|
||||
ports you just moved!</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
|
@ -4066,57 +3928,11 @@ U stable/9/share/man/man4/netmap.4
|
|||
<filename>ports/MOVED</filename>.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Update the instructions for &man.cvsup.1;:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
add the category to
|
||||
<filename>distrib/cvsup/sup/README</filename>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
adding the following files into
|
||||
<filename>distrib/cvsup/sup/ports-<replaceable>categoryname</replaceable></filename>:
|
||||
<filename>list.cvs</filename> and
|
||||
<filename>releases</filename>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
add the category to
|
||||
<filename>src/share/examples/cvsup/ports-supfile</filename>
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>
|
||||
(Note: these are
|
||||
in the src, not the ports, repository). If you
|
||||
are not a src committer, you will need to submit
|
||||
a PR for this.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>
|
||||
Update the list of categories used by &man.sysinstall.8;
|
||||
in <filename>src/usr.sbin/sysinstall</filename>.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Update the documentation by modifying the
|
||||
following:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>the section of the Handbook that lists the
|
||||
<ulink url="&url.books.handbook;/cvsup.html#CVSUP-COLLEC">
|
||||
cvsup collections</ulink>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>the
|
||||
<ulink url="&url.books.porters-handbook;/makefile-categories.html#PORTING-CATEGORIES">
|
||||
|
@ -4166,10 +3982,6 @@ U stable/9/share/man/man4/netmap.4
|
|||
only need to modify the following:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><filename>src/usr.sbin/sysinstall</filename></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>the
|
||||
<ulink url="&url.books.porters-handbook;/makefile-categories.html#PORTING-CATEGORIES">
|
||||
|
|
|
@ -462,7 +462,7 @@
|
|||
<para>Regularly check the automated ports building
|
||||
cluster, <ulink
|
||||
url="http://pointyhat.FreeBSD.org">pointyhat</ulink>,
|
||||
and the <ulink url="http://www.portscout.org">distfiles
|
||||
and the <ulink url="http://portscout.FreeBSD.org">distfiles
|
||||
scanner</ulink> to see if any of the ports you
|
||||
maintain are failing to build or fetch (see <link
|
||||
linkend="resources">resources</link> for more
|
||||
|
@ -794,7 +794,7 @@
|
|||
build status of your ports. As a contributor you can use it to
|
||||
find broken and unmaintained ports that need to be fixed.</para>
|
||||
|
||||
<para>The <ulink url="http://www.portscout.org">FreeBSD Ports
|
||||
<para>The <ulink url="http://portscout.FreeBSD.org">FreeBSD Ports
|
||||
distfile scanner</ulink> can show you ports for which the
|
||||
distfiles are not fetchable. You can check on your own ports or
|
||||
use it to find ports that need their
|
||||
|
|
|
@ -85,7 +85,7 @@
|
|||
<para>Read through the FAQ and Handbook periodically. If
|
||||
anything is badly explained, out of date or even just
|
||||
completely wrong, let us know. Even better, send us a fix
|
||||
(SGML is not difficult to learn, but there is no objection
|
||||
(Docbook is not difficult to learn, but there is no objection
|
||||
to ASCII submissions).</para>
|
||||
</listitem>
|
||||
|
||||
|
@ -231,7 +231,8 @@
|
|||
<title>Pick one of the items from the <quote>Ideas</quote>
|
||||
page</title>
|
||||
|
||||
<para>The <ulink url="&url.base;/projects/ideas/">&os; list of
|
||||
<para>The <ulink url="http://wiki.freebsd.org/IdeasPage">&os;
|
||||
list of
|
||||
projects and ideas for volunteers</ulink> is also available
|
||||
for people willing to contribute to the &os; project. The
|
||||
list is being regularly updated and contains items for both
|
||||
|
@ -339,39 +340,22 @@
|
|||
|
||||
<para>The preferred &man.diff.1; format for submitting patches
|
||||
is the unified output format generated by <command>diff
|
||||
-u</command>. However, for patches that substantially
|
||||
change a region of code, a context output format diff
|
||||
generated by <command>diff -c</command> may be more readable
|
||||
and thus preferable.</para>
|
||||
-u</command>.</para>
|
||||
|
||||
<indexterm>
|
||||
<primary><command>diff</command></primary>
|
||||
</indexterm>
|
||||
|
||||
<para>For example:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>diff -c oldfile newfile</userinput></screen>
|
||||
|
||||
<para>or</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>diff -c -r olddir newdir</userinput></screen>
|
||||
|
||||
<para>would generate such a set of context diffs for the given
|
||||
source file or directory hierarchy.</para>
|
||||
|
||||
<para>Likewise,</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>diff -u oldfile newfile</userinput></screen>
|
||||
|
||||
<para>or</para>
|
||||
|
||||
<screen>&prompt.user; <userinput>diff -u -r olddir newdir</userinput></screen>
|
||||
<screen>&prompt.user; <userinput>diff -u -r -N olddir newdir</userinput></screen>
|
||||
|
||||
<para>would do the same, except in the unified diff
|
||||
format.</para>
|
||||
<para>would generate a set of unified diffs for the given source
|
||||
file or directory hierarchy.</para>
|
||||
|
||||
<para>See the manual page for &man.diff.1; for more
|
||||
details.</para>
|
||||
<para>See &man.diff.1; for more information.</para>
|
||||
|
||||
<para>Once you have a set of diffs (which you may test with the
|
||||
&man.patch.1; command), you should submit them for inclusion
|
||||
|
@ -397,9 +381,8 @@
|
|||
welcome.</para>
|
||||
|
||||
<para>If your change is of a potentially sensitive nature,
|
||||
e.g. you are unsure of copyright issues governing its further
|
||||
distribution or you are simply not ready to release it without
|
||||
a tighter review first, then you should send it to &a.core;
|
||||
such as if you are unsure of copyright issues governing its further
|
||||
distribution then you should send it to &a.core;
|
||||
directly rather than submitting it with &man.send-pr.1;. The
|
||||
&a.core; reaches a much smaller group of people who
|
||||
do much of the day-to-day work on FreeBSD. Note that this
|
||||
|
@ -503,7 +486,7 @@ 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.
|
||||
|
||||
$Id$</programlisting>
|
||||
$&os;$</programlisting>
|
||||
|
||||
<para>For your convenience, a copy of this text can be found in
|
||||
<filename>/usr/share/examples/etc/bsd-style-copyright</filename>.</para>
|
||||
|
@ -532,9 +515,9 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
<para>Donations may be sent in check form to:
|
||||
<address>
|
||||
The FreeBSD Foundation
|
||||
<street>7321 Brockway Dr.</street>
|
||||
<street>P.O. Box 20247</street>,
|
||||
<city>Boulder</city>,
|
||||
<state>CO</state> <postcode>80303</postcode>
|
||||
<state>CO</state> <postcode>80308</postcode>
|
||||
<country>USA</country>
|
||||
</address></para>
|
||||
|
||||
|
@ -562,16 +545,6 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
<ulink url="&url.base;/donations/">Donations Liaison
|
||||
Office</ulink>.</para>
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title>Donating Internet Access</title>
|
||||
|
||||
<para>We can always use new mirror sites for FTP, WWW or
|
||||
<command>cvsup</command>. If you would like to be such a
|
||||
mirror, please see the
|
||||
<ulink url="&url.articles.hubs;/index.html">Mirroring
|
||||
FreeBSD</ulink> article for more information.</para>
|
||||
</sect3>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
|
|
|
@ -1143,11 +1143,6 @@
|
|||
<email>js@iksz.hu</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Barbara</para>
|
||||
<!-- (rene@) No email address per request. -->
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Barry Bierbauch
|
||||
<email>pivrnec@vszbr.cz</email></para>
|
||||
|
@ -1688,7 +1683,7 @@
|
|||
|
||||
<listitem>
|
||||
<para>Chris Petrik
|
||||
<email>chris@officialunix.com</email></para>
|
||||
<email>c.petrik.sosa@gmail.com</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -1721,6 +1716,11 @@
|
|||
<email>Christian.Haury@sagem.fr</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Christian Heckendorf
|
||||
<email>heckend@bu.edu</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Christian Lackas
|
||||
<email>delta@lackas.net</email></para>
|
||||
|
@ -2120,6 +2120,11 @@
|
|||
<email>daniel@itxl.nl</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Danilo Egêa Gondolfo
|
||||
<email>danilogondolfo@gmail.com</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Danny Braniss
|
||||
<email>danny@cs.huji.ac.il</email></para>
|
||||
|
@ -2363,11 +2368,6 @@
|
|||
<email>muir@idiom.com</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>David Naylor
|
||||
<email>naylor.b.david@gmail.com</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>David Otto
|
||||
<email>ottodavid@gmx.net</email></para>
|
||||
|
@ -2414,18 +2414,23 @@
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>David Vachulka
|
||||
<email>arch_dvx@users.sourceforge.net</email></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
|
||||
<para>David Wolfskill
|
||||
<email>david@catwhisker.org</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Dax Labrador
|
||||
<email>semprix@bsdmail.org</email></para>
|
||||
<para>David Yeske
|
||||
<email>dyeske@yahoo.com</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>David Yeske
|
||||
<email>dyeske@yahoo.com</email></para>
|
||||
<para>Dax Labrador
|
||||
<email>semprix@bsdmail.org</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -3090,6 +3095,11 @@
|
|||
<email>fk@fabiankeil.de</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Fabian M. Borschel
|
||||
<email>fmb@onibox.net</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Fabien Devaux
|
||||
<email>fab@gcu.info</email></para>
|
||||
|
@ -3589,11 +3599,6 @@
|
|||
<email>kiki@bsdro.org</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Grzegorz Blach
|
||||
<email>magik@roorback.net</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Guillaume Paquet
|
||||
<email>amyfoub@videotron.ca</email></para>
|
||||
|
@ -4427,6 +4432,11 @@
|
|||
<email>jb.quenot@caraldi.com</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Jean Benoit
|
||||
<email>jean@unistra.fr</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Jean-Sebastien Roy
|
||||
<email>js@jeannot.org</email></para>
|
||||
|
@ -5122,6 +5132,11 @@
|
|||
<email>tuximus@tcsn.net</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Joseph Mingrone
|
||||
<email>jrm@ftfl.ca</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Joseph Scott
|
||||
<email>joseph@randomnetworks.com</email></para>
|
||||
|
@ -5301,11 +5316,6 @@
|
|||
<email>yasu@utahime.org</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Kubilay Kocak
|
||||
<email>koobs.freebsd@gmail.com</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>KUNISHIMA Takeo
|
||||
<email>kunishi@c.oka-pu.ac.jp</email></para>
|
||||
|
@ -6012,6 +6022,11 @@
|
|||
<email>iyengar@grunthos.pscwa.psca.com</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Manuel Creach
|
||||
<email>manuel.creach@me.com</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Manuel Rabade Garcia
|
||||
<email>mig@mig-29.net</email></para>
|
||||
|
@ -6460,6 +6475,11 @@
|
|||
<email>matt@xtaz.net</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Matt Stofko
|
||||
<email>matt@mjslabs.com</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Matt Thomas
|
||||
<email>matt@3am-software.com</email></para>
|
||||
|
@ -6759,6 +6779,11 @@
|
|||
<email>nerd@percival.rain.com</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Michael Gmelin
|
||||
<email>freebsd@grem.de</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Michael Hancock
|
||||
<email>michaelh@cet.co.jp</email></para>
|
||||
|
@ -8314,6 +8339,11 @@
|
|||
<email>phil@teaser.fr</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Pierre David
|
||||
<email>pdagog@gmail.com</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Pierre Y. Dampure
|
||||
<email>pierre.dampure@k2c.co.uk</email></para>
|
||||
|
@ -9336,11 +9366,6 @@
|
|||
<email>simond@irrelevant.org</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Simon J Gerraty
|
||||
<email>sjg@juniper.net</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Simon Lang
|
||||
<email>simon@lang-clan.de</email></para>
|
||||
|
@ -10517,6 +10542,11 @@
|
|||
<email>victor.cruceru@gmail.com</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Victor Popov
|
||||
<email>v.a.popov@gmail.com</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Victor Semionov
|
||||
<email>semionov@mail.bg</email></para>
|
||||
|
@ -10797,6 +10827,11 @@
|
|||
<email>kiwi@oav.net</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Yamagi Burmeister
|
||||
<email>yamagi@yamagi.org</email></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Yanhui Shen
|
||||
<email>shen.elf@gmail.com</email></para>
|
||||
|
|
|
@ -67,6 +67,10 @@
|
|||
<para>&a.mat;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.syuu;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.gavin;</para>
|
||||
</listitem>
|
||||
|
@ -91,10 +95,6 @@
|
|||
<para>&a.gjb;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.dougb;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.art;</para>
|
||||
</listitem>
|
||||
|
@ -119,6 +119,10 @@
|
|||
<para>&a.tdb;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.gblach;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.mbr;</para>
|
||||
</listitem>
|
||||
|
@ -171,10 +175,6 @@
|
|||
<para>&a.markus;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.wilko;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.oleg;</para>
|
||||
</listitem>
|
||||
|
@ -291,6 +291,10 @@
|
|||
<para>&a.jwd;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.carl;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.vd;</para>
|
||||
</listitem>
|
||||
|
@ -451,6 +455,10 @@
|
|||
<para>&a.danger;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.sjg;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.gibbs;</para>
|
||||
</listitem>
|
||||
|
@ -495,6 +503,10 @@
|
|||
<para>&a.edwin;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.bar;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.jmg;</para>
|
||||
</listitem>
|
||||
|
@ -615,6 +627,10 @@
|
|||
<para>&a.ahze;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.markj;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.tj;</para>
|
||||
</listitem>
|
||||
|
@ -683,6 +699,10 @@
|
|||
<para>&a.jceel;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.koobs;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.jkois;</para>
|
||||
</listitem>
|
||||
|
@ -767,6 +787,10 @@
|
|||
<para>&a.benl;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.dru;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.jlh;</para>
|
||||
</listitem>
|
||||
|
@ -791,6 +815,10 @@
|
|||
<para>&a.netchild;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.ian;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.truckman;</para>
|
||||
</listitem>
|
||||
|
@ -1007,6 +1035,10 @@
|
|||
<para>&a.neel;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.dbn;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.bland;</para>
|
||||
</listitem>
|
||||
|
@ -1519,6 +1551,10 @@
|
|||
<para>&a.vanhu;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.bryanv;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.avilla;</para>
|
||||
</listitem>
|
||||
|
|
|
@ -2,6 +2,10 @@
|
|||
<!-- $FreeBSD$ -->
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>&a.attilio; (2012)</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.wilko; (2006 - 2012)</para>
|
||||
</listitem>
|
||||
|
|
|
@ -2,6 +2,14 @@
|
|||
|
||||
<!-- $FreeBSD$ -->
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Doug Barton (2000 - 2012)</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.wilko; (2000 - 2012)</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.murray; (2000 - 2012)</para>
|
||||
</listitem>
|
||||
|
|
|
@ -2,6 +2,10 @@
|
|||
<!-- $FreeBSD$ -->
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>&a.pav; (2006 - 2012)</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.flz; (2008 - 2012)</para>
|
||||
</listitem>
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
<year>2009</year>
|
||||
<year>2010</year>
|
||||
<year>2011</year>
|
||||
<holder role="mailto:jhelfman@experts-exchange.com">Jason Helfman</holder>
|
||||
<holder role="mailto:jgh@FreeBSD.org">Jason Helfman</holder>
|
||||
</copyright>
|
||||
|
||||
<legalnotice id="trademarks" role="trademarks">
|
||||
|
@ -49,9 +49,7 @@
|
|||
|
||||
<sect1 id="acknowledgments">
|
||||
<title>Acknowledgments</title>
|
||||
<para>This article was originally published at <ulink
|
||||
url="http://www.experts-exchange.com/OS/Unix/BSD/FreeBSD/A_1941-Build-Your-Own-FreeBSD-Update-Server.html">Experts Exchange</ulink>,
|
||||
and subsequently printed at <ulink
|
||||
<para>This article was subsequently printed at <ulink
|
||||
url="http://bsdmag.org/magazine/1021-bsd-as-a-desktop">BSD
|
||||
Magazine</ulink>.</para>
|
||||
</sect1>
|
||||
|
|
|
@ -89,7 +89,7 @@
|
|||
|
||||
<listitem><para>The &man.style.9; man page — for documentation on
|
||||
the coding-style conventions which must be followed for any code
|
||||
which is to be committed to the FreeBSD CVS tree.</para></listitem>
|
||||
which is to be committed to the FreeBSD Subversion tree.</para></listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
|
|
|
@ -122,13 +122,10 @@
|
|||
also affected by the types of services you want to offer.
|
||||
Plain FTP or HTTP services may not require a huge
|
||||
amount of resources. Watch out if you provide
|
||||
CVSup, rsync or even AnonCVS. This can have a huge
|
||||
impact on CPU and memory requirements. Especially
|
||||
rsync is considered a memory hog, and CVSup does
|
||||
indeed consume some CPU. For AnonCVS it might
|
||||
be a nice idea to set up a memory resident file system (MFS) of at least
|
||||
300 MB, so you need to take this into account
|
||||
for your memory requirements. The following
|
||||
rsync. This can have a huge
|
||||
impact on CPU and memory requirements as it is
|
||||
considered a memory hog.
|
||||
The following
|
||||
are just examples to give you a very rough hint.
|
||||
</para>
|
||||
<para>
|
||||
|
|
|
@ -404,7 +404,7 @@ ifconfig_em0="DHCP"</programlisting>
|
|||
<para>Updating from source is the most involved update method, but offers
|
||||
the greatest amount of flexibility. The process involves synchronizing a
|
||||
local copy of the FreeBSD source code with the &os;
|
||||
<application>CVS</application> (Concurrent Versioning System) servers.
|
||||
<application>Subversion</application> servers.
|
||||
Once the local source code is up to date you can build new versions of
|
||||
the kernel and userland. For more information on source updates see
|
||||
<ulink url="&url.base;/doc/en_US.ISO8859-1/books/handbook/updating-upgrading.html">the chapter on updating</ulink>
|
||||
|
|
|
@ -13,11 +13,11 @@ INSTALL_ONLY_COMPRESSED?=
|
|||
WITH_ARTICLE_TOC?=YES
|
||||
|
||||
#
|
||||
# SRCS lists the individual SGML files that make up the document. Changes
|
||||
# SRCS lists the individual XML files that make up the document. Changes
|
||||
# to any of these files will force a rebuild
|
||||
#
|
||||
|
||||
# SGML content
|
||||
# XML content
|
||||
SRCS= article.xml
|
||||
|
||||
URL_RELPREFIX?= ../../../..
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -8,7 +8,6 @@
|
|||
|
||||
<legalnotice id="trademarks" role="trademarks">
|
||||
&tm-attrib.freebsd;
|
||||
&tm-attrib.cvsup;
|
||||
&tm-attrib.ibm;
|
||||
&tm-attrib.intel;
|
||||
&tm-attrib.sparc;
|
||||
|
@ -86,7 +85,7 @@
|
|||
course of action, and will only serve to frustrate you and the
|
||||
developers. Conversely, there are cases where it might be
|
||||
appropriate to submit a problem report about something else than
|
||||
a bug—an enhancement or a feature request, for
|
||||
a bug—an enhancement or a new feature, for
|
||||
instance.</para>
|
||||
|
||||
<para>So how do you determine what is a bug and what is not? As a
|
||||
|
@ -102,12 +101,6 @@
|
|||
report about something that is not a bug are:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Requests for feature enhancements. It is generally a
|
||||
good idea to air these on the mailing lists before
|
||||
submitting a problem report.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Notification of updates to externally maintained
|
||||
software (mainly ports, but also externally maintained base
|
||||
|
@ -277,7 +270,7 @@
|
|||
carefully study the contents of the
|
||||
<filename>/usr/src/UPDATING</filename> file on your system
|
||||
or its latest version at
|
||||
<ulink url="http://www.FreeBSD.org/cgi/cvsweb.cgi/src/UPDATING"></ulink>.
|
||||
<ulink url="http://svnweb.freebsd.org/base/head/UPDATING?view=log"></ulink>.
|
||||
(This is vital information
|
||||
if you are upgrading from one version to
|
||||
another—especially if you are upgrading to the
|
||||
|
@ -288,10 +281,10 @@
|
|||
<filename>/usr/ports/UPDATING</filename> (for individual ports)
|
||||
or <filename>/usr/ports/CHANGES</filename> (for changes
|
||||
that affect the entire Ports Collection).
|
||||
<ulink url="http://www.FreeBSD.org/cgi/cvsweb.cgi/ports/UPDATING"></ulink>
|
||||
<ulink url="http://svnweb.freebsd.org/ports/head/UPDATING?view=log"></ulink>
|
||||
and
|
||||
<ulink url="http://www.FreeBSD.org/cgi/cvsweb.cgi/ports/CHANGES"></ulink>
|
||||
are also available via CVSweb.</para>
|
||||
<ulink url="http://svnweb.freebsd.org/ports/head/CHANGES?view=log"></ulink>
|
||||
are also available via svnweb.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
|
@ -371,8 +364,8 @@
|
|||
is a place to put that, see below) and on which architecture.
|
||||
You should include whether you are running from a release
|
||||
(e.g. from a CDROM or download), or from
|
||||
a system maintained by &man.cvsup.1; (and, if so, how
|
||||
recently you updated). If you are tracking the
|
||||
a system maintained by Subversion (and, if so,
|
||||
what revision number you are at). If you are tracking the
|
||||
&os.current; branch, that is the very first thing someone
|
||||
will ask, because fixes (especially for high-profile
|
||||
problems) tend to get committed very quickly, and
|
||||
|
@ -584,11 +577,11 @@
|
|||
<option>-c</option> or <option>-u</option> option to
|
||||
&man.diff.1; to create a context or unified diff (unified is
|
||||
preferred), and make
|
||||
sure to specify the exact CVS revision numbers of the files
|
||||
sure to specify the exact SVN revision numbers of the files
|
||||
you modified so the developers who read your report will be
|
||||
able to apply them easily. For problems with the kernel or the
|
||||
base utilities, a patch against &os.current; (the HEAD
|
||||
CVS branch) is preferred since all new code should be applied
|
||||
Subversion branch) is preferred since all new code should be applied
|
||||
and tested there first. After appropriate or substantial testing
|
||||
has been done, the code will be merged/migrated to the &os.stable;
|
||||
branch.</para>
|
||||
|
@ -661,8 +654,8 @@
|
|||
<para><emphasis>Confidential:</emphasis> This is prefilled
|
||||
to <literal>no</literal>. Changing it makes no sense as
|
||||
there is no such thing as a confidential &os; problem
|
||||
report—the PR database is distributed worldwide by
|
||||
<application>CVSup</application>.</para>
|
||||
report—the PR database is distributed
|
||||
worldwide.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -920,7 +913,7 @@
|
|||
</itemizedlist>
|
||||
|
||||
<para>Here is the current list of categories (taken from
|
||||
<ulink url="http://www.FreeBSD.org/cgi/cvsweb.cgi/src/gnu/usr.bin/send-pr/categories"></ulink>):</para>
|
||||
<ulink url="http://svnweb.freebsd.org/base/head/gnu/usr.bin/send-pr/categories"></ulink>):</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
|
@ -928,11 +921,6 @@
|
|||
&os;'s public image. Obsolete.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>alpha:</literal> problems specific to the
|
||||
Alpha platform.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>amd64:</literal> problems specific to the
|
||||
AMD64 platform.</para>
|
||||
|
|
|
@ -397,8 +397,8 @@ start_cmd="${name}_start"
|
|||
stop_cmd=":"
|
||||
|
||||
load_rc_config $name<co id="rcng-confdummy-loadconfig"/>
|
||||
eval "${rcvar}=\${${rcvar}:-'NO'}"<co id="rcng-confdummy-enable"/>
|
||||
dummy_msg=${dummy_msg:-"Nothing started."}<co id="rcng-confdummy-opt"/>
|
||||
: ${dummy_enable:=no} <co id="rcng-confdummy-enable"/>
|
||||
: ${dummy_msg="Nothing started."}<co id="rcng-confdummy-opt"/>
|
||||
|
||||
dummy_start()
|
||||
{
|
||||
|
@ -445,7 +445,7 @@ run_rc_command "$1"</programlisting>
|
|||
system, you should add a default setting for the knob to
|
||||
<filename>/etc/defaults/rc.conf</filename> and document
|
||||
it in &man.rc.conf.5;. Otherwise it is your script that
|
||||
should provide a default setting for the knob. A portable
|
||||
should provide a default setting for the knob. The canonical
|
||||
approach to the latter case is shown in the example.</para>
|
||||
|
||||
<note>
|
||||
|
@ -476,7 +476,7 @@ run_rc_command "$1"</programlisting>
|
|||
<important>
|
||||
<para>The names of all &man.rc.conf.5; variables used
|
||||
exclusively by our script <emphasis>must</emphasis>
|
||||
have the same prefix: <envar>${name}</envar>. For
|
||||
have the same prefix: <envar>${name}_</envar>. For
|
||||
example: <envar>dummy_mode</envar>,
|
||||
<envar>dummy_state_file</envar>, and so on.</para>
|
||||
</important>
|
||||
|
@ -484,19 +484,10 @@ run_rc_command "$1"</programlisting>
|
|||
<note>
|
||||
<para>While it is possible to use a shorter name internally,
|
||||
e.g., just <envar>msg</envar>, adding the unique prefix
|
||||
<envar>${name}</envar> to all global names introduced by
|
||||
<envar>${name}_</envar> to all global names introduced by
|
||||
our script will save us from possible
|
||||
collisions with the &man.rc.subr.8; namespace.</para>
|
||||
|
||||
<para>As long as an &man.rc.conf.5; variable and its
|
||||
internal equivalent are the same, we can use a more
|
||||
compact expression to set the default value:</para>
|
||||
|
||||
<programlisting>: ${dummy_msg:="Nothing started."}</programlisting>
|
||||
|
||||
<para>The current style is to use the more verbose form
|
||||
though.</para>
|
||||
|
||||
<para>As a rule, <filename>rc.d</filename> scripts of the
|
||||
base system need not provide defaults for their
|
||||
&man.rc.conf.5; variables because the defaults should
|
||||
|
@ -509,7 +500,11 @@ run_rc_command "$1"</programlisting>
|
|||
|
||||
<callout arearefs="rcng-confdummy-msg">
|
||||
<para>Here we use <envar>dummy_msg</envar> to actually
|
||||
control our script, i.e., to emit a variable message.</para>
|
||||
control our script, i.e., to emit a variable message.
|
||||
Use of a shell function is overkill here, since it only
|
||||
runs a single command; an equally valid alternative is:</para>
|
||||
|
||||
<programlisting>start_cmd="echo \"$dummy_msg\""</programlisting>
|
||||
</callout>
|
||||
</calloutlist>
|
||||
</sect1>
|
||||
|
|
|
@ -67,79 +67,84 @@
|
|||
<releaseinfo>$FreeBSD$</releaseinfo>
|
||||
|
||||
<abstract>
|
||||
<para>This article covers the use of solid state disk devices in &os;
|
||||
to create embedded systems.</para>
|
||||
<para>This article covers the use of solid state disk devices in
|
||||
&os; to create embedded systems.</para>
|
||||
|
||||
<para>Embedded systems have the advantage of increased stability due to
|
||||
the lack of integral moving parts (hard drives). Account must be
|
||||
taken, however, for the generally low disk space available in the
|
||||
system and the durability of the storage medium.</para>
|
||||
<para>Embedded systems have the advantage of increased stability
|
||||
due to the lack of integral moving parts (hard drives).
|
||||
Account must be taken, however, for the generally low disk
|
||||
space available in the system and the durability of the
|
||||
storage medium.</para>
|
||||
|
||||
<para>Specific topics to be covered include the types and attributes of
|
||||
solid state media suitable for disk use in &os;, kernel options
|
||||
that are of interest in such an environment, the
|
||||
<filename>rc.initdiskless</filename> mechanisms that automate the
|
||||
initialization of such systems and the need for read-only filesystems,
|
||||
and building filesystems from scratch. The article will conclude
|
||||
with some general strategies for small and read-only &os;
|
||||
environments.</para>
|
||||
<para>Specific topics to be covered include the types and
|
||||
attributes of solid state media suitable for disk use in &os;,
|
||||
kernel options that are of interest in such an environment,
|
||||
the <filename>rc.initdiskless</filename> mechanisms that
|
||||
automate the initialization of such systems and the need for
|
||||
read-only filesystems, and building filesystems from scratch.
|
||||
The article will conclude with some general strategies for
|
||||
small and read-only &os; environments.</para>
|
||||
</abstract>
|
||||
</articleinfo>
|
||||
|
||||
<sect1 id="intro">
|
||||
<title>Solid State Disk Devices</title>
|
||||
|
||||
<para>The scope of this article will be limited to solid state disk
|
||||
devices made from flash memory. Flash memory is a solid state memory
|
||||
(no moving parts) that is non-volatile (the memory maintains data even
|
||||
after all power sources have been disconnected). Flash memory can
|
||||
withstand tremendous physical shock and is reasonably fast (the flash
|
||||
memory solutions covered in this article are slightly slower than a EIDE
|
||||
hard disk for write operations, and much faster for read operations).
|
||||
One very important aspect of flash memory, the ramifications of which
|
||||
will be discussed later in this article, is that each sector has a
|
||||
limited rewrite capacity. You can only write, erase, and write again to
|
||||
a sector of flash memory a certain number of times before the sector
|
||||
becomes permanently unusable. Although many flash memory products
|
||||
automatically map bad blocks, and although some even distribute write
|
||||
operations evenly throughout the unit, the fact remains that there
|
||||
exists a limit to the amount of writing that can be done to the device.
|
||||
Competitive units have between 1,000,000 and 10,000,000 writes per
|
||||
sector in their specification. This figure varies due to the
|
||||
temperature of the environment.</para>
|
||||
<para>The scope of this article will be limited to solid state
|
||||
disk devices made from flash memory. Flash memory is a solid
|
||||
state memory (no moving parts) that is non-volatile (the memory
|
||||
maintains data even after all power sources have been
|
||||
disconnected). Flash memory can withstand tremendous physical
|
||||
shock and is reasonably fast (the flash memory solutions covered
|
||||
in this article are slightly slower than a EIDE hard disk for
|
||||
write operations, and much faster for read operations). One
|
||||
very important aspect of flash memory, the ramifications of
|
||||
which will be discussed later in this article, is that each
|
||||
sector has a limited rewrite capacity. You can only write,
|
||||
erase, and write again to a sector of flash memory a certain
|
||||
number of times before the sector becomes permanently unusable.
|
||||
Although many flash memory products automatically map bad
|
||||
blocks, and although some even distribute write operations
|
||||
evenly throughout the unit, the fact remains that there exists a
|
||||
limit to the amount of writing that can be done to the device.
|
||||
Competitive units have between 1,000,000 and 10,000,000 writes
|
||||
per sector in their specification. This figure varies due to
|
||||
the temperature of the environment.</para>
|
||||
|
||||
<para>Specifically, we will be discussing ATA compatible compact-flash
|
||||
units, which are quite popular as storage media for digital
|
||||
cameras. Of particular interest is the fact that they pin out directly
|
||||
to the IDE bus and are compatible with the ATA command set. Therefore,
|
||||
with a very simple and low-cost adaptor, these devices can be attached
|
||||
directly to an IDE bus in a computer. Once implemented in this manner,
|
||||
operating systems such as &os; see the device as a normal hard disk
|
||||
(albeit small).</para>
|
||||
<para>Specifically, we will be discussing ATA compatible
|
||||
compact-flash units, which are quite popular as storage media
|
||||
for digital cameras. Of particular interest is the fact that
|
||||
they pin out directly to the IDE bus and are compatible with the
|
||||
ATA command set. Therefore, with a very simple and low-cost
|
||||
adaptor, these devices can be attached directly to an IDE bus in
|
||||
a computer. Once implemented in this manner, operating systems
|
||||
such as &os; see the device as a normal hard disk (albeit
|
||||
small).</para>
|
||||
|
||||
<para>Other solid state disk solutions do exist, but their expense,
|
||||
obscurity, and relative unease of use places them beyond the scope of
|
||||
this article.</para>
|
||||
<para>Other solid state disk solutions do exist, but their
|
||||
expense, obscurity, and relative unease of use places them
|
||||
beyond the scope of this article.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="kernel">
|
||||
<title>Kernel Options</title>
|
||||
|
||||
<para>A few kernel options are of specific interest to those creating
|
||||
an embedded &os; system.</para>
|
||||
<para>A few kernel options are of specific interest to those
|
||||
creating an embedded &os; system.</para>
|
||||
|
||||
<para>All embedded &os; systems that use flash memory as system
|
||||
disk will be interested in memory disks and memory filesystems. Because
|
||||
of the limited number of writes that can be done to flash memory, the
|
||||
disk and the filesystems on the disk will most likely be mounted
|
||||
read-only. In this environment, filesystems such as
|
||||
<filename>/tmp</filename> and <filename>/var</filename> are mounted as
|
||||
memory filesystems to allow the system to create logs and update
|
||||
counters and temporary files. Memory filesystems are a critical
|
||||
component to a successful solid state &os; implementation.</para>
|
||||
disk will be interested in memory disks and memory filesystems.
|
||||
Because of the limited number of writes that can be done to
|
||||
flash memory, the disk and the filesystems on the disk will most
|
||||
likely be mounted read-only. In this environment, filesystems
|
||||
such as <filename>/tmp</filename> and <filename>/var</filename>
|
||||
are mounted as memory filesystems to allow the system to create
|
||||
logs and update counters and temporary files. Memory
|
||||
filesystems are a critical component to a successful solid state
|
||||
&os; implementation.</para>
|
||||
|
||||
<para>You should make sure the following lines exist in your kernel
|
||||
configuration file:</para>
|
||||
<para>You should make sure the following lines exist in your
|
||||
kernel configuration file:</para>
|
||||
|
||||
<programlisting>options MFS # Memory Filesystem
|
||||
options MD_ROOT # md device usable as a potential root device
|
||||
|
@ -147,58 +152,63 @@ pseudo-device md # memory disk</programlisting>
|
|||
</sect1>
|
||||
|
||||
<sect1 id="ro-fs">
|
||||
<title>The <literal>rc</literal> Subsystem and Read-Only Filesystems</title>
|
||||
<title>The <literal>rc</literal> Subsystem and Read-Only
|
||||
Filesystems</title>
|
||||
|
||||
<para>The post-boot initialization of an embedded &os; system is
|
||||
controlled by <filename>/etc/rc.initdiskless</filename>.</para>
|
||||
|
||||
<para><filename>/etc/rc.d/var</filename> mounts <filename>/var</filename>
|
||||
as a memory filesystem, makes a configurable list of directories in
|
||||
<filename>/var</filename> with the &man.mkdir.1; command, and
|
||||
changes modes on some of those directories. In the execution of
|
||||
<para><filename>/etc/rc.d/var</filename> mounts
|
||||
<filename>/var</filename> as a memory filesystem, makes a
|
||||
configurable list of directories in <filename>/var</filename>
|
||||
with the &man.mkdir.1; command, and changes modes on some of
|
||||
those directories. In the execution of
|
||||
<filename>/etc/rc.d/var</filename>, one other
|
||||
<filename>rc.conf</filename> variable comes into play –
|
||||
<literal>varsize</literal>. The <filename>/etc/rc.d/var</filename>
|
||||
file creates a <filename>/var</filename> partition based on the value of
|
||||
<literal>varsize</literal>. The
|
||||
<filename>/etc/rc.d/var</filename> file creates a
|
||||
<filename>/var</filename> partition based on the value of
|
||||
this variable in <filename>rc.conf</filename>:</para>
|
||||
|
||||
<programlisting>varsize=8192</programlisting>
|
||||
|
||||
<para>Remember that this value is in sectors by default.</para>
|
||||
|
||||
<para>The fact that <filename>/var</filename>
|
||||
is a read-write filesystem is an important
|
||||
distinction, as the <filename>/</filename> partition (and any other
|
||||
partitions you may have on your flash media) should be mounted
|
||||
read-only. Remember that in <xref linkend="intro"/> we detailed the
|
||||
limitations of flash memory - specifically the limited write capability.
|
||||
The importance of not mounting filesystems on flash media read-write,
|
||||
and the importance of not using a swap file, cannot be overstated. A
|
||||
swap file on a busy system can burn through a piece of flash media in
|
||||
less than one year. Heavy logging or temporary file creation and
|
||||
destruction can do the same. Therefore, in addition to removing the
|
||||
<para>The fact that <filename>/var</filename> is a read-write
|
||||
filesystem is an important distinction, as the
|
||||
<filename>/</filename> partition (and any other partitions you
|
||||
may have on your flash media) should be mounted read-only.
|
||||
Remember that in <xref linkend="intro"/> we detailed the
|
||||
limitations of flash memory - specifically the limited write
|
||||
capability. The importance of not mounting filesystems on flash
|
||||
media read-write, and the importance of not using a swap file,
|
||||
cannot be overstated. A swap file on a busy system can burn
|
||||
through a piece of flash media in less than one year. Heavy
|
||||
logging or temporary file creation and destruction can do the
|
||||
same. Therefore, in addition to removing the
|
||||
<literal>swap</literal> entry from your
|
||||
<filename>/etc/fstab</filename> file, you should also change the Options
|
||||
field for each filesystem to <literal>ro</literal> as follows:</para>
|
||||
<filename>/etc/fstab</filename> file, you should also change the
|
||||
Options field for each filesystem to <literal>ro</literal> as
|
||||
follows:</para>
|
||||
|
||||
<programlisting># Device Mountpoint FStype Options Dump Pass#
|
||||
/dev/ad0s1a / ufs ro 1 1</programlisting>
|
||||
|
||||
<para>A few applications in the average system will immediately begin to
|
||||
fail as a result of this change. For instance, cron
|
||||
<para>A few applications in the average system will immediately
|
||||
begin to fail as a result of this change. For instance, cron
|
||||
will not run properly as a result of missing cron tabs in the
|
||||
<filename>/var</filename> created by
|
||||
<filename>/etc/rc.d/var</filename>, and syslog and dhcp will
|
||||
encounter problems as well as a result of the read-only filesystem and
|
||||
missing items in the <filename>/var</filename> that
|
||||
<filename>/etc/rc.d/var</filename> has created. These are only
|
||||
temporary problems though, and are addressed, along with solutions to
|
||||
the execution of other common software packages in
|
||||
encounter problems as well as a result of the read-only
|
||||
filesystem and missing items in the <filename>/var</filename>
|
||||
that <filename>/etc/rc.d/var</filename> has created. These are
|
||||
only temporary problems though, and are addressed, along with
|
||||
solutions to the execution of other common software packages in
|
||||
<xref linkend="strategies"/>.</para>
|
||||
|
||||
<para>An important thing to remember is that a filesystem that was mounted
|
||||
read-only with <filename>/etc/fstab</filename> can be made read-write at
|
||||
any time by issuing the command:</para>
|
||||
<para>An important thing to remember is that a filesystem that was
|
||||
mounted read-only with <filename>/etc/fstab</filename> can be
|
||||
made read-write at any time by issuing the command:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/sbin/mount -uw <replaceable>partition</replaceable></userinput></screen>
|
||||
|
||||
|
@ -210,73 +220,79 @@ pseudo-device md # memory disk</programlisting>
|
|||
<sect1>
|
||||
<title>Building a File System From Scratch</title>
|
||||
|
||||
<para>Because ATA compatible compact-flash cards are seen by &os; as
|
||||
normal IDE hard drives, you could
|
||||
theoretically install &os; from the network using the kern and
|
||||
mfsroot floppies or from a CD.</para>
|
||||
<para>Because ATA compatible compact-flash cards are seen by &os;
|
||||
as normal IDE hard drives, you could theoretically install &os;
|
||||
from the network using the kern and mfsroot floppies or from a
|
||||
CD.</para>
|
||||
|
||||
<para>However, even a small installation of &os; using normal
|
||||
installation procedures can produce a system in size of greater than 200
|
||||
megabytes. Because most people will be using smaller flash memory
|
||||
devices (128 megabytes is considered fairly large - 32 or even 16
|
||||
megabytes is common) an installation using normal mechanisms is not
|
||||
possible—there is simply not enough disk space for even the
|
||||
smallest of conventional installations.</para>
|
||||
installation procedures can produce a system in size of greater
|
||||
than 200 megabytes. Because most people will be using smaller
|
||||
flash memory devices (128 megabytes is considered fairly large -
|
||||
32 or even 16 megabytes is common) an installation using normal
|
||||
mechanisms is not possible—there is simply not enough disk
|
||||
space for even the smallest of conventional
|
||||
installations.</para>
|
||||
|
||||
<para>The easiest way to overcome this space limitation is to install
|
||||
&os; using conventional means to a normal hard disk. After the
|
||||
installation is complete, pare down the operating system to a size that
|
||||
will fit onto your flash media, then tar the entire filesystem. The
|
||||
following steps will guide you through the process of preparing a piece
|
||||
of flash memory for your tarred filesystem. Remember, because a normal
|
||||
installation is not being performed, operations such as partitioning,
|
||||
labeling, file-system creation, etc. need to be performed by hand. In
|
||||
addition to the kern and mfsroot floppy disks, you will also need to use
|
||||
the fixit floppy.</para>
|
||||
<para>The easiest way to overcome this space limitation is to
|
||||
install &os; using conventional means to a normal hard disk.
|
||||
After the installation is complete, pare down the operating
|
||||
system to a size that will fit onto your flash media, then tar
|
||||
the entire filesystem. The following steps will guide you
|
||||
through the process of preparing a piece of flash memory for
|
||||
your tarred filesystem. Remember, because a normal installation
|
||||
is not being performed, operations such as partitioning,
|
||||
labeling, file-system creation, etc. need to be performed by
|
||||
hand. In addition to the kern and mfsroot floppy disks, you
|
||||
will also need to use the fixit floppy.</para>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<title>Partitioning your flash media device</title>
|
||||
|
||||
<para>After booting with the kern and mfsroot floppies, choose
|
||||
<literal>custom</literal> from the installation menu. In the custom
|
||||
installation menu, choose <literal>partition</literal>. In the
|
||||
partition menu, you should delete all existing partitions using the
|
||||
<keycap>d</keycap> key. After deleting all existing partitions,
|
||||
create a partition using the <keycap>c</keycap> key and accept the
|
||||
default value for the size of the partition. When asked for the
|
||||
type of the partition, make sure the value is set to
|
||||
<literal>165</literal>. Now write this partition table to the disk
|
||||
by pressing the <keycap>w</keycap> key (this is a hidden option on
|
||||
this screen). If you are using an ATA compatible compact
|
||||
flash card, you should choose the &os; Boot Manager. Now press
|
||||
the <keycap>q</keycap> key to quit the partition menu. You will be
|
||||
shown the boot manager menu once more - repeat the choice you made
|
||||
earlier.</para>
|
||||
<literal>custom</literal> from the installation menu. In
|
||||
the custom installation menu, choose
|
||||
<literal>partition</literal>. In the partition menu, you
|
||||
should delete all existing partitions using the
|
||||
<keycap>d</keycap> key. After deleting all existing
|
||||
partitions, create a partition using the <keycap>c</keycap>
|
||||
key and accept the default value for the size of the
|
||||
partition. When asked for the type of the partition, make
|
||||
sure the value is set to <literal>165</literal>. Now write
|
||||
this partition table to the disk by pressing the
|
||||
<keycap>w</keycap> key (this is a hidden option on this
|
||||
screen). If you are using an ATA compatible compact flash
|
||||
card, you should choose the &os; Boot Manager. Now press
|
||||
the <keycap>q</keycap> key to quit the partition menu. You
|
||||
will be shown the boot manager menu once more - repeat the
|
||||
choice you made earlier.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<title>Creating filesystems on your flash memory device</title>
|
||||
<title>Creating filesystems on your flash memory
|
||||
device</title>
|
||||
|
||||
<para>Exit the custom installation menu, and from the main
|
||||
installation menu choose the <literal>fixit</literal> option. After
|
||||
entering the fixit environment, enter the following command:</para>
|
||||
installation menu choose the <literal>fixit</literal>
|
||||
option. After entering the fixit environment, enter the
|
||||
following command:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>disklabel -e /dev/ad0c</userinput></screen>
|
||||
|
||||
<para>At this point you will have entered the vi editor under the
|
||||
auspices of the disklabel command. Next, you need to add
|
||||
an <literal>a:</literal> line at the end of the file. This
|
||||
<literal>a:</literal> line should look like:</para>
|
||||
<para>At this point you will have entered the vi editor under
|
||||
the auspices of the disklabel command. Next, you need to
|
||||
add an <literal>a:</literal> line at the end of the file.
|
||||
This <literal>a:</literal> line should look like:</para>
|
||||
|
||||
<programlisting>a: <replaceable>123456</replaceable> 0 4.2BSD 0 0</programlisting>
|
||||
|
||||
<para>Where <replaceable>123456</replaceable> is a number that is
|
||||
exactly the same as the number in the existing <literal>c:</literal>
|
||||
entry for size. Basically you are duplicating the existing
|
||||
<literal>c:</literal> line as an <literal>a:</literal> line, making
|
||||
sure that fstype is <literal>4.2BSD</literal>. Save the file and
|
||||
exit.</para>
|
||||
<para>Where <replaceable>123456</replaceable> is a number that
|
||||
is exactly the same as the number in the existing
|
||||
<literal>c:</literal> entry for size. Basically you are
|
||||
duplicating the existing <literal>c:</literal> line as an
|
||||
<literal>a:</literal> line, making sure that fstype is
|
||||
<literal>4.2BSD</literal>. Save the file and exit.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>disklabel -B -r /dev/ad0c</userinput>
|
||||
&prompt.root; <userinput>newfs /dev/ad0a</userinput></screen>
|
||||
|
@ -289,22 +305,24 @@ pseudo-device md # memory disk</programlisting>
|
|||
|
||||
<screen>&prompt.root; <userinput>mount /dev/ad0a /flash</userinput></screen>
|
||||
|
||||
<para>Bring this machine up on the network so we may transfer our tar
|
||||
file and explode it onto our flash media filesystem. One example of
|
||||
how to do this is:</para>
|
||||
<para>Bring this machine up on the network so we may transfer
|
||||
our tar file and explode it onto our flash media filesystem.
|
||||
One example of how to do this is:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>ifconfig xl0 192.168.0.10 netmask 255.255.255.0</userinput>
|
||||
&prompt.root; <userinput>route add default 192.168.0.1</userinput></screen>
|
||||
|
||||
<para>Now that the machine is on the network, transfer your tar file.
|
||||
You may be faced with a bit of a dilemma at this point - if your
|
||||
flash memory part is 128 megabytes, for instance, and your tar file
|
||||
is larger than 64 megabytes, you cannot have your tar file on the
|
||||
flash media at the same time as you explode it - you will run out of
|
||||
space. One solution to this problem, if you are using FTP, is to
|
||||
untar the file while it is transferred over FTP. If you perform
|
||||
your transfer in this manner, you will never have the tar file and
|
||||
the tar contents on your disk at the same time:</para>
|
||||
<para>Now that the machine is on the network, transfer your
|
||||
tar file. You may be faced with a bit of a dilemma at this
|
||||
point - if your flash memory part is 128 megabytes, for
|
||||
instance, and your tar file is larger than 64 megabytes, you
|
||||
cannot have your tar file on the flash media at the same
|
||||
time as you explode it - you will run out of
|
||||
space. One solution to this problem, if you are using FTP,
|
||||
is to untar the file while it is transferred over FTP. If
|
||||
you perform your transfer in this manner, you will never
|
||||
have the tar file and the tar contents on your disk at the
|
||||
same time:</para>
|
||||
|
||||
<screen><prompt>ftp></prompt> <userinput>get tarfile.tar "| tar xvf -"</userinput></screen>
|
||||
|
||||
|
@ -313,70 +331,74 @@ pseudo-device md # memory disk</programlisting>
|
|||
|
||||
<screen><prompt>ftp></prompt> <userinput>get tarfile.tar "| zcat | tar xvf -"</userinput></screen>
|
||||
|
||||
<para>After the contents of your tarred filesystem are on your flash
|
||||
memory filesystem, you can unmount the flash memory and
|
||||
reboot:</para>
|
||||
<para>After the contents of your tarred filesystem are on your
|
||||
flash memory filesystem, you can unmount the flash memory
|
||||
and reboot:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>cd /</userinput>
|
||||
&prompt.root; <userinput>umount /flash</userinput>
|
||||
&prompt.root; <userinput>exit</userinput></screen>
|
||||
|
||||
<para>Assuming that you configured your filesystem correctly when it
|
||||
was built on the normal hard disk (with your filesystems mounted
|
||||
read-only, and with the necessary options compiled into the kernel)
|
||||
you should now be successfully booting your &os; embedded
|
||||
system.</para>
|
||||
<para>Assuming that you configured your filesystem correctly
|
||||
when it was built on the normal hard disk (with your
|
||||
filesystems mounted read-only, and with the necessary
|
||||
options compiled into the kernel) you should now be
|
||||
successfully booting your &os; embedded system.</para>
|
||||
</step>
|
||||
</procedure>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="strategies">
|
||||
<title>System Strategies for Small and Read Only Environments</title>
|
||||
<title>System Strategies for Small and Read Only
|
||||
Environments</title>
|
||||
|
||||
<para>In <xref linkend="ro-fs"/>, it was pointed out that the
|
||||
<filename>/var</filename> filesystem constructed by
|
||||
<filename>/etc/rc.d/var</filename> and the presence of a read-only
|
||||
root filesystem causes problems with many common software packages used
|
||||
with &os;. In this article, suggestions for successfully running
|
||||
cron, syslog, ports installations, and the Apache web server will be
|
||||
provided.</para>
|
||||
<filename>/etc/rc.d/var</filename> and the presence of a
|
||||
read-only root filesystem causes problems with many common
|
||||
software packages used with &os;. In this article, suggestions
|
||||
for successfully running cron, syslog, ports installations, and
|
||||
the Apache web server will be provided.</para>
|
||||
|
||||
<sect2>
|
||||
<title>cron</title>
|
||||
|
||||
<para>Upon boot, <filename class="directory">/var</filename> gets
|
||||
populated by <filename>/etc/rc.d/var</filename> using the list from
|
||||
<filename>/etc/mtree/BSD.var.dist</filename>, so the <filename
|
||||
class="directory">cron</filename>, <filename
|
||||
class="directory">cron/tabs</filename>, <filename
|
||||
class="directory">at</filename>, and a few other standard
|
||||
<para>Upon boot, <filename class="directory">/var</filename>
|
||||
gets populated by <filename>/etc/rc.d/var</filename> using the
|
||||
list from <filename>/etc/mtree/BSD.var.dist</filename>, so the
|
||||
<filename class="directory">cron</filename>, <filename
|
||||
class="directory">cron/tabs</filename>, <filename
|
||||
class="directory">at</filename>, and a few other standard
|
||||
directories get created.</para>
|
||||
|
||||
<para>However, this does not solve the problem of maintaining cron
|
||||
tabs across reboots. When the system reboots, the
|
||||
<filename>/var</filename> filesystem that is in memory will disappear
|
||||
and any cron tabs you may have had in it will also disappear.
|
||||
Therefore, one solution would be to create cron tabs for the users
|
||||
that need them, mount your <filename>/</filename> filesystem as
|
||||
read-write and copy those cron tabs to somewhere safe, like
|
||||
<para>However, this does not solve the problem of maintaining
|
||||
cron tabs across reboots. When the system reboots, the
|
||||
<filename>/var</filename> filesystem that is in memory will
|
||||
disappear and any cron tabs you may have had in it will also
|
||||
disappear. Therefore, one solution would be to create cron
|
||||
tabs for the users that need them, mount your
|
||||
<filename>/</filename> filesystem as read-write and copy those
|
||||
cron tabs to somewhere safe, like
|
||||
<filename>/etc/tabs</filename>, then add a line to the end of
|
||||
<filename>/etc/rc.initdiskless</filename> that copies those crontabs into
|
||||
<filename>/var/cron/tabs</filename> after that directory has been
|
||||
created during system initialization. You may also need to add a line
|
||||
that changes modes and permissions on the directories you create and
|
||||
the files you copy with <filename>/etc/rc.initdiskless</filename>.</para>
|
||||
<filename>/etc/rc.initdiskless</filename> that copies those
|
||||
crontabs into <filename>/var/cron/tabs</filename> after that
|
||||
directory has been created during system initialization. You
|
||||
may also need to add a line that changes modes and permissions
|
||||
on the directories you create and the files you copy with
|
||||
<filename>/etc/rc.initdiskless</filename>.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>syslog</title>
|
||||
|
||||
<para><filename>syslog.conf</filename> specifies the locations of
|
||||
certain log files that exist in <filename>/var/log</filename>. These
|
||||
files are not created by <filename>/etc/rc.d/var</filename> upon
|
||||
system initialization. Therefore, somewhere in
|
||||
<filename>/etc/rc.d/var</filename>, after the section that creates
|
||||
the directories in <filename>/var</filename>, you will need to add
|
||||
something like this:</para>
|
||||
<para><filename>syslog.conf</filename> specifies the locations
|
||||
of certain log files that exist in
|
||||
<filename>/var/log</filename>. These files are not created by
|
||||
<filename>/etc/rc.d/var</filename> upon system initialization.
|
||||
Therefore, somewhere in <filename>/etc/rc.d/var</filename>,
|
||||
after the section that creates the directories in
|
||||
<filename>/var</filename>, you will need to add something like
|
||||
this:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>touch /var/log/security /var/log/maillog /var/log/cron /var/log/messages</userinput>
|
||||
&prompt.root; <userinput>chmod 0644 /var/log/*</userinput></screen>
|
||||
|
@ -385,27 +407,30 @@ pseudo-device md # memory disk</programlisting>
|
|||
<sect2>
|
||||
<title>Ports Installation</title>
|
||||
|
||||
<para>Before discussing the changes necessary to successfully use the
|
||||
ports tree, a reminder is necessary regarding the read-only nature of
|
||||
your filesystems on the flash media. Since they are read-only, you
|
||||
will need to temporarily mount them read-write using the mount syntax
|
||||
shown in <xref linkend="ro-fs"/>. You should always remount those
|
||||
<para>Before discussing the changes necessary to successfully
|
||||
use the ports tree, a reminder is necessary regarding the
|
||||
read-only nature of your filesystems on the flash media.
|
||||
Since they are read-only, you will need to temporarily mount
|
||||
them read-write using the mount syntax shown in <xref
|
||||
linkend="ro-fs"/>. You should always remount those
|
||||
filesystems read-only when you are done with any maintenance -
|
||||
unnecessary writes to the flash media could considerably shorten its
|
||||
lifespan.</para>
|
||||
unnecessary writes to the flash media could considerably
|
||||
shorten its lifespan.</para>
|
||||
|
||||
<para>To make it possible to enter a ports directory and successfully
|
||||
run <command>make</command> <maketarget>install</maketarget>,
|
||||
we must create a packages directory on
|
||||
a non-memory filesystem that will keep track of our packages across
|
||||
reboots. Because it is necessary to mount your filesystems as
|
||||
read-write for the installation of a package anyway, it is sensible to
|
||||
assume that an area on the flash media can also be used for package
|
||||
<para>To make it possible to enter a ports directory and
|
||||
successfully run
|
||||
<command>make</command> <maketarget>install</maketarget>, we
|
||||
must create a packages directory on a non-memory filesystem
|
||||
that will keep track of our packages across reboots. Because
|
||||
it is necessary to mount your filesystems as read-write for
|
||||
the installation of a package anyway, it is sensible to assume
|
||||
that an area on the flash media can also be used for package
|
||||
information to be written to.</para>
|
||||
|
||||
<para>First, create a package database directory. This is normally in
|
||||
<filename>/var/db/pkg</filename>, but we cannot place it there as it
|
||||
will disappear every time the system is booted.</para>
|
||||
<para>First, create a package database directory. This is
|
||||
normally in <filename>/var/db/pkg</filename>, but we cannot
|
||||
place it there as it will disappear every time the system is
|
||||
booted.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mkdir /etc/pkg</userinput></screen>
|
||||
|
||||
|
@ -415,12 +440,13 @@ pseudo-device md # memory disk</programlisting>
|
|||
|
||||
<screen>&prompt.root; <userinput>ln -s /etc/pkg /var/db/pkg</userinput></screen>
|
||||
|
||||
<para>Now, any time that you mount your filesystems as read-write and
|
||||
install a package, the <command>make</command> <maketarget>install</maketarget> will work,
|
||||
and package information
|
||||
will be written successfully to <filename>/etc/pkg</filename> (because
|
||||
the filesystem will, at that time, be mounted read-write) which will
|
||||
always be available to the operating system as
|
||||
<para>Now, any time that you mount your filesystems as
|
||||
read-write and install a package, the
|
||||
<command>make</command> <maketarget>install</maketarget> will
|
||||
work, and package information will be written successfully to
|
||||
<filename>/etc/pkg</filename> (because the filesystem will, at
|
||||
that time, be mounted read-write) which will always be
|
||||
available to the operating system as
|
||||
<filename>/var/db/pkg</filename>.</para>
|
||||
</sect2>
|
||||
|
||||
|
@ -428,40 +454,42 @@ pseudo-device md # memory disk</programlisting>
|
|||
<title>Apache Web Server</title>
|
||||
|
||||
<note>
|
||||
<para>The steps in this section are only necessary if Apache is
|
||||
set up to write its pid or log information outside of
|
||||
<para>The steps in this section are only necessary if Apache
|
||||
is set up to write its pid or log information outside of
|
||||
<filename class="directory">/var</filename>. By default,
|
||||
Apache keeps its pid file in <filename
|
||||
class="directory">/var/run/httpd.pid</filename> and its log
|
||||
files in <filename class="directory">/var/log</filename>.</para>
|
||||
class="directory">/var/run/httpd.pid</filename> and its
|
||||
log files in <filename
|
||||
class="directory">/var/log</filename>.</para>
|
||||
</note>
|
||||
|
||||
<para>It is now assumed that Apache keeps its log files in a
|
||||
directory <filename
|
||||
class="directory"><replaceable>apache_log_dir</replaceable></filename>
|
||||
class="directory"><replaceable>apache_log_dir</replaceable></filename>
|
||||
outside of <filename class="directory">/var</filename>.
|
||||
When this directory lives on a read-only filesystem, Apache will
|
||||
not be able to save any log files, and may have problems working.
|
||||
If so, it is necessary to add a new directory to the
|
||||
When this directory lives on a read-only filesystem, Apache
|
||||
will not be able to save any log files, and may have problems
|
||||
working. If so, it is necessary to add a new directory to the
|
||||
list of directories in <filename>/etc/rc.d/var</filename> to
|
||||
create in <filename>/var</filename>, and to link
|
||||
<filename class="directory"><replaceable>apache_log_dir</replaceable></filename> to
|
||||
<filename>/var/log/apache</filename>. It is also necessary to set
|
||||
permissions and ownership on this new directory.</para>
|
||||
<filename
|
||||
class="directory"><replaceable>apache_log_dir</replaceable></filename>
|
||||
to <filename>/var/log/apache</filename>. It is also necessary
|
||||
to set permissions and ownership on this new directory.</para>
|
||||
|
||||
<para>First, add the directory <literal>log/apache</literal> to the list
|
||||
of directories to be created in
|
||||
<para>First, add the directory <literal>log/apache</literal> to
|
||||
the list of directories to be created in
|
||||
<filename>/etc/rc.d/var</filename>.</para>
|
||||
|
||||
<para>Second, add these commands to
|
||||
<filename>/etc/rc.d/var</filename> after the directory creation
|
||||
section:</para>
|
||||
<filename>/etc/rc.d/var</filename> after the directory
|
||||
creation section:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>chmod 0774 /var/log/apache</userinput>
|
||||
&prompt.root; <userinput>chown nobody:nobody /var/log/apache</userinput></screen>
|
||||
|
||||
<para>Finally, remove the existing
|
||||
<filename class="directory"><replaceable>apache_log_dir</replaceable></filename>
|
||||
<para>Finally, remove the existing <filename
|
||||
class="directory"><replaceable>apache_log_dir</replaceable></filename>
|
||||
directory, and replace it with a link:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>rm -rf <filename class="directory"><replaceable>apache_log_dir</replaceable></filename></userinput>
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
# $FreeBSD$
|
||||
|
||||
SUBDIR = arch-handbook
|
||||
SUBDIR+= corp-net-guide
|
||||
SUBDIR+= design-44bsd
|
||||
SUBDIR+= dev-model
|
||||
SUBDIR+= developers-handbook
|
||||
|
|
|
@ -16,11 +16,11 @@ INSTALL_COMPRESSED?= gz
|
|||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
#
|
||||
# SRCS lists the individual SGML files that make up the document. Changes
|
||||
# SRCS lists the individual XML files that make up the document. Changes
|
||||
# to any of these files will force a rebuild
|
||||
#
|
||||
|
||||
# SGML content
|
||||
# XML content
|
||||
SRCS= book.xml
|
||||
SRCS+= boot/chapter.xml
|
||||
SRCS+= driverbasics/chapter.xml
|
||||
|
|
|
@ -48,13 +48,7 @@
|
|||
<para>Most devices in a &unix;-like operating system are accessed
|
||||
through device-nodes, sometimes also called special files.
|
||||
These files are usually located under the directory
|
||||
<filename>/dev</filename> in the filesystem hierarchy.
|
||||
In releases of FreeBSD older than 5.0-RELEASE, where
|
||||
&man.devfs.5; support is not integrated into FreeBSD,
|
||||
each device node must be
|
||||
created statically and independent of the existence of the
|
||||
associated device driver. Most device nodes on the system are
|
||||
created by running <command>MAKEDEV</command>.</para>
|
||||
<filename>/dev</filename> in the filesystem hierarchy.</para>
|
||||
|
||||
<para>Device drivers can roughly be broken down into two
|
||||
categories; character and network device drivers.</para>
|
||||
|
@ -208,25 +202,23 @@ KMOD=skeleton
|
|||
|
||||
<para>This simple example pseudo-device remembers whatever values
|
||||
you write to it and can then supply them back to you when you
|
||||
read from it. Two versions are shown, one for &os; 4.X and
|
||||
one for &os; 5.X.</para>
|
||||
read from it.</para>
|
||||
|
||||
<example>
|
||||
<title>Example of a Sample Echo Pseudo-Device Driver for
|
||||
&os; 4.X</title>
|
||||
&os; 10.X</title>
|
||||
|
||||
<programlisting>/*
|
||||
* Simple `echo' pseudo-device KLD
|
||||
* Simple Echo pseudo-device KLD
|
||||
*
|
||||
* Murray Stokely
|
||||
* Søren (Xride) Straarup
|
||||
* Eitan Adler
|
||||
*/
|
||||
|
||||
#define MIN(a,b) (((a) < (b)) ? (a) : (b))
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/module.h>
|
||||
#include <sys/systm.h> /* uprintf */
|
||||
#include <sys/errno.h>
|
||||
#include <sys/param.h> /* defines used in kernel.h */
|
||||
#include <sys/kernel.h> /* types used in module initialization */
|
||||
#include <sys/conf.h> /* cdevsw struct */
|
||||
|
@ -235,170 +227,6 @@ KMOD=skeleton
|
|||
|
||||
#define BUFFERSIZE 256
|
||||
|
||||
/* Function prototypes */
|
||||
d_open_t echo_open;
|
||||
d_close_t echo_close;
|
||||
d_read_t echo_read;
|
||||
d_write_t echo_write;
|
||||
|
||||
/* Character device entry points */
|
||||
static struct cdevsw echo_cdevsw = {
|
||||
echo_open,
|
||||
echo_close,
|
||||
echo_read,
|
||||
echo_write,
|
||||
noioctl,
|
||||
nopoll,
|
||||
nommap,
|
||||
nostrategy,
|
||||
"echo",
|
||||
33, /* reserved for lkms - /usr/src/sys/conf/majors */
|
||||
nodump,
|
||||
nopsize,
|
||||
D_TTY,
|
||||
-1
|
||||
};
|
||||
|
||||
typedef struct s_echo {
|
||||
char msg[BUFFERSIZE];
|
||||
int len;
|
||||
} t_echo;
|
||||
|
||||
/* vars */
|
||||
static dev_t sdev;
|
||||
static int count;
|
||||
static t_echo *echomsg;
|
||||
|
||||
MALLOC_DECLARE(M_ECHOBUF);
|
||||
MALLOC_DEFINE(M_ECHOBUF, "echobuffer", "buffer for echo module");
|
||||
|
||||
/*
|
||||
* This function is called by the kld[un]load(2) system calls to
|
||||
* determine what actions to take when a module is loaded or unloaded.
|
||||
*/
|
||||
|
||||
static int
|
||||
echo_loader(struct module *m, int what, void *arg)
|
||||
{
|
||||
int err = 0;
|
||||
|
||||
switch (what) {
|
||||
case MOD_LOAD: /* kldload */
|
||||
sdev = make_dev(<literal>&</literal>echo_cdevsw,
|
||||
0,
|
||||
UID_ROOT,
|
||||
GID_WHEEL,
|
||||
0600,
|
||||
"echo");
|
||||
/* kmalloc memory for use by this driver */
|
||||
MALLOC(echomsg, t_echo *, sizeof(t_echo), M_ECHOBUF, M_WAITOK);
|
||||
printf("Echo device loaded.\n");
|
||||
break;
|
||||
case MOD_UNLOAD:
|
||||
destroy_dev(sdev);
|
||||
FREE(echomsg,M_ECHOBUF);
|
||||
printf("Echo device unloaded.\n");
|
||||
break;
|
||||
default:
|
||||
err = EOPNOTSUPP;
|
||||
break;
|
||||
}
|
||||
return(err);
|
||||
}
|
||||
|
||||
int
|
||||
echo_open(dev_t dev, int oflags, int devtype, struct proc *p)
|
||||
{
|
||||
int err = 0;
|
||||
|
||||
uprintf("Opened device \"echo\" successfully.\n");
|
||||
return(err);
|
||||
}
|
||||
|
||||
int
|
||||
echo_close(dev_t dev, int fflag, int devtype, struct proc *p)
|
||||
{
|
||||
uprintf("Closing device \"echo.\"\n");
|
||||
return(0);
|
||||
}
|
||||
|
||||
/*
|
||||
* The read function just takes the buf that was saved via
|
||||
* echo_write() and returns it to userland for accessing.
|
||||
* uio(9)
|
||||
*/
|
||||
|
||||
int
|
||||
echo_read(dev_t dev, struct uio *uio, int ioflag)
|
||||
{
|
||||
int err = 0;
|
||||
int amt;
|
||||
|
||||
/*
|
||||
* How big is this read operation? Either as big as the user wants,
|
||||
* or as big as the remaining data
|
||||
*/
|
||||
amt = MIN(uio->uio_resid, (echomsg->len - uio->uio_offset > 0) ?
|
||||
echomsg->len - uio->uio_offset : 0);
|
||||
if ((err = uiomove(echomsg->msg + uio->uio_offset,amt,uio)) != 0) {
|
||||
uprintf("uiomove failed!\n");
|
||||
}
|
||||
return(err);
|
||||
}
|
||||
|
||||
/*
|
||||
* echo_write takes in a character string and saves it
|
||||
* to buf for later accessing.
|
||||
*/
|
||||
|
||||
int
|
||||
echo_write(dev_t dev, struct uio *uio, int ioflag)
|
||||
{
|
||||
int err = 0;
|
||||
|
||||
/* Copy the string in from user memory to kernel memory */
|
||||
err = copyin(uio->uio_iov->iov_base, echomsg->msg,
|
||||
MIN(uio->uio_iov->iov_len, BUFFERSIZE - 1));
|
||||
|
||||
/* Now we need to null terminate, then record the length */
|
||||
*(echomsg->msg + MIN(uio->uio_iov->iov_len, BUFFERSIZE - 1)) = 0;
|
||||
echomsg->len = MIN(uio->uio_iov->iov_len, BUFFERSIZE);
|
||||
|
||||
if (err != 0) {
|
||||
uprintf("Write failed: bad address!\n");
|
||||
}
|
||||
count++;
|
||||
return(err);
|
||||
}
|
||||
|
||||
DEV_MODULE(echo,echo_loader,NULL);</programlisting>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
<title>Example of a Sample Echo Pseudo-Device Driver for
|
||||
&os; 5.X</title>
|
||||
|
||||
<programlisting>/*
|
||||
* Simple `echo' pseudo-device KLD
|
||||
*
|
||||
* Murray Stokely
|
||||
*
|
||||
* Converted to 5.X by Søren (Xride) Straarup
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/module.h>
|
||||
#include <sys/systm.h> /* uprintf */
|
||||
#include <sys/errno.h>
|
||||
#include <sys/param.h> /* defines used in kernel.h */
|
||||
#include <sys/kernel.h> /* types used in module initialization */
|
||||
#include <sys/conf.h> /* cdevsw struct */
|
||||
#include <sys/uio.h> /* uio struct */
|
||||
#include <sys/malloc.h>
|
||||
|
||||
#define BUFFERSIZE 256
|
||||
|
||||
|
||||
/* Function prototypes */
|
||||
static d_open_t echo_open;
|
||||
static d_close_t echo_close;
|
||||
|
@ -415,15 +243,14 @@ static struct cdevsw echo_cdevsw = {
|
|||
.d_name = "echo",
|
||||
};
|
||||
|
||||
typedef struct s_echo {
|
||||
struct s_echo {
|
||||
char msg[BUFFERSIZE];
|
||||
int len;
|
||||
} t_echo;
|
||||
};
|
||||
|
||||
/* vars */
|
||||
static struct cdev *echo_dev;
|
||||
static int count;
|
||||
static t_echo *echomsg;
|
||||
static struct s_echo *echomsg;
|
||||
|
||||
MALLOC_DECLARE(M_ECHOBUF);
|
||||
MALLOC_DEFINE(M_ECHOBUF, "echobuffer", "buffer for echo module");
|
||||
|
@ -434,20 +261,25 @@ MALLOC_DEFINE(M_ECHOBUF, "echobuffer", "buffer for echo module");
|
|||
*/
|
||||
|
||||
static int
|
||||
echo_loader(struct module *m, int what, void *arg)
|
||||
echo_loader(struct module *m __unused, int what, void *arg __unused)
|
||||
{
|
||||
int err = 0;
|
||||
int error = 0;
|
||||
|
||||
switch (what) {
|
||||
case MOD_LOAD: /* kldload */
|
||||
echo_dev = make_dev(<literal>&</literal>echo_cdevsw,
|
||||
error = make_dev_p(MAKEDEV_CHECKNAME | MAKEDEV_WAITOK,
|
||||
&echo_dev,
|
||||
&echo_cdevsw,
|
||||
0,
|
||||
UID_ROOT,
|
||||
GID_WHEEL,
|
||||
0600,
|
||||
"echo");
|
||||
if (error != 0)
|
||||
break;
|
||||
|
||||
/* kmalloc memory for use by this driver */
|
||||
echomsg = malloc(sizeof(t_echo), M_ECHOBUF, M_WAITOK);
|
||||
echomsg = malloc(sizeof(*echomsg), M_ECHOBUF, M_WAITOK);
|
||||
printf("Echo device loaded.\n");
|
||||
break;
|
||||
case MOD_UNLOAD:
|
||||
|
@ -456,26 +288,27 @@ echo_loader(struct module *m, int what, void *arg)
|
|||
printf("Echo device unloaded.\n");
|
||||
break;
|
||||
default:
|
||||
err = EOPNOTSUPP;
|
||||
error = EOPNOTSUPP;
|
||||
break;
|
||||
}
|
||||
return(err);
|
||||
return (error);
|
||||
}
|
||||
|
||||
static int
|
||||
echo_open(struct cdev *dev, int oflags, int devtype, struct thread *p)
|
||||
echo_open(struct cdev *dev __unused, int oflags __unused, int devtype __unused, struct thread *p __unused)
|
||||
{
|
||||
int err = 0;
|
||||
int error = 0;
|
||||
|
||||
uprintf("Opened device \"echo\" successfully.\n");
|
||||
return(err);
|
||||
return (error);
|
||||
}
|
||||
|
||||
static int
|
||||
echo_close(struct cdev *dev, int fflag, int devtype, struct thread *p)
|
||||
echo_close(struct cdev *dev __unused, int fflag __unused, int devtype __unused, struct thread *p __unused)
|
||||
{
|
||||
uprintf("Closing device \"echo.\"\n");
|
||||
return(0);
|
||||
|
||||
uprintf("Closing device \"echo\".\n");
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -485,21 +318,21 @@ echo_close(struct cdev *dev, int fflag, int devtype, struct thread *p)
|
|||
*/
|
||||
|
||||
static int
|
||||
echo_read(struct cdev *dev, struct uio *uio, int ioflag)
|
||||
echo_read(struct cdev *dev __unused, struct uio *uio, int ioflag __unused)
|
||||
{
|
||||
int err = 0;
|
||||
int amt;
|
||||
int error, amt;
|
||||
|
||||
/*
|
||||
* How big is this read operation? Either as big as the user wants,
|
||||
* or as big as the remaining data
|
||||
*/
|
||||
amt = MIN(uio->uio_resid, (echomsg->len - uio->uio_offset > 0) ?
|
||||
echomsg->len - uio->uio_offset : 0);
|
||||
if ((err = uiomove(echomsg->msg + uio->uio_offset, amt, uio)) != 0) {
|
||||
|
||||
amt = MIN(uio->uio_resid, echomsg->len - uio->uio_offset);
|
||||
uio->uio_offset += amt;
|
||||
if ((error = uiomove(echomsg->msg, amt, uio)) != 0)
|
||||
uprintf("uiomove failed!\n");
|
||||
}
|
||||
return(err);
|
||||
|
||||
return (error);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -508,55 +341,57 @@ echo_read(struct cdev *dev, struct uio *uio, int ioflag)
|
|||
*/
|
||||
|
||||
static int
|
||||
echo_write(struct cdev *dev, struct uio *uio, int ioflag)
|
||||
echo_write(struct cdev *dev __unused, struct uio *uio, int ioflag __unused)
|
||||
{
|
||||
int err = 0;
|
||||
int error, amt;
|
||||
|
||||
/* Copy the string in from user memory to kernel memory */
|
||||
err = copyin(uio->uio_iov->iov_base, echomsg->msg,
|
||||
MIN(uio->uio_iov->iov_len, BUFFERSIZE - 1));
|
||||
|
||||
/*
|
||||
* We either write from the beginning or are appending -- do
|
||||
* not allow random access.
|
||||
*/
|
||||
if (uio->uio_offset != 0 && (uio->uio_offset != echomsg->len))
|
||||
return (EINVAL);
|
||||
|
||||
/*
|
||||
* This is new message, reset length
|
||||
*/
|
||||
if (uio->uio_offset == 0)
|
||||
echomsg->len = 0;
|
||||
|
||||
/* NULL character should be overridden */
|
||||
if (echomsg->len != 0)
|
||||
echomsg->len--;
|
||||
|
||||
/* Copy the string in from user memory to kernel memory */
|
||||
amt = MIN(uio->uio_resid, (BUFFERSIZE - echomsg->len));
|
||||
|
||||
error = uiomove(echomsg->msg + uio->uio_offset, amt, uio);
|
||||
|
||||
/* Now we need to null terminate, then record the length */
|
||||
*(echomsg->msg + MIN(uio->uio_iov->iov_len, BUFFERSIZE - 1)) = 0;
|
||||
echomsg->len = MIN(uio->uio_iov->iov_len, BUFFERSIZE);
|
||||
echomsg->len += amt + 1;
|
||||
uio->uio_offset += amt + 1;
|
||||
echomsg->msg[echomsg->len - 1] = 0;
|
||||
|
||||
if (err != 0) {
|
||||
if (error != 0)
|
||||
uprintf("Write failed: bad address!\n");
|
||||
}
|
||||
count++;
|
||||
return(err);
|
||||
return (error);
|
||||
}
|
||||
|
||||
DEV_MODULE(echo,echo_loader,NULL);</programlisting>
|
||||
</example>
|
||||
|
||||
<para>To install this driver on &os; 4.X you will first need to
|
||||
make a node on your filesystem with a command such as:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mknod /dev/echo c 33 0</userinput></screen>
|
||||
|
||||
<para>With this driver loaded you should now be able to type
|
||||
something like:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>echo -n "Test Data" > /dev/echo</userinput>
|
||||
&prompt.root; <userinput>cat /dev/echo</userinput>
|
||||
Test Data</screen>
|
||||
Opened device "echo" successfully.
|
||||
Test Data
|
||||
Closing device "echo".</screen>
|
||||
|
||||
<para>Real hardware devices are described in the next chapter.</para>
|
||||
|
||||
<para>Additional Resources
|
||||
<itemizedlist>
|
||||
<listitem><simpara><ulink
|
||||
url="http://ezine.daemonnews.org/200010/blueprints.html">Dynamic
|
||||
Kernel Linker (KLD) Facility Programming Tutorial</ulink> -
|
||||
<ulink url="http://www.daemonnews.org/">Daemonnews</ulink> October 2000</simpara></listitem>
|
||||
<listitem><simpara><ulink
|
||||
url="http://ezine.daemonnews.org/200007/newbus-intro.html">How
|
||||
to Write Kernel Drivers with NEWBUS</ulink> - <ulink
|
||||
url="http://www.daemonnews.org/">Daemonnews</ulink> July
|
||||
2000</simpara></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="driverbasics-block">
|
||||
|
|
|
@ -146,7 +146,7 @@
|
|||
DEVMETHOD(device_suspend, xxx_isa_suspend),
|
||||
DEVMETHOD(device_resume, xxx_isa_resume),
|
||||
|
||||
{ 0, 0 }
|
||||
DEVMETHOD_END
|
||||
};
|
||||
|
||||
static driver_t xxx_isa_driver = {
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
#include <sys/conf.h> /* cdevsw struct */
|
||||
#include <sys/uio.h> /* uio struct */
|
||||
#include <sys/malloc.h>
|
||||
#include <sys/bus.h> /* structs, prototypes for pci bus stuff */
|
||||
#include <sys/bus.h> /* structs, prototypes for pci bus stuff and DEVMETHOD macros! */
|
||||
|
||||
#include <machine/bus.h>
|
||||
#include <sys/rman.h>
|
||||
|
@ -221,7 +221,7 @@ static device_method_t mypci_methods[] = {
|
|||
DEVMETHOD(device_suspend, mypci_suspend),
|
||||
DEVMETHOD(device_resume, mypci_resume),
|
||||
|
||||
{ 0, 0 }
|
||||
DEVMETHOD_END
|
||||
};
|
||||
|
||||
static devclass_t mypci_devclass;
|
||||
|
|
|
@ -82,16 +82,16 @@
|
|||
<sect1 id="oss-files">
|
||||
<title>Files</title>
|
||||
|
||||
<para>All the relevant code currently (FreeBSD 4.4) lives in
|
||||
<para>All the relevant code lives in
|
||||
<filename>/usr/src/sys/dev/sound/</filename>, except for the
|
||||
public ioctl interface definitions, found in
|
||||
<filename>/usr/src/sys/sys/soundcard.h</filename></para>
|
||||
|
||||
<para>Under <filename>/usr/src/sys/dev/sound/</filename>, the
|
||||
<filename>pcm/</filename> directory holds the central code,
|
||||
while the <filename>isa/</filename> and
|
||||
<filename>pci/</filename> directories have the drivers for ISA
|
||||
and PCI boards.</para>
|
||||
while the <filename>pci/</filename>, <filename>isa/</filename>
|
||||
and <filename>usb/</filename> directories have the drivers
|
||||
for PCI and ISA boards, and for USB audio devices.</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -527,7 +527,7 @@
|
|||
<function>channel_resetdone()</function>, and
|
||||
<function>channel_notify()</function> are for special purposes
|
||||
and should not be implemented in a driver without discussing
|
||||
it with the authorities (&a.cg;).</para>
|
||||
it on the &a.multimedia;.</para>
|
||||
|
||||
<para><function>channel_setdir()</function> is deprecated.</para>
|
||||
</sect3>
|
||||
|
|
|
@ -13,11 +13,11 @@ INSTALL_COMPRESSED?= gz
|
|||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
#
|
||||
# SRCS lists the individual SGML files that make up the document. Changes
|
||||
# SRCS lists the individual XML files that make up the document. Changes
|
||||
# to any of these files will force a rebuild
|
||||
#
|
||||
|
||||
# SGML content
|
||||
# XML content
|
||||
SRCS= book.xml
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
# $FreeBSD$
|
||||
|
||||
DOC?= book
|
||||
|
||||
FORMATS?= html
|
||||
|
||||
INSTALL_COMPRESSED?=gz
|
||||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
SRCS= book.xml
|
||||
|
||||
IMAGES_EN= 08-01.eps
|
||||
IMAGES_EN+= 08-02.eps
|
||||
IMAGES_EN+= 08-03.eps
|
||||
IMAGES_EN+= 08-04.eps
|
||||
IMAGES_EN+= 08-05.eps
|
||||
IMAGES_EN+= 08-06.eps
|
||||
|
||||
# Use the local DSSSL file
|
||||
DSLHTML?= ${.CURDIR}/freebsd.dsl
|
||||
DSLPRINT?= ${.CURDIR}/freebsd.dsl
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
||||
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
File diff suppressed because it is too large
Load diff
|
@ -1,18 +0,0 @@
|
|||
<!-- $FreeBSD$ -->
|
||||
|
||||
<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [
|
||||
<!ENTITY freebsd.dsl PUBLIC "-//FreeBSD//DOCUMENT DocBook Stylesheet//EN" CDATA DSSSL>
|
||||
]>
|
||||
|
||||
<style-sheet>
|
||||
<style-specification use="docbook">
|
||||
<style-specification-body>
|
||||
|
||||
;; Keep the legalnotice together with the rest of the text
|
||||
(define %generate-legalnotice-link%
|
||||
#f)
|
||||
</style-specification-body>
|
||||
</style-specification>
|
||||
|
||||
<external-specification id="docbook" document="freebsd.dsl">
|
||||
</style-sheet>
|
|
@ -44,7 +44,13 @@
|
|||
<year>2002-2005</year>
|
||||
<holder>Niklas Saers</holder>
|
||||
</copyright>
|
||||
<revhistory>
|
||||
<revhistory>
|
||||
<revision>
|
||||
<revnumber>1.3</revnumber>
|
||||
<date>October, 2012</date>
|
||||
<revremark>Remove hats held by specific people, these
|
||||
are documented elsewhere.</revremark>
|
||||
</revision>
|
||||
<revision>
|
||||
<revnumber>1.2</revnumber>
|
||||
<date>April, 2005</date>
|
||||
|
@ -882,8 +888,6 @@
|
|||
</para>
|
||||
|
||||
<para>
|
||||
<!-- [TODO] - check all email adresses and names -->
|
||||
|
||||
Hat held by:
|
||||
The DocEng team <email>doceng@FreeBSD.org</email>.
|
||||
The
|
||||
|
@ -908,27 +912,6 @@
|
|||
</para>
|
||||
</section>
|
||||
|
||||
<section id="role-internationalisation" xreflabel="Internationalisation">
|
||||
<title>Internationalisation</title>
|
||||
<para>
|
||||
The Internationalisation hat is responsible for coordinating
|
||||
the localisation efforts of the FreeBSD kernel and userland
|
||||
utilities. The translation effort are coordinated by
|
||||
<xref linkend="sub-project-documentation"/>. The
|
||||
Internationalisation hat should suggest and promote standards
|
||||
and guidelines for writing and maintaining the software in a
|
||||
fashion that makes it easier to translate.
|
||||
</para>
|
||||
<para>
|
||||
Hat currently available.
|
||||
<!--
|
||||
[TODO] - Is this still the case?
|
||||
Although Ache does Localization
|
||||
Andrey A. Chernov <email>ache@FreeBSD.org</email>
|
||||
-->
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id="role-postmaster" xreflabel="Postmaster">
|
||||
<title>Postmaster</title>
|
||||
<para>
|
||||
|
@ -944,21 +927,6 @@
|
|||
</para>
|
||||
</section>
|
||||
|
||||
<section id="role-quality-assurance" xreflabel="Quality Assurance">
|
||||
<title>Quality Assurance</title>
|
||||
|
||||
<para>
|
||||
The responsibilities of this role are to manage the quality assurance
|
||||
measures.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Hat currently held by:
|
||||
Robert Watson <email>rwatson@FreeBSD.org</email>.
|
||||
</para>
|
||||
|
||||
</section>
|
||||
|
||||
<section id="role-release-coordination" xreflabel="Release Coordination">
|
||||
<title>Release Coordination</title>
|
||||
|
||||
|
@ -993,8 +961,6 @@
|
|||
<para id="role-releng" xreflabel="Release Engineering Team">
|
||||
Hat held by:
|
||||
the Release Engineering team <email>re@FreeBSD.org</email>.
|
||||
The current Release Engineer is
|
||||
Ken Smith <email>kensmith@FreeBSD.org</email>.
|
||||
The
|
||||
<ulink url="http://www.freebsd.org/releng/charter.html">
|
||||
Release Engineering Charter</ulink>.
|
||||
|
@ -1052,16 +1018,6 @@
|
|||
Officer Team <email>security-team@FreeBSD.org</email> to
|
||||
help do the work.
|
||||
</para>
|
||||
<para>
|
||||
Hat held by:
|
||||
the Security Officer <email>security-officer@FreeBSD.org</email>,
|
||||
currently headed by
|
||||
Colin Percival <email>cperciva@FreeBSD.org</email>.
|
||||
The
|
||||
<ulink url="http://www.freebsd.org/security/index.html#sec">
|
||||
Security Officer and The Security Officer Team's
|
||||
charter</ulink>.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id="role-repo-manager" xreflabel="Source Repository Manager">
|
||||
|
@ -1069,7 +1025,7 @@
|
|||
<para>
|
||||
The Source Repository Manager is the only one who is allowed
|
||||
to directly modify the repository without using the
|
||||
<xref linkend="tool-cvs"/> tool.
|
||||
<xref linkend="tool-svn"/> tool.
|
||||
It is his/her
|
||||
responsibility to ensure that technical problems that arise in the
|
||||
repository are resolved quickly. The source repository
|
||||
|
@ -1078,8 +1034,7 @@
|
|||
</para>
|
||||
<para>
|
||||
Hat held by:
|
||||
the Source Repository Manager <email>cvs@FreeBSD.org</email>,
|
||||
currently headed by Peter Wemm <email>peter@FreeBSD.org</email>.
|
||||
the Source Repository Manager <email>cvs@FreeBSD.org</email>.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
|
@ -1205,10 +1160,7 @@
|
|||
</para>
|
||||
<para>
|
||||
Hat held by:
|
||||
the Donations Liaison Office <email>donations@FreeBSD.org</email>,
|
||||
currently headed by
|
||||
Michael W. Lucas <email>mwlucas@FreeBSD.org</email>.
|
||||
|
||||
the Donations Liaison Office <email>donations@FreeBSD.org</email>.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
|
@ -1230,8 +1182,7 @@
|
|||
|
||||
<para>
|
||||
Hat held by:
|
||||
the Admin team <email>admin@FreeBSD.org</email>,
|
||||
currently headed by Mark Murray <email>markm@FreeBSD.org</email>
|
||||
the Admin team <email>admin@FreeBSD.org</email>.
|
||||
</para>
|
||||
|
||||
</section>
|
||||
|
@ -2237,11 +2188,9 @@
|
|||
developed tools. These tools are commonly used in the open source world.
|
||||
</para>
|
||||
|
||||
<section id="tool-cvs" xreflabel="CVS">
|
||||
<title>Concurrent Versions System (CVS)</title>
|
||||
<para>
|
||||
Concurrent Versions System
|
||||
or simply <quote>CVS</quote>
|
||||
<section id="tool-svn" xreflabel="SVN">
|
||||
<title>Subversion (SVN)</title>
|
||||
<para>Subversion (<quote>SVN</quote>)
|
||||
is a system to handle multiple versions of text files and
|
||||
tracking who committed what changes and why. A project lives
|
||||
within a <quote>repository</quote> and different versions are
|
||||
|
@ -2261,7 +2210,6 @@
|
|||
</para>
|
||||
</section>
|
||||
|
||||
|
||||
<section id="tool-gnats" xreflabel="GNATS">
|
||||
<title>GNATS</title>
|
||||
<para>
|
||||
|
|
|
@ -19,11 +19,11 @@ INSTALL_ONLY_COMPRESSED?=
|
|||
IMAGES_EN= sockets/layers.eps sockets/sain.eps sockets/sainfill.eps sockets/sainlsb.eps sockets/sainmsb.eps sockets/sainserv.eps sockets/serv.eps sockets/serv2.eps sockets/slayers.eps
|
||||
|
||||
#
|
||||
# SRCS lists the individual SGML files that make up the document. Changes
|
||||
# SRCS lists the individual XML files that make up the document. Changes
|
||||
# to any of these files will force a rebuild
|
||||
#
|
||||
|
||||
# SGML content
|
||||
# XML content
|
||||
SRCS= book.xml
|
||||
SRCS+= introduction/chapter.xml
|
||||
SRCS+= ipv6/chapter.xml
|
||||
|
|
|
@ -786,6 +786,254 @@ Debugger (msg=0xf01b0383 "Boot flags requested debugger")
|
|||
stack, and do a backtrace with <command>where</command>.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="kerneldebug-dcons">
|
||||
<title>Kernel debugging with Dcons</title>
|
||||
|
||||
<para>&man.dcons.4; is a very simple console driver that is
|
||||
not directly connected with any physical devices. It just reads
|
||||
and writes characters from and to a buffer in a kernel or
|
||||
loader. Due to its simple nature, it is very useful for kernel
|
||||
debugging, especially with a &firewire; device. Currently, &os;
|
||||
provides two ways to interact with the buffer from outside of
|
||||
the kernel using &man.dconschat.8;.</para>
|
||||
|
||||
<sect2>
|
||||
<title>Dcons over &firewire;</title>
|
||||
|
||||
<para>Most &firewire; (IEEE1394) host controllers are
|
||||
based on the <acronym>OHCI</acronym> specification that
|
||||
supports physical access to the host memory. This means that
|
||||
once the host controller is initialized, we can access the
|
||||
host memory without the help of software (kernel). We can
|
||||
exploit this facility for interaction with &man.dcons.4;.
|
||||
&man.dcons.4; provides similar functionality as a serial
|
||||
console. It emulates two serial ports, one for the console
|
||||
and <acronym>DDB</acronym>, the other for
|
||||
<acronym>GDB</acronym>. Because remote memory access is fully
|
||||
handled by the hardware, the &man.dcons.4; buffer is
|
||||
accessible even when the system crashes.</para>
|
||||
|
||||
<para>&firewire; devices are not limited to those
|
||||
integrated into motherboards. <acronym>PCI</acronym> cards
|
||||
exist for desktops, and a cardbus interface can be purchased
|
||||
for laptops.</para>
|
||||
|
||||
<sect3>
|
||||
<title>Enabling &firewire; and Dcons support on the target
|
||||
machine</title>
|
||||
|
||||
<para>To enable &firewire; and Dcons support in the kernel of
|
||||
the <emphasis>target machine</emphasis>:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Make sure your kernel supports
|
||||
<literal>dcons</literal>, <literal>dcons_crom</literal>
|
||||
and <literal>firewire</literal>.
|
||||
<literal>Dcons</literal> should be statically linked
|
||||
with the kernel. For <literal>dcons_crom</literal> and
|
||||
<literal>firewire</literal>, modules should be
|
||||
OK.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Make sure physical <acronym>DMA</acronym> is enabled.
|
||||
You may need to add
|
||||
<literal>hw.firewire.phydma_enable=1</literal> to
|
||||
<filename>/boot/loader.conf</filename>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Add options for debugging.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Add <literal>dcons_gdb=1</literal> in
|
||||
<filename>/boot/loader.conf</filename> if you use GDB
|
||||
over &firewire;.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Enable <literal>dcons</literal> in
|
||||
<filename>/etc/ttys</filename>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Optionally, to force <literal>dcons</literal> to
|
||||
be the high-level console, add
|
||||
<literal>hw.firewire.dcons_crom.force_console=1</literal>
|
||||
to <filename>loader.conf</filename>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>To enable &firewire; and Dcons support in &man.loader.8;
|
||||
on i386 or amd64:</para>
|
||||
|
||||
<para>Add
|
||||
<literal>LOADER_FIREWIRE_SUPPORT=YES</literal> in
|
||||
<filename>/etc/make.conf</filename> and rebuild
|
||||
&man.loader.8;:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>cd /sys/boot/i386 && make clean && make && make install</userinput></screen>
|
||||
|
||||
<para>To enable &man.dcons.4; as an active low-level
|
||||
console, add <literal>boot_multicons="YES"</literal> to
|
||||
<filename>/boot/loader.conf</filename>.</para>
|
||||
|
||||
<para>Here are a few configuration examples. A sample kernel
|
||||
configuration file would contain:</para>
|
||||
|
||||
<screen>device dcons
|
||||
device dcons_crom
|
||||
options KDB
|
||||
options DDB
|
||||
options GDB
|
||||
options ALT_BREAK_TO_DEBUGGER</screen>
|
||||
|
||||
<para>And a sample <filename>/boot/loader.conf</filename>
|
||||
would contain:</para>
|
||||
|
||||
<screen>dcons_crom_load="YES"
|
||||
dcons_gdb=1
|
||||
boot_multicons="YES"
|
||||
hw.firewire.phydma_enable=1
|
||||
hw.firewire.dcons_crom.force_console=1</screen>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title>Enabling &firewire; and Dcons support on the host
|
||||
machine</title>
|
||||
|
||||
<para>To enable &firewire; support in the kernel on the
|
||||
<emphasis>host machine</emphasis>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>kldload firewire</userinput></screen>
|
||||
|
||||
<para>Find out the <acronym>EUI64</acronym> (the unique 64
|
||||
bit identifier) of the &firewire; host controller, and
|
||||
use &man.fwcontrol.8; or <command>dmesg</command> to
|
||||
find the <acronym>EUI64</acronym> of the target machine.</para>
|
||||
|
||||
<para>Run &man.dconschat.8;, with:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>dconschat -e \# -br -G 12345 -t <replaceable>00-11-22-33-44-55-66-77</replaceable></userinput></screen>
|
||||
|
||||
<para>The following key combinations can be used once
|
||||
&man.dconschat.8; is running:</para>
|
||||
|
||||
<informaltable pgwide="1">
|
||||
<tgroup cols="2">
|
||||
<tbody>
|
||||
<row>
|
||||
<entry>
|
||||
<keycombo action="seq">
|
||||
<keycap>~</keycap>
|
||||
<keycap>.</keycap>
|
||||
</keycombo>
|
||||
</entry>
|
||||
<entry>Disconnect</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
<keycombo action="seq">
|
||||
<keycap>~</keycap>
|
||||
<keycombo action="simul">
|
||||
<keycap>Ctrl</keycap>
|
||||
<keycap>B</keycap>
|
||||
</keycombo>
|
||||
</keycombo>
|
||||
</entry>
|
||||
<entry>ALT BREAK</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
<keycombo action="seq">
|
||||
<keycap>~</keycap>
|
||||
<keycombo action="simul">
|
||||
<keycap>Ctrl</keycap>
|
||||
<keycap>R</keycap>
|
||||
</keycombo>
|
||||
</keycombo>
|
||||
</entry>
|
||||
<entry>RESET target</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
<keycombo action="seq">
|
||||
<keycap>~</keycap>
|
||||
<keycombo action="simul">
|
||||
<keycap>Ctrl</keycap>
|
||||
<keycap>Z</keycap>
|
||||
</keycombo>
|
||||
</keycombo>
|
||||
</entry>
|
||||
<entry>Suspend dconschat</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
|
||||
<para>Attach remote <acronym>GDB</acronym> by starting
|
||||
&man.kgdb.1; with a remote debugging session:</para>
|
||||
|
||||
<screen><userinput>kgdb -r :12345 kernel</userinput></screen>
|
||||
|
||||
</sect3>
|
||||
<sect3>
|
||||
<title>Some general tips</title>
|
||||
|
||||
<para>Here are some general tips:</para>
|
||||
|
||||
<para>To take full advantage of the speed of &firewire;,
|
||||
disable other slow console drivers:</para>
|
||||
|
||||
<screen>&prompt.root; conscontrol delete ttyd0 # serial console
|
||||
&prompt.root; conscontrol delete consolectl # video/keyboard</screen>
|
||||
|
||||
<para>There exists a <acronym>GDB</acronym> mode for
|
||||
&man.emacs.1;; this is what you will need to add to your
|
||||
<filename>.emacs</filename>:</para>
|
||||
|
||||
<screen><userinput>(setq gud-gdba-command-name "kgdb -a -a -a -r :12345")
|
||||
(setq gdb-many-windows t)
|
||||
(xterm-mouse-mode 1)
|
||||
M-x gdba</userinput></screen>
|
||||
|
||||
<para>And for <acronym>DDD</acronym> (<filename>devel/ddd</filename>):</para>
|
||||
|
||||
<screen># remote serial protocol
|
||||
LANG=C ddd --debugger kgdb -r :12345 kernel
|
||||
# live core debug
|
||||
LANG=C ddd --debugger kgdb kernel /dev/fwmem0.2</screen>
|
||||
</sect3>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Dcons with KVM</title>
|
||||
|
||||
<para>We can directly read the &man.dcons.4; buffer via
|
||||
<filename>/dev/mem</filename> for live systems, and in the
|
||||
core dump for crashed systems. These give you similar output
|
||||
to <command>dmesg -a</command>, but the &man.dcons.4; buffer
|
||||
includes more information.</para>
|
||||
|
||||
<sect3>
|
||||
<title>Using Dcons with KVM</title>
|
||||
|
||||
<para>To use &man.dcons.4; with <acronym>KVM</acronym>:</para>
|
||||
|
||||
<para>Dump a &man.dcons.4; buffer of a live system:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>dconschat -1</userinput></screen>
|
||||
|
||||
<para>Dump a &man.dcons.4; buffer of a crash dump:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>dconschat -1 -M vmcore.XX</userinput></screen>
|
||||
|
||||
<para>Live core debugging can be done via:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>fwcontrol -m target_eui64</userinput>
|
||||
&prompt.root; <userinput>kgdb kernel /dev/fwmem0.2</userinput></screen>
|
||||
</sect3>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="kerneldebug-options">
|
||||
<title>Glossary of Kernel Options for Debugging</title>
|
||||
|
||||
|
|
|
@ -142,161 +142,12 @@
|
|||
key issue in the decisions.</para>
|
||||
|
||||
<note>
|
||||
<para>Because of some unfortunate design limitations with the <acronym role="Revision Control System">RCS</acronym> file
|
||||
format and the use of vendor branches, minor, trivial and/or
|
||||
<para>Because it makes it harder to import future versions
|
||||
minor, trivial and/or
|
||||
cosmetic changes are <emphasis>strongly discouraged</emphasis> on
|
||||
files that are still tracking the vendor branch. <quote>Spelling
|
||||
fixes</quote> are explicitly included here under the
|
||||
<quote>cosmetic</quote> category and are to be avoided.
|
||||
The repository bloat impact from a single character
|
||||
change can be rather dramatic.</para>
|
||||
files that are still tracking the vendor branch.</para>
|
||||
</note>
|
||||
|
||||
<sect2 id="vendor-import-cvs">
|
||||
<title>Vendor Imports with CVS</title>
|
||||
|
||||
<para>The <application>file</application> utility, used to identify
|
||||
the format of a file, will be used as example of how this model
|
||||
works:</para>
|
||||
|
||||
<para><filename>src/contrib/file</filename> contains the source as
|
||||
distributed by the maintainers of this package. Parts that are entirely
|
||||
not applicable for &os; can be removed. In the case of &man.file.1;, the
|
||||
<filename>python</filename> subdirectory and files with the <filename>lt</filename>
|
||||
prefix were eliminated before the import, amongst others.</para>
|
||||
|
||||
<para><filename>src/lib/libmagic</filename> contains a <application>bmake</application> style
|
||||
<filename>Makefile</filename> that uses the standard
|
||||
<filename>bsd.lib.mk</filename> makefile rules to produce the library
|
||||
and install the documentation.</para>
|
||||
|
||||
<para><filename>src/usr.bin/file</filename> contains a <application>bmake</application> style
|
||||
<filename>Makefile</filename> which will produce and install the
|
||||
<command>file</command> program and its associated man-pages using the
|
||||
standard <filename>bsd.prog.mk</filename> rules.</para>
|
||||
|
||||
<para>The important thing here is that the
|
||||
<filename>src/contrib/file</filename> directory is created according to
|
||||
the rules: it is supposed to contain the sources as distributed (on a
|
||||
proper vendor-branch and without <acronym>RCS</acronym> keyword expansion) with as few
|
||||
FreeBSD-specific changes as possible. If there are any doubts on
|
||||
how to go about it, it is imperative that you ask first and not blunder
|
||||
ahead and hope it <quote>works out</quote>.</para>
|
||||
|
||||
<para>Because of the previously mentioned design limitations with
|
||||
vendor branches, it is required that <quote>official</quote> patches from
|
||||
the vendor be applied to the original distributed sources and the result
|
||||
re-imported onto the vendor branch again. Official patches should never
|
||||
be patched into the FreeBSD checked out version and <quote>committed</quote>, as this
|
||||
destroys the vendor branch coherency and makes importing future versions
|
||||
rather difficult as there will be conflicts.</para>
|
||||
|
||||
<para>Since many packages contain files that are meant for compatibility
|
||||
with other architectures and environments than FreeBSD, it is
|
||||
permissible to remove parts of the distribution tree that are of no
|
||||
interest to FreeBSD in order to save space. Files containing copyright
|
||||
notices and release-note kind of information applicable to the remaining
|
||||
files shall <emphasis>not</emphasis> be removed.</para>
|
||||
|
||||
<para>If it seems easier, the <command>bmake</command>
|
||||
<filename>Makefile</filename>s can be produced from the dist tree
|
||||
automatically by some utility, something which would hopefully make it
|
||||
even easier to upgrade to a new version. If this is done, be sure to
|
||||
check in such utilities (as necessary) in the
|
||||
<filename>src/tools</filename> directory along with the port itself so
|
||||
that it is available to future maintainers.</para>
|
||||
|
||||
<para>In the <filename>src/contrib/file</filename> level directory, a file
|
||||
called <filename>FREEBSD-upgrade</filename> should be added and it
|
||||
should state things like:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Which files have been left out.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Where the original distribution was obtained from and/or the
|
||||
official master site.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Where to send patches back to the original authors.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Perhaps an overview of the FreeBSD-specific changes that have
|
||||
been made.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Example wording from
|
||||
<filename>src/contrib/groff/FREEBSD-upgrade</filename> is
|
||||
below:</para>
|
||||
|
||||
<programlisting>$FreeBSD: src/contrib/groff/FREEBSD-upgrade,v 1.5.12.1 2005/11/15 22:06:18 ru Exp $
|
||||
|
||||
This directory contains virgin copies of the original distribution files
|
||||
on a "vendor" branch. Do not, under any circumstances, attempt to upgrade
|
||||
the files in this directory via patches and a cvs commit.
|
||||
|
||||
To upgrade to a newer version of groff, when it is available:
|
||||
1. Unpack the new version into an empty directory.
|
||||
[Do not make ANY changes to the files.]
|
||||
|
||||
2. Use the command:
|
||||
cvs import -m 'Virgin import of FSF groff v<version>' \
|
||||
src/contrib/groff FSF v<version>
|
||||
|
||||
For example, to do the import of version 1.19.2, I typed:
|
||||
cvs import -m 'Virgin import of FSF groff v1.19.2' \
|
||||
src/contrib/groff FSF v1_19_2
|
||||
|
||||
3. Follow the instructions printed out in step 2 to resolve any
|
||||
conflicts between local FreeBSD changes and the newer version.
|
||||
|
||||
Do not, under any circumstances, deviate from this procedure.
|
||||
|
||||
To make local changes to groff, simply patch and commit to the main
|
||||
branch (aka HEAD). Never make local changes on the FSF branch.
|
||||
|
||||
All local changes should be submitted to Werner Lemberg <wl@gnu.org> or
|
||||
Ted Harding <ted.harding@nessie.mcc.ac.uk> for inclusion in the next
|
||||
vendor release.
|
||||
|
||||
ru@FreeBSD.org - 20 October 2005</programlisting>
|
||||
|
||||
<para>Another approach my also be taken for the list of files to be
|
||||
excluded, which is especially useful when the list is large or
|
||||
complicated or where imports happen frequently. By creating a
|
||||
file <filename>FREEBSD-Xlist</filename> in the same directory the
|
||||
vendor source is imported into, containing a list of filename
|
||||
patterns to be excluded one per line, future imports can often
|
||||
performed with:</para>
|
||||
|
||||
<screen>&prompt.user; <userinput><command>tar</command> <option>-X</option> <filename>FREEBSD-Xlist</filename> <option>-xzf</option> <filename><replaceable>vendor-source.tgz</replaceable></filename></userinput></screen>
|
||||
|
||||
<para>An example of a <filename>FREEBSD-Xlist</filename> file, from
|
||||
<filename>src/contrib/tcsh</filename>, is here:</para>
|
||||
|
||||
<programlisting>*/BUGS
|
||||
*/config/a*
|
||||
*/config/bs2000
|
||||
*/config/bsd
|
||||
*/config/bsdreno
|
||||
*/config/[c-z]*
|
||||
*/tests
|
||||
*/win32</programlisting>
|
||||
|
||||
<note>
|
||||
<para>Please do not import <filename>FREEBSD-upgrade</filename> or
|
||||
<filename>FREEBSD-Xlist</filename> with the contributed source.
|
||||
Rather you should add these files after the initial
|
||||
import.</para>
|
||||
</note>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 id="vendor-import-svn">
|
||||
<sect2info>
|
||||
<authorgroup>
|
||||
|
|
|
@ -349,9 +349,11 @@
|
|||
<sect1 id="tools-compiling">
|
||||
<title>Compiling with <command>cc</command></title>
|
||||
|
||||
<para>This section deals only with the GNU compiler for C and C++,
|
||||
since that comes with the base FreeBSD system. It can be
|
||||
invoked by either <command>cc</command> or <command>gcc</command>. The
|
||||
<para>This section deals with the <application>gcc</application>
|
||||
and <application>clang</application> compilers for C and C++,
|
||||
since they come with the &os; base system. Starting with
|
||||
&os; 10.X <command>clang</command> is installed as
|
||||
<command>cc</command>. The
|
||||
details of producing a program with an interpreter vary
|
||||
considerably between interpreters, and are usually well covered
|
||||
in the documentation and on-line help for the
|
||||
|
@ -377,14 +379,7 @@
|
|||
<step>
|
||||
<para>Convert the source code into assembly
|
||||
language—this is very close to machine code, but still
|
||||
understandable by humans. Allegedly.
|
||||
|
||||
<footnote>
|
||||
<para>To be strictly accurate, <command>cc</command> converts the
|
||||
source code into its own, machine-independent
|
||||
<firstterm>p-code</firstterm> instead of assembly language at
|
||||
this stage.</para>
|
||||
</footnote></para>
|
||||
understandable by humans. Allegedly.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
|
@ -537,13 +532,7 @@
|
|||
an executable that runs faster than normal. You can add a
|
||||
number after the <option>-O</option> to specify a higher
|
||||
level of optimization, but this often exposes bugs in the
|
||||
compiler's optimizer. For instance, the version of
|
||||
<command>cc</command> that comes with the 2.1.0 release of
|
||||
FreeBSD is known to produce bad code with the
|
||||
<option>-O2</option> option in some circumstances.</para>
|
||||
|
||||
<para>Optimization is usually only turned on when compiling
|
||||
a release version.</para>
|
||||
compiler's optimizer.</para>
|
||||
|
||||
<informalexample>
|
||||
<screen>&prompt.user; <userinput>cc -O -o foobar foobar.c</userinput>
|
||||
|
|
|
@ -16,11 +16,11 @@ INSTALL_ONLY_COMPRESSED?=
|
|||
WITH_BIBLIOXREF_TITLE?=YES
|
||||
|
||||
#
|
||||
# SRCS lists the individual SGML files that make up the document. Changes
|
||||
# SRCS lists the individual XML files that make up the document. Changes
|
||||
# to any of these files will force a rebuild
|
||||
#
|
||||
|
||||
# SGML content
|
||||
# XML content
|
||||
SRCS= book.xml
|
||||
|
||||
URL_RELPREFIX?= ../../../..
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -14,11 +14,11 @@ INSTALL_COMPRESSED?= gz
|
|||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
#
|
||||
# SRCS lists the individual SGML files that make up the document. Changes
|
||||
# SRCS lists the individual XML files that make up the document. Changes
|
||||
# to any of these files will force a rebuild
|
||||
#
|
||||
|
||||
# SGML content
|
||||
# XML content
|
||||
SRCS= book.xml
|
||||
SRCS+= overview/chapter.xml
|
||||
SRCS+= psgml-mode/chapter.xml
|
||||
|
|
|
@ -113,12 +113,12 @@
|
|||
example is preferred.</para>
|
||||
|
||||
<informalexample>
|
||||
<para>Use the command <command>cvsup</command> to update
|
||||
<para>Use the command <command>svn</command> to update
|
||||
your sources.</para>
|
||||
</informalexample>
|
||||
|
||||
<informalexample>
|
||||
<para>Use <command>cvsup</command> to update your
|
||||
<para>Use <command>svn</command> to update your
|
||||
sources.</para>
|
||||
</informalexample>
|
||||
|
||||
|
|
|
@ -243,11 +243,11 @@ IMAGES_LIB+= callouts/14.png
|
|||
IMAGES_LIB+= callouts/15.png
|
||||
|
||||
#
|
||||
# SRCS lists the individual SGML files that make up the document. Changes
|
||||
# SRCS lists the individual XML files that make up the document. Changes
|
||||
# to any of these files will force a rebuild
|
||||
#
|
||||
|
||||
# SGML content
|
||||
# XML content
|
||||
SRCS+= audit/chapter.xml
|
||||
SRCS+= book.xml
|
||||
SRCS+= bsdinstall/chapter.xml
|
||||
|
@ -296,8 +296,8 @@ SYMLINKS= ${DESTDIR} index.html handbook.html
|
|||
# Turn on all the chapters.
|
||||
CHAPTERS?= ${SRCS:M*chapter.xml}
|
||||
|
||||
SGMLFLAGS+= ${CHAPTERS:S/\/chapter.xml//:S/^/-i chap./}
|
||||
SGMLFLAGS+= -i chap.freebsd-glossary
|
||||
XMLFLAGS+= ${CHAPTERS:S/\/chapter.xml//:S/^/-i chap./}
|
||||
XMLFLAGS+= -i chap.freebsd-glossary
|
||||
|
||||
pgpkeyring: pgpkeys/chapter.xml
|
||||
${JADE} -V nochunks ${OTHERFLAGS} ${JADEOPTS} -d ${DSLPGP} -t sgml ${XMLDECL} ${MASTERDOC}
|
||||
|
|
|
@ -44,10 +44,6 @@
|
|||
<para>How to set up network address translation.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>How to connect two computers via PLIP.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>How to set up IPv6 on a FreeBSD machine.</para>
|
||||
</listitem>
|
||||
|
@ -355,7 +351,7 @@ host2.example.com link#1 UC 0 0
|
|||
<para>Remember, since the PPP interface is using an address on
|
||||
the ISP's local network for your side of the connection,
|
||||
routes for any other machines on the ISP's local network will
|
||||
be automatically generated. Hence, you will already know how
|
||||
be automatically generated. Hence, you will already know how
|
||||
to reach the <hostid>T1-GW</hostid> machine, so there is no
|
||||
need for the intermediate step of sending traffic to the ISP
|
||||
server.</para>
|
||||
|
@ -390,8 +386,8 @@ host2.example.com link#1 UC 0 0
|
|||
</tgroup>
|
||||
</informaltable>
|
||||
|
||||
<para>You can easily define the default route via the
|
||||
<filename>/etc/rc.conf</filename> file. In our example, on
|
||||
<para>The default route can be easily defined in
|
||||
<filename>/etc/rc.conf</filename>. In our example, on
|
||||
the <hostid>Local2</hostid> machine, we added the following
|
||||
line in <filename>/etc/rc.conf</filename>:</para>
|
||||
|
||||
|
@ -403,7 +399,7 @@ host2.example.com link#1 UC 0 0
|
|||
<screen>&prompt.root; <userinput>route add default 10.20.30.1</userinput></screen>
|
||||
|
||||
<para>For more information on manual manipulation of network
|
||||
routing tables, consult &man.route.8; manual page.</para>
|
||||
routing tables, consult the &man.route.8; manual page.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="network-dual-homed-hosts">
|
||||
|
@ -573,9 +569,8 @@ default 10.0.0.1 UGS 0 49378 xl0
|
|||
<para>The above example is perfect for configuring a static
|
||||
route on a running system. However, one problem is that the
|
||||
routing information will not persist if you reboot your &os;
|
||||
machine. The way to handle the addition of a static route
|
||||
is to put it in your <filename>/etc/rc.conf</filename>
|
||||
file:</para>
|
||||
machine. Additional static routes can be
|
||||
entered in <filename>/etc/rc.conf</filename>:</para>
|
||||
|
||||
<programlisting># Add Internal Net 2 as a static route
|
||||
static_routes="internalnet2"
|
||||
|
@ -834,8 +829,8 @@ route_net2="-net 192.168.1.0/24 192.168.1.1"</programlisting>
|
|||
<para>The first thing you need is a wireless device. The most
|
||||
commonly used devices are those that use parts made by
|
||||
Atheros. These devices are supported by the &man.ath.4;
|
||||
driver and require the following line to be added to the
|
||||
<filename>/boot/loader.conf</filename> file:</para>
|
||||
driver and require the following line to be added to
|
||||
<filename>/boot/loader.conf</filename>:</para>
|
||||
|
||||
<programlisting>if_ath_load="YES"</programlisting>
|
||||
|
||||
|
@ -879,7 +874,7 @@ route_net2="-net 192.168.1.0/24 192.168.1.1"</programlisting>
|
|||
<literal>wlan_scan_sta</literal> modules; the &man.wlan.4;
|
||||
module is automatically loaded with the wireless device
|
||||
driver, the remaining modules must be loaded at boot time
|
||||
via the <filename>/boot/loader.conf</filename> file:</para>
|
||||
in <filename>/boot/loader.conf</filename>:</para>
|
||||
|
||||
<programlisting>wlan_scan_ap_load="YES"
|
||||
wlan_scan_sta_load="YES"</programlisting>
|
||||
|
@ -1207,7 +1202,7 @@ ifconfig_wlan0="DHCP"</programlisting>
|
|||
<para>At this point, you are ready to bring up the
|
||||
wireless interface:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/netif start</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service netif start</userinput></screen>
|
||||
|
||||
<para>Once the interface is running, use
|
||||
<command>ifconfig</command> to see the status of the
|
||||
|
@ -1324,7 +1319,7 @@ ifconfig_wlan0="WPA DHCP"</programlisting>
|
|||
|
||||
<para>Then we can bring up the interface:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput><filename>/etc/rc.d/netif</filename> start</userinput>
|
||||
<screen>&prompt.root; <userinput><filename>service netif</filename> start</userinput>
|
||||
Starting wpa_supplicant.
|
||||
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 5
|
||||
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 6
|
||||
|
@ -1514,10 +1509,9 @@ wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
|
|||
<programlisting>wlans_ath0="wlan0"
|
||||
ifconfig_wlan0="WPA DHCP"</programlisting>
|
||||
|
||||
<para>The next step is to bring up the interface with the
|
||||
help of the <filename>rc.d</filename> facility:</para>
|
||||
<para>The next step is to bring up the interface:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/netif start</userinput>
|
||||
<screen>&prompt.root; <userinput>service netif start</userinput>
|
||||
Starting wpa_supplicant.
|
||||
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7
|
||||
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15
|
||||
|
@ -1608,7 +1602,7 @@ ifconfig_wlan0="WPA DHCP"</programlisting>
|
|||
|
||||
<para>The next step is to bring up the interface:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/netif start</userinput>
|
||||
<screen>&prompt.root; <userinput>service netif start</userinput>
|
||||
Starting wpa_supplicant.
|
||||
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7
|
||||
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15
|
||||
|
@ -1720,7 +1714,7 @@ ifconfig_wlan0="WPA DHCP"</programlisting>
|
|||
|
||||
<para>Then we can bring up the interface:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/netif start</userinput>
|
||||
<screen>&prompt.root; <userinput>service netif start</userinput>
|
||||
Starting wpa_supplicant.
|
||||
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7
|
||||
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15
|
||||
|
@ -2091,7 +2085,7 @@ wpa_pairwise=CCMP TKIP <co id="co-ap-wpapsk-pwise"/></programlisting>
|
|||
<para>The next step is to start
|
||||
<application>hostapd</application>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/hostapd forcestart</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service hostapd forcestart</userinput></screen>
|
||||
|
||||
<screen>&prompt.root; <userinput>ifconfig <replaceable>wlan0</replaceable></userinput>
|
||||
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2290
|
||||
|
@ -2331,13 +2325,13 @@ 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=294</screen>
|
||||
|
||||
<para>The <filename>/etc/rc.d/bluetooth</filename> script
|
||||
<para>&man.service.8;
|
||||
is used to start and stop the Bluetooth stack. It is a good
|
||||
idea to stop the stack before unplugging the device, but it is
|
||||
not (usually) fatal. When starting the stack, you will
|
||||
receive output similar to the following:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/bluetooth start ubt0</userinput>
|
||||
<screen>&prompt.root; <userinput>service bluetooth start ubt0</userinput>
|
||||
BD_ADDR: 00:02:72:00:d4:1a
|
||||
Features: 0xff 0xff 0xf 00 00 00 00 00
|
||||
<3-Slot> <5-Slot> <Encryption> <Slot offset>
|
||||
|
@ -2353,6 +2347,7 @@ Number of SCO packets: 8</screen>
|
|||
|
||||
<sect2>
|
||||
<title>Host Controller Interface (HCI)</title>
|
||||
|
||||
<indexterm><primary>HCI</primary></indexterm>
|
||||
|
||||
<para>Host Controller Interface (HCI) provides a command
|
||||
|
@ -2687,7 +2682,7 @@ Bluetooth Profile Descriptor List:
|
|||
<para>Then the <application>sdpd</application> daemon can be
|
||||
started with:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/sdpd start</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service sdpd start</userinput></screen>
|
||||
|
||||
<para>The local server application that wants to provide
|
||||
Bluetooth service to the remote clients will register service
|
||||
|
@ -2776,7 +2771,7 @@ Bluetooth Profile Descriptor List:
|
|||
<title>OBEX Object Push (OPUSH) Profile</title>
|
||||
|
||||
<indexterm><primary>OBEX</primary></indexterm>
|
||||
<para>OBEX is a widely used protocol for simple file transfers between
|
||||
<para>OBEX is a widely used protocol for simple file transfers
|
||||
between mobile devices. Its main use is in infrared
|
||||
communication, where it is used for generic file transfers
|
||||
between notebooks or PDAs, and for sending business cards or
|
||||
|
@ -2862,7 +2857,7 @@ rfcomm_sppd[94692]: Starting on /dev/ttyp6...</screen>
|
|||
There is a HCI option to disable role switching on the local
|
||||
side:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>hccontrol -n ubt0hci write_node_role_switch 0</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>hccontrol -n ubt0hci write_node_role_switch 0</userinput></screen>
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
|
@ -3480,7 +3475,7 @@ BEGEMOT-BRIDGE-MIB::begemotBridgeDefaultBridgeIf.0 s bridge2</screen>
|
|||
with the IP Address of
|
||||
<replaceable>10.0.0.3/24</replaceable>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>ifconfig <replaceable>fxp0</replaceable> up</userinput>
|
||||
<screen>&prompt.root; <userinput>ifconfig <replaceable>fxp0</replaceable> up</userinput>
|
||||
&prompt.root; <userinput>ifconfig <replaceable>fxp1</replaceable> up</userinput>
|
||||
&prompt.root; <userinput>ifconfig <literal>lagg<replaceable>0</replaceable></literal> create </userinput>
|
||||
&prompt.root; <userinput>ifconfig <literal>lagg<replaceable>0</replaceable></literal> up laggproto lacp laggport <replaceable>fxp0</replaceable> laggport <replaceable>fxp1</replaceable> <replaceable>10.0.0.3/24</replaceable></userinput></screen>
|
||||
|
@ -3546,7 +3541,7 @@ ifconfig_<literal>lagg<replaceable>0</replaceable></literal>="laggproto lacp lag
|
|||
and assign an IP Address of
|
||||
<replaceable>10.0.0.15/24</replaceable>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>ifconfig <replaceable>fxp0</replaceable> up</userinput>
|
||||
<screen>&prompt.root; <userinput>ifconfig <replaceable>fxp0</replaceable> up</userinput>
|
||||
&prompt.root; <userinput>ifconfig <replaceable>fxp1</replaceable> up</userinput>
|
||||
&prompt.root; <userinput>ifconfig <literal>lagg<replaceable>0</replaceable></literal> create</userinput>
|
||||
&prompt.root; <userinput>ifconfig <literal>lagg<replaceable>0</replaceable></literal> up laggproto failover laggport <replaceable>fxp0</replaceable> laggport <replaceable>fxp1</replaceable> <replaceable>10.0.0.15/24</replaceable></userinput></screen>
|
||||
|
@ -3555,7 +3550,7 @@ ifconfig_<literal>lagg<replaceable>0</replaceable></literal>="laggproto lacp lag
|
|||
differences will be the <acronym>MAC</acronym> address and
|
||||
the device names:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>ifconfig <literal>lagg<replaceable>0</replaceable></literal></userinput>
|
||||
<screen>&prompt.root; <userinput>ifconfig <literal>lagg<replaceable>0</replaceable></literal></userinput>
|
||||
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
|
||||
options=8<VLAN_MTU>
|
||||
ether 00:05:5d:71:8d:b8
|
||||
|
@ -3610,7 +3605,7 @@ ifconfig_<literal>lagg<replaceable>0</replaceable></literal>="laggproto failover
|
|||
obtain the <acronym>MAC</acronym> address from the wired
|
||||
interface:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>ifconfig <replaceable>bge0</replaceable></userinput>
|
||||
<screen>&prompt.root; <userinput>ifconfig <replaceable>bge0</replaceable></userinput>
|
||||
bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
|
||||
options=19b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4>
|
||||
ether 00:21:70:da:ae:37
|
||||
|
@ -3626,19 +3621,19 @@ bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
|
|||
Now, we change the underlying wireless interface,
|
||||
<replaceable>iwn0</replaceable>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>ifconfig <replaceable>iwn0</replaceable> ether <replaceable>00:21:70:da:ae:37</replaceable></userinput></screen>
|
||||
<screen>&prompt.root; <userinput>ifconfig <replaceable>iwn0</replaceable> ether <replaceable>00:21:70:da:ae:37</replaceable></userinput></screen>
|
||||
|
||||
<para>Bring up the wireless interface but don't set up any IP
|
||||
<para>Bring the wireless interface up, but do not set an IP
|
||||
address on it:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>ifconfig <replaceable>wlan0</replaceable> create wlandev <replaceable>iwn0</replaceable> ssid <replaceable>my_router</replaceable> up</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>ifconfig <replaceable>wlan0</replaceable> create wlandev <replaceable>iwn0</replaceable> ssid <replaceable>my_router</replaceable> up</userinput></screen>
|
||||
|
||||
<para>Bring the <replaceable>bge0</replaceable> interface up.
|
||||
Create the &man.lagg.4; interface with
|
||||
<replaceable>bge0</replaceable> as master, and failover to
|
||||
<replaceable>wlan0</replaceable> if necessary:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>ifconfig <replaceable>bge0</replaceable> up</userinput>
|
||||
<screen>&prompt.root; <userinput>ifconfig <replaceable>bge0</replaceable> up</userinput>
|
||||
&prompt.root; <userinput>ifconfig <literal>lagg<replaceable>0</replaceable></literal> create</userinput>
|
||||
&prompt.root; <userinput>ifconfig <literal>lagg<replaceable>0</replaceable></literal> up laggproto failover laggport <replaceable>bge0</replaceable> laggport <replaceable>wlan0</replaceable></userinput></screen>
|
||||
|
||||
|
@ -3646,7 +3641,7 @@ bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
|
|||
differences will be the <acronym>MAC</acronym> address and
|
||||
the device names:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>ifconfig <literal>lagg<replaceable>0</replaceable></literal></userinput>
|
||||
<screen>&prompt.root; <userinput>ifconfig <literal>lagg<replaceable>0</replaceable></literal></userinput>
|
||||
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
|
||||
options=8<VLAN_MTU>
|
||||
ether 00:21:70:da:ae:37
|
||||
|
@ -4169,7 +4164,7 @@ margaux:ha=0123456789ab:tc=.def100</programlisting>
|
|||
<filename>/etc/rc.conf</filename> file for this command
|
||||
to execute correctly:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/inetd restart</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service inetd restart</userinput></screen>
|
||||
</step>
|
||||
</procedure>
|
||||
|
||||
|
@ -4208,7 +4203,7 @@ margaux:ha=0123456789ab:tc=.def100</programlisting>
|
|||
<filename>/etc/rc.conf</filename> at the first step, you
|
||||
probably want to reboot instead.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/mountd restart</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service mountd restart</userinput></screen>
|
||||
</step>
|
||||
</procedure>
|
||||
</sect3>
|
||||
|
@ -4442,7 +4437,7 @@ cd /usr/src/etc; make distribution</programlisting>
|
|||
<step>
|
||||
<para>Restart the NFS server:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/nfsd restart</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service nfsd restart</userinput></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
|
@ -4460,7 +4455,7 @@ cd /usr/src/etc; make distribution</programlisting>
|
|||
<step>
|
||||
<para>Restart inetd:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/inetd restart</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service inetd restart</userinput></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
|
@ -4647,7 +4642,7 @@ myhost.example.com:/b/tftpboot/FreeBSD/install / nfs ro
|
|||
severs can be on separate machines.</para>
|
||||
|
||||
<figure>
|
||||
<title>PXE Booting process with NFS root mount</title>
|
||||
<title>PXE Booting Process with NFS Root Mount</title>
|
||||
|
||||
<mediaobjectco>
|
||||
<imageobjectco>
|
||||
|
@ -4865,7 +4860,7 @@ Received 264951 bytes in 0.1 seconds</screen>
|
|||
<para>The main advantage of using a TA to connect to an Internet
|
||||
Provider is that you can do Dynamic PPP. As IP address space
|
||||
becomes more and more scarce, most providers are not willing
|
||||
to provide you with a static IP anymore. Most stand-alone
|
||||
to provide you with a static IP any more. Most stand-alone
|
||||
routers are not able to accommodate dynamic IP
|
||||
allocation.</para>
|
||||
|
||||
|
@ -4921,9 +4916,10 @@ Received 264951 bytes in 0.1 seconds</screen>
|
|||
stand-alone router, and with a simple 386 FreeBSD box driving
|
||||
it, probably more flexible.</para>
|
||||
|
||||
<para>The choice of synchronous card/TA v.s. stand-alone router
|
||||
is largely a religious issue. There has been some discussion
|
||||
of this in the mailing lists. We suggest you search the
|
||||
<para>The choice of synchronous card/TA versus stand-alone
|
||||
router is largely a religious issue. There has been some
|
||||
discussion of this in the mailing lists. We suggest you
|
||||
search the
|
||||
<ulink url="&url.base;/search/index.html">archives</ulink> for
|
||||
the complete discussion.</para>
|
||||
</sect2>
|
||||
|
@ -5420,209 +5416,6 @@ redirect_port tcp 192.168.0.3:80 80</programlisting>
|
|||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="network-plip">
|
||||
<title>Parallel Line IP (PLIP)</title>
|
||||
|
||||
<indexterm><primary>PLIP</primary></indexterm>
|
||||
<indexterm>
|
||||
<primary>Parallel Line IP</primary>
|
||||
<see>PLIP</see>
|
||||
</indexterm>
|
||||
|
||||
<para>PLIP lets us run TCP/IP between parallel ports. It is
|
||||
useful on machines without network cards, or to install on
|
||||
laptops. In this section, we will discuss:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Creating a parallel (laplink) cable.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Connecting two computers with PLIP.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<sect2 id="network-create-parallel-cable">
|
||||
<title>Creating a Parallel Cable</title>
|
||||
|
||||
<para>You can purchase a parallel cable at most computer supply
|
||||
stores. If you cannot do that, or you just want to know how
|
||||
it is done, the following table shows how to make one out of a
|
||||
normal parallel printer cable.</para>
|
||||
|
||||
<table frame="none">
|
||||
<title>Wiring a Parallel Cable for Networking</title>
|
||||
|
||||
<tgroup cols="5">
|
||||
<thead>
|
||||
<row>
|
||||
<entry>A-name</entry>
|
||||
<entry>A-End</entry>
|
||||
<entry>B-End</entry>
|
||||
<entry>Descr.</entry>
|
||||
<entry>Post/Bit</entry>
|
||||
</row>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><literallayout>DATA0
|
||||
-ERROR</literallayout></entry>
|
||||
<entry><literallayout>2
|
||||
15</literallayout></entry>
|
||||
<entry><literallayout>15
|
||||
2</literallayout></entry>
|
||||
<entry>Data</entry>
|
||||
<entry><literallayout>0/0x01
|
||||
1/0x08</literallayout></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><literallayout>DATA1
|
||||
+SLCT</literallayout></entry>
|
||||
<entry><literallayout>3
|
||||
13</literallayout></entry>
|
||||
<entry><literallayout>13
|
||||
3</literallayout></entry>
|
||||
<entry>Data</entry>
|
||||
<entry><literallayout>0/0x02
|
||||
1/0x10</literallayout></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><literallayout>DATA2
|
||||
+PE</literallayout></entry>
|
||||
<entry><literallayout>4
|
||||
12</literallayout></entry>
|
||||
<entry><literallayout>12
|
||||
4</literallayout></entry>
|
||||
<entry>Data</entry>
|
||||
<entry><literallayout>0/0x04
|
||||
1/0x20</literallayout></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><literallayout>DATA3
|
||||
-ACK</literallayout></entry>
|
||||
<entry><literallayout>5
|
||||
10</literallayout></entry>
|
||||
<entry><literallayout>10
|
||||
5</literallayout></entry>
|
||||
<entry>Strobe</entry>
|
||||
<entry><literallayout>0/0x08
|
||||
1/0x40</literallayout></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><literallayout>DATA4
|
||||
BUSY</literallayout></entry>
|
||||
<entry><literallayout>6
|
||||
11</literallayout></entry>
|
||||
<entry><literallayout>11
|
||||
6</literallayout></entry>
|
||||
<entry>Data</entry>
|
||||
<entry><literallayout>0/0x10
|
||||
1/0x80</literallayout></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>GND</entry>
|
||||
<entry>18-25</entry>
|
||||
<entry>18-25</entry>
|
||||
<entry>GND</entry>
|
||||
<entry>-</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="network-plip-setup">
|
||||
<title>Setting Up PLIP</title>
|
||||
|
||||
<para>First, you have to get a laplink cable. Then, confirm
|
||||
that both computers have a kernel with &man.lpt.4; driver
|
||||
support:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>grep lp /var/run/dmesg.boot</userinput>
|
||||
lpt0: <Printer> on ppbus0
|
||||
lpt0: Interrupt-driven port</screen>
|
||||
|
||||
<para>The parallel port must be an interrupt driven port, you
|
||||
should have lines similar to the following in your in the
|
||||
<filename>/boot/device.hints</filename> file:</para>
|
||||
|
||||
<programlisting>hint.ppc.0.at="isa"
|
||||
hint.ppc.0.irq="7"</programlisting>
|
||||
|
||||
<para>Then check if the kernel configuration file has a
|
||||
<literal>device plip</literal> line or if the
|
||||
<filename>plip.ko</filename> kernel module is loaded. In both
|
||||
cases the parallel networking interface should appear when you
|
||||
use the &man.ifconfig.8; command to display it:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>ifconfig plip0</userinput>
|
||||
plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500</screen>
|
||||
|
||||
<para>Plug the laplink cable into the parallel interface on
|
||||
both computers.</para>
|
||||
|
||||
<para>Configure the network interface parameters on both sites
|
||||
as <username>root</username>. For example, if you want to
|
||||
connect the host <hostid>host1</hostid> with another machine
|
||||
<hostid>host2</hostid>:</para>
|
||||
|
||||
<programlisting> host1 <-----> host2
|
||||
IP Address 10.0.0.1 10.0.0.2</programlisting>
|
||||
|
||||
<para>Configure the interface on <hostid>host1</hostid> by
|
||||
doing:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>ifconfig plip0 10.0.0.1 10.0.0.2</userinput></screen>
|
||||
|
||||
<para>Configure the interface on <hostid>host2</hostid> by
|
||||
doing:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>ifconfig plip0 10.0.0.2 10.0.0.1</userinput></screen>
|
||||
|
||||
<para>You now should have a working connection. Please read the
|
||||
manual pages &man.lp.4; and &man.lpt.4; for more
|
||||
details.</para>
|
||||
|
||||
<para>You should also add both hosts to
|
||||
<filename>/etc/hosts</filename>:</para>
|
||||
|
||||
<programlisting>127.0.0.1 localhost.my.domain localhost
|
||||
10.0.0.1 host1.my.domain host1
|
||||
10.0.0.2 host2.my.domain host2</programlisting>
|
||||
|
||||
<para>To confirm the connection works, go to each host and ping
|
||||
the other. For example, on <hostid>host1</hostid>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>ifconfig plip0</userinput>
|
||||
plip0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500
|
||||
inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000
|
||||
&prompt.root; <userinput>netstat -r</userinput>
|
||||
Routing tables
|
||||
|
||||
Internet:
|
||||
Destination Gateway Flags Refs Use Netif Expire
|
||||
host2 host1 UH 0 0 plip0
|
||||
&prompt.root; <userinput>ping -c 4 host2</userinput>
|
||||
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 ms</screen>
|
||||
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="network-ipv6">
|
||||
<sect1info>
|
||||
<authorgroup>
|
||||
|
@ -5665,7 +5458,7 @@ round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms</screen>
|
|||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Running out of addresses. Today this is not so much of
|
||||
a concern anymore since RFC1918 private address space
|
||||
a concern any more, since RFC1918 private address space
|
||||
(<hostid role="ipaddr">10.0.0.0/8</hostid>,
|
||||
<hostid role="ipaddr">172.16.0.0/12</hostid>, and
|
||||
<hostid role="ipaddr">192.168.0.0/16</hostid>) and Network
|
||||
|
@ -5871,7 +5664,7 @@ round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms</screen>
|
|||
<para>Often an address will have long substrings of all zeros
|
||||
therefore one such substring per address can be abbreviated by
|
||||
<quote>::</quote>. Also up to three leading <quote>0</quote>s
|
||||
per hexquad can be omitted. For example
|
||||
per hexquad can be omitted. For example
|
||||
<hostid role="ip6addr">fe80::1</hostid> corresponds to the
|
||||
canonical form <hostid
|
||||
role="ip6addr">fe80:0000:0000:0000:0000:0000:0000:0001</hostid>.</para>
|
||||
|
@ -5984,7 +5777,8 @@ round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms</screen>
|
|||
<para>To statically assign an IP address such as <hostid
|
||||
role="ip6addr">2001:471:1f11:251:290:27ff:fee0:2093</hostid>,
|
||||
to your <devicename>fxp0</devicename> interface, add the
|
||||
following for &os; 9.<replaceable>x</replaceable>:</para>
|
||||
following for
|
||||
&os; 9.<replaceable>x</replaceable>:</para>
|
||||
|
||||
<programlisting>ifconfig_fxp0_ipv6="inet6 2001:471:1f11:251:290:27ff:fee0:2093 prefixlen <replaceable>64</replaceable>"</programlisting>
|
||||
|
||||
|
@ -6037,6 +5831,7 @@ round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms</screen>
|
|||
earlier, add:</para>
|
||||
|
||||
<programlisting>ipv6_ifconfig_gif0="<replaceable>MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR</replaceable>"</programlisting>
|
||||
|
||||
<para>Then all you have to do is set the default route for
|
||||
IPv6. This is the other side of the IPv6 tunnel:</para>
|
||||
|
||||
|
@ -6378,7 +6173,7 @@ route_hostD="192.168.173.4 hatm0 0 102 llc/snap ubr"</programlisting>
|
|||
status of preemption suppression. Preemption can be
|
||||
suppressed if link on an interface is down. A value of
|
||||
<literal>0</literal>, means that preemption is not
|
||||
suppressed. Every problem increments this
|
||||
suppressed. Every problem increments this
|
||||
<acronym>OID</acronym>.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
|
|
|
@ -44,18 +44,19 @@ requirements. -->
|
|||
changes, and file and network access. These log records can be
|
||||
invaluable for live system monitoring, intrusion detection, and
|
||||
postmortem analysis. &os; implements &sun;'s published
|
||||
<acronym>BSM</acronym> API and file format, and is interoperable with
|
||||
both &sun;'s &solaris; and &apple;'s &macos; X audit implementations.</para>
|
||||
<acronym>BSM</acronym> API and file format, and is interoperable
|
||||
with both &sun;'s &solaris; and &apple;'s &macos; X audit
|
||||
implementations.</para>
|
||||
|
||||
<para>This chapter focuses on the installation and configuration of
|
||||
Event Auditing. It explains audit policies, and provides an example
|
||||
audit configuration.</para>
|
||||
<para>This chapter focuses on the installation and configuration
|
||||
of Event Auditing. It explains audit policies, and provides an
|
||||
example audit configuration.</para>
|
||||
|
||||
<para>After reading this chapter, you will know:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>What Event Auditing is and how it works.</para>
|
||||
<para>What Event Auditing is and how it works.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -64,8 +65,8 @@ requirements. -->
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>How to review the audit trail using the audit reduction and
|
||||
review tools.</para>
|
||||
<para>How to review the audit trail using the audit reduction
|
||||
and review tools.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
|
@ -90,59 +91,60 @@ requirements. -->
|
|||
</itemizedlist>
|
||||
|
||||
<warning>
|
||||
<para>The audit facility has some known limitations which include
|
||||
that not all security-relevant system events are currently auditable,
|
||||
and that some login mechanisms, such as X11-based display managers
|
||||
and third party daemons, do not properly configure auditing for user
|
||||
login sessions.</para>
|
||||
<para>The audit facility has some known limitations which
|
||||
include that not all security-relevant system events are
|
||||
currently auditable, and that some login mechanisms, such as
|
||||
X11-based display managers and third party daemons, do not
|
||||
properly configure auditing for user login sessions.</para>
|
||||
|
||||
<para>The security event auditing facility is able to generate very
|
||||
detailed logs of system activity: on a busy system, trail file
|
||||
data can be very large when configured for high detail, exceeding
|
||||
gigabytes a week in some configurations. Administrators should take
|
||||
into account disk space requirements associated with high volume
|
||||
audit configurations. For example, it may be desirable to dedicate
|
||||
a file system to the <filename>/var/audit</filename> tree so that
|
||||
other file systems are not affected if the audit file system becomes
|
||||
<para>The security event auditing facility is able to generate
|
||||
very detailed logs of system activity: on a busy system, trail
|
||||
file data can be very large when configured for high detail,
|
||||
exceeding gigabytes a week in some configurations.
|
||||
Administrators should take into account disk space
|
||||
requirements associated with high volume audit configurations.
|
||||
For example, it may be desirable to dedicate a file system to
|
||||
the <filename>/var/audit</filename> tree so that other file
|
||||
systems are not affected if the audit file system becomes
|
||||
full.</para>
|
||||
</warning>
|
||||
|
||||
</sect1>
|
||||
|
||||
<sect1 id="audit-inline-glossary">
|
||||
<title>Key Terms in This Chapter</title>
|
||||
|
||||
<para>Before reading this chapter, a few key audit-related terms must be
|
||||
explained:</para>
|
||||
<para>Before reading this chapter, a few key audit-related terms
|
||||
must be explained:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis>event</emphasis>: An auditable event is any event
|
||||
that can be logged using the audit subsystem.
|
||||
<para><emphasis>event</emphasis>: An auditable event is any
|
||||
event that can be logged using the audit subsystem.
|
||||
Examples of security-relevant events include the creation of
|
||||
a file, the building of a network connection, or a user logging in.
|
||||
Events are either <quote>attributable</quote>,
|
||||
a file, the building of a network connection, or a user
|
||||
logging in. Events are either <quote>attributable</quote>,
|
||||
meaning that they can be traced to an authenticated user, or
|
||||
<quote>non-attributable</quote> if they cannot be.
|
||||
Examples of non-attributable events are any events that occur
|
||||
before authentication in the login process, such as bad password
|
||||
<quote>non-attributable</quote> if they cannot be. Examples
|
||||
of non-attributable events are any events that occur before
|
||||
authentication in the login process, such as bad password
|
||||
attempts.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>class</emphasis>: Event classes are named sets of
|
||||
related events, and are used in selection expressions. Commonly
|
||||
used classes of events include <quote>file creation</quote> (fc),
|
||||
<quote>exec</quote> (ex) and <quote>login_logout</quote>
|
||||
(lo).</para>
|
||||
<para><emphasis>class</emphasis>: Event classes are named sets
|
||||
of related events, and are used in selection expressions.
|
||||
Commonly used classes of events include
|
||||
<quote>file creation</quote> (fc), <quote>exec</quote> (ex)
|
||||
and <quote>login_logout</quote> (lo).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>record</emphasis>: A record is an audit log entry
|
||||
describing a security event. Records contain a record event type,
|
||||
information on the subject (user) performing the action,
|
||||
date and time information, information on any objects or
|
||||
arguments, and a success or failure condition.</para>
|
||||
<para><emphasis>record</emphasis>: A record is an audit log
|
||||
entry describing a security event. Records contain a record
|
||||
event type, information on the subject (user) performing the
|
||||
action, date and time information, information on any
|
||||
objects or arguments, and a success or failure
|
||||
condition.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -156,30 +158,31 @@ requirements. -->
|
|||
|
||||
<listitem>
|
||||
<para><emphasis>selection expression</emphasis>: A selection
|
||||
expression is a string containing a list of prefixes and audit
|
||||
event class names used to match events.</para>
|
||||
expression is a string containing a list of prefixes and
|
||||
audit event class names used to match events.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>preselection</emphasis>: The process by which the
|
||||
system identifies which events are of interest to the administrator
|
||||
in order to avoid generating audit records describing events that
|
||||
are not of interest. The preselection configuration
|
||||
uses a series of selection expressions to identify which classes
|
||||
of events to audit for which users, as well as global settings
|
||||
that apply to both authenticated and unauthenticated
|
||||
processes.</para>
|
||||
<para><emphasis>preselection</emphasis>: The process by which
|
||||
the system identifies which events are of interest to the
|
||||
administrator in order to avoid generating audit records
|
||||
describing events that are not of interest. The
|
||||
preselection configuration uses a series of selection
|
||||
expressions to identify which classes of events to audit for
|
||||
which users, as well as global settings that apply to both
|
||||
authenticated and unauthenticated processes.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>reduction</emphasis>: The process by which records
|
||||
from existing audit trails are selected for preservation, printing,
|
||||
or analysis. Likewise, the process by which undesired audit
|
||||
records are removed from the audit trail. Using reduction,
|
||||
administrators can implement policies for the preservation of audit
|
||||
data. For example, detailed audit trails might be kept for one
|
||||
month, but after that, trails might be reduced in order to preserve
|
||||
only login information for archival purposes.</para>
|
||||
<para><emphasis>reduction</emphasis>: The process by which
|
||||
records from existing audit trails are selected for
|
||||
preservation, printing, or analysis. Likewise, the process
|
||||
by which undesired audit records are removed from the audit
|
||||
trail. Using reduction, administrators can implement
|
||||
policies for the preservation of audit data. For example,
|
||||
detailed audit trails might be kept for one month, but after
|
||||
that, trails might be reduced in order to preserve only
|
||||
login information for archival purposes.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect1>
|
||||
|
@ -187,11 +190,11 @@ requirements. -->
|
|||
<sect1 id="audit-install">
|
||||
<title>Installing Audit Support</title>
|
||||
|
||||
<para>User space support for Event Auditing is installed as part of the
|
||||
base &os; operating system. Kernel support for
|
||||
Event Auditing is compiled in by default, but support for this
|
||||
feature must be explicitly compiled into the custom kernel by adding
|
||||
the following line to the kernel configuration file:</para>
|
||||
<para>User space support for Event Auditing is installed as part
|
||||
of the base &os; operating system. Kernel support for Event
|
||||
Auditing is compiled in by default, but support for this feature
|
||||
must be explicitly compiled into the custom kernel by adding the
|
||||
following line to the kernel configuration file:</para>
|
||||
|
||||
<programlisting>options AUDIT</programlisting>
|
||||
|
||||
|
@ -199,24 +202,25 @@ requirements. -->
|
|||
the kernel via the normal process explained in
|
||||
<xref linkend="kernelconfig"/>.</para>
|
||||
|
||||
<para>Once an audit-enabled kernel is built, installed, and the system
|
||||
has been rebooted, enable the audit daemon by adding the following line
|
||||
to &man.rc.conf.5;:</para>
|
||||
<para>Once an audit-enabled kernel is built, installed, and the
|
||||
system has been rebooted, enable the audit daemon by adding the
|
||||
following line to &man.rc.conf.5;:</para>
|
||||
|
||||
<programlisting>auditd_enable="YES"</programlisting>
|
||||
|
||||
<para>Audit support must then be started by a reboot, or by manually
|
||||
starting the audit daemon:</para>
|
||||
<para>Audit support must then be started by a reboot, or by
|
||||
manually starting the audit daemon:</para>
|
||||
|
||||
<programlisting>/etc/rc.d/auditd start</programlisting>
|
||||
<programlisting>service auditd start</programlisting>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="audit-config">
|
||||
<title>Audit Configuration</title>
|
||||
|
||||
<para>All configuration files for security audit are found in
|
||||
<filename class="directory">/etc/security</filename>. The following
|
||||
files must be present before the audit daemon is started:</para>
|
||||
<filename class="directory">/etc/security</filename>. The
|
||||
following files must be present before the audit daemon is
|
||||
started:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
|
@ -233,8 +237,8 @@ requirements. -->
|
|||
|
||||
<listitem>
|
||||
<para><filename>audit_event</filename> - Textual names and
|
||||
descriptions of system audit events, as well as a list of which
|
||||
classes each event is in.</para>
|
||||
descriptions of system audit events, as well as a list of
|
||||
which classes each event is in.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -244,10 +248,11 @@ requirements. -->
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><filename>audit_warn</filename> - A customizable shell script
|
||||
used by <application>auditd</application> to generate warning messages in exceptional
|
||||
situations, such as when space for audit records is running low or
|
||||
when the audit trail file has been rotated.</para>
|
||||
<para><filename>audit_warn</filename> - A customizable shell
|
||||
script used by <application>auditd</application> to generate
|
||||
warning messages in exceptional situations, such as when
|
||||
space for audit records is running low or when the audit
|
||||
trail file has been rotated.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
|
@ -260,70 +265,76 @@ requirements. -->
|
|||
<sect2>
|
||||
<title>Event Selection Expressions</title>
|
||||
|
||||
<para>Selection expressions are used in a number of places in the
|
||||
audit configuration to determine which events should be audited.
|
||||
Expressions contain a list of event classes to match, each with
|
||||
a prefix indicating whether matching records should be accepted
|
||||
or ignored, and optionally to indicate if the entry is intended
|
||||
to match successful or failed operations. Selection expressions
|
||||
are evaluated from left to right, and two expressions are
|
||||
combined by appending one onto the other.</para>
|
||||
<para>Selection expressions are used in a number of places in
|
||||
the audit configuration to determine which events should be
|
||||
audited. Expressions contain a list of event classes to match,
|
||||
each with a prefix indicating whether matching records should
|
||||
be accepted or ignored, and optionally to indicate if the
|
||||
entry is intended to match successful or failed operations.
|
||||
Selection expressions are evaluated from left to right, and
|
||||
two expressions are combined by appending one onto the
|
||||
other.</para>
|
||||
|
||||
<para>The following list contains the default audit event classes
|
||||
present in <filename>audit_class</filename>:</para>
|
||||
<para>The following list contains the default audit event
|
||||
classes present in <filename>audit_class</filename>:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><literal>all</literal> - <emphasis>all</emphasis> - Match all
|
||||
event classes.</para>
|
||||
<para><literal>all</literal> - <emphasis>all</emphasis> -
|
||||
Match all event classes.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>ad</literal> - <emphasis>administrative</emphasis>
|
||||
- Administrative actions performed on the system as a
|
||||
whole.</para>
|
||||
<para><literal>ad</literal> -
|
||||
<emphasis>administrative</emphasis> - Administrative
|
||||
actions performed on the system as a whole.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>ap</literal> - <emphasis>application</emphasis> -
|
||||
Application defined action.</para>
|
||||
<para><literal>ap</literal> -
|
||||
<emphasis>application</emphasis> - Application defined
|
||||
action.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>cl</literal> - <emphasis>file close</emphasis> -
|
||||
Audit calls to the <function>close</function> system
|
||||
call.</para>
|
||||
<para><literal>cl</literal> -
|
||||
<emphasis>file close</emphasis> - Audit calls to the
|
||||
<function>close</function> system call.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>ex</literal> - <emphasis>exec</emphasis> - Audit
|
||||
program execution. Auditing of command line arguments and
|
||||
environmental variables is controlled via &man.audit.control.5;
|
||||
using the <literal>argv</literal> and <literal>envv</literal>
|
||||
parameters to the <literal>policy</literal> setting.</para>
|
||||
<para><literal>ex</literal> - <emphasis>exec</emphasis> -
|
||||
Audit program execution. Auditing of command line
|
||||
arguments and environmental variables is controlled via
|
||||
&man.audit.control.5; using the <literal>argv</literal>
|
||||
and <literal>envv</literal> parameters to the
|
||||
<literal>policy</literal> setting.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>fa</literal> - <emphasis>file attribute access</emphasis>
|
||||
- Audit the access of object attributes such as
|
||||
&man.stat.1;, &man.pathconf.2; and similar events.</para>
|
||||
<para><literal>fa</literal> -
|
||||
<emphasis>file attribute access</emphasis> - Audit the
|
||||
access of object attributes such as &man.stat.1;,
|
||||
&man.pathconf.2; and similar events.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>fc</literal> - <emphasis>file create</emphasis>
|
||||
- Audit events where a file is created as a result.</para>
|
||||
<para><literal>fc</literal> -
|
||||
<emphasis>file create</emphasis> - Audit events where a
|
||||
file is created as a result.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>fd</literal> - <emphasis>file delete</emphasis>
|
||||
- Audit events where file deletion occurs.</para>
|
||||
<para><literal>fd</literal> -
|
||||
<emphasis>file delete</emphasis> - Audit events where file
|
||||
deletion occurs.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>fm</literal> - <emphasis>file attribute modify</emphasis>
|
||||
- Audit events where file attribute modification occurs,
|
||||
such as &man.chown.8;, &man.chflags.1;, &man.flock.2;,
|
||||
etc.</para>
|
||||
<para><literal>fm</literal> -
|
||||
<emphasis>file attribute modify</emphasis> - Audit events
|
||||
where file attribute modification occurs, such as
|
||||
&man.chown.8;, &man.chflags.1;, &man.flock.2;, etc.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -333,36 +344,40 @@ requirements. -->
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>fw</literal> - <emphasis>file write</emphasis> -
|
||||
Audit events in which data is written, files are written
|
||||
or modified, etc.</para>
|
||||
<para><literal>fw</literal> -
|
||||
<emphasis>file write</emphasis> - Audit events in which
|
||||
data is written, files are written or modified,
|
||||
etc.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>io</literal> - <emphasis>ioctl</emphasis> - Audit
|
||||
use of the &man.ioctl.2; system call.</para>
|
||||
<para><literal>io</literal> - <emphasis>ioctl</emphasis> -
|
||||
Audit use of the &man.ioctl.2; system call.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>ip</literal> - <emphasis>ipc</emphasis> - Audit
|
||||
various forms of Inter-Process Communication, including POSIX
|
||||
pipes and System V <acronym>IPC</acronym> operations.</para>
|
||||
<para><literal>ip</literal> - <emphasis>ipc</emphasis> -
|
||||
Audit various forms of Inter-Process Communication,
|
||||
including POSIX pipes and System V <acronym>IPC</acronym>
|
||||
operations.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>lo</literal> - <emphasis>login_logout</emphasis> -
|
||||
Audit &man.login.1; and &man.logout.1; events occurring
|
||||
on the system.</para>
|
||||
<para><literal>lo</literal> -
|
||||
<emphasis>login_logout</emphasis> - Audit &man.login.1;
|
||||
and &man.logout.1; events occurring on the system.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>na</literal> - <emphasis>non attributable</emphasis> -
|
||||
Audit non-attributable events.</para>
|
||||
<para><literal>na</literal> -
|
||||
<emphasis>non attributable</emphasis> - Audit
|
||||
non-attributable events.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>no</literal> - <emphasis>invalid class</emphasis> -
|
||||
Match no audit events.</para>
|
||||
<para><literal>no</literal> -
|
||||
<emphasis>invalid class</emphasis> - Match no audit
|
||||
events.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -384,19 +399,19 @@ requirements. -->
|
|||
|
||||
</itemizedlist>
|
||||
|
||||
<para>These audit event classes may be customized by modifying the
|
||||
<filename>audit_class</filename> and
|
||||
<para>These audit event classes may be customized by modifying
|
||||
the <filename>audit_class</filename> and
|
||||
<filename>audit_event</filename> configuration files.</para>
|
||||
|
||||
<para>Each audit class in the list is combined with a prefix
|
||||
indicating whether successful/failed operations are matched, and
|
||||
whether the entry is adding or removing matching for the class
|
||||
and type.</para>
|
||||
indicating whether successful/failed operations are matched,
|
||||
and whether the entry is adding or removing matching for the
|
||||
class and type.</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>(none) Audit both successful and failed instances of the
|
||||
event.</para>
|
||||
<para>(none) Audit both successful and failed instances of
|
||||
the event.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -410,45 +425,44 @@ requirements. -->
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>^</literal> Audit neither successful nor failed
|
||||
events in this class.</para>
|
||||
<para><literal>^</literal> Audit neither successful nor
|
||||
failed events in this class.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>^+</literal> Do not audit successful events in this
|
||||
class.</para>
|
||||
<para><literal>^+</literal> Do not audit successful events
|
||||
in this class.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>^-</literal> Do not audit failed events in this
|
||||
class.</para>
|
||||
<para><literal>^-</literal> Do not audit failed events in
|
||||
this class.</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
<para>The following example selection string selects both successful
|
||||
and failed login/logout events, but only successful execution
|
||||
events:</para>
|
||||
<para>The following example selection string selects both
|
||||
successful and failed login/logout events, but only successful
|
||||
execution events:</para>
|
||||
|
||||
<programlisting>lo,+ex</programlisting>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Configuration Files</title>
|
||||
|
||||
<para>In most cases, administrators will need to modify only two files
|
||||
when configuring the audit system: <filename>audit_control</filename>
|
||||
and <filename>audit_user</filename>. The first controls system-wide
|
||||
audit properties and policies; the second may be used to fine-tune
|
||||
auditing by user.</para>
|
||||
<para>In most cases, administrators will need to modify only two
|
||||
files when configuring the audit system:
|
||||
<filename>audit_control</filename> and
|
||||
<filename>audit_user</filename>. The first controls
|
||||
system-wide audit properties and policies; the second may be
|
||||
used to fine-tune auditing by user.</para>
|
||||
|
||||
<sect3 id="audit-auditcontrol">
|
||||
<title>The <filename>audit_control</filename> File</title>
|
||||
<title>The <filename>audit_control</filename> File</title>
|
||||
|
||||
<para>The <filename>audit_control</filename> file specifies a number
|
||||
of defaults for the audit subsystem. Viewing the contents of this
|
||||
file, we see the following:</para>
|
||||
<para>The <filename>audit_control</filename> file specifies a
|
||||
number of defaults for the audit subsystem. Viewing the
|
||||
contents of this file, we see the following:</para>
|
||||
|
||||
<programlisting>dir:/var/audit
|
||||
flags:lo
|
||||
|
@ -457,71 +471,73 @@ naflags:lo
|
|||
policy:cnt
|
||||
filesz:0</programlisting>
|
||||
|
||||
<para>The <option>dir</option> option is used to set one or more
|
||||
directories where audit logs will be stored. If more than one
|
||||
directory entry appears, they will be used in order as they fill.
|
||||
It is common to configure audit so that audit logs are stored on
|
||||
a dedicated file system, in order to prevent interference between
|
||||
the audit subsystem and other subsystems if the file system fills.
|
||||
</para>
|
||||
<para>The <option>dir</option> option is used to set one or
|
||||
more directories where audit logs will be stored. If more
|
||||
than one directory entry appears, they will be used in order
|
||||
as they fill. It is common to configure audit so that audit
|
||||
logs are stored on a dedicated file system, in order to
|
||||
prevent interference between the audit subsystem and other
|
||||
subsystems if the file system fills.</para>
|
||||
|
||||
<para>The <option>flags</option> field sets the system-wide default
|
||||
preselection mask for attributable events. In the example above,
|
||||
successful and failed login and logout events are audited for all
|
||||
users.</para>
|
||||
<para>The <option>flags</option> field sets the system-wide
|
||||
default preselection mask for attributable events. In the
|
||||
example above, successful and failed login and logout events
|
||||
are audited for all users.</para>
|
||||
|
||||
<para>The <option>minfree</option> option defines the minimum
|
||||
percentage of free space for the file system where the audit trail
|
||||
is stored. When this threshold is exceeded, a warning will be
|
||||
generated. The above example sets the minimum free space to
|
||||
twenty percent.</para>
|
||||
percentage of free space for the file system where the audit
|
||||
trail is stored. When this threshold is exceeded, a warning
|
||||
will be generated. The above example sets the minimum free
|
||||
space to twenty percent.</para>
|
||||
|
||||
<para>The <option>naflags</option> option specifies audit classes to
|
||||
be audited for non-attributed events, such as the login process
|
||||
and system daemons.</para>
|
||||
<para>The <option>naflags</option> option specifies audit
|
||||
classes to be audited for non-attributed events, such as the
|
||||
login process and system daemons.</para>
|
||||
|
||||
<para>The <option>policy</option> option specifies a comma-separated
|
||||
list of policy flags controlling various aspects of audit
|
||||
behavior. The default <literal>cnt</literal> flag indicates that
|
||||
the system should continue running despite an auditing failure
|
||||
(this flag is highly recommended). Another commonly used flag is
|
||||
<literal>argv</literal>, which causes command line arguments to
|
||||
the &man.execve.2; system call to be audited as part of command
|
||||
execution.</para>
|
||||
<para>The <option>policy</option> option specifies a
|
||||
comma-separated list of policy flags controlling various
|
||||
aspects of audit behavior. The default
|
||||
<literal>cnt</literal> flag indicates that the system should
|
||||
continue running despite an auditing failure (this flag is
|
||||
highly recommended). Another commonly used flag is
|
||||
<literal>argv</literal>, which causes command line arguments
|
||||
to the &man.execve.2; system call to be audited as part of
|
||||
command execution.</para>
|
||||
|
||||
<para>The <option>filesz</option> option specifies the maximum size
|
||||
in bytes to allow an audit trail file to grow to before
|
||||
<para>The <option>filesz</option> option specifies the maximum
|
||||
size in bytes to allow an audit trail file to grow to before
|
||||
automatically terminating and rotating the trail file. The
|
||||
default, 0, disables automatic log rotation. If the requested
|
||||
file size is non-zero and below the minimum 512k, it will be
|
||||
ignored and a log message will be generated.</para>
|
||||
default, 0, disables automatic log rotation. If the
|
||||
requested file size is non-zero and below the minimum 512k,
|
||||
it will be ignored and a log message will be
|
||||
generated.</para>
|
||||
</sect3>
|
||||
|
||||
<sect3 id="audit-audituser">
|
||||
<title>The <filename>audit_user</filename> File</title>
|
||||
|
||||
<para>The <filename>audit_user</filename> file permits the
|
||||
administrator to specify further audit requirements for specific
|
||||
users.
|
||||
Each line configures auditing for a user via two fields: the
|
||||
first is the <literal>alwaysaudit</literal> field, which specifies
|
||||
a set of events that should always be audited for the user, and
|
||||
administrator to specify further audit requirements for
|
||||
specific users. Each line configures auditing for a user
|
||||
via two fields: the first is the
|
||||
<literal>alwaysaudit</literal> field, which specifies a set
|
||||
of events that should always be audited for the user, and
|
||||
the second is the <literal>neveraudit</literal> field, which
|
||||
specifies a set of events that should never be audited for the
|
||||
user.</para>
|
||||
specifies a set of events that should never be audited for
|
||||
the user.</para>
|
||||
|
||||
<para>The following example <filename>audit_user</filename> file
|
||||
audits login/logout events and successful command execution for
|
||||
the <username>root</username> user, and audits file creation and successful command
|
||||
execution for the <username>www</username> user.
|
||||
If used with the example <filename>audit_control</filename> file
|
||||
above, the <literal>lo</literal> entry for <username>root</username>
|
||||
is redundant, and login/logout events will also be audited for the
|
||||
<username>www</username> user.</para>
|
||||
<para>The following example <filename>audit_user</filename>
|
||||
file audits login/logout events and successful command
|
||||
execution for the <username>root</username> user, and audits
|
||||
file creation and successful command execution for the
|
||||
<username>www</username> user. If used with the example
|
||||
<filename>audit_control</filename> file above, the
|
||||
<literal>lo</literal> entry for <username>root</username> is
|
||||
redundant, and login/logout events will also be audited for
|
||||
the <username>www</username> user.</para>
|
||||
|
||||
<programlisting>root:lo,+ex:no
|
||||
www:fc,+ex:no</programlisting>
|
||||
|
||||
</sect3>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
@ -532,29 +548,32 @@ www:fc,+ex:no</programlisting>
|
|||
<sect2>
|
||||
<title>Viewing Audit Trails</title>
|
||||
|
||||
<para>Audit trails are stored in the BSM binary format, so tools must
|
||||
be used to modify or convert to text. The &man.praudit.1;
|
||||
command converts trail files to a simple text format; the
|
||||
&man.auditreduce.1; command may be used to reduce the
|
||||
audit trail file for analysis, archiving, or printing purposes.
|
||||
<command>auditreduce</command> supports a variety of selection
|
||||
parameters, including event type, event class, user, date or time of
|
||||
the event, and the file path or object acted on.</para>
|
||||
<para>Audit trails are stored in the BSM binary format, so tools
|
||||
must be used to modify or convert to text. The
|
||||
&man.praudit.1; command converts trail files to a simple text
|
||||
format; the &man.auditreduce.1; command may be used to reduce
|
||||
the audit trail file for analysis, archiving, or printing
|
||||
purposes. <command>auditreduce</command> supports a variety
|
||||
of selection parameters, including event type, event class,
|
||||
user, date or time of the event, and the file path or object
|
||||
acted on.</para>
|
||||
|
||||
<para>For example, the <command>praudit</command> utility will dump
|
||||
the entire contents of a specified audit log in plain text:</para>
|
||||
<para>For example, the <command>praudit</command> utility will
|
||||
dump the entire contents of a specified audit log in plain
|
||||
text:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>praudit /var/audit/AUDITFILE</userinput></screen>
|
||||
|
||||
<para>Where <filename><replaceable>AUDITFILE</replaceable></filename> is the audit log to
|
||||
dump.</para>
|
||||
<para>Where
|
||||
<filename><replaceable>AUDITFILE</replaceable></filename> is
|
||||
the audit log to dump.</para>
|
||||
|
||||
<para>Audit trails consist of a series of audit records made up of
|
||||
tokens, which <command>praudit</command> prints sequentially one per
|
||||
line. Each token is of a specific type, such as
|
||||
<literal>header</literal> holding an audit record header, or
|
||||
<literal>path</literal> holding a file path from a name
|
||||
lookup. The following is an example of an
|
||||
<para>Audit trails consist of a series of audit records made up
|
||||
of tokens, which <command>praudit</command> prints
|
||||
sequentially one per line. Each token is of a specific type,
|
||||
such as <literal>header</literal> holding an audit record
|
||||
header, or <literal>path</literal> holding a file path from a
|
||||
name lookup. The following is an example of an
|
||||
<literal>execve</literal> event:</para>
|
||||
|
||||
<programlisting>header,133,10,execve(2),0,Mon Sep 25 15:58:03 2006, + 384 msec
|
||||
|
@ -565,112 +584,124 @@ subject,robert,root,wheel,root,wheel,38439,38032,42086,128.232.9.100
|
|||
return,success,0
|
||||
trailer,133</programlisting>
|
||||
|
||||
<para>This audit represents a successful <literal>execve</literal>
|
||||
call, in which the command <literal>finger doug</literal> has been run. The
|
||||
arguments token contains both the processed command line presented
|
||||
by the shell to the kernel. The <literal>path</literal> token holds the path to the
|
||||
executable as looked up by the kernel. The <literal>attribute</literal> token
|
||||
describes the binary, and in particular, includes the file mode
|
||||
which can be used to determine if the application was setuid.
|
||||
The <literal>subject</literal> token describes the subject process, and stores in
|
||||
sequence the audit user ID, effective user ID and group ID, real
|
||||
user ID and group ID, process ID, session ID, port ID, and login
|
||||
address. Notice that the audit user ID and real user ID differ:
|
||||
the user <username>robert</username> has switched to the
|
||||
<username>root</username> account before running this command, but
|
||||
it is audited using the original authenticated user. Finally, the
|
||||
<literal>return</literal> token indicates the successful execution, and the <literal>trailer</literal>
|
||||
<para>This audit represents a successful
|
||||
<literal>execve</literal> call, in which the command
|
||||
<literal>finger doug</literal> has been run. The arguments
|
||||
token contains both the processed command line presented by
|
||||
the shell to the kernel. The <literal>path</literal> token
|
||||
holds the path to the executable as looked up by the kernel.
|
||||
The <literal>attribute</literal> token describes the binary,
|
||||
and in particular, includes the file mode which can be used to
|
||||
determine if the application was setuid. The
|
||||
<literal>subject</literal> token describes the subject
|
||||
process, and stores in sequence the audit user ID, effective
|
||||
user ID and group ID, real user ID and group ID, process ID,
|
||||
session ID, port ID, and login address. Notice that the audit
|
||||
user ID and real user ID differ: the user
|
||||
<username>robert</username> has switched to the
|
||||
<username>root</username> account before running this command,
|
||||
but it is audited using the original authenticated user.
|
||||
Finally, the <literal>return</literal> token indicates the
|
||||
successful execution, and the <literal>trailer</literal>
|
||||
concludes the record.</para>
|
||||
|
||||
<para><command>praudit</command> also supports
|
||||
an XML output format, which can be selected using the
|
||||
<option>-x</option> argument.</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Reducing Audit Trails</title>
|
||||
|
||||
<para>Since audit logs may be very large, an administrator will
|
||||
likely want to select a subset of records for using, such as records
|
||||
associated with a specific user:</para>
|
||||
likely want to select a subset of records for using, such as
|
||||
records associated with a specific user:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>auditreduce -u trhodes /var/audit/AUDITFILE | praudit</userinput></screen>
|
||||
|
||||
<para>This will select all audit records produced for the user
|
||||
<username>trhodes</username> stored in the
|
||||
<filename><replaceable>AUDITFILE</replaceable></filename> file.</para>
|
||||
<filename><replaceable>AUDITFILE</replaceable></filename>
|
||||
file.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Delegating Audit Review Rights</title>
|
||||
|
||||
<para>Members of the <groupname>audit</groupname> group are given
|
||||
permission to read audit trails in <filename>/var/audit</filename>;
|
||||
by default, this group is empty, so only the <username>root</username> user may read
|
||||
audit trails. Users may be added to the <groupname>audit</groupname>
|
||||
group in order to delegate audit review rights to the user. As
|
||||
the ability to track audit log contents provides significant insight
|
||||
into the behavior of users and processes, it is recommended that the
|
||||
delegation of audit review rights be performed with caution.</para>
|
||||
<para>Members of the <groupname>audit</groupname> group are
|
||||
given permission to read audit trails in
|
||||
<filename>/var/audit</filename>; by default, this group is
|
||||
empty, so only the <username>root</username> user may read
|
||||
audit trails. Users may be added to the
|
||||
<groupname>audit</groupname> group in order to delegate audit
|
||||
review rights to the user. As the ability to track audit log
|
||||
contents provides significant insight into the behavior of
|
||||
users and processes, it is recommended that the delegation of
|
||||
audit review rights be performed with caution.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Live Monitoring Using Audit Pipes</title>
|
||||
|
||||
<para>Audit pipes are cloning pseudo-devices in the device file system
|
||||
which allow applications to tap the live audit record stream. This
|
||||
is primarily of interest to authors of intrusion detection and
|
||||
system monitoring applications. However, for the administrator the
|
||||
audit pipe device is a convenient way to allow live monitoring
|
||||
without running into problems with audit trail file ownership or
|
||||
log rotation interrupting the event stream. To track the live audit
|
||||
event stream, use the following command line:</para>
|
||||
<para>Audit pipes are cloning pseudo-devices in the device file
|
||||
system which allow applications to tap the live audit record
|
||||
stream. This is primarily of interest to authors of intrusion
|
||||
detection and system monitoring applications. However, for
|
||||
the administrator the audit pipe device is a convenient way to
|
||||
allow live monitoring without running into problems with audit
|
||||
trail file ownership or log rotation interrupting the event
|
||||
stream. To track the live audit event stream, use the
|
||||
following command line:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>praudit /dev/auditpipe</userinput></screen>
|
||||
|
||||
<para>By default, audit pipe device nodes are accessible only to the
|
||||
<username>root</username> user. To make them accessible to the members of the
|
||||
<groupname>audit</groupname> group, add a <literal>devfs</literal> rule
|
||||
to <filename>devfs.rules</filename>:</para>
|
||||
<para>By default, audit pipe device nodes are accessible only to
|
||||
the <username>root</username> user. To make them accessible
|
||||
to the members of the <groupname>audit</groupname> group, add
|
||||
a <literal>devfs</literal> rule to
|
||||
<filename>devfs.rules</filename>:</para>
|
||||
|
||||
<programlisting>add path 'auditpipe*' mode 0440 group audit</programlisting>
|
||||
|
||||
<para>See &man.devfs.rules.5; for more information on configuring
|
||||
the devfs file system.</para>
|
||||
<para>See &man.devfs.rules.5; for more information on
|
||||
configuring the devfs file system.</para>
|
||||
|
||||
<warning>
|
||||
<para>It is easy to produce audit event feedback cycles, in which
|
||||
the viewing of each audit event results in the generation of more
|
||||
audit events. For example, if all network I/O is audited, and
|
||||
&man.praudit.1; is run from an SSH session, then a continuous stream of
|
||||
audit events will be generated at a high rate, as each event
|
||||
being printed will generate another event. It is advisable to run
|
||||
<command>praudit</command> on an audit pipe device from sessions without fine-grained
|
||||
I/O auditing in order to avoid this happening.</para>
|
||||
<para>It is easy to produce audit event feedback cycles, in
|
||||
which the viewing of each audit event results in the
|
||||
generation of more audit events. For example, if all
|
||||
network I/O is audited, and &man.praudit.1; is run from an
|
||||
SSH session, then a continuous stream of audit events will
|
||||
be generated at a high rate, as each event being printed
|
||||
will generate another event. It is advisable to run
|
||||
<command>praudit</command> on an audit pipe device from
|
||||
sessions without fine-grained I/O auditing in order to avoid
|
||||
this happening.</para>
|
||||
</warning>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Rotating Audit Trail Files</title>
|
||||
|
||||
<para>Audit trails are written to only by the kernel, and managed only
|
||||
by the audit daemon, <application>auditd</application>. Administrators
|
||||
should not attempt to use &man.newsyslog.conf.5; or other tools to
|
||||
directly rotate audit logs. Instead, the <command>audit</command>
|
||||
management tool may be used to shut down auditing, reconfigure the
|
||||
audit system, and perform log rotation. The following command causes
|
||||
the audit daemon to create a new audit log and signal the kernel to
|
||||
switch to using the new log. The old log will be terminated and
|
||||
<para>Audit trails are written to only by the kernel, and
|
||||
managed only by the audit daemon,
|
||||
<application>auditd</application>. Administrators should not
|
||||
attempt to use &man.newsyslog.conf.5; or other tools to
|
||||
directly rotate audit logs. Instead, the
|
||||
<command>audit</command> management tool may be used to shut
|
||||
down auditing, reconfigure the audit system, and perform log
|
||||
rotation. The following command causes the audit daemon to
|
||||
create a new audit log and signal the kernel to switch to
|
||||
using the new log. The old log will be terminated and
|
||||
renamed, at which point it may then be manipulated by the
|
||||
administrator.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>audit -n</userinput></screen>
|
||||
|
||||
<warning>
|
||||
<para>If the <application>auditd</application> daemon is not currently
|
||||
running, this command will fail and an error message will be
|
||||
produced.</para>
|
||||
<para>If the <application>auditd</application> daemon is not
|
||||
currently running, this command will fail and an error
|
||||
message will be produced.</para>
|
||||
</warning>
|
||||
|
||||
<para>Adding the following line to
|
||||
|
@ -682,23 +713,24 @@ trailer,133</programlisting>
|
|||
<para>The change will take effect once you have saved the
|
||||
new <filename>/etc/crontab</filename>.</para>
|
||||
|
||||
<para>Automatic rotation of the audit trail file based on file size is
|
||||
possible via the <option>filesz</option> option in
|
||||
&man.audit.control.5;, and is described in the configuration files
|
||||
section of this chapter.</para>
|
||||
<para>Automatic rotation of the audit trail file based on file
|
||||
size is possible via the <option>filesz</option> option in
|
||||
&man.audit.control.5;, and is described in the configuration
|
||||
files section of this chapter.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Compressing Audit Trails</title>
|
||||
|
||||
<para>As audit trail files can become very large, it is often desirable
|
||||
to compress or otherwise archive trails once they have been closed by
|
||||
the audit daemon. The <filename>audit_warn</filename> script can be
|
||||
used to perform customized operations for a variety of audit-related
|
||||
events, including the clean termination of audit trails when they are
|
||||
<para>As audit trail files can become very large, it is often
|
||||
desirable to compress or otherwise archive trails once they
|
||||
have been closed by the audit daemon. The
|
||||
<filename>audit_warn</filename> script can be used to perform
|
||||
customized operations for a variety of audit-related events,
|
||||
including the clean termination of audit trails when they are
|
||||
rotated. For example, the following may be added to the
|
||||
<filename>audit_warn</filename> script to compress audit trails on
|
||||
close:</para>
|
||||
<filename>audit_warn</filename> script to compress audit
|
||||
trails on close:</para>
|
||||
|
||||
<programlisting>#
|
||||
# Compress audit trail files on close.
|
||||
|
@ -707,11 +739,12 @@ if [ "$1" = closefile ]; then
|
|||
gzip -9 $2
|
||||
fi</programlisting>
|
||||
|
||||
<para>Other archiving activities might include copying trail files to
|
||||
a centralized server, deleting old trail files, or reducing the audit
|
||||
trail to remove unneeded records. The script will be run only when
|
||||
audit trail files are cleanly terminated, so will not be run on
|
||||
trails left unterminated following an improper shutdown.</para>
|
||||
<para>Other archiving activities might include copying trail
|
||||
files to a centralized server, deleting old trail files, or
|
||||
reducing the audit trail to remove unneeded records. The
|
||||
script will be run only when audit trail files are cleanly
|
||||
terminated, so will not be run on trails left unterminated
|
||||
following an improper shutdown.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -42,6 +42,7 @@
|
|||
<year>2010</year>
|
||||
<year>2011</year>
|
||||
<year>2012</year>
|
||||
<year>2013</year>
|
||||
<holder>The FreeBSD Documentation Project</holder>
|
||||
</copyright>
|
||||
|
||||
|
@ -157,8 +158,8 @@
|
|||
</partintro>
|
||||
|
||||
&chap.introduction;
|
||||
&chap.install;
|
||||
&chap.bsdinstall;
|
||||
&chap.install;
|
||||
&chap.basics;
|
||||
&chap.ports;
|
||||
&chap.x11;
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
|
||||
<sect1 id="boot-synopsis">
|
||||
<title>Synopsis</title>
|
||||
|
||||
<indexterm><primary>booting</primary></indexterm>
|
||||
<indexterm><primary>bootstrap</primary></indexterm>
|
||||
|
||||
|
@ -76,8 +77,10 @@
|
|||
|
||||
<indexterm><primary>BIOS</primary></indexterm>
|
||||
|
||||
<indexterm><primary>Basic Input/Output
|
||||
System</primary><see>BIOS</see></indexterm>
|
||||
<indexterm>
|
||||
<primary>Basic Input/Output System</primary>
|
||||
<see>BIOS</see>
|
||||
</indexterm>
|
||||
|
||||
<para>On x86 hardware the Basic Input/Output System (BIOS) is
|
||||
responsible for loading the operating system. To do this, the
|
||||
|
@ -154,6 +157,7 @@
|
|||
|
||||
<sect2 id="boot-boot0">
|
||||
<title>The Boot Manager</title>
|
||||
|
||||
<indexterm><primary>Master Boot Record
|
||||
(MBR)</primary></indexterm>
|
||||
|
||||
|
@ -575,8 +579,8 @@ boot:</screen>
|
|||
<application>GNOME</application>,
|
||||
<application>KDE</application>, or
|
||||
<application>XFce</application> are installed, the X11
|
||||
desktop can be launched by using the
|
||||
<command>startx</command> command.</para>
|
||||
desktop can be launched by using
|
||||
<command>startx</command>.</para>
|
||||
|
||||
<para>Some users prefer the X11 graphical login screen over
|
||||
the traditional text based login prompt. Display managers
|
||||
|
@ -693,16 +697,18 @@ bitmap_load="YES"
|
|||
bitmap_name="<replaceable>/boot/splash.pcx</replaceable>"</programlisting>
|
||||
|
||||
<para>In version 8.3 another option is to use ascii art in
|
||||
<ulink url="https://en.wikipedia.org/wiki/TheDraw">TheDraw</ulink>
|
||||
<ulink
|
||||
url="https://en.wikipedia.org/wiki/TheDraw">TheDraw</ulink>
|
||||
format.</para>
|
||||
|
||||
<programlisting>splash_txt="YES"
|
||||
bitmap_load="YES"
|
||||
bitmap_name="<replaceable>/boot/splash.bin</replaceable>"</programlisting>
|
||||
|
||||
<para>The file name is not restricted to <quote>splash</quote>
|
||||
as shown in the above example. It can be anything as long
|
||||
as it is one of the above types such as,
|
||||
<para>The file name is not restricted to
|
||||
<quote>splash</quote> as shown in the above example. It
|
||||
can be anything as long as it is one of the above types
|
||||
such as,
|
||||
<filename><replaceable>splash_640x400</replaceable>.bmp</filename>
|
||||
or
|
||||
<filename><replaceable>bluewave</replaceable>.pcx</filename>.</para>
|
||||
|
@ -745,6 +751,7 @@ bitmap_name="<replaceable>/boot/splash.bin</replaceable>"</programlisting>
|
|||
|
||||
<sect1 id="boot-kernel">
|
||||
<title>Kernel Interaction During Boot</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>kernel</primary>
|
||||
<secondary>boot interaction</secondary>
|
||||
|
@ -852,7 +859,7 @@ bitmap_name="<replaceable>/boot/splash.bin</replaceable>"</programlisting>
|
|||
Stage 3 boot loader</link> prompt. Variables can be added using
|
||||
<command>set</command>, removed with <command>unset</command>,
|
||||
and viewed with the <command>show</command> commands. Variables
|
||||
set in the <filename>/boot/device.hints</filename> file can be
|
||||
set in <filename>/boot/device.hints</filename> can be
|
||||
overridden here also. Device hints entered at the boot loader
|
||||
are not permanent and will be forgotten on the next
|
||||
reboot.</para>
|
||||
|
@ -860,8 +867,8 @@ bitmap_name="<replaceable>/boot/splash.bin</replaceable>"</programlisting>
|
|||
<para>Once the system is booted, the &man.kenv.1; command can be
|
||||
used to dump all of the variables.</para>
|
||||
|
||||
<para>The syntax for the <filename>/boot/device.hints</filename>
|
||||
file is one variable per line, using the standard hash
|
||||
<para>The syntax for <filename>/boot/device.hints</filename>
|
||||
is one variable per line, using the standard hash
|
||||
<quote>#</quote> as comment markers. Lines are constructed as
|
||||
follows:</para>
|
||||
|
||||
|
@ -946,6 +953,7 @@ bitmap_name="<replaceable>/boot/splash.bin</replaceable>"</programlisting>
|
|||
|
||||
<sect2 id="boot-singleuser">
|
||||
<title>Single-User Mode</title>
|
||||
|
||||
<indexterm><primary>single-user mode</primary></indexterm>
|
||||
<indexterm><primary>console</primary></indexterm>
|
||||
|
||||
|
@ -991,6 +999,7 @@ console none unknown off insecure</programlisting>
|
|||
|
||||
<sect2 id="boot-multiuser">
|
||||
<title>Multi-User Mode</title>
|
||||
|
||||
<indexterm><primary>multi-user mode</primary></indexterm>
|
||||
|
||||
<para>If &man.init.8; finds your file systems to be in order, or
|
||||
|
|
|
@ -273,8 +273,8 @@
|
|||
free and commercial partition resizing tools</ulink> are
|
||||
available. <ulink
|
||||
url="http://gparted.sourceforge.net/livecd.php">GParted
|
||||
Live</ulink> is a free Live CD which includes the GParted
|
||||
partition editor. GParted is also included with many other
|
||||
Live</ulink> is a free Live CD which includes the <application>GParted</application>
|
||||
partition editor. <application>GParted</application> is also included with many other
|
||||
Linux Live CD distributions.</para>
|
||||
|
||||
<warning>
|
||||
|
@ -314,7 +314,7 @@
|
|||
20 GB partition, and have another 20 GB
|
||||
partition for &os;.</para>
|
||||
|
||||
<para>There are two ways to do this.</para>
|
||||
<para>There are two ways to do this:</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
|
@ -372,7 +372,7 @@
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>domain name of the local network</para>
|
||||
<para>Domain name of the local network</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -390,7 +390,7 @@
|
|||
creep into the process. On very rare occasions those bugs
|
||||
affect the installation process. As these problems are
|
||||
discovered and fixed, they are noted in the <ulink
|
||||
url="&url.base;/releases/9.0R/errata.html">FreeBSD
|
||||
url="&url.base;/releases/&rel.current;R/errata.html">FreeBSD
|
||||
Errata</ulink> on the &os; web site. Check the errata before
|
||||
installing to make sure that there are no problems that might
|
||||
affect the installation.</para>
|
||||
|
@ -453,9 +453,10 @@
|
|||
|
||||
<tip>
|
||||
<para>A different directory path is used for
|
||||
&os; 8.<replaceable>X</replaceable> and earlier versions. Details of
|
||||
download and installation of &os; 8.<replaceable>X</replaceable> and
|
||||
earlier is covered in <xref linkend="install"/>.</para>
|
||||
&os; 8.<replaceable>X</replaceable> and earlier
|
||||
versions. Details of download and installation of
|
||||
&os; 8.<replaceable>X</replaceable> and earlier is
|
||||
covered in <xref linkend="install"/>.</para>
|
||||
</tip>
|
||||
|
||||
<para>The memory stick image has a <filename>.img</filename>
|
||||
|
@ -662,6 +663,7 @@ Loading /boot/defaults/loader.conf
|
|||
|
||||
<figure id="bsdinstall-boot-loader-menu">
|
||||
<title>&os; Boot Loader Menu</title>
|
||||
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata
|
||||
|
@ -743,7 +745,7 @@ Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4.</screen>
|
|||
<area id="bsdinstall-prompt-smp" coords="2 5"/>
|
||||
</areaspec>
|
||||
|
||||
<screen><prompt>ok </prompt>
|
||||
<screen><prompt>ok </prompt>
|
||||
<prompt>ok {0} </prompt></screen>
|
||||
|
||||
<calloutlist>
|
||||
|
@ -947,12 +949,14 @@ Trying to mount root from cd9660:/dev/iso9660/FREEBSD_INSTALL [ro]...</screen>
|
|||
|
||||
<para>After the procedure of device probing, you will see
|
||||
<xref linkend="bsdinstall-choose-mode"/>. The install media
|
||||
can be used in three ways: to install &os;, as a "live CD", or
|
||||
can be used in three ways: to install &os;, as a
|
||||
<link linkend="using-live-cd">live CD</link>, or
|
||||
to simply access a &os; shell. Use the arrow keys to choose
|
||||
an option, and <keycap>Enter</keycap> to select.</para>
|
||||
|
||||
<figure id="bsdinstall-choose-mode">
|
||||
<title>Selecting Installation Media Mode</title>
|
||||
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="bsdinstall/bsdinstall-choose-mode"
|
||||
|
@ -997,6 +1001,7 @@ Trying to mount root from cd9660:/dev/iso9660/FREEBSD_INSTALL [ro]...</screen>
|
|||
|
||||
<figure id="bsdinstall-keymap-select-default">
|
||||
<title>Keymap Selection</title>
|
||||
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata
|
||||
|
@ -1013,6 +1018,7 @@ Trying to mount root from cd9660:/dev/iso9660/FREEBSD_INSTALL [ro]...</screen>
|
|||
|
||||
<figure id="bsdinstall-config-keymap">
|
||||
<title>Selecting Keyboard Menu</title>
|
||||
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="bsdinstall/bsdinstall-config-keymap"
|
||||
|
@ -1042,6 +1048,7 @@ Trying to mount root from cd9660:/dev/iso9660/FREEBSD_INSTALL [ro]...</screen>
|
|||
|
||||
<figure id="bsdinstall-config-hostname">
|
||||
<title>Setting the Hostname</title>
|
||||
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="bsdinstall/bsdinstall-config-hostname"
|
||||
|
@ -1063,6 +1070,7 @@ Trying to mount root from cd9660:/dev/iso9660/FREEBSD_INSTALL [ro]...</screen>
|
|||
|
||||
<figure id="bsdinstall-config-components">
|
||||
<title>Selecting Components to Install</title>
|
||||
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata
|
||||
|
@ -1162,10 +1170,10 @@ Trying to mount root from cd9660:/dev/iso9660/FREEBSD_INSTALL [ro]...</screen>
|
|||
</figure>
|
||||
|
||||
<para>After the network connection has been configured as shown in
|
||||
<xref linkend="bsdinstall-config-network-dev"/>, a mirror site is
|
||||
selected. Mirror sites cache copies of the &os; files. Choose
|
||||
a mirror site located in the same region of the world as the
|
||||
computer on which &os; is being installed. Files can be
|
||||
<xref linkend="bsdinstall-config-network-dev"/>, a mirror site
|
||||
is selected. Mirror sites cache copies of the &os; files.
|
||||
Choose a mirror site located in the same region of the world as
|
||||
the computer on which &os; is being installed. Files can be
|
||||
retrieved more quickly when the mirror is close to the target
|
||||
computer, and installation time will be reduced.</para>
|
||||
|
||||
|
@ -1195,7 +1203,6 @@ Trying to mount root from cd9660:/dev/iso9660/FREEBSD_INSTALL [ro]...</screen>
|
|||
there's the option of starting a shell where command-line
|
||||
programs like &man.gpart.8;, &man.fdisk.8;, and &man.bsdlabel.8;
|
||||
can be used directly.</para>
|
||||
<!-- WB: mention ZFS here? -->
|
||||
|
||||
<figure id="bsdinstall-part-guided-manual">
|
||||
<title>Selecting Guided or Manual Partitioning</title>
|
||||
|
@ -1217,6 +1224,7 @@ Trying to mount root from cd9660:/dev/iso9660/FREEBSD_INSTALL [ro]...</screen>
|
|||
|
||||
<figure id="bsdinstall-part-guided-disk">
|
||||
<title>Selecting from Multiple Disks</title>
|
||||
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata
|
||||
|
@ -1258,6 +1266,7 @@ Trying to mount root from cd9660:/dev/iso9660/FREEBSD_INSTALL [ro]...</screen>
|
|||
|
||||
<figure id="bsdinstall-part-review">
|
||||
<title>Review Created Partitions</title>
|
||||
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="bsdinstall/bsdinstall-part-review"
|
||||
|
@ -1400,28 +1409,27 @@ Trying to mount root from cd9660:/dev/iso9660/FREEBSD_INSTALL [ro]...</screen>
|
|||
filesystem.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>freebsd-zfs</literal> - A &os; ZFS
|
||||
filesystem. See <xref linkend="filesystems-zfs"/>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>freebsd-swap</literal> - &os; swap
|
||||
space.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Another partition type worth noting is
|
||||
<literal>freebsd-zfs</literal>, used for partitions that will
|
||||
contain a &os; ZFS filesystem. See
|
||||
<xref linkend="filesystems-zfs"/>. &man.gpart.8; shows more
|
||||
of the available <acronym>GPT</acronym> partition
|
||||
types.</para>
|
||||
|
||||
<para>Multiple filesystem partitions can be used, and some
|
||||
people may prefer a traditional layout with separate
|
||||
partitions for the <filename>/</filename>,
|
||||
<filename>/var</filename>, <filename>/tmp</filename>, and <filename>/usr</filename>
|
||||
filesystems. See <xref
|
||||
linkend="bsdinstall-part-manual-splitfs"/> for an
|
||||
<filename>/var</filename>, <filename>/tmp</filename>, and
|
||||
<filename>/usr</filename> filesystems. See
|
||||
<xref linkend="bsdinstall-part-manual-splitfs"/> for an
|
||||
example.</para>
|
||||
|
||||
<para>See &man.gpart.8; for a complete list of available
|
||||
<acronym>GPT</acronym> partition types.</para>
|
||||
|
||||
<para>Size may be entered with common abbreviations:
|
||||
<emphasis>K</emphasis> for kilobytes, <emphasis>M</emphasis>
|
||||
for megabytes, or <emphasis>G</emphasis> for gigabytes.</para>
|
||||
|
@ -1731,7 +1739,7 @@ Trying to mount root from cd9660:/dev/iso9660/FREEBSD_INSTALL [ro]...</screen>
|
|||
found during the scan are listed, followed by a description
|
||||
of the encryption types available for that network. If the
|
||||
desired <acronym role="Service Set
|
||||
Identifier">SSID</acronym> doesn't appear in the list,
|
||||
Identifier">SSID</acronym> does not appear in the list,
|
||||
select <guibutton>[ Rescan ]</guibutton> to scan
|
||||
again. If the desired network still does not appear, check
|
||||
for problems with antenna connections or try moving the
|
||||
|
@ -2019,7 +2027,7 @@ Trying to mount root from cd9660:/dev/iso9660/FREEBSD_INSTALL [ro]...</screen>
|
|||
<para>Select <guibutton>[ Yes ]</guibutton>
|
||||
or <guibutton>[ No ]</guibutton> according to how
|
||||
the machine's clock is configured and press
|
||||
<keycap>Enter</keycap>. If you don't know whether the system
|
||||
<keycap>Enter</keycap>. If you do not know whether the system
|
||||
uses UTC or local time, select
|
||||
<guibutton>[ No ]</guibutton> to choose the more
|
||||
commonly-used local time.</para>
|
||||
|
@ -2399,7 +2407,7 @@ Trying to mount root from cd9660:/dev/iso9660/FREEBSD_INSTALL [ro]...</screen>
|
|||
|
||||
<para>When the installation is complete, select
|
||||
<guibutton>[ Reboot ]</guibutton> to reboot the
|
||||
computer and start the new &os; system. Don't forget to
|
||||
computer and start the new &os; system. Do not forget to
|
||||
remove the &os; install CD, DVD, or USB memory stick, or the
|
||||
computer may boot from it again.</para>
|
||||
</sect2>
|
||||
|
@ -2725,4 +2733,34 @@ login:</screen>
|
|||
</qandaset>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="using-live-cd">
|
||||
<title>Using the Live CD</title>
|
||||
|
||||
<para>A live CD of &os; is available on the same CD as the main
|
||||
installation program. This is useful for those who are still
|
||||
wondering whether &os; is the right operating system for them
|
||||
and want to test some of the features before installing.</para>
|
||||
|
||||
<note>
|
||||
<para>The following points should be noted while using the live
|
||||
CD:</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>To gain access to the system, authentication is
|
||||
required. The username is <literal>root</literal>, and
|
||||
the password is blank.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>As the system runs directly from the CD, performance
|
||||
will be significantly slower than that of a system
|
||||
installed on a hard disk.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>The live CD provides a command prompt and not a
|
||||
graphical interface.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</note>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
|
|
@ -8,15 +8,14 @@
|
|||
<colophon id='colophon'>
|
||||
<para>This book is the combined work of hundreds of contributors to
|
||||
<quote>The FreeBSD Documentation Project</quote>. The text is
|
||||
authored in SGML
|
||||
according to the DocBook DTD and is formatted from SGML into many
|
||||
different presentation formats using <application>Jade</application>,
|
||||
an open source DSSSL
|
||||
engine. Norm Walsh's DSSSL stylesheets were used with an
|
||||
additional customization layer to provide the presentation
|
||||
instructions for <application>Jade</application>. The printed
|
||||
version of this document would not be possible without Donald
|
||||
Knuth's <application>&tex;</application> typesetting language,
|
||||
Leslie Lamport's <application>LaTeX</application>, or Sebastian
|
||||
Rahtz's <application>JadeTeX</application> macro package.</para>
|
||||
authored in SGML according to the DocBook DTD and is formatted
|
||||
from SGML into many different presentation formats using
|
||||
<application>Jade</application>, an open source DSSSL engine.
|
||||
Norm Walsh's DSSSL stylesheets were used with an additional
|
||||
customization layer to provide the presentation instructions for
|
||||
<application>Jade</application>. The printed version of this
|
||||
document would not be possible without Donald Knuth's
|
||||
<application>&tex;</application> typesetting language, Leslie
|
||||
Lamport's <application>LaTeX</application>, or Sebastian Rahtz's
|
||||
<application>JadeTeX</application> macro package.</para>
|
||||
</colophon>
|
||||
|
|
|
@ -191,7 +191,7 @@
|
|||
should be 256 megabytes. Systems with less memory may
|
||||
perform better with more swap. Less than 256 megabytes
|
||||
of swap is not recommended and memory expansion should be
|
||||
considered. The kernel's VM paging algorithms are tuned to
|
||||
considered. The kernel's VM paging algorithms are tuned to
|
||||
perform best when the swap partition is at least two times
|
||||
the size of main memory. Configuring too little swap can
|
||||
lead to inefficiencies in the VM page scanning code and
|
||||
|
@ -256,8 +256,8 @@
|
|||
implies this; it is configuration information for the
|
||||
<filename>rc*</filename> files.</para>
|
||||
|
||||
<para>An administrator should make entries in the
|
||||
<filename>rc.conf</filename> file to override the default
|
||||
<para>An administrator should make entries in
|
||||
<filename>rc.conf</filename> to override the default
|
||||
settings from <filename>/etc/defaults/rc.conf</filename>. The
|
||||
defaults file should not be copied verbatim to
|
||||
<filename class="directory">/etc</filename> - it contains
|
||||
|
@ -269,8 +269,8 @@
|
|||
applications to separate site-wide configuration from
|
||||
system-specific configuration in order to keep administration
|
||||
overhead down. The recommended approach is to place
|
||||
system-specific configuration into the
|
||||
<filename>/etc/rc.conf.local</filename> file. For
|
||||
system-specific configuration into
|
||||
<filename>/etc/rc.conf.local</filename>. For
|
||||
example:</para>
|
||||
|
||||
<itemizedlist>
|
||||
|
@ -292,14 +292,14 @@ ifconfig_fxp0="inet 10.1.1.1/8"</programlisting>
|
|||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>The <filename>rc.conf</filename> file can then be
|
||||
<para><filename>rc.conf</filename> can then be
|
||||
distributed to every system using <command>rsync</command> or a
|
||||
similar program, while the <filename>rc.conf.local</filename>
|
||||
file remains unique.</para>
|
||||
similar program, while <filename>rc.conf.local</filename>
|
||||
remains unique.</para>
|
||||
|
||||
<para>Upgrading the system using &man.sysinstall.8; or
|
||||
<command>make world</command> will not overwrite the
|
||||
<filename>rc.conf</filename> file, so system configuration
|
||||
<command>make world</command> will not overwrite
|
||||
<filename>rc.conf</filename>, so system configuration
|
||||
information will not be lost.</para>
|
||||
|
||||
<tip>
|
||||
|
@ -349,8 +349,8 @@ ifconfig_fxp0="inet 10.1.1.1/8"</programlisting>
|
|||
-rw-r--r-- 1 root wheel 7980 May 20 1998 srm.conf
|
||||
-rw-r--r-- 1 root wheel 7933 May 20 1998 srm.conf.default</literallayout>
|
||||
|
||||
<para>The file sizes show that only the
|
||||
<filename>srm.conf</filename> file has been changed. A later
|
||||
<para>The file sizes show that only
|
||||
<filename>srm.conf</filename> has been changed. A later
|
||||
update of the <application>Apache</application> port would not
|
||||
overwrite this changed file.</para>
|
||||
</sect1>
|
||||
|
@ -439,8 +439,7 @@ run_rc_command "$1"</programlisting>
|
|||
command line arguments, inclusion of the default functions
|
||||
provided in <filename>/etc/rc.subr</filename>, compatibility
|
||||
with the &man.rcorder.8; utility and provides for easier
|
||||
configuration via the <filename>rc.conf</filename>
|
||||
file.</para>
|
||||
configuration via <filename>rc.conf</filename>.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
|
@ -450,7 +449,7 @@ run_rc_command "$1"</programlisting>
|
|||
daemons, <acronym>IMAP</acronym>, etc. could be started using
|
||||
&man.inetd.8;. This involves installing the service utility
|
||||
from the Ports Collection with a configuration line added to
|
||||
the <filename>/etc/inetd.conf</filename> file, or by
|
||||
<filename>/etc/inetd.conf</filename>, or by
|
||||
uncommenting one of the current configuration lines. Working
|
||||
with <application>inetd</application> and its configuration is
|
||||
described in depth in the
|
||||
|
@ -521,8 +520,8 @@ run_rc_command "$1"</programlisting>
|
|||
<username>root</username>.</para>
|
||||
</note>
|
||||
|
||||
<para>Let us take a look at the <filename>/etc/crontab</filename>
|
||||
file (the system crontab):</para>
|
||||
<para>Let us take a look at <filename>/etc/crontab</filename>,
|
||||
the system crontab:</para>
|
||||
|
||||
<programlisting># /etc/crontab - root's crontab for &os;
|
||||
#
|
||||
|
@ -541,12 +540,12 @@ HOME=/var/log
|
|||
|
||||
<calloutlist>
|
||||
<callout arearefs="co-comments">
|
||||
<para>Like most &os; configuration files, the
|
||||
<literal>#</literal> character represents a comment. A
|
||||
<para>Like most &os; configuration files, lines that begin
|
||||
with the <literal>#</literal> character are comments. A
|
||||
comment can be placed in the file as a reminder of what and
|
||||
why a desired action is performed. Comments cannot be on the
|
||||
same line as a command or else they will be interpreted as
|
||||
part of the command; they must be on a new line. Blank
|
||||
why a desired action is performed. Comments cannot be on
|
||||
the same line as a command or else they will be interpreted
|
||||
as part of the command; they must be on a new line. Blank
|
||||
lines are ignored.</para>
|
||||
</callout>
|
||||
|
||||
|
@ -593,11 +592,11 @@ HOME=/var/log
|
|||
These <literal>*</literal> characters mean
|
||||
<quote>first-last</quote>, and can be interpreted as
|
||||
<emphasis>every</emphasis> time. So, judging by this line,
|
||||
it is apparent that the <command>atrun</command> command is
|
||||
it is apparent that <command>atrun</command> is
|
||||
to be invoked by <username>root</username> every five
|
||||
minutes regardless of what day or month it is. For more
|
||||
information on the <command>atrun</command> command, see the
|
||||
&man.atrun.8; manual page.</para>
|
||||
information on <command>atrun</command>, see
|
||||
&man.atrun.8;.</para>
|
||||
|
||||
<para>Commands can have any number of flags passed to them;
|
||||
however, commands which extend to multiple lines need to be
|
||||
|
@ -610,9 +609,8 @@ HOME=/var/log
|
|||
<filename>crontab</filename> file, although there is one thing
|
||||
different about this one. Field number six, where we specified
|
||||
the username, only exists in the system
|
||||
<filename>/etc/crontab</filename> file. This field should be
|
||||
omitted for individual user <filename>crontab</filename>
|
||||
files.</para>
|
||||
<filename>crontab</filename>. This field should be omitted for
|
||||
individual user <filename>crontab</filename> files.</para>
|
||||
|
||||
<sect2 id="configtuning-installcrontab">
|
||||
<title>Installing a Crontab</title>
|
||||
|
@ -681,7 +679,7 @@ HOME=/var/log
|
|||
For instance, &man.sshd.8; can be restarted with the following
|
||||
command:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/sshd restart</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service sshd restart</userinput></screen>
|
||||
|
||||
<para>This procedure is similar for other services. Of course,
|
||||
services are usually started automatically at boot time as
|
||||
|
@ -713,7 +711,7 @@ HOME=/var/log
|
|||
<filename>/etc/rc.conf</filename> setting, execute the following
|
||||
command:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/sshd onerestart</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service sshd onerestart</userinput></screen>
|
||||
|
||||
<para>It is easy to check if a service is enabled in
|
||||
<filename>/etc/rc.conf</filename> by running the appropriate
|
||||
|
@ -722,13 +720,13 @@ HOME=/var/log
|
|||
<command>sshd</command> is in fact enabled in
|
||||
<filename>/etc/rc.conf</filename> by running:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/sshd rcvar</userinput>
|
||||
<screen>&prompt.root; <userinput>service sshd rcvar</userinput>
|
||||
# sshd
|
||||
$sshd_enable=YES</screen>
|
||||
|
||||
<note>
|
||||
<para>The second line (<literal># sshd</literal>) is the output
|
||||
from the <command>sshd</command> command, not a
|
||||
from <command>sshd</command>, not a
|
||||
<username>root</username> console.</para>
|
||||
</note>
|
||||
|
||||
|
@ -736,7 +734,7 @@ $sshd_enable=YES</screen>
|
|||
<option>status</option> option is available. For instance to
|
||||
verify that <command>sshd</command> is actually started:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/sshd status</userinput>
|
||||
<screen>&prompt.root; <userinput>service sshd status</userinput>
|
||||
sshd is running as pid 433.</screen>
|
||||
|
||||
<para>In some cases it is also possible to <option>reload</option>
|
||||
|
@ -1062,7 +1060,6 @@ dc1: flags=8802<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
|
|||
inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255
|
||||
media: Ethernet 10baseT/UTP
|
||||
status: no carrier
|
||||
plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> metric 0 mtu 1500
|
||||
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
|
||||
options=3<RXCSUM,TXCSUM>
|
||||
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
|
||||
|
@ -1084,12 +1081,6 @@ lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
|
|||
interface</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><devicename>plip0</devicename>: The parallel port
|
||||
interface (if a parallel port is present on the
|
||||
machine)</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><devicename>lo0</devicename>: The loopback
|
||||
device</para>
|
||||
|
@ -1220,14 +1211,14 @@ ifconfig_dc1="inet 10.0.0.1 netmask 255.255.255.0 media 10baseT/UTP"</programlis
|
|||
configuration errors. Alternatively you can just relaunch the
|
||||
networking system:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/netif restart</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service netif restart</userinput></screen>
|
||||
|
||||
<note>
|
||||
<para>If a default gateway has been set in
|
||||
<filename>/etc/rc.conf</filename>, use also this
|
||||
command:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/routing restart</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service routing restart</userinput></screen>
|
||||
</note>
|
||||
|
||||
<para>Once the networking system has been relaunched, you should
|
||||
|
@ -1275,7 +1266,7 @@ round-trip min/avg/max/stddev = 0.700/0.729/0.766/0.025 ms</screen>
|
|||
|
||||
<para>You could also use the machine name instead of
|
||||
<hostid role="ipaddr">192.168.1.2</hostid> if you have set
|
||||
up the <filename>/etc/hosts</filename> file.</para>
|
||||
up <filename>/etc/hosts</filename>.</para>
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
|
@ -1427,7 +1418,7 @@ ifconfig_fxp0_alias7="inet 202.0.75.20 netmask 255.255.255.255"</programlisting>
|
|||
</authorgroup>
|
||||
</sect1info>
|
||||
|
||||
<title>Configuring the system logger
|
||||
<title>Configuring the System Logger,
|
||||
<application>syslogd</application></title>
|
||||
|
||||
<indexterm><primary>system logging</primary></indexterm>
|
||||
|
@ -1496,7 +1487,7 @@ ifconfig_fxp0_alias7="inet 202.0.75.20 netmask 255.255.255.255"</programlisting>
|
|||
log messages from <replaceable>facility</replaceable> at level
|
||||
<replaceable>level</replaceable> or higher. It is also
|
||||
possible to add an optional comparison flag before the level
|
||||
to specify more precisely what is logged. Multiple
|
||||
to specify more precisely what is logged. Multiple
|
||||
selector fields can be used for the same action, and are
|
||||
separated with a semicolon (<literal>;</literal>). Using
|
||||
<literal>*</literal> will match everything.
|
||||
|
@ -1602,12 +1593,12 @@ cron.* /var/log/cron
|
|||
facilities, refer to &man.syslog.3; and &man.syslogd.8;.
|
||||
For more information about <filename>syslog.conf</filename>,
|
||||
its syntax, and more advanced usage examples, see
|
||||
&man.syslog.conf.5; and <xref
|
||||
linkend="network-syslogd"/>.</para>
|
||||
&man.syslog.conf.5; and
|
||||
<xref linkend="network-syslogd"/>.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Log management and rotation with
|
||||
<title>Log Management and Rotation with
|
||||
<application>newsyslog</application></title>
|
||||
|
||||
<indexterm><primary>newsyslog</primary></indexterm>
|
||||
|
@ -1641,10 +1632,10 @@ cron.* /var/log/cron
|
|||
owner, permissions, and when to rotate that file, as well as
|
||||
optional flags that affect the log rotation (such as
|
||||
compression) and programs to signal when the log is
|
||||
rotated. As an example, here is the default configuration
|
||||
rotated. As an example, here is the default configuration
|
||||
in &os;:</para>
|
||||
|
||||
<programlisting># configuration file for newsyslog
|
||||
<programlisting># configuration file for newsyslog
|
||||
# $&os;$
|
||||
#
|
||||
# Entries which do not specify the '/pid_file' field will cause the
|
||||
|
@ -1983,10 +1974,10 @@ kern.maxfiles: 2088 -> 5000</screen>
|
|||
numbers, or booleans (a boolean being <literal>1</literal> for
|
||||
yes or a <literal>0</literal> for no).</para>
|
||||
|
||||
<para>If you want to set automatically some variables each time
|
||||
the machine boots, add them to the
|
||||
<filename>/etc/sysctl.conf</filename> file. For more
|
||||
information see the &man.sysctl.conf.5; manual page and the
|
||||
<para>If you want to automatically set some variables each time
|
||||
the machine boots, add them to
|
||||
<filename>/etc/sysctl.conf</filename>. For more
|
||||
information see the &man.sysctl.conf.5; manual page and
|
||||
<xref linkend="configtuning-sysctlconf"/>.</para>
|
||||
|
||||
<sect2 id="sysctl-readonly">
|
||||
|
@ -2018,8 +2009,8 @@ device_probe_and_attach: cbb0 attach returned 12</screen>
|
|||
only. To overcome these situations a user can put
|
||||
&man.sysctl.8; <quote>OIDs</quote> in their local
|
||||
<filename>/boot/loader.conf</filename>. Default settings are
|
||||
located in the <filename>/boot/defaults/loader.conf</filename>
|
||||
file.</para>
|
||||
located in
|
||||
<filename>/boot/defaults/loader.conf</filename>.</para>
|
||||
|
||||
<para>Fixing the problem mentioned above would require a user to
|
||||
set <option>hw.pci.allow_unsupported_io_range=1</option> in
|
||||
|
@ -2425,8 +2416,8 @@ device_probe_and_attach: cbb0 attach returned 12</screen>
|
|||
defaults by <varname>kern.maxusers</varname> may be
|
||||
individually overridden at boot-time or run-time in
|
||||
<filename>/boot/loader.conf</filename> (see the
|
||||
&man.loader.conf.5; manual page or the
|
||||
<filename>/boot/defaults/loader.conf</filename> file for
|
||||
&man.loader.conf.5; manual page or
|
||||
<filename>/boot/defaults/loader.conf</filename> for
|
||||
some hints) or as described elsewhere in this
|
||||
document.</para>
|
||||
|
||||
|
@ -2894,7 +2885,7 @@ kern.maxvnodes: 100000</screen>
|
|||
without doing a kernel rebuild. This has the advantage of
|
||||
making testing easier. Another reason is that starting
|
||||
<acronym>ACPI</acronym> after a system has been brought up
|
||||
often doesn't work well. If you are experiencing problems,
|
||||
often does not work well. If you are experiencing problems,
|
||||
you can disable <acronym>ACPI</acronym> altogether. This
|
||||
driver should not and can not be unloaded because the system
|
||||
bus uses it for various hardware interactions.
|
||||
|
@ -3107,8 +3098,8 @@ kern.maxvnodes: 100000</screen>
|
|||
|
||||
<para>In some cases, resuming from a suspend operation will
|
||||
cause the mouse to fail. A known work around is to add
|
||||
<literal>hint.psm.0.flags="0x3000"</literal> to the
|
||||
<filename>/boot/loader.conf</filename> file. If this does
|
||||
<literal>hint.psm.0.flags="0x3000"</literal> to
|
||||
<filename>/boot/loader.conf</filename>. If this does
|
||||
not work then please consider sending a bug report as
|
||||
described above.</para>
|
||||
</sect3>
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -237,6 +237,7 @@
|
|||
|
||||
<sect2>
|
||||
<title>Using &man.sysinstall.8;</title>
|
||||
|
||||
<indexterm>
|
||||
<primary><application>sysinstall</application></primary>
|
||||
<secondary>adding disks</secondary>
|
||||
|
@ -278,6 +279,7 @@
|
|||
|
||||
<step>
|
||||
<title>Disk Label Editor</title>
|
||||
|
||||
<indexterm><primary>BSD partitions</primary></indexterm>
|
||||
|
||||
<para>Next, you need to exit
|
||||
|
@ -358,6 +360,7 @@
|
|||
|
||||
<sect3>
|
||||
<title>Dedicated</title>
|
||||
|
||||
<indexterm><primary>OS/2</primary></indexterm>
|
||||
|
||||
<para>If you will not be sharing the new drive with another
|
||||
|
@ -572,7 +575,7 @@ bsdlabel -e ad3</programlisting>
|
|||
</calloutlist>
|
||||
|
||||
<para>After running &man.ccdconfig.8; the &man.ccd.4; is
|
||||
configured. A file system can be installed. Refer to
|
||||
configured. A file system can be installed. Refer to
|
||||
&man.newfs.8; for options, or simply run: </para>
|
||||
|
||||
<programlisting>newfs /dev/ccd0c</programlisting>
|
||||
|
@ -770,6 +773,7 @@ ar0: ATA RAID1 subdisks: ad4 ad6 status: REBUILDING 0% completed</screen>
|
|||
</sect1info>
|
||||
|
||||
<title>USB Storage Devices</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>USB</primary>
|
||||
<secondary>disks</secondary>
|
||||
|
@ -961,6 +965,7 @@ umass0: detached</screen>
|
|||
</sect1info>
|
||||
|
||||
<title>Creating and Using Optical Media (CDs)</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>CDROMs</primary>
|
||||
<secondary>creating</secondary>
|
||||
|
@ -1125,6 +1130,7 @@ umass0: detached</screen>
|
|||
|
||||
<sect2 id="burncd">
|
||||
<title><application>burncd</application></title>
|
||||
|
||||
<indexterm>
|
||||
<primary>CDROMs</primary>
|
||||
<secondary>burning</secondary>
|
||||
|
@ -1506,6 +1512,7 @@ cd0: Attempt to query device size failed: NOT READY, Medium not present - tray c
|
|||
</sect1info>
|
||||
|
||||
<title>Creating and Using Optical Media (DVDs)</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>DVD</primary>
|
||||
<secondary>burning</secondary>
|
||||
|
@ -1542,8 +1549,8 @@ cd0: Attempt to query device size failed: NOT READY, Medium not present - tray c
|
|||
removable hard drive. However, this media is not
|
||||
compatible with most DVD-ROM drives and DVD-Video players;
|
||||
only a few DVD writers support the DVD-RAM format. Read
|
||||
the <xref linkend="creating-dvd-ram"/> for more information
|
||||
on DVD-RAM use.</para>
|
||||
the <xref linkend="creating-dvd-ram"/> for more
|
||||
information on DVD-RAM use.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -1589,8 +1596,8 @@ cd0: Attempt to query device size failed: NOT READY, Medium not present - tray c
|
|||
devices, therefore the <link linkend="atapicam">ATAPI/CAM
|
||||
support</link> must be added to your kernel. If your burner
|
||||
uses the USB interface this addition is useless, and you
|
||||
should read the <xref linkend="usb-disks"/> for more details on
|
||||
USB devices configuration.</para>
|
||||
should read the <xref linkend="usb-disks"/> for more details
|
||||
on USB devices configuration.</para>
|
||||
|
||||
<para>You also have to enable DMA access for ATAPI devices, this
|
||||
can be done in adding the following line to the
|
||||
|
@ -2046,7 +2053,7 @@ cd0: Attempt to query device size failed: NOT READY, Medium not present - tray c
|
|||
<sect2>
|
||||
<title>The File System</title>
|
||||
|
||||
<para>Now the floppy is ready to be high-level formatted. This
|
||||
<para>Now the floppy is ready to be high-level formatted. This
|
||||
will place a new file system on it, which will let FreeBSD
|
||||
read and write to the disk. After creating the new file
|
||||
system, the disk label is destroyed, so if you want to
|
||||
|
@ -2078,230 +2085,93 @@ cd0: Attempt to query device size failed: NOT READY, Medium not present - tray c
|
|||
|
||||
<indexterm><primary>tape media</primary></indexterm>
|
||||
|
||||
<para>The major tape media are the 4mm, 8mm, QIC, mini-cartridge
|
||||
and DLT.</para>
|
||||
<para>Tape technology has continued to evolve but is less likely
|
||||
to be used in a modern system. Modern backup systems tend to
|
||||
use offsite combined with local removable disk drive
|
||||
technologies. Still, FreeBSD will support any tape drive that
|
||||
uses SCSI such as LTO and older devices such as DAT. There is
|
||||
limited support for SATA and USB tape drives as well.</para>
|
||||
|
||||
<sect2 id="backups-tapebackups-4mm">
|
||||
<title>4mm (DDS: Digital Data Storage)</title>
|
||||
<sect2 id="tapes-sa0">
|
||||
<title>Serial Access with &man.sa.4;</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>tape media</primary>
|
||||
<secondary>DDS (4mm) tapes</secondary>
|
||||
</indexterm>
|
||||
<indexterm>
|
||||
<primary>tape media</primary>
|
||||
<secondary>QIC tapes</secondary>
|
||||
</indexterm>
|
||||
<para>4mm tapes are replacing QIC as the workstation backup
|
||||
media of choice. This trend accelerated greatly when Conner
|
||||
purchased Archive, a leading manufacturer of QIC drives, and
|
||||
then stopped production of QIC drives. 4mm drives are small
|
||||
and quiet but do not have the reputation for reliability that
|
||||
is enjoyed by 8mm drives. The cartridges are less expensive
|
||||
and smaller (3 x 2 x 0.5 inches, 76 x 51 x 12 mm) than 8mm
|
||||
cartridges. 4mm, like 8mm, has comparatively short head life
|
||||
for the same reason, both use helical scan.</para>
|
||||
|
||||
<para>Data throughput on these drives starts ~150 kB/s,
|
||||
peaking at ~500 kB/s. Data capacity starts at
|
||||
1.3 GB and ends at 2.0 GB. Hardware compression,
|
||||
available with most of these drives, approximately doubles the
|
||||
capacity. Multi-drive tape library units can have 6 drives in
|
||||
a single cabinet with automatic tape changing. Library
|
||||
capacities reach 240 GB.</para>
|
||||
|
||||
<para>The DDS-3 standard now supports tape capacities up to
|
||||
12 GB (or 24 GB compressed).</para>
|
||||
|
||||
<para>4mm drives, like 8mm drives, use helical-scan. All the
|
||||
benefits and drawbacks of helical-scan apply to both 4mm and
|
||||
8mm drives.</para>
|
||||
|
||||
<para>Tapes should be retired from use after 2,000 passes or 100
|
||||
full backups.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="backups-tapebackups-8mm">
|
||||
<title>8mm (Exabyte)</title>
|
||||
<indexterm>
|
||||
<primary>tape media</primary>
|
||||
<secondary>Exabyte (8mm) tapes</secondary>
|
||||
<primary>tape drives</primary>
|
||||
</indexterm>
|
||||
|
||||
<para>8mm tapes are the most common SCSI tape drives; they are
|
||||
the best choice of exchanging tapes. Nearly every site has an
|
||||
Exabyte 2 GB 8mm tape drive. 8mm drives are reliable,
|
||||
convenient and quiet. Cartridges are inexpensive and small
|
||||
(4.8 x 3.3 x 0.6 inches; 122 x 84 x 15 mm). One downside of
|
||||
8mm tape is relatively short head and tape life due to the
|
||||
high rate of relative motion of the tape across the
|
||||
heads.</para>
|
||||
|
||||
<para>Data throughput ranges from ~250 kB/s to
|
||||
~500 kB/s. Data sizes start at 300 MB and go up to
|
||||
7 GB. Hardware compression, available with most of these
|
||||
drives, approximately doubles the capacity. These drives are
|
||||
available as single units or multi-drive tape libraries with 6
|
||||
drives and 120 tapes in a single cabinet. Tapes are changed
|
||||
automatically by the unit. Library capacities reach
|
||||
840+ GB.</para>
|
||||
|
||||
<para>The Exabyte <quote>Mammoth</quote> model supports
|
||||
12 GB on one tape (24 GB with compression) and costs
|
||||
approximately twice as much as conventional tape
|
||||
drives.</para>
|
||||
|
||||
<para>Data is recorded onto the tape using helical-scan, the
|
||||
heads are positioned at an angle to the media (approximately 6
|
||||
degrees). The tape wraps around 270 degrees of the spool that
|
||||
holds the heads. The spool spins while the tape slides over
|
||||
the spool. The result is a high density of data and closely
|
||||
packed tracks that angle across the tape from one edge to the
|
||||
other.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="backups-tapebackups-qic">
|
||||
<title>QIC</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>tape media</primary>
|
||||
<secondary>QIC-150</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>QIC-150 tapes and drives are, perhaps, the most common
|
||||
tape drive and media around. QIC tape drives are the least
|
||||
expensive <quote>serious</quote> backup drives. The downside
|
||||
is the cost of media. QIC tapes are expensive compared to 8mm
|
||||
or 4mm tapes, up to 5 times the price per GB data storage.
|
||||
But, if your needs can be satisfied with a half-dozen tapes,
|
||||
QIC may be the correct choice. QIC is the
|
||||
<emphasis>most</emphasis> common tape drive. Every site has a
|
||||
QIC drive of some density or another. Therein lies the rub,
|
||||
QIC has a large number of densities on physically similar
|
||||
(sometimes identical) tapes. QIC drives are not quiet. These
|
||||
drives audibly seek before they begin to record data and are
|
||||
clearly audible whenever reading, writing or seeking. QIC
|
||||
tapes measure 6 x 4 x 0.7 inches (152 x
|
||||
102 x 17 mm).</para>
|
||||
|
||||
<para>Data throughput ranges from ~150 kB/s to
|
||||
~500 kB/s. Data capacity ranges from 40 MB to
|
||||
15 GB. Hardware compression is available on many of the
|
||||
newer QIC drives. QIC drives are less frequently installed;
|
||||
they are being supplanted by DAT drives.</para>
|
||||
|
||||
<para>Data is recorded onto the tape in tracks. The tracks run
|
||||
along the long axis of the tape media from one end to the
|
||||
other. The number of tracks, and therefore the width of a
|
||||
track, varies with the tape's capacity. Most if not all newer
|
||||
drives provide backward-compatibility at least for reading
|
||||
(but often also for writing). QIC has a good reputation
|
||||
regarding the safety of the data (the mechanics are simpler
|
||||
and more robust than for helical scan drives).</para>
|
||||
|
||||
<para>Tapes should be retired from use after 5,000
|
||||
backups.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="backups-tapebackups-dlt">
|
||||
<title>DLT</title>
|
||||
<indexterm>
|
||||
<primary>tape media</primary>
|
||||
<secondary>DLT</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>DLT has the fastest data transfer rate of all the drive
|
||||
types listed here. The 1/2" (12.5mm) tape is contained in a
|
||||
single spool cartridge (4 x 4 x 1 inches; 100 x 100 x 25 mm).
|
||||
The cartridge has a swinging gate along one entire side of the
|
||||
cartridge. The drive mechanism opens this gate to extract the
|
||||
tape leader. The tape leader has an oval hole in it which the
|
||||
drive uses to <quote>hook</quote> the tape. The take-up spool
|
||||
is located inside the tape drive. All the other tape
|
||||
cartridges listed here (9 track tapes are the only exception)
|
||||
have both the supply and take-up spools located inside the
|
||||
tape cartridge itself.</para>
|
||||
|
||||
<para>Data throughput is approximately 1.5 MB/s, three
|
||||
times the throughput of 4mm, 8mm, or QIC tape drives. Data
|
||||
capacities range from 10 GB to 20 GB for a single
|
||||
drive. Drives are available in both multi-tape changers and
|
||||
multi-tape, multi-drive tape libraries containing from 5 to
|
||||
900 tapes over 1 to 20 drives, providing from 50 GB to
|
||||
9 TB of storage.</para>
|
||||
|
||||
<para>With compression, DLT Type IV format supports up to
|
||||
70 GB capacity.</para>
|
||||
|
||||
<para>Data is recorded onto the tape in tracks parallel to the
|
||||
direction of travel (just like QIC tapes). Two tracks are
|
||||
written at once. Read/write head lifetimes are relatively
|
||||
long; once the tape stops moving, there is no relative motion
|
||||
between the heads and the tape.</para>
|
||||
<para>FreeBSD uses the &man.sa.4; driver, providing
|
||||
<devicename>/dev/sa0</devicename>,
|
||||
<devicename>/dev/nsa0</devicename>, and
|
||||
<devicename>/dev/esa0</devicename>. In normal use, only
|
||||
<devicename>/dev/sa0</devicename> is needed.
|
||||
<devicename>/dev/nsa0</devicename> is the same physical drive
|
||||
as <devicename>/dev/sa0</devicename> but does not rewind the
|
||||
tape after writing a file. This allows writing more than one
|
||||
file to a tape. Using <devicename>/dev/esa0</devicename>
|
||||
ejects the tape after the device is closed, if
|
||||
applicable.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title id="backups-tapebackups-ait">AIT</title>
|
||||
<title id="tapes-mt">Controlling the Tape Drive with
|
||||
&man.mt.1;</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>tape media</primary>
|
||||
<secondary>AIT</secondary>
|
||||
<secondary>mt</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>AIT is a new format from Sony, and can hold up to
|
||||
50 GB (with compression) per tape. The tapes contain
|
||||
memory chips which retain an index of the tape's contents.
|
||||
This index can be rapidly read by the tape drive to determine
|
||||
the position of files on the tape, instead of the several
|
||||
minutes that would be required for other tapes. Software such
|
||||
as <application>SAMS:Alexandria</application> can operate
|
||||
forty or more AIT tape libraries, communicating directly with
|
||||
the tape's memory chip to display the contents on screen,
|
||||
determine what files were backed up to which tape, locate the
|
||||
correct tape, load it, and restore the data from the
|
||||
tape.</para>
|
||||
<para>&man.mt.1; is the &os; utility for controlling other
|
||||
operations of the tape drive, such as seeking through files on
|
||||
a tape or writing tape control marks to the tape.</para>
|
||||
|
||||
<para>Libraries like this cost in the region of $20,000, pricing
|
||||
them a little out of the hobbyist market.</para>
|
||||
<para>For example, the first three files on a tape can be
|
||||
preserved by skipping past them before writing a new
|
||||
file:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mt -f /dev/nsa0 fsf 3</userinput></screen>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Using a New Tape for the First Time</title>
|
||||
<title id="tapes-tar">Using &man.tar.1; to Read and
|
||||
Write Tape Backups</title>
|
||||
|
||||
<para>The first time that you try to read or write a new,
|
||||
completely blank tape, the operation will fail. The console
|
||||
messages should be similar to:</para>
|
||||
<para>An example of writing a single file to tape using
|
||||
&man.tar.1;:</para>
|
||||
|
||||
<screen>sa0(ncr1:4:0): NOT READY asc:4,1
|
||||
sa0(ncr1:4:0): Logical unit is in process of becoming ready</screen>
|
||||
<screen>&prompt.root; <userinput>tar cvf /dev/sa0 <replaceable>file</replaceable></userinput></screen>
|
||||
|
||||
<para>The tape does not contain an Identifier Block (block
|
||||
number 0). All QIC tape drives since the adoption of QIC-525
|
||||
standard write an Identifier Block to the tape. There are two
|
||||
solutions:</para>
|
||||
<para>Recovering files from a &man.tar.1; archive on tape into
|
||||
the current directory:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><command>mt fsf 1</command> causes the tape drive to
|
||||
write an Identifier Block to the tape.</para>
|
||||
</listitem>
|
||||
<screen>&prompt.root; <userinput>tar xvf /dev/sa0</userinput></screen>
|
||||
</sect2>
|
||||
|
||||
<listitem>
|
||||
<para>Use the front panel button to eject the tape.</para>
|
||||
<sect2>
|
||||
<title id="tapes-dumprestore">Using &man.dump.8; and
|
||||
&man.restore.8; to Create and Restore Backups</title>
|
||||
|
||||
<para>Re-insert the tape and <command>dump</command> data to
|
||||
the tape.</para>
|
||||
<para>A simple backup of <filename
|
||||
class="directory">/usr</filename> with &man.dump.8;:</para>
|
||||
|
||||
<para><command>dump</command> will report
|
||||
<errorname>DUMP: End of tape detected</errorname> and the
|
||||
console will show: <errorname>HARDWARE FAILURE info:280
|
||||
asc:80,96</errorname>.</para>
|
||||
<screen>&prompt.root; <userinput>dump -0aL -b64 -f /dev/nsa0 /usr</userinput></screen>
|
||||
|
||||
<para>rewind the tape using:
|
||||
<command>mt rewind</command>.</para>
|
||||
<para>Interactively restoring files from a &man.dump.8; file on
|
||||
tape into the current directory:</para>
|
||||
|
||||
<para>Subsequent tape operations are successful.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<screen>&prompt.root; <userinput>restore -i -f /dev/nsa0</userinput></screen>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title id="tapes-othersofware">Other Tape Software</title>
|
||||
|
||||
<para>Higher-level programs are available to simplify tape
|
||||
backup. The most popular are
|
||||
<application>AMANDA</application> and
|
||||
<application>Bacula</application>. These programs aim to make
|
||||
backup easier and more convenient, or to automate complex
|
||||
backups of multiple machines. The Ports Collection contains
|
||||
both these and other tape utility applications.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
|
@ -2310,6 +2180,7 @@ sa0(ncr1:4:0): Logical unit is in process of becoming ready</screen>
|
|||
|
||||
<sect2 id="floppies-using">
|
||||
<title>Can I Use Floppies for Backing Up My Data?</title>
|
||||
|
||||
<indexterm><primary>backup floppies</primary></indexterm>
|
||||
<indexterm><primary>floppy disks</primary></indexterm>
|
||||
|
||||
|
@ -2369,6 +2240,7 @@ sa0(ncr1:4:0): Logical unit is in process of becoming ready</screen>
|
|||
|
||||
<sect2 id="floppies-compress">
|
||||
<title>Can I Compress My Backups?</title>
|
||||
|
||||
<indexterm>
|
||||
<primary><command>tar</command></primary>
|
||||
</indexterm>
|
||||
|
@ -2600,7 +2472,7 @@ sa0(ncr1:4:0): Logical unit is in process of becoming ready</screen>
|
|||
<example>
|
||||
<title>Using <command>dump</command> over
|
||||
<application>ssh</application> with <envar>RSH</envar>
|
||||
set</title>
|
||||
Set</title>
|
||||
|
||||
<screen>&prompt.root; <userinput>env RSH=/usr/bin/ssh /sbin/dump -0uan -f targetuser@targetmachine.example.com:/dev/sa0 /usr</userinput></screen>
|
||||
</example>
|
||||
|
@ -2608,6 +2480,7 @@ sa0(ncr1:4:0): Logical unit is in process of becoming ready</screen>
|
|||
|
||||
<sect2>
|
||||
<title><command>tar</command></title>
|
||||
|
||||
<indexterm>
|
||||
<primary>backup software</primary>
|
||||
<secondary><command>tar</command></secondary>
|
||||
|
@ -2635,6 +2508,7 @@ sa0(ncr1:4:0): Logical unit is in process of becoming ready</screen>
|
|||
|
||||
<sect2>
|
||||
<title><command>cpio</command></title>
|
||||
|
||||
<indexterm>
|
||||
<primary>backup software</primary>
|
||||
<secondary><command>cpio</command></secondary>
|
||||
|
@ -2698,6 +2572,7 @@ sa0(ncr1:4:0): Logical unit is in process of becoming ready</screen>
|
|||
|
||||
<sect2 id="backups-programs-amanda">
|
||||
<title><application>Amanda</application></title>
|
||||
|
||||
<indexterm>
|
||||
<primary>backup software</primary>
|
||||
<secondary><application>Amanda</application></secondary>
|
||||
|
@ -2764,6 +2639,7 @@ sa0(ncr1:4:0): Logical unit is in process of becoming ready</screen>
|
|||
|
||||
<sect2>
|
||||
<title>Which Backup Program Is Best?</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>LISA</primary>
|
||||
</indexterm>
|
||||
|
@ -2916,6 +2792,7 @@ sa0(ncr1:4:0): Logical unit is in process of becoming ready</screen>
|
|||
</authorgroup>
|
||||
</sect1info>
|
||||
<title>Network, Memory, and File-Backed File Systems</title>
|
||||
|
||||
<indexterm><primary>virtual disks</primary></indexterm>
|
||||
<indexterm>
|
||||
<primary>disks</primary>
|
||||
|
@ -2948,6 +2825,7 @@ sa0(ncr1:4:0): Logical unit is in process of becoming ready</screen>
|
|||
|
||||
<sect2 id="disks-mdconfig">
|
||||
<title>File-Backed File System</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>disks</primary>
|
||||
<secondary>file-backed</secondary>
|
||||
|
@ -3218,6 +3096,7 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on
|
|||
|
||||
<sect1 id="quotas">
|
||||
<title>File System Quotas</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>accounting</primary>
|
||||
<secondary>disk space</secondary>
|
||||
|
@ -3259,6 +3138,7 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on
|
|||
line instead:</para>
|
||||
|
||||
<programlisting>quota_enable="YES"</programlisting>
|
||||
|
||||
<indexterm>
|
||||
<primary>disk quotas</primary>
|
||||
<secondary>checking</secondary>
|
||||
|
@ -3322,6 +3202,7 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on
|
|||
|
||||
<sect2>
|
||||
<title>Setting Quota Limits</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>disk quotas</primary>
|
||||
<secondary>limits</secondary>
|
||||
|
@ -3362,7 +3243,7 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on
|
|||
grace period, which is one week by default. If a user stays
|
||||
over his or her soft limit longer than the grace period, the
|
||||
soft limit will turn into a hard limit and no further
|
||||
allocations will be allowed. When the user drops back below
|
||||
allocations will be allowed. When the user drops back below
|
||||
the soft limit, the grace period will be reset.</para>
|
||||
|
||||
<para>The following is an example of what you might see when you
|
||||
|
@ -3415,6 +3296,7 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on
|
|||
|
||||
<sect2>
|
||||
<title>Checking Quota Limits and Disk Usage</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>disk quotas</primary>
|
||||
<secondary>checking</secondary>
|
||||
|
@ -3473,7 +3355,7 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on
|
|||
|
||||
<para>Now restart <command>inetd</command>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/inetd restart</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service inetd restart</userinput></screen>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
|
@ -3577,9 +3459,9 @@ Password:</screen>
|
|||
<title>Add the New Hard Drive</title>
|
||||
|
||||
<para>Install the new drive to the system as explained in
|
||||
<xref linkend="disks-adding"/>. For the purposes of this
|
||||
example, a new hard drive partition has been added as
|
||||
<filename>/dev/ad4s1c</filename>. The
|
||||
<xref linkend="disks-adding"/>. For the purposes of
|
||||
this example, a new hard drive partition has been added
|
||||
as <filename>/dev/ad4s1c</filename>. The
|
||||
<filename>/dev/ad0s1<replaceable>*</replaceable></filename>
|
||||
devices represent existing standard FreeBSD partitions
|
||||
on the example system.</para>
|
||||
|
@ -3591,7 +3473,8 @@ Password:</screen>
|
|||
</step>
|
||||
|
||||
<step>
|
||||
<title>Create a Directory to Hold gbde Lock Files</title>
|
||||
<title>Create a Directory to Hold <command>gbde</command>
|
||||
Lock Files</title>
|
||||
|
||||
<screen>&prompt.root; <userinput>mkdir /etc/gbde</userinput></screen>
|
||||
|
||||
|
@ -3607,10 +3490,11 @@ Password:</screen>
|
|||
</step>
|
||||
|
||||
<step>
|
||||
<title>Initialize the gbde Partition</title>
|
||||
<title>Initialize the <command>gbde</command>
|
||||
Partition</title>
|
||||
|
||||
<para>A <application>gbde</application> partition must be
|
||||
initialized before it can be used. This initialization
|
||||
initialized before it can be used. This initialization
|
||||
needs to be performed only once:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c.lock</userinput></screen>
|
||||
|
@ -3744,12 +3628,13 @@ Filesystem Size Used Avail Capacity Mounted on
|
|||
|
||||
<para>After each boot, any encrypted file systems must be
|
||||
re-attached to the kernel, checked for errors, and mounted,
|
||||
before the file systems can be used. The required commands
|
||||
before the file systems can be used. The required commands
|
||||
must be executed as user <username>root</username>.</para>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<title>Attach the gbde Partition to the Kernel</title>
|
||||
<title>Attach the <command>gbde</command> Partition to the
|
||||
Kernel</title>
|
||||
|
||||
<screen>&prompt.root; <userinput>gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c.lock</userinput></screen>
|
||||
|
||||
|
@ -3807,7 +3692,8 @@ gbde_lockdir="/etc/gbde"</programlisting>
|
|||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title>Cryptographic Protections Employed by gbde</title>
|
||||
<title>Cryptographic Protections Employed by
|
||||
<command>gbde</command></title>
|
||||
|
||||
<para>&man.gbde.8; encrypts the sector payload using 128-bit
|
||||
AES in CBC mode. Each sector on the disk is encrypted with
|
||||
|
@ -4214,6 +4100,7 @@ Device 1K-blocks Used Avail Capacity
|
|||
</sect1info>
|
||||
|
||||
<title>Highly Available Storage (HAST)</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>HAST</primary>
|
||||
<secondary>high availability</secondary>
|
||||
|
@ -4526,7 +4413,7 @@ Device 1K-blocks Used Avail Capacity
|
|||
local disk, and start the &man.hastd.8; daemon:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>hastctl create test</userinput>
|
||||
&prompt.root; <userinput>/etc/rc.d/hastd onestart</userinput></screen>
|
||||
&prompt.root; <userinput>service hastd onestart</userinput></screen>
|
||||
|
||||
<note>
|
||||
<para>It is <emphasis>not</emphasis> possible to use GEOM
|
||||
|
@ -4612,11 +4499,11 @@ Device 1K-blocks Used Avail Capacity
|
|||
same network segment to share an IP address. Set up
|
||||
<acronym>CARP</acronym> on both nodes of the cluster
|
||||
according to the documentation available in
|
||||
<xref linkend="carp"/>. After setup, each node will have its
|
||||
own <devicename>carp0</devicename> interface with a shared
|
||||
IP address <replaceable>172.16.0.254</replaceable>. The
|
||||
primary <acronym>HAST</acronym> node of the cluster must be
|
||||
the master <acronym>CARP</acronym> node.</para>
|
||||
<xref linkend="carp"/>. After setup, each node will have
|
||||
its own <devicename>carp0</devicename> interface with a
|
||||
shared IP address <replaceable>172.16.0.254</replaceable>.
|
||||
The primary <acronym>HAST</acronym> node of the cluster must
|
||||
be the master <acronym>CARP</acronym> node.</para>
|
||||
|
||||
<para>The <acronym>HAST</acronym> pool created in the previous
|
||||
section is now ready to be exported to the other hosts on
|
||||
|
@ -4658,7 +4545,7 @@ notify 30 {
|
|||
<para>Restart &man.devd.8; on both nodes to put the new
|
||||
configuration into effect:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/devd restart</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service devd restart</userinput></screen>
|
||||
|
||||
<para>When the <devicename>carp0</devicename> interface goes
|
||||
up or down (i.e., the interface state changes), the system
|
||||
|
|
|
@ -34,18 +34,18 @@ that might make this chapter too large.
|
|||
<see>&dtrace;</see>
|
||||
</indexterm>
|
||||
|
||||
<para>&dtrace;, also known as Dynamic Tracing, was developed by
|
||||
&sun; as a tool for locating performance bottlenecks
|
||||
in production and pre-production systems. It is not, in any way,
|
||||
a debugging tool, but a tool for real time system analysis to
|
||||
locate performance and other issues.</para>
|
||||
<para>&dtrace;, also known as Dynamic Tracing, was developed by
|
||||
&sun; as a tool for locating performance bottlenecks in
|
||||
production and pre-production systems. It is not, in any way,
|
||||
a debugging tool, but a tool for real time system analysis to
|
||||
locate performance and other issues.</para>
|
||||
|
||||
<para>&dtrace; is a remarkable profiling tool, with an impressive
|
||||
array of features for diagnosing system issues. It may also be
|
||||
used to run pre-written scripts to take advantage of its
|
||||
capabilities. Users may even author their own utilities using
|
||||
the &dtrace; D Language, allowing them to customize their profiling
|
||||
based on specific needs.</para>
|
||||
<para>&dtrace; is a remarkable profiling tool, with an impressive
|
||||
array of features for diagnosing system issues. It may also
|
||||
be used to run pre-written scripts to take advantage of its
|
||||
capabilities. Users may even author their own utilities using
|
||||
the &dtrace; D Language, allowing them to customize their
|
||||
profiling based on specific needs.</para>
|
||||
|
||||
<para>After reading this chapter, you will know:</para>
|
||||
|
||||
|
@ -55,8 +55,8 @@ that might make this chapter too large.
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Differences between the &solaris; &dtrace; implementation
|
||||
and the one provided by &os;.</para>
|
||||
<para>Differences between the &solaris; &dtrace;
|
||||
implementation and the one provided by &os;.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -136,20 +136,22 @@ that might make this chapter too large.
|
|||
<para>Only <username>root</username> may use &dtrace; on &os;.
|
||||
This is related to security differences, &solaris; has a few
|
||||
low level security checks which do not yet exist in &os;. As
|
||||
such, the <devicename>/dev/dtrace/dtrace</devicename> is strictly
|
||||
limited to <username>root</username> users only.</para>
|
||||
such, the <devicename>/dev/dtrace/dtrace</devicename> is
|
||||
strictly limited to <username>root</username> users only.</para>
|
||||
|
||||
<para>Finally, the &dtrace; software falls under &sun;'s
|
||||
<acronym>CDDL</acronym> license. The <literal>Common Development
|
||||
and Distribution License</literal> comes with &os;, see the
|
||||
<acronym>CDDL</acronym> license. The <literal>Common
|
||||
Development and Distribution License</literal> comes with &os;,
|
||||
see the
|
||||
<filename>/usr/src/cddl/contrib/opensolaris/OPENSOLARIS.LICENSE</filename>
|
||||
or view it online at
|
||||
<ulink url="http://www.opensolaris.org/os/licensing"></ulink>.</para>
|
||||
<ulink
|
||||
url="http://www.opensolaris.org/os/licensing"></ulink>.</para>
|
||||
|
||||
<para>This license means that a &os; kernel with the &dtrace; options
|
||||
is still <acronym>BSD</acronym> licensed; however the
|
||||
<acronym>CDDL</acronym> kicks in when the modules are distributed
|
||||
in binary form, or the binaries are loaded.</para>
|
||||
<para>This license means that a &os; kernel with the &dtrace;
|
||||
options is still <acronym>BSD</acronym> licensed; however
|
||||
the <acronym>CDDL</acronym> kicks in when the modules are
|
||||
distributed in binary form, or the binaries are loaded.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="dtrace-enable">
|
||||
|
@ -167,12 +169,14 @@ options DDB_CTF</programlisting>
|
|||
|
||||
<programlisting>options KDTRACE_FRAME</programlisting>
|
||||
|
||||
<para>This option provides support for the <acronym>FBT</acronym>
|
||||
feature. &dtrace; will work without this option; however, there
|
||||
will be limited support for function boundary tracing.</para>
|
||||
</note>
|
||||
<para>This option provides support for the
|
||||
<acronym>FBT</acronym> feature. &dtrace; will work without
|
||||
this option; however, there will be limited support for
|
||||
function boundary tracing.</para>
|
||||
</note>
|
||||
|
||||
<para>All sources must be rebuilt and installed with <acronym>CTF</acronym> options.
|
||||
<para>All sources must be rebuilt and installed with
|
||||
<acronym>CTF</acronym> options.
|
||||
To accomplish this task, rebuild the &os; sources using:</para>
|
||||
|
||||
<!-- XXXTR: WITH_CTF has been reported to leave a user with a
|
||||
|
@ -184,6 +188,7 @@ options DDB_CTF</programlisting>
|
|||
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
|
||||
<!-- &prompt.root; <userinput>make WITH_CTF=1 buildworld</userinput> -->
|
||||
&prompt.root; <userinput>make WITH_CTF=1 kernel</userinput></screen>
|
||||
|
||||
<!-- &prompt.root; <userinput>make WITH_CTF=1 installworld</userinput>
|
||||
&prompt.root; <userinput>mergemaster -Ui</userinput></screen> -->
|
||||
|
||||
|
@ -191,31 +196,33 @@ options DDB_CTF</programlisting>
|
|||
|
||||
<para>After rebooting and allowing the new kernel to be loaded
|
||||
into memory, support for the Korn shell should be added. This
|
||||
is needed as the &dtrace; toolkit has several utilities written
|
||||
is needed as the &dtrace;Toolkit has several utilities written
|
||||
in <command>ksh</command>. Install the
|
||||
<filename role="package">shells/ksh93</filename>. It is also
|
||||
possible to run these tools under
|
||||
<filename role="package">shells/pdksh</filename> or
|
||||
<filename role="package">shells/mksh</filename>.</para>
|
||||
|
||||
<para>Finally, obtain the current &dtrace; toolkit. The current
|
||||
version is available at
|
||||
<ulink url="http://www.opensolaris.org/os/community/dtrace/dtracetoolkit/"></ulink>.
|
||||
There is an install mechanism included; however, installation
|
||||
is not required to make use of the bundled utilities.</para>
|
||||
<para>Finally, obtain the current &dtrace;Toolkit.
|
||||
If you are running FreeBSD 10, you will find the &dtrace;Toolkit
|
||||
in <filename>/usr/share/dtrace</filename>.
|
||||
Otherwise, you can install the &dtrace;Toolkit using the
|
||||
<filename role="package">sysutils/DTraceToolkit</filename>
|
||||
port.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="dtrace-using">
|
||||
<title>Using &dtrace;</title>
|
||||
|
||||
<para>Before making use of &dtrace; functionality, the &dtrace; device
|
||||
must exist. To load the device, issue the following
|
||||
<para>Before making use of &dtrace; functionality, the &dtrace;
|
||||
device must exist. To load the device, issue the following
|
||||
command:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>kldload dtraceall</userinput></screen>
|
||||
|
||||
<para>&dtrace; support should now be available. To view all probes
|
||||
the administrator may now execute the following command:</para>
|
||||
<para>&dtrace; support should now be available. To view all
|
||||
probes the administrator may now execute the following
|
||||
command:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>dtrace -l | more</userinput></screen>
|
||||
|
||||
|
@ -264,15 +271,16 @@ options DDB_CTF</programlisting>
|
|||
which function is using the most kernel time. Run normally, it
|
||||
will produce output similar to the following:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>./hotkernel</userinput>
|
||||
<screen>&prompt.root; <userinput>cd /usr/share/dtrace/toolkit</userinput>
|
||||
&prompt.root; <userinput>./hotkernel</userinput>
|
||||
Sampling... Hit Ctrl-C to end.</screen>
|
||||
|
||||
<para>The system administrator must use the
|
||||
<keycombo action="simul"><keycap>Ctrl</keycap><keycap>C</keycap>
|
||||
</keycombo> key combination to stop the process. Upon
|
||||
termination, the script will display a list of kernel functions and
|
||||
timing information, sorting the output in increasing order of
|
||||
time:</para>
|
||||
termination, the script will display a list of kernel functions
|
||||
and timing information, sorting the output in increasing order
|
||||
of time:</para>
|
||||
|
||||
<screen>kernel`_thread_lock_flags 2 0.0%
|
||||
0xc1097063 2 0.0%
|
||||
|
@ -306,7 +314,8 @@ kernel`sched_idletd 137 0.3%
|
|||
how we should look that up. -->
|
||||
|
||||
<para>This script will also work with kernel modules. To use this
|
||||
feature, run the script with the <option>-m</option> flag:</para>
|
||||
feature, run the script with the <option>-m</option>
|
||||
flag:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>./hotkernel -m</userinput>
|
||||
Sampling... Hit Ctrl-C to end.
|
||||
|
@ -364,20 +373,22 @@ Elapsed Times for processes csh,
|
|||
sigsuspend 6985124
|
||||
read 3988049784</screen>
|
||||
|
||||
<para>As shown, the <function>read()</function> system call seems to use the
|
||||
most time in nanoseconds with the <function>getpid()</function>
|
||||
system call used the least amount of time.</para>
|
||||
<para>As shown, the <function>read()</function> system call
|
||||
seems to use the most time in nanoseconds with the
|
||||
<function>getpid()</function> system call used the least amount
|
||||
of time.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="dtrace-language">
|
||||
<title>The D Language</title>
|
||||
|
||||
<para>The &dtrace; Toolkit includes many scripts in the special language of
|
||||
&dtrace;. This language is called <quote>the D language</quote> by &sun;
|
||||
documentation, and it is very similar to C++. An in depth
|
||||
discussion of the language is beyond the scope of this document. It is
|
||||
extensively discussed
|
||||
at <ulink url="http://wikis.sun.com/display/DTrace/Documentation"></ulink>.</para>
|
||||
<para>The &dtrace; Toolkit includes many scripts in the special
|
||||
language of &dtrace;. This language is called <quote>the D
|
||||
language</quote> by &sun; documentation, and it is very similar
|
||||
to C++. An in depth discussion of the language is beyond the
|
||||
scope of this document. It is extensively discussed
|
||||
at <ulink
|
||||
url="http://wikis.oracle.com/display/DTrace/Documentation"></ulink>.</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -47,17 +47,18 @@
|
|||
(<acronym>ZFS</acronym>).</para>
|
||||
|
||||
<para>There are different levels of support for the various file
|
||||
systems in &os;. Some will require a kernel module to be loaded,
|
||||
others may require a toolset to be installed. This chapter is
|
||||
designed to help users of &os; access other file systems on their
|
||||
systems, starting with the &sun; Z file
|
||||
systems in &os;. Some will require a kernel module to be
|
||||
loaded, others may require a toolset to be installed. This
|
||||
chapter is designed to help users of &os; access other file
|
||||
systems on their systems, starting with the &sun; Z file
|
||||
system.</para>
|
||||
|
||||
<para>After reading this chapter, you will know:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>The difference between native and supported file systems.</para>
|
||||
<para>The difference between native and supported file
|
||||
systems.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -113,10 +114,11 @@
|
|||
<title>ZFS Tuning</title>
|
||||
|
||||
<para>The <acronym>ZFS</acronym> subsystem utilizes much of
|
||||
the system resources, so some tuning may be required to provide
|
||||
maximum efficiency during every-day use. As an experimental
|
||||
feature in &os; this may change in the near future; however,
|
||||
at this time, the following steps are recommended.</para>
|
||||
the system resources, so some tuning may be required to
|
||||
provide maximum efficiency during every-day use. As an
|
||||
experimental feature in &os; this may change in the near
|
||||
future; however, at this time, the following steps are
|
||||
recommended.</para>
|
||||
|
||||
<sect3>
|
||||
<title>Memory</title>
|
||||
|
@ -127,9 +129,10 @@
|
|||
several other tuning mechanisms in place.</para>
|
||||
|
||||
<para>Some people have had luck using fewer than one gigabyte
|
||||
of memory, but with such a limited amount of physical memory,
|
||||
when the system is under heavy load, it is very plausible
|
||||
that &os; will panic due to memory exhaustion.</para>
|
||||
of memory, but with such a limited amount of physical
|
||||
memory, when the system is under heavy load, it is very
|
||||
plausible that &os; will panic due to memory
|
||||
exhaustion.</para>
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
|
@ -138,11 +141,12 @@
|
|||
<para>It is recommended that unused drivers and options
|
||||
be removed from the kernel configuration file. Since most
|
||||
devices are available as modules, they may be loaded
|
||||
using the <filename>/boot/loader.conf</filename> file.</para>
|
||||
using the <filename>/boot/loader.conf</filename>
|
||||
file.</para>
|
||||
|
||||
<para>Users of the &i386; architecture should add the following
|
||||
option to their kernel configuration file, rebuild their
|
||||
kernel, and reboot:</para>
|
||||
<para>Users of the &i386; architecture should add the
|
||||
following option to their kernel configuration file,
|
||||
rebuild their kernel, and reboot:</para>
|
||||
|
||||
<programlisting>options KVA_PAGES=512</programlisting>
|
||||
|
||||
|
@ -158,11 +162,11 @@
|
|||
<sect3>
|
||||
<title>Loader Tunables</title>
|
||||
|
||||
<para>The <devicename>kmem</devicename> address space should be
|
||||
increased on all &os; architectures. On the test system with
|
||||
one gigabyte of physical memory, success was achieved with the
|
||||
following options which should be placed in
|
||||
the <filename>/boot/loader.conf</filename> file and the system
|
||||
<para>The <devicename>kmem</devicename> address space should
|
||||
be increased on all &os; architectures. On the test system
|
||||
with one gigabyte of physical memory, success was achieved
|
||||
with the following options which should be placed in the
|
||||
<filename>/boot/loader.conf</filename> file and the system
|
||||
restarted:</para>
|
||||
|
||||
<programlisting>vm.kmem_size="330M"
|
||||
|
@ -170,9 +174,9 @@ vm.kmem_size_max="330M"
|
|||
vfs.zfs.arc_max="40M"
|
||||
vfs.zfs.vdev.cache.size="5M"</programlisting>
|
||||
|
||||
<para>For a more detailed list of recommendations for ZFS-related
|
||||
tuning, see
|
||||
<ulink url="http://wiki.freebsd.org/ZFSTuningGuide"></ulink>.</para>
|
||||
<para>For a more detailed list of recommendations for
|
||||
ZFS-related tuning, see <ulink
|
||||
url="http://wiki.freebsd.org/ZFSTuningGuide"></ulink>.</para>
|
||||
</sect3>
|
||||
</sect2>
|
||||
|
||||
|
@ -184,23 +188,25 @@ vfs.zfs.vdev.cache.size="5M"</programlisting>
|
|||
initialization. To set it, issue the following
|
||||
commands:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>echo 'zfs_enable="YES"' >> /etc/rc.conf</userinput>
|
||||
&prompt.root; <userinput>/etc/rc.d/zfs start</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>echo 'zfs_enable="YES"' >> /etc/rc.conf</userinput>
|
||||
&prompt.root; <userinput>service zfs start</userinput></screen>
|
||||
|
||||
<para>The remainder of this document assumes three
|
||||
<acronym>SCSI</acronym> disks are available, and their device names
|
||||
are <devicename><replaceable>da0</replaceable></devicename>,
|
||||
<devicename><replaceable>da1</replaceable></devicename>
|
||||
and <devicename><replaceable>da2</replaceable></devicename>.
|
||||
Users of <acronym>IDE</acronym> hardware may use the
|
||||
<devicename><replaceable>ad</replaceable></devicename>
|
||||
devices in place of <acronym>SCSI</acronym> hardware.</para>
|
||||
<para>The remainder of this document assumes three
|
||||
<acronym>SCSI</acronym> disks are available, and their
|
||||
device names are
|
||||
<devicename><replaceable>da0</replaceable></devicename>,
|
||||
<devicename><replaceable>da1</replaceable></devicename>
|
||||
and <devicename><replaceable>da2</replaceable></devicename>.
|
||||
Users of <acronym>IDE</acronym> hardware may use the
|
||||
<devicename><replaceable>ad</replaceable></devicename>
|
||||
devices in place of <acronym>SCSI</acronym> hardware.</para>
|
||||
|
||||
<sect3>
|
||||
<title>Single Disk Pool</title>
|
||||
|
||||
<para>To create a simple, non-redundant <acronym>ZFS</acronym> pool using a
|
||||
single disk device, use the <command>zpool</command> command:</para>
|
||||
<para>To create a simple, non-redundant <acronym>ZFS</acronym>
|
||||
pool using a single disk device, use the
|
||||
<command>zpool</command> command:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zpool create example /dev/da0</userinput></screen>
|
||||
|
||||
|
@ -239,8 +245,8 @@ drwxr-xr-x 21 root wheel 512 Aug 29 23:12 ..
|
|||
|
||||
<para>The <literal>example/compressed</literal> is now a
|
||||
<acronym>ZFS</acronym> compressed file system. Try copying
|
||||
some large files to it by copying them to
|
||||
<filename class="directory">/example/compressed</filename>.</para>
|
||||
some large files to it by copying them to <filename
|
||||
class="directory">/example/compressed</filename>.</para>
|
||||
|
||||
<para>The compression may now be disabled with:</para>
|
||||
|
||||
|
@ -307,8 +313,8 @@ example/data 17547008 0 17547008 0% /example/data</screen>
|
|||
amount of available space. This is the reason for using
|
||||
<command>df</command> through these examples, to show
|
||||
that the file systems are using only the amount of space
|
||||
they need and will all draw from the same pool.
|
||||
The <acronym>ZFS</acronym> file system does away with concepts
|
||||
they need and will all draw from the same pool. The
|
||||
<acronym>ZFS</acronym> file system does away with concepts
|
||||
such as volumes and partitions, and allows for several file
|
||||
systems to occupy the same pool. Destroy the file systems,
|
||||
and then destroy the pool as they are no longer
|
||||
|
@ -332,28 +338,31 @@ example/data 17547008 0 17547008 0% /example/data</screen>
|
|||
<para>As previously noted, this section will assume that
|
||||
three <acronym>SCSI</acronym> disks exist as devices
|
||||
<devicename>da0</devicename>, <devicename>da1</devicename>
|
||||
and <devicename>da2</devicename> (or <devicename>ad0</devicename>
|
||||
and beyond in case IDE disks are being used). To create a
|
||||
<acronym>RAID</acronym>-Z pool, issue the following
|
||||
command:</para>
|
||||
and <devicename>da2</devicename> (or
|
||||
<devicename>ad0</devicename> and beyond in case IDE disks
|
||||
are being used). To create a <acronym>RAID</acronym>-Z
|
||||
pool, issue the following command:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zpool create storage raidz da0 da1 da2</userinput></screen>
|
||||
|
||||
<note><para>&sun; recommends that the amount of devices used in a
|
||||
<acronym>RAID</acronym>-Z configuration is between three and nine. If your needs
|
||||
call for a single pool to consist of 10 disks or more, consider
|
||||
breaking it up into smaller <acronym>RAID</acronym>-Z groups. If
|
||||
you only have two disks and still require redundancy, consider using
|
||||
a <acronym>ZFS</acronym> mirror instead. See the &man.zpool.8;
|
||||
manual page for more details.</para></note>
|
||||
<note>
|
||||
<para>&sun; recommends that the amount of devices used
|
||||
in a <acronym>RAID</acronym>-Z configuration is between
|
||||
three and nine. If your needs call for a single pool to
|
||||
consist of 10 disks or more, consider breaking it up into
|
||||
smaller <acronym>RAID</acronym>-Z groups. If you only
|
||||
have two disks and still require redundancy, consider
|
||||
using a <acronym>ZFS</acronym> mirror instead. See the
|
||||
&man.zpool.8; manual page for more details.</para>
|
||||
</note>
|
||||
|
||||
<para>The <literal>storage</literal> zpool should have been
|
||||
created. This may be verified by using the &man.mount.8; and
|
||||
&man.df.1; commands as before. More disk devices may have
|
||||
been allocated by adding them to the end of the list above.
|
||||
Make a new file system in the pool, called
|
||||
<literal>home</literal>, where user files will eventually be
|
||||
placed:</para>
|
||||
created. This may be verified by using the &man.mount.8;
|
||||
and &man.df.1; commands as before. More disk devices may
|
||||
have been allocated by adding them to the end of the list
|
||||
above. Make a new file system in the pool, called
|
||||
<literal>home</literal>, where user files will eventually
|
||||
be placed:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs create storage/home</userinput></screen>
|
||||
|
||||
|
@ -529,13 +538,14 @@ errors: No known data errors</screen>
|
|||
<screen>&prompt.root; <userinput>zfs set checksum=off storage/home</userinput></screen>
|
||||
|
||||
<para>This is not a wise idea, however, as checksums take
|
||||
very little storage space and are more useful when enabled. There
|
||||
also appears to be no noticeable costs in having them enabled.
|
||||
While enabled, it is possible to have <acronym>ZFS</acronym>
|
||||
check data integrity using checksum verification. This
|
||||
process is known as <quote>scrubbing.</quote> To verify the
|
||||
data integrity of the <literal>storage</literal> pool, issue
|
||||
the following command:</para>
|
||||
very little storage space and are more useful when enabled.
|
||||
There also appears to be no noticeable costs in having them
|
||||
enabled. While enabled, it is possible to have
|
||||
<acronym>ZFS</acronym> check data integrity using checksum
|
||||
verification. This process is known as
|
||||
<quote>scrubbing.</quote> To verify the data integrity of
|
||||
the <literal>storage</literal> pool, issue the following
|
||||
command:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zpool scrub storage</userinput></screen>
|
||||
|
||||
|
@ -571,178 +581,187 @@ errors: No known data errors</screen>
|
|||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title>ZFS Quotas</title>
|
||||
<title>ZFS Quotas</title>
|
||||
|
||||
<para>ZFS supports different types of quotas; the refquota, the
|
||||
general quota, the user quota, and the group quota. This
|
||||
section will explain the basics of each one, and include some
|
||||
usage instructions.</para>
|
||||
<para>ZFS supports different types of quotas; the
|
||||
refquota, the general quota, the user quota, and
|
||||
the group quota. This section will explain the
|
||||
basics of each one, and include some usage
|
||||
instructions.</para>
|
||||
|
||||
<para>Quotas limit the amount of space that a dataset and its
|
||||
descendants can consume, and enforce a limit on the amount of
|
||||
space used by filesystems and snapshots for the descendants.
|
||||
In terms of users, quotas are useful to limit the amount of
|
||||
space a particular user can use.</para>
|
||||
<para>Quotas limit the amount of space that a dataset
|
||||
and its descendants can consume, and enforce a limit
|
||||
on the amount of space used by filesystems and
|
||||
snapshots for the descendants. In terms of users,
|
||||
quotas are useful to limit the amount of space a
|
||||
particular user can use.</para>
|
||||
|
||||
<note>
|
||||
<para>Quotas cannot be set on volumes, as the
|
||||
<literal>volsize</literal> property acts as an implicit
|
||||
quota.</para>
|
||||
</note>
|
||||
<note>
|
||||
<para>Quotas cannot be set on volumes, as the
|
||||
<literal>volsize</literal> property acts as an
|
||||
implicit quota.</para>
|
||||
</note>
|
||||
|
||||
<para>The refquota,
|
||||
<literal>refquota=<replaceable>size</replaceable></literal>,
|
||||
limits the amount of space a dataset can consume by enforcing
|
||||
a hard limit on the space used. However, this hard limit does
|
||||
not include space used by descendants, such as file systems or
|
||||
snapshots.</para>
|
||||
<para>The refquota,
|
||||
<literal>refquota=<replaceable>size</replaceable></literal>,
|
||||
limits the amount of space a dataset can consume
|
||||
by enforcing a hard limit on the space used. However,
|
||||
this hard limit does not include space used by descendants,
|
||||
such as file systems or snapshots.</para>
|
||||
|
||||
<para>To enforce a general quota of 10 GB for
|
||||
<filename>storage/home/bob</filename>, use the
|
||||
following:</para>
|
||||
<para>To enforce a general quota of 10 GB for
|
||||
<filename>storage/home/bob</filename>, use the
|
||||
following:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs set quota=10G storage/home/bob</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>zfs set quota=10G storage/home/bob</userinput></screen>
|
||||
|
||||
<para>User quotas limit the amount of space that can be used by
|
||||
the specified user. The general format is
|
||||
<literal>userquota@<replaceable>user</replaceable>=<replaceable>size</replaceable></literal>,
|
||||
and the user's name must be in one of the following
|
||||
formats:</para>
|
||||
<para>User quotas limit the amount of space that can
|
||||
be used by the specified user. The general format
|
||||
is
|
||||
<literal>userquota@<replaceable>user</replaceable>=<replaceable>size</replaceable></literal>,
|
||||
and the user's name must be in one of the following
|
||||
formats:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><acronym
|
||||
role="Portable Operating System Interface">POSIX</acronym>
|
||||
compatible name (e.g., <replaceable>joe</replaceable>).</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><acronym
|
||||
role="Portable Operating System Interface">POSIX</acronym>
|
||||
numeric ID (e.g., <replaceable>789</replaceable>).</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><acronym
|
||||
role="System Identifier">SID</acronym>
|
||||
name (e.g.,
|
||||
<replaceable>joe.bloggs@example.com</replaceable>).</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><acronym role="System Identifier">SID</acronym>
|
||||
numeric ID (e.g.,
|
||||
<replaceable>S-1-123-456-789</replaceable>).</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><acronym
|
||||
role="Portable Operating System
|
||||
Interface">POSIX</acronym> compatible name
|
||||
(e.g., <replaceable>joe</replaceable>).</para>
|
||||
</listitem>
|
||||
|
||||
<para>For example, to enforce a quota of 50 GB for a user
|
||||
named <replaceable>joe</replaceable>, use the
|
||||
following:</para>
|
||||
<listitem>
|
||||
<para><acronym
|
||||
role="Portable Operating System
|
||||
Interface">POSIX</acronym>
|
||||
numeric ID (e.g.,
|
||||
<replaceable>789</replaceable>).</para>
|
||||
</listitem>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs set userquota@joe=50G</userinput></screen>
|
||||
<listitem>
|
||||
<para><acronym role="System Identifier">SID</acronym> name
|
||||
(e.g.,
|
||||
<replaceable>joe.bloggs@example.com</replaceable>).</para>
|
||||
</listitem>
|
||||
|
||||
<para>To remove the quota or make sure that one is not
|
||||
set, instead use:</para>
|
||||
<listitem>
|
||||
<para><acronym role="System Identifier">SID</acronym>
|
||||
numeric ID (e.g.,
|
||||
<replaceable>S-1-123-456-789</replaceable>).</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs set userquota@joe=none</userinput></screen>
|
||||
<para>For example, to enforce a quota of 50 GB for a user
|
||||
named <replaceable>joe</replaceable>, use the
|
||||
following:</para>
|
||||
|
||||
<para>User quota properties are not displayed by
|
||||
<command>zfs get all</command>. Non-<username>root</username>
|
||||
users can only see their own quotas unless they have been
|
||||
granted the <literal>userquota</literal> privilege. Users
|
||||
with this privilege are able to view and set everyone's
|
||||
quota.</para>
|
||||
<screen>&prompt.root; <userinput>zfs set userquota@joe=50G</userinput></screen>
|
||||
|
||||
<para>The group quota limits the amount of space that a
|
||||
specified user group can consume. The general format is
|
||||
<literal>groupquota@<replaceable>group</replaceable>=<replaceable>size</replaceable></literal>.</para>
|
||||
<para>To remove the quota or make sure that one is not set,
|
||||
instead use:</para>
|
||||
|
||||
<para>To set the quota for the group
|
||||
<replaceable>firstgroup</replaceable> to 50 GB,
|
||||
use:</para>
|
||||
<screen>&prompt.root; <userinput>zfs set userquota@joe=none</userinput></screen>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs set groupquota@firstgroup=50G</userinput></screen>
|
||||
<para>User quota properties are not displayed by
|
||||
<command>zfs get all</command>.
|
||||
Non-<username>root</username> users can only see their own
|
||||
quotas unless they have been granted the
|
||||
<literal>userquota</literal> privilege. Users with this
|
||||
privilege are able to view and set everyone's quota.</para>
|
||||
|
||||
<para>To remove the quota for the group
|
||||
<replaceable>firstgroup</replaceable>, or make sure that one
|
||||
is not set, instead use:</para>
|
||||
<para>The group quota limits the amount of space that a
|
||||
specified user group can consume. The general format is
|
||||
<literal>groupquota@<replaceable>group</replaceable>=<replaceable>size</replaceable></literal>.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs set groupquota@firstgroup=none</userinput></screen>
|
||||
<para>To set the quota for the group
|
||||
<replaceable>firstgroup</replaceable> to 50 GB,
|
||||
use:</para>
|
||||
|
||||
<para>As with the user quota property,
|
||||
non-<username>root</username> users can only see the quotas
|
||||
associated with the user groups that they belong to, however
|
||||
a <username>root</username> user or a user with the
|
||||
<literal>groupquota</literal> privilege can view and set all
|
||||
quotas for all groups.</para>
|
||||
<screen>&prompt.root; <userinput>zfs set groupquota@firstgroup=50G</userinput></screen>
|
||||
|
||||
<para>The <command>zfs userspace</command> subcommand displays
|
||||
the amount of space consumed by each user on the specified
|
||||
filesystem or snapshot, along with any specified quotas.
|
||||
The <command>zfs groupspace</command> subcommand does the
|
||||
same for groups. For more information about supported
|
||||
options, or only displaying specific options, see
|
||||
&man.zfs.1;.</para>
|
||||
<para>To remove the quota for the group
|
||||
<replaceable>firstgroup</replaceable>, or make sure that one
|
||||
is not set, instead use:</para>
|
||||
|
||||
<para>To list the quota for
|
||||
<filename>storage/home/bob</filename>, if you have the
|
||||
correct privileges or are <username>root</username>,
|
||||
use the following:</para>
|
||||
<screen>&prompt.root; <userinput>zfs set groupquota@firstgroup=none</userinput></screen>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs get quota storage/home/bob</userinput></screen>
|
||||
<para>As with the user quota property,
|
||||
non-<username>root</username> users can only see the quotas
|
||||
associated with the user groups that they belong to, however
|
||||
a <username>root</username> user or a user with the
|
||||
<literal>groupquota</literal> privilege can view and set all
|
||||
quotas for all groups.</para>
|
||||
|
||||
<para>The <command>zfs userspace</command> subcommand displays
|
||||
the amount of space consumed by each user on the specified
|
||||
filesystem or snapshot, along with any specified quotas.
|
||||
The <command>zfs groupspace</command> subcommand does the
|
||||
same for groups. For more information about supported
|
||||
options, or only displaying specific options, see
|
||||
&man.zfs.1;.</para>
|
||||
|
||||
<para>To list the quota for
|
||||
<filename>storage/home/bob</filename>, if you have the
|
||||
correct privileges or are <username>root</username>, use the
|
||||
following:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs get quota storage/home/bob</userinput></screen>
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title>ZFS Reservations</title>
|
||||
<title>ZFS Reservations</title>
|
||||
|
||||
<para>ZFS supports two types of space reservations. This
|
||||
section will explain the basics of each one, and include
|
||||
some usage instructions.</para>
|
||||
<para>ZFS supports two types of space reservations.
|
||||
This section will explain the basics of each one,
|
||||
and include some usage instructions.</para>
|
||||
|
||||
<para>The <literal>reservation</literal> property makes it
|
||||
possible to reserve a minimum amount of space guaranteed for a
|
||||
dataset and its descendants. This means that if a 10 GB
|
||||
reservation is set on <filename>storage/home/bob</filename>,
|
||||
if disk space gets low, at least 10 GB of space is
|
||||
reserved for this dataset. The
|
||||
<literal>refreservation</literal> property sets or indicates
|
||||
the minimum amount of space guaranteed to a dataset excluding
|
||||
descendants, such as snapshots. As an example, if a snapshot
|
||||
was taken of <filename>storage/home/bob</filename>, enough
|
||||
disk space would have to exist outside of the
|
||||
<literal>refreservation</literal> amount for the operation to
|
||||
succeed because descendants of the main data set are not
|
||||
counted by the <literal>refreservation</literal> amount and
|
||||
so do not encroach on the space set.</para>
|
||||
<para>The <literal>reservation</literal> property makes it
|
||||
possible to reserve a minimum amount of space guaranteed
|
||||
for a dataset and its descendants. This means that if a
|
||||
10 GB reservation is set on
|
||||
<filename>storage/home/bob</filename>, if disk
|
||||
space gets low, at least 10 GB of space is reserved
|
||||
for this dataset. The <literal>refreservation</literal>
|
||||
property sets or indicates the minimum amount of space
|
||||
guaranteed to a dataset excluding descendants, such as
|
||||
snapshots. As an example, if a snapshot was taken of
|
||||
<filename>storage/home/bob</filename>, enough disk space
|
||||
would have to exist outside of the
|
||||
<literal>refreservation</literal> amount for the operation
|
||||
to succeed because descendants of the main data set are
|
||||
not counted by the <literal>refreservation</literal>
|
||||
amount and so do not encroach on the space set.</para>
|
||||
|
||||
<para>Reservations of any sort are useful in many situations,
|
||||
for example planning and testing the suitability of disk space
|
||||
allocation in a new system, or ensuring that enough space is
|
||||
available on file systems for system recovery procedures and
|
||||
files.</para>
|
||||
<para>Reservations of any sort are useful in many
|
||||
situations, for example planning and testing the
|
||||
suitability of disk space allocation in a new system, or
|
||||
ensuring that enough space is available on file systems
|
||||
for system recovery procedures and files.</para>
|
||||
|
||||
<para>The general format of the <literal>reservation</literal>
|
||||
property is
|
||||
<literal>reservation=<replaceable>size</replaceable></literal>,
|
||||
so to set a reservation of 10 GB on
|
||||
<filename>storage/home/bob</filename>the below command is
|
||||
used:</para>
|
||||
<para>The general format of the <literal>reservation</literal>
|
||||
property is
|
||||
<literal>reservation=<replaceable>size</replaceable></literal>,
|
||||
so to set a reservation of 10 GB on
|
||||
<filename>storage/home/bob</filename>the below command is
|
||||
used:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs set reservation=10G storage/home/bob</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>zfs set reservation=10G storage/home/bob</userinput></screen>
|
||||
|
||||
<para>To make sure that no reservation is set, or to remove a
|
||||
reservation, instead use:</para>
|
||||
<para>To make sure that no reservation is set, or to remove a
|
||||
reservation, instead use:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs set reservation=none storage/home/bob</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>zfs set reservation=none storage/home/bob</userinput></screen>
|
||||
|
||||
<para>The same principle can be applied to the
|
||||
<literal>refreservation</literal> property for setting a
|
||||
refreservation, with the general format
|
||||
<literal>refreservation=<replaceable>size</replaceable></literal>.</para>
|
||||
<para>The same principle can be applied to the
|
||||
<literal>refreservation</literal> property for setting a
|
||||
refreservation, with the general format
|
||||
<literal>refreservation=<replaceable>size</replaceable></literal>.</para>
|
||||
|
||||
<para>To check if any reservations or refreservations exist on
|
||||
<filename>storage/home/bob</filename>, execute one of the
|
||||
following commands:</para>
|
||||
<para>To check if any reservations or refreservations exist on
|
||||
<filename>storage/home/bob</filename>, execute one of the
|
||||
following commands:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>zfs get reservation storage/home/bob</userinput>
|
||||
<screen>&prompt.root; <userinput>zfs get reservation storage/home/bob</userinput>
|
||||
&prompt.root; <userinput>zfs get refreservation storage/home/bob</userinput></screen>
|
||||
</sect3>
|
||||
</sect2>
|
||||
|
@ -760,12 +779,13 @@ errors: No known data errors</screen>
|
|||
<para>The &man.ext2fs.5; file system kernel implementation was
|
||||
written by Godmar Back, and the driver first appeared in
|
||||
&os; 2.2. In &os; 8 and earlier, the code is licensed under
|
||||
the <acronym>GNU</acronym> Public License, however under &os; 9,
|
||||
the code has been rewritten and it is now licensed under the
|
||||
<acronym>BSD</acronym> license.</para>
|
||||
the <acronym>GNU</acronym> Public License, however under &os;
|
||||
9, the code has been rewritten and it is now licensed under
|
||||
the <acronym>BSD</acronym> license.</para>
|
||||
|
||||
<para>The &man.ext2fs.5; driver will allow the &os; kernel
|
||||
to both read and write to <acronym>ext2</acronym> file systems.</para>
|
||||
to both read and write to <acronym>ext2</acronym> file
|
||||
systems.</para>
|
||||
|
||||
<para>First, load the kernel loadable module:</para>
|
||||
|
||||
|
@ -776,6 +796,7 @@ errors: No known data errors</screen>
|
|||
|
||||
<screen>&prompt.root; <userinput>mount -t ext2fs /dev/ad1s1 /mnt</userinput></screen>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>XFS</title>
|
||||
|
||||
|
@ -801,7 +822,7 @@ errors: No known data errors</screen>
|
|||
<para>To mount a &man.xfs.5; volume located on
|
||||
<filename>/dev/ad1s1</filename>, do the following:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mount -t xfs /dev/as1s1 /mnt</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>mount -t xfs /dev/ad1s1 /mnt</userinput></screen>
|
||||
|
||||
<para>Also useful to note is that the
|
||||
<filename role="package">sysutils/xfsprogs</filename> port
|
||||
|
@ -815,6 +836,7 @@ errors: No known data errors</screen>
|
|||
metadata. This can be used to quickly create a read-only
|
||||
filesystem which can be tested on &os;.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>ReiserFS</title>
|
||||
|
||||
|
@ -826,7 +848,8 @@ errors: No known data errors</screen>
|
|||
access ReiserFS file systems and read their contents, but not
|
||||
write to them, currently.</para>
|
||||
|
||||
<para>First, the kernel-loadable module needs to be loaded:</para>
|
||||
<para>First, the kernel-loadable module needs to be
|
||||
loaded:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>kldload reiserfs</userinput></screen>
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -234,210 +234,598 @@ Done.</screen>
|
|||
<indexterm>
|
||||
<primary>Disk Mirroring</primary>
|
||||
</indexterm>
|
||||
<indexterm>
|
||||
<primary>RAID1</primary>
|
||||
</indexterm>
|
||||
|
||||
<para>Mirroring is a technology used by many corporations and home
|
||||
users to back up data without interruption. When a mirror
|
||||
exists, it simply means that diskB replicates diskA. Or,
|
||||
perhaps diskC+D replicates diskA+B. Regardless of the disk
|
||||
configuration, the important aspect is that information on one
|
||||
disk or partition is being replicated. Later, that information
|
||||
could be more easily restored, backed up without causing service
|
||||
or access interruption, and even be physically stored in a data
|
||||
safe.</para>
|
||||
<para><acronym>RAID1</acronym>, or
|
||||
<firstterm>mirroring</firstterm>, is the technique of writing
|
||||
the same data to more than one disk drive. Mirrors are usually
|
||||
used to guard against data loss due to drive failure. Each
|
||||
drive in a mirror contains an identical copy of the data. When
|
||||
an individual drive fails, the mirror continues to work,
|
||||
providing data from the drives that are still functioning. The
|
||||
computer keeps running, and the administrator has time to
|
||||
replace the failed drive without user interruption.</para>
|
||||
|
||||
<para>To begin, ensure the system has two disk drives of equal
|
||||
size, these exercises assume they are direct access (&man.da.4;)
|
||||
<acronym>SCSI</acronym> disks.</para>
|
||||
<para>Two common situations are illustrated in these examples.
|
||||
The first is creating a mirror out of two new drives and using
|
||||
it as a replacement for an existing single drive. The second
|
||||
example creates a mirror on a single new drive, copies the old
|
||||
drive's data to it, then inserts the old drive into the
|
||||
mirror. While this procedure is slightly more complicated, it
|
||||
only requires one new drive.</para>
|
||||
|
||||
<sect2>
|
||||
<title>Mirroring Primary Disks</title>
|
||||
<para>Traditionally, the two drives in a mirror are identical in
|
||||
model and capacity, but &man.gmirror.8; does not require that.
|
||||
Mirrors created with dissimilar drives will have a capacity
|
||||
equal to that of the smallest drive in the mirror. Extra space
|
||||
on larger drives will be unused. Drives inserted into the
|
||||
mirror later must have at least as much capacity as the smallest
|
||||
drive already in the mirror.</para>
|
||||
|
||||
<para>Assuming &os; has been installed on the first,
|
||||
<devicename>da0</devicename> disk device, &man.gmirror.8;
|
||||
should be told to store its primary data there.</para>
|
||||
<warning>
|
||||
<para>The mirroring procedures shown here are non-destructive,
|
||||
but as with any major disk operation, make a full backup
|
||||
first.</para>
|
||||
</warning>
|
||||
|
||||
<para>Before building the mirror, enable additional debugging
|
||||
information and opening access to the device by setting the
|
||||
<varname>kern.geom.debugflags</varname> &man.sysctl.8; option
|
||||
to the following value:</para>
|
||||
<sect2 id="GEOM-mirror-metadata">
|
||||
<title>Metadata Issues</title>
|
||||
|
||||
<screen>&prompt.root; <userinput>sysctl kern.geom.debugflags=17</userinput></screen>
|
||||
<para>Many disk systems store metadata at the end of each disk.
|
||||
Old metadata should be erased before reusing the disk for a
|
||||
mirror. Most problems are caused by two particular types of
|
||||
leftover metadata: GPT partition tables, and old
|
||||
&man.gmirror.8; metadata from a previous mirror.</para>
|
||||
|
||||
<para>Now create the mirror. Begin the process by storing
|
||||
meta-data information on the primary disk device,
|
||||
effectively creating the
|
||||
<filename class="devicefile">/dev/mirror/gm</filename> device
|
||||
using the following command:</para>
|
||||
<para>GPT metadata can be erased with &man.gpart.8;. This
|
||||
example erases both primary and backup GPT partition tables
|
||||
from disk <devicename>ada8</devicename>:</para>
|
||||
|
||||
<warning>
|
||||
<para>Creating a mirror out of the boot drive may result in
|
||||
data loss if any data has been stored on the last sector of
|
||||
the disk. This risk is reduced if creating the mirror is
|
||||
done promptly after a fresh install of &os;. The following
|
||||
procedure is also incompatible with the default installation
|
||||
settings of &os; 9.<replaceable>X</replaceable> which
|
||||
use the new <acronym>GPT</acronym> partition scheme. GEOM
|
||||
will overwrite <acronym>GPT</acronym> metadata, causing data
|
||||
loss and possibly an unbootable system.</para>
|
||||
</warning>
|
||||
<screen>&prompt.root; <userinput>gpart destroy -F ada8</userinput></screen>
|
||||
|
||||
<screen>&prompt.root; <userinput>gmirror label -vb round-robin gm0 /dev/da0</userinput></screen>
|
||||
<para>&man.gmirror.8; can remove a disk from an active mirror
|
||||
and erase the metadata in one step. Here, the example disk
|
||||
<devicename>ada8</devicename> is removed from the active
|
||||
mirror <devicename>gm4</devicename>:</para>
|
||||
|
||||
<para>The system should respond with:</para>
|
||||
<screen>&prompt.root; <userinput>gmirror remove gm4 ada8</userinput></screen>
|
||||
|
||||
<screen>Metadata value stored on /dev/da0.
|
||||
Done.</screen>
|
||||
<para>If the mirror is not running but old mirror metadata is
|
||||
still on the disk, use <command>gmirror clear</command> to
|
||||
remove it:</para>
|
||||
|
||||
<para>Initialize GEOM, this will load the
|
||||
<filename>/boot/kernel/geom_mirror.ko</filename> kernel
|
||||
module:</para>
|
||||
<screen>&prompt.root; <userinput>gmirror clear ada8</userinput></screen>
|
||||
|
||||
<screen>&prompt.root; <userinput>gmirror load</userinput></screen>
|
||||
|
||||
<note>
|
||||
<para>When this command completes successfully, it creates the
|
||||
<devicename>gm0</devicename> device node under the
|
||||
<filename class="directory">/dev/mirror</filename>
|
||||
directory.</para>
|
||||
</note>
|
||||
|
||||
<para>Enable loading of the <filename>geom_mirror.ko</filename>
|
||||
kernel module during system initialization:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>echo 'geom_mirror_load="YES"' >> /boot/loader.conf</userinput></screen>
|
||||
|
||||
<para>Edit the <filename>/etc/fstab</filename> file, replacing
|
||||
references to the old <devicename>da0</devicename> with the
|
||||
new device nodes of the <devicename>gm0</devicename> mirror
|
||||
device.</para>
|
||||
|
||||
<note>
|
||||
<para>If &man.vi.1; is your preferred editor, the following is
|
||||
an easy way to accomplish this task:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>vi /etc/fstab</userinput></screen>
|
||||
|
||||
<para>In &man.vi.1; back up the current contents of
|
||||
<filename>fstab</filename> by typing
|
||||
<userinput>:w /etc/fstab.bak</userinput>. Then
|
||||
replace all old <devicename>da0</devicename> references
|
||||
with <devicename>gm0</devicename> by typing
|
||||
<userinput>:%s/da/mirror\/gm/g</userinput>.</para>
|
||||
</note>
|
||||
|
||||
<para>The resulting <filename>fstab</filename> file should look
|
||||
similar to the following. It does not matter if the disk
|
||||
drives are <acronym>SCSI</acronym> or <acronym>ATA</acronym>,
|
||||
the <acronym>RAID</acronym> device will be
|
||||
<devicename>gm</devicename> regardless.</para>
|
||||
|
||||
<programlisting># Device Mountpoint FStype Options Dump Pass#
|
||||
/dev/mirror/gm0s1b none swap sw 0 0
|
||||
/dev/mirror/gm0s1a / ufs rw 1 1
|
||||
/dev/mirror/gm0s1d /usr ufs rw 0 0
|
||||
/dev/mirror/gm0s1f /home ufs rw 2 2
|
||||
#/dev/mirror/gm0s2d /store ufs rw 2 2
|
||||
/dev/mirror/gm0s1e /var ufs rw 2 2
|
||||
/dev/acd0 /cdrom cd9660 ro,noauto 0 0</programlisting>
|
||||
|
||||
<para>Reboot the system:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>shutdown -r now</userinput></screen>
|
||||
|
||||
<para>During system initialization, the
|
||||
<devicename>gm0</devicename> should be used in place of the
|
||||
<devicename>da0</devicename> device. Once fully initialized,
|
||||
this may be checked by visually inspecting the output from
|
||||
the <command>mount</command> command:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mount</userinput>
|
||||
Filesystem 1K-blocks Used Avail Capacity Mounted on
|
||||
/dev/mirror/gm0s1a 1012974 224604 707334 24% /
|
||||
devfs 1 1 0 100% /dev
|
||||
/dev/mirror/gm0s1f 45970182 28596 42263972 0% /home
|
||||
/dev/mirror/gm0s1d 6090094 1348356 4254532 24% /usr
|
||||
/dev/mirror/gm0s1e 3045006 2241420 559986 80% /var
|
||||
devfs 1 1 0 100% /var/named/dev</screen>
|
||||
|
||||
<para>The output looks good, as expected. Finally, to begin
|
||||
synchronization, insert the <devicename>da1</devicename> disk
|
||||
into the mirror using the following command:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>gmirror insert gm0 /dev/da1</userinput></screen>
|
||||
|
||||
<para>As the mirror is built the status may be checked using
|
||||
the following command:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>gmirror status</userinput></screen>
|
||||
|
||||
<para>Once the mirror has been built and all current data
|
||||
has been synchronized, the output from the above command
|
||||
should look like:</para>
|
||||
|
||||
<screen> Name Status Components
|
||||
mirror/gm0 COMPLETE da0
|
||||
da1</screen>
|
||||
|
||||
<para>If there are any issues, or the mirror is still
|
||||
completing the build process, the example will show
|
||||
<literal>DEGRADED</literal> in place of
|
||||
<literal>COMPLETE</literal>.</para>
|
||||
<para>&man.gmirror.8; stores one block of metadata at the end of
|
||||
the disk. Because GPT partition schemes also store metadata
|
||||
at the end of the disk, mirroring full GPT disks with
|
||||
&man.gmirror.8; is not recommended. MBR partitioning is used
|
||||
here because it only stores a partition table at the start of
|
||||
the disk and does not conflict with &man.gmirror.8;.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Creating a Mirror with Two New Disks</title>
|
||||
|
||||
<para>In this example, &os; has already been installed on a
|
||||
single disk, <devicename>ada0</devicename>. Two new disks,
|
||||
<devicename>ada1</devicename> and
|
||||
<devicename>ada2</devicename>, have been connected to the
|
||||
system. A new mirror will be created on these two disks and
|
||||
used to replace the old single disk.</para>
|
||||
|
||||
<para>&man.gmirror.8; requires a kernel module,
|
||||
<filename>geom_mirror.ko</filename>, either built into the
|
||||
kernel or loaded at boot- or run-time. Manually load the
|
||||
kernel module now:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>gmirror load</userinput></screen>
|
||||
|
||||
<para>Create the mirror with the two new drives.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>gmirror label -v gm0 /dev/ada1 /dev/ada2</userinput></screen>
|
||||
|
||||
<para><devicename>gm0</devicename> is a user-chosen device name
|
||||
assigned to the new mirror. After the mirror has been
|
||||
started, this device name will appear in the
|
||||
<filename>/dev/mirror/</filename> directory.</para>
|
||||
|
||||
<para>MBR and bsdlabel partition tables can now be created on
|
||||
the mirror with &man.gpart.8;. Here we show a traditional
|
||||
split-filesystem layout, with partitions for
|
||||
<filename>/</filename>, swap, <filename>/var</filename>,
|
||||
<filename>/tmp</filename>, and <filename>/usr</filename>. A
|
||||
single <filename>/</filename> filesystem and a swap partition
|
||||
will also work.</para>
|
||||
|
||||
<para>Partitions on the mirror do not have to be the same size
|
||||
as those on the existing disk, but they must be large enough
|
||||
to hold all the data already present on
|
||||
<devicename>ada0</devicename>.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>gpart create -s MBR mirror/gm0</userinput>
|
||||
&prompt.root; <userinput>gpart add -t freebsd -a 4k mirror/gm0</userinput>
|
||||
&prompt.root; <userinput>gpart show mirror/gm0</userinput>
|
||||
=> 63 156301423 mirror/gm0 MBR (74G)
|
||||
63 63 - free - (31k)
|
||||
126 156301299 1 freebsd (74G)
|
||||
156301425 61 - free - (30k)</screen>
|
||||
|
||||
<screen>&prompt.root; <userinput>gpart create -s BSD mirror/gm0s1</userinput>
|
||||
&prompt.root; <userinput>gpart add -t freebsd-ufs -a 4k -s 2g mirror/gm0s1</userinput>
|
||||
&prompt.root; <userinput>gpart add -t freebsd-swap -a 4k -s 4g mirror/gm0s1</userinput>
|
||||
&prompt.root; <userinput>gpart add -t freebsd-ufs -a 4k -s 2g mirror/gm0s1</userinput>
|
||||
&prompt.root; <userinput>gpart add -t freebsd-ufs -a 4k -s 1g mirror/gm0s1</userinput>
|
||||
&prompt.root; <userinput>gpart add -t freebsd-ufs -a 4k mirror/gm0s1</userinput>
|
||||
&prompt.root; <userinput>gpart show mirror/gm0s1</userinput>
|
||||
=> 0 156301299 mirror/gm0s1 BSD (74G)
|
||||
0 2 - free - (1.0k)
|
||||
2 4194304 1 freebsd-ufs (2.0G)
|
||||
4194306 8388608 2 freebsd-swap (4.0G)
|
||||
12582914 4194304 4 freebsd-ufs (2.0G)
|
||||
16777218 2097152 5 freebsd-ufs (1.0G)
|
||||
18874370 137426928 6 freebsd-ufs (65G)
|
||||
156301298 1 - free - (512B)</screen>
|
||||
|
||||
<para>Make the mirror bootable by installing bootcode in the MBR
|
||||
and bsdlabel and setting the active slice:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>gpart bootcode -b /boot/mbr mirror/gm0</userinput>
|
||||
&prompt.root; <userinput>gpart set -a active -i 1 mirror/gm0</userinput>
|
||||
&prompt.root; <userinput>gpart bootcode -b /boot/boot mirror/gm0s1</userinput></screen>
|
||||
|
||||
<para>Format the filesystems on the new mirror, enabling
|
||||
soft-updates.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1a</userinput>
|
||||
&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1d</userinput>
|
||||
&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1e</userinput>
|
||||
&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1f</userinput></screen>
|
||||
|
||||
<para>Filesystems from the original disk
|
||||
(<devicename>ada0</devicename>) can now be copied onto the
|
||||
mirror with &man.dump.8; and &man.restore.8;.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mount /dev/mirror/gm0s1a /mnt</userinput>
|
||||
&prompt.root; <userinput>dump -C16 -b64 -0aL -f - / | (cd /mnt && restore -rf -)</userinput>
|
||||
&prompt.root; <userinput>mount /dev/mirror/gm0s1d /mnt/var</userinput>
|
||||
&prompt.root; <userinput>mount /dev/mirror/gm0s1e /mnt/tmp</userinput>
|
||||
&prompt.root; <userinput>mount /dev/mirror/gm0s1f /mnt/usr</userinput>
|
||||
&prompt.root; <userinput>dump -C16 -b64 -0aL -f - /var | (cd /mnt/var && restore -rf -)</userinput>
|
||||
&prompt.root; <userinput>dump -C16 -b64 -0aL -f - /tmp | (cd /mnt/tmp && restore -rf -)</userinput>
|
||||
&prompt.root; <userinput>dump -C16 -b64 -0aL -f - /usr | (cd /mnt/usr && restore -rf -)</userinput></screen>
|
||||
|
||||
<para><filename>/mnt/etc/fstab</filename> must be edited to
|
||||
point to the new mirror filesystems:</para>
|
||||
|
||||
<programlisting># Device Mountpoint FStype Options Dump Pass#
|
||||
/dev/mirror/gm0s1a / ufs rw 1 1
|
||||
/dev/mirror/gm0s1b none swap sw 0 0
|
||||
/dev/mirror/gm0s1d /var ufs rw 2 2
|
||||
/dev/mirror/gm0s1e /tmp ufs rw 2 2
|
||||
/dev/mirror/gm0s1f /usr ufs rw 2 2</programlisting>
|
||||
|
||||
<para>If the &man.gmirror.8; kernel module has not been built
|
||||
into the kernel, <filename>/mnt/boot/loader.conf</filename> is
|
||||
edited to load the module at boot:</para>
|
||||
|
||||
<programlisting>geom_mirror_load="YES"</programlisting>
|
||||
|
||||
<para>Reboot the system to test the new mirror and verify that
|
||||
all data has been copied. The BIOS will see the mirror as two
|
||||
individual drives rather than a mirror. Because the drives
|
||||
are identical, it does not matter which is selected to
|
||||
boot.</para>
|
||||
|
||||
<para>See the
|
||||
<link linkend="gmirror-troubleshooting">Troubleshooting</link>
|
||||
section if there are problems booting. Powering down and
|
||||
disconnecting the original <devicename>ada0</devicename> disk
|
||||
will allow it to be kept as an offline backup.</para>
|
||||
|
||||
<para>In use, the mirror will behave just like the original
|
||||
single drive.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Creating a Mirror with an Existing Drive</title>
|
||||
|
||||
<para>In this example, &os; has already been installed on a
|
||||
single disk, <devicename>ada0</devicename>. A new disk,
|
||||
<devicename>ada1</devicename>, has been connected to the
|
||||
system. A one-disk mirror will be created on the new disk,
|
||||
the existing system copied onto it, and then the old disk will be
|
||||
inserted into the mirror. This slightly complex procedure is
|
||||
required because &man.gmirror.8; needs to put a 512-byte block
|
||||
of metadata at the end of each disk, and the existing
|
||||
<devicename>ada0</devicename> has usually had all of its space
|
||||
already allocated.</para>
|
||||
|
||||
<para>Load the &man.gmirror.8; kernel module.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>gmirror load</userinput></screen>
|
||||
|
||||
<para>Check the media size of the original disk with
|
||||
&man.diskinfo.8;.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>diskinfo -v ada0 | head -n3</userinput>
|
||||
/dev/ada0
|
||||
512 # sectorsize
|
||||
1000204821504 # mediasize in bytes (931G)</screen>
|
||||
|
||||
<para>Create a mirror on the new disk. To make certain that the
|
||||
mirror capacity is not any larger than the original drive,
|
||||
&man.gnop.8; is used to create a fake drive of the exact same
|
||||
size. This drive does not store any data, but is used only to
|
||||
limit the size of the mirror. When &man.gmirror.8; creates
|
||||
the mirror, it will restrict the capacity to the size of
|
||||
<devicename>gzero.nop</devicename> even if the new drive
|
||||
(<devicename>ada1</devicename>) has more space. Note that the
|
||||
<replaceable>1000204821504</replaceable> in the second line
|
||||
should be equal to <devicename>ada0</devicename>'s media size
|
||||
as shown by &man.diskinfo.8; above.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>geom zero load</userinput>
|
||||
&prompt.root; <userinput>gnop create -s 1000204821504 gzero</userinput>
|
||||
&prompt.root; <userinput>gmirror label -v gm0 gzero.nop ada1</userinput>
|
||||
&prompt.root; <userinput>gmirror forget gm0</userinput></screen>
|
||||
|
||||
<para><devicename>gzero.nop</devicename> does not store any
|
||||
data, so the mirror does not see it as connected. The mirror
|
||||
is told to <quote>forget</quote> unconnected components,
|
||||
removing references to <devicename>gzero.nop</devicename>.
|
||||
The result is a mirror device containing only a single disk,
|
||||
<devicename>ada1</devicename>.</para>
|
||||
|
||||
<para>After creating <devicename>gm0</devicename>, view the
|
||||
partition table on <devicename>ada0</devicename>.</para>
|
||||
|
||||
<para>This output is from a 1 TB drive. If there is some
|
||||
unallocated space at the end of the drive, the contents may be
|
||||
copied directly from <devicename>ada0</devicename> to the new
|
||||
mirror.</para>
|
||||
|
||||
<para>However, if the output shows that all of the space on the
|
||||
disk is allocated like the following listing, there is no
|
||||
space available for the 512-byte &man.gmirror.8; metadata at
|
||||
the end of the disk.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>gpart show ada0</userinput>
|
||||
=> 63 1953525105 ada0 MBR (931G)
|
||||
63 1953525105 1 freebsd [active] (931G)</screen>
|
||||
|
||||
<para>In this case, the partition table must be edited to reduce
|
||||
the capacity by one sector on
|
||||
<devicename>mirror/gm0</devicename>. The procedure will
|
||||
be explained later.</para>
|
||||
|
||||
<para>In either case, partition tables on the primary disk
|
||||
should be copied first. It can be done by using &man.gpart.8;
|
||||
<command>backup</command> and <command>restore</command>
|
||||
subcommands.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>gpart backup ada0 > table.ada0</userinput>
|
||||
&prompt.root; <userinput>gpart backup ada0s1 > table.ada0s1</userinput></screen>
|
||||
|
||||
<para>These commands create two files,
|
||||
<filename>table.ada0</filename> and
|
||||
<filename>table.ada0s1</filename>. This example is from a
|
||||
1 TB drive:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>cat table.ada0</userinput>
|
||||
MBR 4
|
||||
1 freebsd 63 1953525105 [active]</screen>
|
||||
|
||||
<screen>&prompt.root; <userinput>cat table.ada0s1</userinput>
|
||||
BSD 8
|
||||
1 freebsd-ufs 0 4194304
|
||||
2 freebsd-swap 4194304 33554432
|
||||
4 freebsd-ufs 37748736 50331648
|
||||
5 freebsd-ufs 88080384 41943040
|
||||
6 freebsd-ufs 130023424 838860800
|
||||
7 freebsd-ufs 968884224 984640881</screen>
|
||||
|
||||
<para>If the whole disk was used in the output of &man.gpart.8;
|
||||
<command>show</command>, the capacity in these partition
|
||||
tables must be reduced by one sector. Edit the two files,
|
||||
reducing the size of both the slice and last partition by one.
|
||||
These are the last numbers in each listing.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>cat table.ada0</userinput>
|
||||
MBR 4
|
||||
1 freebsd 63 <emphasis>1953525104</emphasis> [active]</screen>
|
||||
|
||||
<screen>&prompt.root; <userinput>cat table.ada0s1</userinput>
|
||||
BSD 8
|
||||
1 freebsd-ufs 0 4194304
|
||||
2 freebsd-swap 4194304 33554432
|
||||
4 freebsd-ufs 37748736 50331648
|
||||
5 freebsd-ufs 88080384 41943040
|
||||
6 freebsd-ufs 130023424 838860800
|
||||
7 freebsd-ufs 968884224 <emphasis>984640880</emphasis></screen>
|
||||
|
||||
<para>If at least one sector was unallocated at the end of the
|
||||
disk, these two files can be used without modification.</para>
|
||||
|
||||
<para>Now restore the partition table into
|
||||
<devicename>mirror/gm0</devicename>.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>gpart restore mirror/gm0 < table.ada0</userinput>
|
||||
&prompt.root; <userinput>gpart restore mirror/gm0s1 < table.ada0s1</userinput></screen>
|
||||
|
||||
<para>Check the partition table with the &man.gpart.8;
|
||||
<command>show</command>. This example has
|
||||
<devicename>gm0s1a</devicename> for <filename>/</filename>,
|
||||
<devicename>gm0s1d</devicename> for <filename>/var</filename>,
|
||||
<devicename>gm0s1e</devicename> for <filename>/usr</filename>,
|
||||
<devicename>gm0s1f</devicename> for
|
||||
<filename>/data1</filename>, and
|
||||
<devicename>gm0s1g</devicename> for
|
||||
<filename>/data2</filename>.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>gpart show mirror/gm0</userinput>
|
||||
=> 63 1953525104 mirror/gm0 MBR (931G)
|
||||
63 1953525042 1 freebsd [active] (931G)
|
||||
1953525105 62 - free - (31k)
|
||||
|
||||
&prompt.root; <userinput>gpart show mirror/gm0s1</userinput>
|
||||
=> 0 1953525042 mirror/gm0s1 BSD (931G)
|
||||
0 2097152 1 freebsd-ufs (1.0G)
|
||||
2097152 16777216 2 freebsd-swap (8.0G)
|
||||
18874368 41943040 4 freebsd-ufs (20G)
|
||||
60817408 20971520 5 freebsd-ufs (10G)
|
||||
81788928 629145600 6 freebsd-ufs (300G)
|
||||
710934528 1242590514 7 freebsd-ufs (592G)
|
||||
1953525042 63 - free - (31k)</screen>
|
||||
|
||||
<para>Both the slice and the last partition should have some
|
||||
free space at the end of each disk.</para>
|
||||
|
||||
<para>Create filesystems on these new partitions. The
|
||||
number of partitions will vary, matching the partitions on the
|
||||
original disk, <devicename>ada0</devicename>.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1a</userinput>
|
||||
&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1d</userinput>
|
||||
&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1e</userinput>
|
||||
&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1f</userinput>
|
||||
&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1g</userinput></screen>
|
||||
|
||||
<para>Make the mirror bootable by installing bootcode in the MBR
|
||||
and bsdlabel and setting the active slice:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>gpart bootcode -b /boot/mbr mirror/gm0</userinput>
|
||||
&prompt.root; <userinput>gpart set -a active -i 1 mirror/gm0</userinput>
|
||||
&prompt.root; <userinput>gpart bootcode -b /boot/boot mirror/gm0s1</userinput></screen>
|
||||
|
||||
<para>Adjust <filename>/etc/fstab</filename> to use the
|
||||
new partitions on the mirror. Back up this file first by
|
||||
copying it to <filename>/etc/fstab.orig</filename>.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>cp /etc/fstab /etc/fstab.orig</userinput></screen>
|
||||
|
||||
<para>Edit <filename>/etc/fstab</filename>, replacing
|
||||
<devicename>/dev/ada0</devicename> with
|
||||
<devicename>mirror/gm0</devicename>.</para>
|
||||
|
||||
<programlisting># Device Mountpoint FStype Options Dump Pass#
|
||||
/dev/mirror/gm0s1a / ufs rw 1 1
|
||||
/dev/mirror/gm0s1b none swap sw 0 0
|
||||
/dev/mirror/gm0s1d /var ufs rw 2 2
|
||||
/dev/mirror/gm0s1e /usr ufs rw 2 2
|
||||
/dev/mirror/gm0s1f /data1 ufs rw 2 2
|
||||
/dev/mirror/gm0s1g /data2 ufs rw 2 2</programlisting>
|
||||
|
||||
<para>If the &man.gmirror.8; kernel module has not been built
|
||||
into the kernel, edit <filename>/boot/loader.conf</filename>
|
||||
to load it:</para>
|
||||
|
||||
<programlisting>geom_mirror_load="YES"</programlisting>
|
||||
|
||||
<para>Filesystems from the original disk can now be copied onto
|
||||
the mirror with &man.dump.8; and &man.restore.8;. Note that
|
||||
it may take some time to create a snapshot for each filesystem
|
||||
dumped with <command>dump -L</command>.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mount /dev/mirror/gm0s1a /mnt</userinput>
|
||||
&prompt.root; <userinput>dump -C16 -b64 -0aL -f - / | (cd /mnt && restore -rf -)</userinput>
|
||||
&prompt.root; <userinput>mount /dev/mirror/gm0s1d /mnt/var</userinput>
|
||||
&prompt.root; <userinput>mount /dev/mirror/gm0s1e /mnt/usr</userinput>
|
||||
&prompt.root; <userinput>mount /dev/mirror/gm0s1f /mnt/data1</userinput>
|
||||
&prompt.root; <userinput>mount /dev/mirror/gm0s1g /mnt/data2</userinput>
|
||||
&prompt.root; <userinput>dump -C16 -b64 -0aL -f - /usr | (cd /mnt/usr && restore -rf -)</userinput>
|
||||
&prompt.root; <userinput>dump -C16 -b64 -0aL -f - /var | (cd /mnt/var && restore -rf -)</userinput>
|
||||
&prompt.root; <userinput>dump -C16 -b64 -0aL -f - /data1 | (cd /mnt/data1 && restore -rf -)</userinput>
|
||||
&prompt.root; <userinput>dump -C16 -b64 -0aL -f - /data2 | (cd /mnt/data2 && restore -rf -)</userinput></screen>
|
||||
|
||||
<para>Restart the system, booting from
|
||||
<devicename>ada1</devicename>. If everything is working, the
|
||||
system will boot from <devicename>mirror/gm0</devicename>,
|
||||
which now contains the same data as
|
||||
<devicename>ada0</devicename> had previously. See the
|
||||
<link linkend="gmirror-troubleshooting">Troubleshooting</link>
|
||||
section if there are problems booting.</para>
|
||||
|
||||
<para>At this point, the mirror still consists of only the
|
||||
single <devicename>ada1</devicename> disk.</para>
|
||||
|
||||
<para>After booting from <devicename>mirror/gm0</devicename>
|
||||
successfully, the final step is inserting
|
||||
<devicename>ada0</devicename> into the mirror.</para>
|
||||
|
||||
<important>
|
||||
<para>When <devicename>ada0</devicename> is inserted into the
|
||||
mirror, its former contents will be overwritten by data on
|
||||
the mirror. Make certain that
|
||||
<devicename>mirror/gm0</devicename> has the same contents as
|
||||
<devicename>ada0</devicename> before adding
|
||||
<devicename>ada0</devicename> to the mirror. If there is
|
||||
something wrong with the contents copied by &man.dump.8; and
|
||||
&man.restore.8;, revert <filename>/etc/fstab</filename> to
|
||||
mount the filesystems on <devicename>ada0</devicename>,
|
||||
reboot, and try the whole procedure again.</para>
|
||||
</important>
|
||||
|
||||
<screen>&prompt.root; <userinput>gmirror insert gm0 ada0</userinput>
|
||||
GEOM_MIRROR: Device gm0: rebuilding provider ada0</screen>
|
||||
|
||||
<para>Synchronization between the two disks will start
|
||||
immediately. &man.gmirror.8; <command>status</command>
|
||||
shows the progress.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>gmirror status</userinput>
|
||||
Name Status Components
|
||||
mirror/gm0 DEGRADED ada1 (ACTIVE)
|
||||
ada0 (SYNCHRONIZING, 64%)</screen>
|
||||
|
||||
<para>After a while, synchronization will finish.</para>
|
||||
|
||||
<screen>GEOM_MIRROR: Device gm0: rebuilding provider ada0 finished.
|
||||
&prompt.root; <userinput>gmirror status</userinput>
|
||||
Name Status Components
|
||||
mirror/gm0 COMPLETE ada1 (ACTIVE)
|
||||
ada0 (ACTIVE)</screen>
|
||||
|
||||
<para><devicename>mirror/gm0</devicename> now consists of
|
||||
the two disks <devicename>ada0</devicename> and
|
||||
<devicename>ada1</devicename>, and the contents are
|
||||
automatically synchronized with each other. In use,
|
||||
<devicename>mirror/gm0</devicename> will behave just like the
|
||||
original single drive.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="gmirror-troubleshooting">
|
||||
<title>Troubleshooting</title>
|
||||
|
||||
<sect3>
|
||||
<title>System Refuses to Boot</title>
|
||||
<title>Problems with Booting</title>
|
||||
|
||||
<para>If the system boots up to a prompt similar to:</para>
|
||||
<sect4>
|
||||
<title>BIOS Settings</title>
|
||||
|
||||
<programlisting>ffs_mountroot: can't find rootvp
|
||||
Root mount failed: 6
|
||||
mountroot></programlisting>
|
||||
<para>BIOS settings may have to be changed to boot from one
|
||||
of the new mirrored drives. Either mirror drive can be
|
||||
used for booting. As components of a mirror, they contain
|
||||
identical data.</para>
|
||||
</sect4>
|
||||
|
||||
<para>Reboot the machine using the power or reset button. At
|
||||
the boot menu, select option six (6). This will drop the
|
||||
system to a &man.loader.8; prompt. Load the kernel module
|
||||
manually:</para>
|
||||
<sect4>
|
||||
<title>Boot Problems</title>
|
||||
|
||||
<screen>OK? <userinput>load geom_mirror</userinput>
|
||||
OK? <userinput>boot</userinput></screen>
|
||||
<para>If the boot stopped with this message, something is
|
||||
wrong with the mirror device:</para>
|
||||
|
||||
<para>If this works then for whatever reason the module was
|
||||
not being loaded properly. Check whether the relevant entry
|
||||
in <filename>/boot/loader.conf</filename> is correct. If
|
||||
the problem persists, place:</para>
|
||||
<screen>Mounting from ufs:/dev/mirror/gm0s1a failed with error 19.
|
||||
|
||||
<programlisting>options GEOM_MIRROR</programlisting>
|
||||
Loader variables:
|
||||
vfs.root.mountfrom=ufs:/dev/mirror/gm0s1a
|
||||
vfs.root.mountfrom.options=rw
|
||||
|
||||
<para>in the kernel configuration file, rebuild and reinstall.
|
||||
That should remedy this issue.</para>
|
||||
Manual root filesystem specification:
|
||||
<fstype>:<device> [options]
|
||||
Mount <device> using filesystem <fstype>
|
||||
and with the specified (optional) option list.
|
||||
|
||||
eg. ufs:/dev/da0s1a
|
||||
zfs:tank
|
||||
cd9660:/dev/acd0 ro
|
||||
(which is equivalent to: mount -t cd9660 -o ro /dev/acd0 /)
|
||||
|
||||
? List valid disk boot devices
|
||||
. Yield 1 second (for background tasks)
|
||||
<empty line> Abort manual input
|
||||
|
||||
mountroot></screen>
|
||||
|
||||
<para>Forgetting to load the
|
||||
<filename>geom_mirror</filename> module in
|
||||
<filename>/boot/loader.conf</filename> can cause this
|
||||
problem. To fix it, boot from a &os;-9 or later CD or USB
|
||||
stick and choose <literal>Shell</literal> at the first
|
||||
prompt. Then load the mirror module and mount the mirror
|
||||
device:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>gmirror load</userinput>
|
||||
&prompt.root; <userinput>mount /dev/mirror/gm0s1a /mnt</userinput></screen>
|
||||
|
||||
<para>Edit <filename>/mnt/boot/loader.conf</filename>,
|
||||
adding a line to load the mirror module:</para>
|
||||
|
||||
<programlisting>geom_mirror_load="YES"</programlisting>
|
||||
|
||||
<para>Save the file and reboot.</para>
|
||||
|
||||
<para>Other problems that cause <literal>error 19</literal>
|
||||
require more effort to fix. Enter
|
||||
<literal>ufs:/dev/ada0s1a</literal> at the prompt.
|
||||
Although the system should boot from
|
||||
<devicename>ada0</devicename>, another prompt to select a
|
||||
shell appears because <filename>/etc/fstab</filename> is
|
||||
incorrect. Press the Enter key at the prompt. Undo the
|
||||
modifications so far by reverting
|
||||
<filename>/etc/fstab</filename>, mounting filesystems from
|
||||
the original disk (<devicename>ada0</devicename>) instead
|
||||
of the mirror. Reboot the system and try the procedure
|
||||
again.</para>
|
||||
|
||||
<screen>Enter full pathname of shell or RETURN for /bin/sh:
|
||||
&prompt.root; <userinput>cp /etc/fstab.orig /etc/fstab</userinput>
|
||||
&prompt.root; <userinput>reboot</userinput></screen>
|
||||
</sect4>
|
||||
</sect3>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Recovering from Disk Failure</title>
|
||||
|
||||
<para>The wonderful part about disk mirroring is that when a
|
||||
disk fails, it may be replaced, presumably, without losing
|
||||
<para>The wonderful part about disk mirroring is that an
|
||||
individual disk can fail without causing the mirror to lose
|
||||
any data.</para>
|
||||
|
||||
<para>Considering the previous <acronym>RAID</acronym>1
|
||||
configuration, assume that <devicename>da1</devicename>
|
||||
has failed and now needs to be replaced. To replace it,
|
||||
determine which disk has failed and power down the system.
|
||||
At this point, the disk may be swapped with a new one and
|
||||
the system brought back up. After the system has restarted,
|
||||
the following commands may be used to replace the disk:</para>
|
||||
<para><devicename>ada0</devicename> is one of two drives making
|
||||
up the mirror in the previous example. If
|
||||
<devicename>ada0</devicename> fails, the mirror will continue
|
||||
to work, providing data from the remaining working drive,
|
||||
<devicename>ada1</devicename>.</para>
|
||||
|
||||
<para>To replace the failed drive, the computer is shut down and
|
||||
the failed drive is physically replaced with a new drive of
|
||||
equal or greater capacity. Manufacturers use somewhat
|
||||
arbitrary values when rating drives in gigabytes, and the
|
||||
only way to really be sure is to compare the total count of
|
||||
sectors shown by <command>diskinfo -v</command>. A drive with
|
||||
larger capacity than the mirror will work, although the extra
|
||||
space on the new drive will not be used.</para>
|
||||
|
||||
<para>After the computer is powered back up, the mirror will be
|
||||
running in a <quote>degraded</quote> mode with only one drive.
|
||||
The mirror is told to forget drives that are not currently
|
||||
connected:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>gmirror forget gm0</userinput></screen>
|
||||
|
||||
<screen>&prompt.root; <userinput>gmirror insert gm0 /dev/da1</userinput></screen>
|
||||
<para>Any old metadata should be <link
|
||||
linkend="GEOM-mirror-metadata">cleared from the replacement
|
||||
disk</link>. Then the disk, <devicename>ada4</devicename>
|
||||
for this example, is inserted into the mirror:</para>
|
||||
|
||||
<para>Use the <command>gmirror</command> <option>status</option>
|
||||
command to monitor the progress of the rebuild. It is that
|
||||
simple.</para>
|
||||
<screen>&prompt.root; <userinput>gmirror insert gm0 /dev/ada4</userinput></screen>
|
||||
|
||||
<para>Resynchronization begins when the new drive is inserted
|
||||
into the mirror. This process of copying mirror data to a new
|
||||
drive can take a while. Performance of the mirror will be
|
||||
greatly reduced during the copy, so inserting new drives is
|
||||
best done when there is low demand on the computer.</para>
|
||||
|
||||
<para>Progress can be monitored with <command>gmirror
|
||||
status</command>, which shows drives that are being
|
||||
synchronized and the percentage of completion. During
|
||||
resynchronization, the status will be
|
||||
<computeroutput>DEGRADED</computeroutput>, changing to
|
||||
<computeroutput>COMPLETE</computeroutput> when the process is
|
||||
finished.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
|
@ -467,8 +855,8 @@ OK? <userinput>boot</userinput></screen>
|
|||
</authorgroup>
|
||||
</sect1info>
|
||||
|
||||
<title><acronym>RAID</acronym>3 - Byte-level Striping with Dedicated
|
||||
Parity</title>
|
||||
<title><acronym>RAID</acronym>3 - Byte-level Striping with
|
||||
Dedicated Parity</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>GEOM</primary>
|
||||
|
@ -486,10 +874,10 @@ OK? <userinput>boot</userinput></screen>
|
|||
<acronym>RAID</acronym>3 implementation will access all disks in
|
||||
the array. Performance can be enhanced by using multiple
|
||||
disk controllers. The <acronym>RAID</acronym>3 array provides a
|
||||
fault tolerance of 1 drive, while providing a capacity of 1 - 1/n
|
||||
times the total capacity of all drives in the array, where n is the
|
||||
number of hard drives in the array. Such a configuration is
|
||||
mostly suitable for storing data of larger sizes, e.g.
|
||||
fault tolerance of 1 drive, while providing a capacity of 1 -
|
||||
1/n times the total capacity of all drives in the array, where n
|
||||
is the number of hard drives in the array. Such a configuration
|
||||
is mostly suitable for storing data of larger sizes, e.g.,
|
||||
multimedia files.</para>
|
||||
|
||||
<para>At least 3 physical hard drives are required to build a
|
||||
|
@ -500,7 +888,8 @@ OK? <userinput>boot</userinput></screen>
|
|||
equal to 3, 5, 9, 17, etc. (2^n + 1).</para>
|
||||
|
||||
<sect2>
|
||||
<title>Creating a Dedicated <acronym>RAID</acronym>3 Array</title>
|
||||
<title>Creating a Dedicated <acronym>RAID</acronym>3
|
||||
Array</title>
|
||||
|
||||
<para>In &os;, support for <acronym>RAID</acronym>3 is
|
||||
implemented by the &man.graid3.8; <acronym>GEOM</acronym>
|
||||
|
@ -542,7 +931,8 @@ OK? <userinput>boot</userinput></screen>
|
|||
example uses three unpartitioned
|
||||
<acronym>ATA</acronym> drives:
|
||||
<devicename><replaceable>ada1</replaceable></devicename>
|
||||
and <devicename><replaceable>ada2</replaceable></devicename>
|
||||
and
|
||||
<devicename><replaceable>ada2</replaceable></devicename>
|
||||
for data, and
|
||||
<devicename><replaceable>ada3</replaceable></devicename>
|
||||
for parity.</para>
|
||||
|
@ -585,8 +975,8 @@ Done.</screen>
|
|||
<step>
|
||||
<para>The <filename>geom_raid3.ko</filename> module must be
|
||||
loaded before the array can be mounted. To automatically
|
||||
load the kernel module during the system initialization, add
|
||||
the following line to the
|
||||
load the kernel module during the system initialization,
|
||||
add the following line to the
|
||||
<filename>/boot/loader.conf</filename> file:</para>
|
||||
|
||||
<programlisting>geom_raid3_load="YES"</programlisting>
|
||||
|
|
1
en_US.ISO8859-1/books/handbook/index.xml
Normal file
1
en_US.ISO8859-1/books/handbook/index.xml
Normal file
|
@ -0,0 +1 @@
|
|||
<index/>
|
|
@ -4357,6 +4357,7 @@ Please press any key to reboot.</screen>
|
|||
<step>
|
||||
<title>Enabling the Installation USB Stick to Boot into a
|
||||
Serial Console</title>
|
||||
|
||||
<indexterm>
|
||||
<primary><command>mount</command></primary>
|
||||
</indexterm>
|
||||
|
@ -4395,6 +4396,7 @@ Please press any key to reboot.</screen>
|
|||
<step>
|
||||
<title>Enabling the Installation CD to Boot into a
|
||||
Serial Console</title>
|
||||
|
||||
<indexterm>
|
||||
<primary><command>mount</command></primary>
|
||||
</indexterm>
|
||||
|
@ -4461,9 +4463,11 @@ Please press any key to reboot.</screen>
|
|||
|
||||
<step>
|
||||
<title>Connecting to Your Headless Machine</title>
|
||||
|
||||
<indexterm>
|
||||
<primary><command>cu</command></primary>
|
||||
</indexterm>
|
||||
|
||||
<para>Now you have to connect to that machine with
|
||||
&man.cu.1;:</para>
|
||||
|
||||
|
|
|
@ -54,6 +54,7 @@
|
|||
|
||||
<sect1 id="nutshell">
|
||||
<title>Welcome to &os;!</title>
|
||||
|
||||
<indexterm><primary>4.4BSD-Lite</primary></indexterm>
|
||||
|
||||
<para>&os; is a 4.4BSD-Lite based operating system for
|
||||
|
@ -683,7 +684,8 @@
|
|||
be additional releases from the RELENG_8 branch.</para>
|
||||
|
||||
<para>The RELENG_9 branch was created in September 2011. The first
|
||||
release of this branch was &rel.current;-RELEASE, which came
|
||||
release of this branch was 9.0-RELEASE, which came
|
||||
out in January 2012. The most recent &rel.current;-RELEASE came
|
||||
out in &rel.current.date;. There will be additional releases
|
||||
from the RELENG_9 branch.</para>
|
||||
|
||||
|
@ -783,7 +785,10 @@
|
|||
<listitem>
|
||||
<indexterm>
|
||||
<primary>CVS</primary>
|
||||
<secondary>repository</secondary>
|
||||
</indexterm>
|
||||
|
||||
<indexterm>
|
||||
<primary>CVS Repository</primary>
|
||||
</indexterm>
|
||||
|
||||
<indexterm>
|
||||
|
@ -792,13 +797,16 @@
|
|||
</indexterm>
|
||||
|
||||
<indexterm>
|
||||
<primary>SVN</primary>
|
||||
<secondary>repository</secondary>
|
||||
<primary>Subversion</primary>
|
||||
</indexterm>
|
||||
|
||||
<indexterm>
|
||||
<primary>Subversion</primary>
|
||||
<see>SVN</see>
|
||||
<primary>Subversion Repository</primary>
|
||||
</indexterm>
|
||||
|
||||
<indexterm>
|
||||
<primary>SVN</primary>
|
||||
<see>Subversion</see>
|
||||
</indexterm>
|
||||
|
||||
<para>For several years, the central source tree for &os;
|
||||
|
|
15
en_US.ISO8859-1/books/handbook/jails/Makefile
Normal file
15
en_US.ISO8859-1/books/handbook/jails/Makefile
Normal file
|
@ -0,0 +1,15 @@
|
|||
#
|
||||
# Build the Handbook with just the content from this chapter.
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
CHAPTERS= jails/chapter.xml
|
||||
|
||||
VPATH= ..
|
||||
|
||||
MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX}
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/../../../..
|
||||
|
||||
.include "../Makefile"
|
|
@ -370,12 +370,12 @@ jail_<replaceable>www</replaceable>_devfs_ruleset="<replaceable>www_ruleset</rep
|
|||
</step>
|
||||
</procedure>
|
||||
|
||||
<para>The <filename>/etc/rc.d/jail</filename> script can be used to
|
||||
<para>&man.service.8; can be used to
|
||||
start or stop a jail by hand, if an entry for it exists in
|
||||
<filename>rc.conf</filename>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/jail start <replaceable>www</replaceable></userinput>
|
||||
&prompt.root; <userinput>/etc/rc.d/jail stop <replaceable>www</replaceable></userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service jail start <replaceable>www</replaceable></userinput>
|
||||
&prompt.root; <userinput>service jail stop <replaceable>www</replaceable></userinput></screen>
|
||||
|
||||
<para>A clean way to shut down a &man.jail.8; is not available at
|
||||
the moment. This is because commands normally used to accomplish
|
||||
|
@ -857,11 +857,11 @@ jail_www_devfs_enable="YES"</programlisting>
|
|||
<step>
|
||||
<para>In this phase, the jails are built and prepared to
|
||||
run. First, mount the required file systems for each
|
||||
jail, and then start them using the
|
||||
<filename>/etc/rc.d/jail</filename> script:</para>
|
||||
jail, and then start them using the jail rc
|
||||
script.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mount -a</userinput>
|
||||
&prompt.root; <userinput>/etc/rc.d/jail start</userinput></screen>
|
||||
&prompt.root; <userinput>service jail start</userinput></screen>
|
||||
</step>
|
||||
</procedure>
|
||||
|
||||
|
@ -933,7 +933,7 @@ jail_www_devfs_enable="YES"</programlisting>
|
|||
<step>
|
||||
<para>The right time to stop the jails is now:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/jail stop</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service jail stop</userinput></screen>
|
||||
</step>
|
||||
<step>
|
||||
<para>Unmount the original file systems:</para>
|
||||
|
@ -974,7 +974,7 @@ jail_www_devfs_enable="YES"</programlisting>
|
|||
start the jails:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mount -a</userinput>
|
||||
&prompt.root; <userinput>/etc/rc.d/jail start</userinput></screen>
|
||||
&prompt.root; <userinput>service jail start</userinput></screen>
|
||||
</step>
|
||||
</procedure>
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -866,15 +866,15 @@ purgestat /usr/local/supermailer/bin/purgestat-compat</programlisting>
|
|||
for why this was considered bad practice, or even a security
|
||||
hole.</para>
|
||||
|
||||
<para>As a good workaround, you can place the line:
|
||||
<para>As a good workaround, you can place the line:</para>
|
||||
|
||||
<programlisting>search foo.bar.edu bar.edu</programlisting>
|
||||
|
||||
instead of the previous:
|
||||
<para>instead of the previous:</para>
|
||||
|
||||
<programlisting>domain foo.bar.edu</programlisting>
|
||||
|
||||
into your <filename>/etc/resolv.conf</filename>. However, make
|
||||
<para>into your <filename>/etc/resolv.conf</filename>. However, make
|
||||
sure that the search order does not go beyond the
|
||||
<quote>boundary between local and public administration</quote>,
|
||||
as RFC 1535 calls it.</para>
|
||||
|
@ -883,9 +883,6 @@ purgestat /usr/local/supermailer/bin/purgestat-compat</programlisting>
|
|||
|
||||
<qandaentry>
|
||||
<question>
|
||||
<indexterm>
|
||||
<primary>MX record</primary>
|
||||
</indexterm>
|
||||
<para><application>sendmail</application> says <errorname>mail
|
||||
loops back to myself</errorname></para>
|
||||
</question>
|
||||
|
@ -918,7 +915,6 @@ to /etc/mail/sendmail.cf.</programlisting>
|
|||
|
||||
<qandaentry>
|
||||
<question>
|
||||
<indexterm><primary>PPP</primary></indexterm>
|
||||
<para>How can I run a mail server on a dial-up PPP host?</para>
|
||||
</question>
|
||||
|
||||
|
@ -1593,7 +1589,7 @@ define(`confDELIVERY_MODE',`deferred')dnl</programlisting>
|
|||
|
||||
<para>and finally start the saslauthd daemon:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/usr/local/etc/rc.d/saslauthd start</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service saslauthd start</userinput></screen>
|
||||
|
||||
<para>This daemon serves as a broker for <application>sendmail</application> to
|
||||
authenticate against your FreeBSD <filename>passwd</filename>
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -173,7 +173,7 @@
|
|||
<application>inetd</application> starting at boot time.
|
||||
The command:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/inetd rcvar</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service inetd rcvar</userinput></screen>
|
||||
|
||||
<para>
|
||||
can be run to display the current effective setting.</para>
|
||||
|
@ -272,7 +272,7 @@
|
|||
<title>Reloading the <application>inetd</application>
|
||||
Configuration File</title>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/inetd reload</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service inetd reload</userinput></screen>
|
||||
</example>
|
||||
|
||||
<para>Each line of the configuration file specifies an
|
||||
|
@ -340,22 +340,27 @@ server-program-arguments</programlisting>
|
|||
<entry>tcp, tcp4</entry>
|
||||
<entry>TCP IPv4</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>udp, udp4</entry>
|
||||
<entry>UDP IPv4</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>tcp6</entry>
|
||||
<entry>TCP IPv6</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>udp6</entry>
|
||||
<entry>UDP IPv6</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>tcp46</entry>
|
||||
<entry>Both TCP IPv4 and v6</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>udp46</entry>
|
||||
<entry>Both UDP IPv4 and v6</entry>
|
||||
|
@ -635,12 +640,14 @@ server-program-arguments</programlisting>
|
|||
requests from the <acronym>NFS</acronym>
|
||||
clients.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><application>mountd</application></entry>
|
||||
<entry>The <acronym>NFS</acronym> mount daemon which
|
||||
carries out the requests that &man.nfsd.8; passes on
|
||||
to it.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><application>rpcbind</application></entry>
|
||||
<entry> This daemon allows
|
||||
|
@ -662,6 +669,7 @@ server-program-arguments</programlisting>
|
|||
|
||||
<sect2 id="network-configuring-nfs">
|
||||
<title>Configuring <acronym>NFS</acronym></title>
|
||||
|
||||
<indexterm>
|
||||
<primary>NFS</primary>
|
||||
<secondary>configuration</secondary>
|
||||
|
@ -797,10 +805,10 @@ mountd_flags="-r"</programlisting>
|
|||
<para>or by invoking the <command>mountd</command> &man.rc.8;
|
||||
script with the appropriate parameter:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/mountd onereload</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service mountd onereload</userinput></screen>
|
||||
|
||||
<para>Please refer to <xref linkend="configtuning-rcd"/> for more
|
||||
information about using rc scripts.</para>
|
||||
<para>Please refer to <xref linkend="configtuning-rcd"/> for
|
||||
more information about using rc scripts.</para>
|
||||
|
||||
<para>Alternatively, a reboot will make FreeBSD set everything
|
||||
up properly. A reboot is not necessary though.
|
||||
|
@ -864,8 +872,8 @@ rpc_statd_enable="YES"</programlisting>
|
|||
|
||||
<para>Start the application by using:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/lockd start</userinput>
|
||||
&prompt.root; <userinput>/etc/rc.d/statd start</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service lockd start</userinput>
|
||||
&prompt.root; <userinput>service statd start</userinput></screen>
|
||||
|
||||
<para>If real locking between the <acronym>NFS</acronym> clients
|
||||
and <acronym>NFS</acronym> server is not required, it is
|
||||
|
@ -1155,6 +1163,7 @@ Exports list on foobar:
|
|||
|
||||
<sect2>
|
||||
<title>What Is It?</title>
|
||||
|
||||
<indexterm><primary>NIS</primary></indexterm>
|
||||
<indexterm><primary>Solaris</primary></indexterm>
|
||||
<indexterm><primary>HP-UX</primary></indexterm>
|
||||
|
@ -1218,8 +1227,8 @@ Exports list on foobar:
|
|||
|
||||
<informaltable frame="none" pgwide="1">
|
||||
<tgroup cols="2">
|
||||
<colspec colwidth="1*"/>
|
||||
<colspec colwidth="3*"/>
|
||||
<colspec colwidth="1*"/>
|
||||
<colspec colwidth="3*"/>
|
||||
|
||||
<thead>
|
||||
<row>
|
||||
|
@ -1237,6 +1246,7 @@ Exports list on foobar:
|
|||
domainname does not have anything to do with
|
||||
<acronym>DNS</acronym>.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><application>rpcbind</application></entry>
|
||||
|
||||
|
@ -1247,6 +1257,7 @@ Exports list on foobar:
|
|||
will be impossible to run an NIS server, or to act as
|
||||
an NIS client.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><application>ypbind</application></entry>
|
||||
|
||||
|
@ -1259,6 +1270,7 @@ Exports list on foobar:
|
|||
on a client machine, it will not be able to access the
|
||||
NIS server.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><application>ypserv</application></entry>
|
||||
<entry>Should only be running on NIS servers; this is
|
||||
|
@ -1274,6 +1286,7 @@ Exports list on foobar:
|
|||
<application>ypbind</application> process on the
|
||||
client.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><application>rpc.yppasswdd</application></entry>
|
||||
<entry>Another process that should only be running on
|
||||
|
@ -1404,21 +1417,25 @@ Exports list on foobar:
|
|||
<entry><hostid role="ipaddr">10.0.0.2</hostid></entry>
|
||||
<entry>NIS master</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><hostid>coltrane</hostid></entry>
|
||||
<entry><hostid role="ipaddr">10.0.0.3</hostid></entry>
|
||||
<entry>NIS slave</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><hostid>basie</hostid></entry>
|
||||
<entry><hostid role="ipaddr">10.0.0.4</hostid></entry>
|
||||
<entry>Faculty workstation</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><hostid>bird</hostid></entry>
|
||||
<entry><hostid role="ipaddr">10.0.0.5</hostid></entry>
|
||||
<entry>Client machine</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><hostid>cli[1-11]</hostid></entry>
|
||||
<entry>
|
||||
|
@ -1517,6 +1534,7 @@ Exports list on foobar:
|
|||
|
||||
<sect4>
|
||||
<title>Setting Up a NIS Master Server</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>NIS</primary>
|
||||
<secondary>server configuration</secondary>
|
||||
|
@ -1531,18 +1549,23 @@ Exports list on foobar:
|
|||
<procedure>
|
||||
<step>
|
||||
<para><programlisting>nisdomainname="test-domain"</programlisting>
|
||||
|
||||
This line will set the NIS domainname to
|
||||
<literal>test-domain</literal>
|
||||
upon network setup (e.g., after reboot).</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para><programlisting>nis_server_enable="YES"</programlisting>
|
||||
|
||||
This will tell FreeBSD to start up the NIS server
|
||||
processes when the networking is next brought
|
||||
up.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para><programlisting>nis_yppasswdd_enable="YES"</programlisting>
|
||||
|
||||
This will enable the <command>rpc.yppasswdd</command>
|
||||
daemon which, as mentioned above, will allow users to
|
||||
change their NIS password from a client
|
||||
|
@ -1565,11 +1588,12 @@ Exports list on foobar:
|
|||
initializing the NIS maps, start the
|
||||
<application>ypserv</application> daemon manually:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/ypserv start</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service ypserv start</userinput></screen>
|
||||
</sect4>
|
||||
|
||||
<sect4>
|
||||
<title>Initializing the NIS Maps</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>NIS</primary>
|
||||
<secondary>maps</secondary>
|
||||
|
@ -1661,6 +1685,7 @@ ellington has been setup as an YP master server without any errors.</screen>
|
|||
|
||||
<sect4>
|
||||
<title>Setting up a NIS Slave Server</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>NIS</primary>
|
||||
<secondary>slave server</secondary>
|
||||
|
@ -1785,9 +1810,11 @@ Don't forget to update map ypservers on ellington.</screen>
|
|||
another server.</para>
|
||||
|
||||
<sect4>
|
||||
<title>Setting Up a NIS Client</title> <indexterm>
|
||||
<title>Setting Up a NIS Client</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>NIS</primary> <secondary>client
|
||||
configuration</secondary>
|
||||
configuration</secondary>
|
||||
</indexterm> <para>Setting up a FreeBSD machine to be a NIS
|
||||
client is fairly straightforward.</para>
|
||||
|
||||
|
@ -1848,7 +1875,7 @@ nis_client_enable="YES"</programlisting>
|
|||
following commands as the superuser:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/netstart</userinput>
|
||||
&prompt.root; <userinput>/etc/rc.d/ypbind start</userinput></screen>
|
||||
&prompt.root; <userinput>service ypbind start</userinput></screen>
|
||||
|
||||
<para>After completing these steps, you should be able to
|
||||
run <command>ypcat passwd</command> and see the NIS
|
||||
|
@ -1951,10 +1978,13 @@ nis_client_enable="YES"</programlisting>
|
|||
<para>There is a way to bar specific users from logging on to a
|
||||
machine, even if they are present in the NIS database. To do
|
||||
this, all you must do is add
|
||||
<literal>-<replaceable>username</replaceable></literal> to the
|
||||
<literal>-<replaceable>username</replaceable></literal> with
|
||||
the correct number of colons like other entries to the
|
||||
end of the <filename>/etc/master.passwd</filename> file on the
|
||||
client machine, where <replaceable>username</replaceable> is
|
||||
the username of the user you wish to bar from logging in.
|
||||
The line with the blocked user must be before the
|
||||
<literal>+</literal> line for allowing NIS users.
|
||||
This should preferably be done using <command>vipw</command>,
|
||||
since <command>vipw</command> will sanity check your changes
|
||||
to <filename>/etc/master.passwd</filename>, as well as
|
||||
|
@ -1964,7 +1994,7 @@ nis_client_enable="YES"</programlisting>
|
|||
<hostid>basie</hostid> we would:</para>
|
||||
|
||||
<screen>basie&prompt.root; <userinput>vipw</userinput>
|
||||
<userinput>[add -bill to the end, exit]</userinput>
|
||||
<userinput>[add -bill::::::::: to the end, exit]</userinput>
|
||||
vipw: rebuilding the database...
|
||||
vipw: done
|
||||
|
||||
|
@ -1985,8 +2015,8 @@ uucp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucic
|
|||
xten:*:67:67::0:0:X-10 daemon:/usr/local/xten:/sbin/nologin
|
||||
pop:*:68:6::0:0:Post Office Owner:/nonexistent:/sbin/nologin
|
||||
nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/sbin/nologin
|
||||
-bill:::::::::
|
||||
+:::::::::
|
||||
-bill
|
||||
|
||||
basie&prompt.root;</screen>
|
||||
</sect2>
|
||||
|
@ -2003,6 +2033,7 @@ basie&prompt.root;</screen>
|
|||
</sect2info>
|
||||
|
||||
<title>Using Netgroups</title>
|
||||
|
||||
<indexterm><primary>netgroups</primary></indexterm>
|
||||
|
||||
<para>The method shown in the previous section works reasonably
|
||||
|
@ -2094,6 +2125,7 @@ basie&prompt.root;</screen>
|
|||
employees are allowed to log onto these
|
||||
machines.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<!-- gluttony was omitted because it was too fat -->
|
||||
<entry><hostid>pride</hostid>, <hostid>greed</hostid>,
|
||||
|
@ -2103,6 +2135,7 @@ basie&prompt.root;</screen>
|
|||
department are allowed to login onto these
|
||||
machines.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><hostid>one</hostid>, <hostid>two</hostid>,
|
||||
<hostid>three</hostid>, <hostid>four</hostid>,
|
||||
|
@ -2506,6 +2539,7 @@ nis_client_flags="-S <replaceable>NIS domain</replaceable>,<replaceable>server</
|
|||
|
||||
<sect2>
|
||||
<title>Password Formats</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>NIS</primary>
|
||||
<secondary>password formats</secondary>
|
||||
|
@ -2582,6 +2616,7 @@ nis_client_flags="-S <replaceable>NIS domain</replaceable>,<replaceable>server</
|
|||
|
||||
<sect2>
|
||||
<title>What Is DHCP?</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>Dynamic Host Configuration Protocol</primary>
|
||||
<see>DHCP</see>
|
||||
|
@ -2616,6 +2651,7 @@ nis_client_flags="-S <replaceable>NIS domain</replaceable>,<replaceable>server</
|
|||
|
||||
<sect2>
|
||||
<title>How It Works</title>
|
||||
|
||||
<indexterm><primary>UDP</primary></indexterm>
|
||||
<para>When <command>dhclient</command>, the DHCP client, is
|
||||
executed on the client machine, it begins broadcasting
|
||||
|
@ -2641,12 +2677,14 @@ nis_client_flags="-S <replaceable>NIS domain</replaceable>,<replaceable>server</
|
|||
<command>dhclient</command>. DHCP client support is provided
|
||||
within both the installer and the base system, obviating the
|
||||
need for detailed knowledge of network configurations on any
|
||||
network that runs a DHCP server.</para> <indexterm>
|
||||
<primary><application>sysinstall</application></primary>
|
||||
</indexterm>
|
||||
network that runs a DHCP server.</para>
|
||||
|
||||
<para>DHCP is supported by
|
||||
<application>sysinstall</application>. When configuring a
|
||||
<indexterm>
|
||||
<primary><application>sysinstall</application></primary>
|
||||
</indexterm>
|
||||
|
||||
<para>DHCP is supported by
|
||||
<application>sysinstall</application>. When configuring a
|
||||
network interface within
|
||||
<application>sysinstall</application>, the second question
|
||||
asked is: <quote>Do you want to try DHCP configuration of
|
||||
|
@ -2742,132 +2780,135 @@ dhclient_flags=""</programlisting>
|
|||
role="package">net/isc-dhcp42-server</filename> port in
|
||||
the ports collection. This port contains the ISC DHCP
|
||||
server and documentation.</para>
|
||||
</sect2>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Files</title>
|
||||
<indexterm>
|
||||
<primary>DHCP</primary>
|
||||
<secondary>configuration files</secondary>
|
||||
</indexterm>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><filename>/etc/dhclient.conf</filename></para>
|
||||
<para><command>dhclient</command> requires a configuration
|
||||
file, <filename>/etc/dhclient.conf</filename>. Typically
|
||||
the file contains only comments, the defaults being
|
||||
reasonably sane. This configuration file is described by
|
||||
the &man.dhclient.conf.5;
|
||||
manual page.</para>
|
||||
</listitem>
|
||||
<sect2>
|
||||
<title>Files</title>
|
||||
|
||||
<listitem>
|
||||
<para><filename>/sbin/dhclient</filename></para>
|
||||
<para><command>dhclient</command> is statically linked and
|
||||
resides in <filename>/sbin</filename>. The
|
||||
&man.dhclient.8; manual page gives more information about
|
||||
<command>dhclient</command>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><filename>/sbin/dhclient-script</filename></para>
|
||||
<para><command>dhclient-script</command> is the
|
||||
FreeBSD-specific DHCP client configuration script. It is
|
||||
described in &man.dhclient-script.8;, but should not need
|
||||
any user modification to function properly.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><filename>/var/db/dhclient.leases.<replaceable>interface</replaceable></filename></para>
|
||||
<para>The DHCP client keeps a database of valid leases in
|
||||
this file, which is written as a log.
|
||||
&man.dhclient.leases.5; gives a slightly longer
|
||||
description.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Further Reading</title>
|
||||
|
||||
<para>The DHCP protocol is fully described in <ulink
|
||||
url="http://www.freesoft.org/CIE/RFC/2131/">RFC
|
||||
2131</ulink>. An informational resource has also been set up
|
||||
at <ulink url="http://www.dhcp.org/"></ulink>.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="network-dhcp-server">
|
||||
<title>Installing and Configuring a DHCP Server</title>
|
||||
|
||||
<sect3>
|
||||
<title>What This Section Covers</title>
|
||||
|
||||
<para>This section provides information on how to configure
|
||||
a FreeBSD system to act as a DHCP server using the ISC
|
||||
(Internet Systems Consortium) implementation of the DHCP
|
||||
server.</para>
|
||||
|
||||
<para>The server is not provided as part of FreeBSD, and so
|
||||
you will need to install the <filename
|
||||
role="package">net/isc-dhcp42-server</filename> port to
|
||||
provide this service. See <xref linkend="ports"/> for
|
||||
more information on using the Ports Collection.</para>
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title>DHCP Server Installation</title>
|
||||
<indexterm>
|
||||
<primary>DHCP</primary>
|
||||
<secondary>installation</secondary>
|
||||
<secondary>configuration files</secondary>
|
||||
</indexterm>
|
||||
<para>In order to configure your FreeBSD system as a DHCP
|
||||
server, you will need to ensure that the &man.bpf.4;
|
||||
device is compiled into your kernel. To do this, add
|
||||
<literal>device bpf</literal> to your kernel
|
||||
configuration file, and rebuild the kernel. For more
|
||||
information about building kernels, see <xref
|
||||
linkend="kernelconfig"/>.</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><filename>/etc/dhclient.conf</filename></para>
|
||||
<para><command>dhclient</command> requires a configuration
|
||||
file, <filename>/etc/dhclient.conf</filename>.
|
||||
Typically the file contains only comments, the defaults
|
||||
being reasonably sane. This configuration file is
|
||||
described by the &man.dhclient.conf.5; manual
|
||||
page.</para>
|
||||
</listitem>
|
||||
|
||||
<para>The <devicename>bpf</devicename> device is already
|
||||
part of the <filename>GENERIC</filename> kernel that is
|
||||
supplied with FreeBSD, so you do not need to create a
|
||||
custom kernel in order to get DHCP working.</para>
|
||||
<listitem>
|
||||
<para><filename>/sbin/dhclient</filename></para>
|
||||
<para><command>dhclient</command> is statically linked and
|
||||
resides in <filename>/sbin</filename>. The
|
||||
&man.dhclient.8; manual page gives more information
|
||||
about <command>dhclient</command>.</para>
|
||||
</listitem>
|
||||
|
||||
<note>
|
||||
<para>Those who are particularly security conscious
|
||||
should note that <devicename>bpf</devicename> is also
|
||||
the device that allows packet sniffers to work
|
||||
correctly (although such programs still need
|
||||
privileged access). <devicename>bpf</devicename>
|
||||
<emphasis>is</emphasis> required to use DHCP, but if
|
||||
you are very sensitive about security, you probably
|
||||
should not include <devicename>bpf</devicename> in
|
||||
your kernel purely because you expect to use DHCP at
|
||||
some point in the future.</para>
|
||||
</note>
|
||||
<listitem>
|
||||
<para><filename>/sbin/dhclient-script</filename></para>
|
||||
<para><command>dhclient-script</command> is the
|
||||
FreeBSD-specific DHCP client configuration script. It
|
||||
is described in &man.dhclient-script.8;, but should not
|
||||
need any user modification to function properly.</para>
|
||||
</listitem>
|
||||
|
||||
<para>The next thing that you will need to do is edit the
|
||||
sample <filename>dhcpd.conf</filename> which was installed
|
||||
by the <filename
|
||||
role="package">net/isc-dhcp42-server</filename> port.
|
||||
By default, this will be
|
||||
<filename>/usr/local/etc/dhcpd.conf.sample</filename>, and
|
||||
you should copy this to
|
||||
<filename>/usr/local/etc/dhcpd.conf</filename> before
|
||||
proceeding to make changes.</para>
|
||||
</sect3>
|
||||
<listitem>
|
||||
<para><filename>/var/db/dhclient.leases.<replaceable>interface</replaceable></filename></para>
|
||||
<para>The DHCP client keeps a database of valid leases
|
||||
in this file, which is written as a log.
|
||||
&man.dhclient.leases.5; gives a slightly longer
|
||||
description.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect2>
|
||||
|
||||
<sect3>
|
||||
<title>Configuring the DHCP Server</title>
|
||||
<indexterm>
|
||||
<primary>DHCP</primary>
|
||||
<secondary>dhcpd.conf</secondary>
|
||||
</indexterm>
|
||||
<para><filename>dhcpd.conf</filename> is comprised of
|
||||
declarations regarding subnets and hosts, and is perhaps
|
||||
most easily explained using an example :</para>
|
||||
<sect2>
|
||||
<title>Further Reading</title>
|
||||
|
||||
<programlisting>option domain-name "example.com";<co id="domain-name"/>
|
||||
<para>The DHCP protocol is fully described in <ulink
|
||||
url="http://www.freesoft.org/CIE/RFC/2131/">RFC
|
||||
2131</ulink>. An informational resource has also been set
|
||||
up at <ulink url="http://www.dhcp.org/"></ulink>.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="network-dhcp-server">
|
||||
<title>Installing and Configuring a DHCP Server</title>
|
||||
|
||||
<sect3>
|
||||
<title>What This Section Covers</title>
|
||||
|
||||
<para>This section provides information on how to configure
|
||||
a FreeBSD system to act as a DHCP server using the ISC
|
||||
(Internet Systems Consortium) implementation of the DHCP
|
||||
server.</para>
|
||||
|
||||
<para>The server is not provided as part of FreeBSD, and so
|
||||
you will need to install the <filename
|
||||
role="package">net/isc-dhcp42-server</filename> port to
|
||||
provide this service. See <xref linkend="ports"/> for
|
||||
more information on using the Ports Collection.</para>
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title>DHCP Server Installation</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>DHCP</primary>
|
||||
<secondary>installation</secondary>
|
||||
</indexterm>
|
||||
<para>In order to configure your FreeBSD system as a DHCP
|
||||
server, you will need to ensure that the &man.bpf.4;
|
||||
device is compiled into your kernel. To do this, add
|
||||
<literal>device bpf</literal> to your kernel
|
||||
configuration file, and rebuild the kernel. For more
|
||||
information about building kernels, see <xref
|
||||
linkend="kernelconfig"/>.</para>
|
||||
|
||||
<para>The <devicename>bpf</devicename> device is already
|
||||
part of the <filename>GENERIC</filename> kernel that is
|
||||
supplied with FreeBSD, so you do not need to create a
|
||||
custom kernel in order to get DHCP working.</para>
|
||||
|
||||
<note>
|
||||
<para>Those who are particularly security conscious
|
||||
should note that <devicename>bpf</devicename> is also
|
||||
the device that allows packet sniffers to work
|
||||
correctly (although such programs still need
|
||||
privileged access). <devicename>bpf</devicename>
|
||||
<emphasis>is</emphasis> required to use DHCP, but if
|
||||
you are very sensitive about security, you probably
|
||||
should not include <devicename>bpf</devicename> in
|
||||
your kernel purely because you expect to use DHCP at
|
||||
some point in the future.</para>
|
||||
</note>
|
||||
|
||||
<para>The next thing that you will need to do is edit the
|
||||
sample <filename>dhcpd.conf</filename> which was installed
|
||||
by the <filename
|
||||
role="package">net/isc-dhcp42-server</filename> port.
|
||||
By default, this will be
|
||||
<filename>/usr/local/etc/dhcpd.conf.sample</filename>, and
|
||||
you should copy this to
|
||||
<filename>/usr/local/etc/dhcpd.conf</filename> before
|
||||
proceeding to make changes.</para>
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title>Configuring the DHCP Server</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>DHCP</primary>
|
||||
<secondary>dhcpd.conf</secondary>
|
||||
</indexterm>
|
||||
<para><filename>dhcpd.conf</filename> is comprised of
|
||||
declarations regarding subnets and hosts, and is perhaps
|
||||
most easily explained using an example :</para>
|
||||
|
||||
<programlisting>option domain-name "example.com";<co id="domain-name"/>
|
||||
option domain-name-servers 192.168.4.100;<co id="domain-name-servers"/>
|
||||
option subnet-mask 255.255.255.0;<co id="subnet-mask"/>
|
||||
|
||||
|
@ -2968,7 +3009,7 @@ dhcpd_ifaces="dc0"</programlisting>
|
|||
<para>Then, you can proceed to start the server by issuing
|
||||
the following command:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/usr/local/etc/rc.d/isc-dhcpd start</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service isc-dhcpd start</userinput></screen>
|
||||
|
||||
<para>Should you need to make changes to the configuration
|
||||
of your server in the future, it is important to note that
|
||||
|
@ -2983,6 +3024,7 @@ dhcpd_ifaces="dc0"</programlisting>
|
|||
|
||||
<sect3>
|
||||
<title>Files</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>DHCP</primary>
|
||||
<secondary>configuration files</secondary>
|
||||
|
@ -3060,6 +3102,7 @@ dhcpd_ifaces="dc0"</programlisting>
|
|||
|
||||
<sect2>
|
||||
<title>Overview</title>
|
||||
|
||||
<indexterm><primary>BIND</primary></indexterm>
|
||||
|
||||
<para>&os; utilizes, by default, a version of BIND (Berkeley
|
||||
|
@ -3269,6 +3312,7 @@ dhcpd_ifaces="dc0"</programlisting>
|
|||
|
||||
<sect2>
|
||||
<title>How It Works</title>
|
||||
|
||||
<para>In &os;, the BIND daemon is called
|
||||
<application>named</application>.</para>
|
||||
|
||||
|
@ -3336,7 +3380,7 @@ dhcpd_ifaces="dc0"</programlisting>
|
|||
To start the server one time with
|
||||
this configuration, use the following command:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/named onestart</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service named onestart</userinput></screen>
|
||||
|
||||
<para>To ensure the <application>named</application> daemon is
|
||||
started at boot each time, put the following line into the
|
||||
|
@ -3722,6 +3766,7 @@ zone "1.168.192.in-addr.arpa" {
|
|||
|
||||
<sect3>
|
||||
<title>Zone Files</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>BIND</primary>
|
||||
<secondary>zone files</secondary>
|
||||
|
@ -3963,6 +4008,7 @@ mail IN A 192.168.1.5</programlisting>
|
|||
|
||||
<sect2>
|
||||
<title>Caching Name Server</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>BIND</primary>
|
||||
<secondary>caching name server</secondary>
|
||||
|
@ -3976,24 +4022,25 @@ mail IN A 192.168.1.5</programlisting>
|
|||
<sect2>
|
||||
<title><acronym
|
||||
role="Domain Name Security Extensions">DNSSEC</acronym></title>
|
||||
|
||||
<indexterm>
|
||||
<primary>BIND</primary>
|
||||
<secondary>DNS security extensions</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>Domain Name System Security Extensions, or <acronym
|
||||
role="Domain Name Security Extensions">DNSSEC</acronym> for
|
||||
short, is a suite of specifications to protect resolving name
|
||||
servers from forged <acronym>DNS</acronym> data, such as
|
||||
spoofed <acronym>DNS</acronym> records. By using digital
|
||||
signatures, a resolver can verify the integrity of the record.
|
||||
Note that <acronym
|
||||
role="Domain Name Security Extensions">DNSSEC</acronym> only
|
||||
provides integrity via digitally signing the Resource
|
||||
Records (<acronym role="Resource Record">RR</acronym>s). It
|
||||
provides neither confidentiality nor protection against false
|
||||
end-user assumptions. This means that it cannot protect
|
||||
against people going to <hostid
|
||||
role="Domain Name Security Extensions">DNSSEC</acronym>
|
||||
for short, is a suite of specifications to protect resolving
|
||||
name servers from forged <acronym>DNS</acronym> data, such
|
||||
as spoofed <acronym>DNS</acronym> records. By using digital
|
||||
signatures, a resolver can verify the integrity of the
|
||||
record. Note that <acronym
|
||||
role="Domain Name Security Extensions">DNSSEC</acronym>
|
||||
only provides integrity via digitally signing the Resource
|
||||
Records (<acronym role="Resource Record">RR</acronym>s).
|
||||
It provides neither confidentiality nor protection against
|
||||
false end-user assumptions. This means that it cannot
|
||||
protect against people going to <hostid
|
||||
role="domainname">example.net</hostid> instead of <hostid
|
||||
role="domainname">example.com</hostid>. The only thing
|
||||
<acronym>DNSSEC</acronym> does is authenticate that the data
|
||||
|
@ -4371,7 +4418,7 @@ $include Kexample.com.+005+nnnnn.ZSK.key ; ZSK</programlisting>
|
|||
<title>Further Reading</title>
|
||||
|
||||
<para>BIND/<application>named</application> manual pages:
|
||||
&man.rndc.8; &man.named.8; &man.named.conf.5; &man.nsupdate.8;
|
||||
&man.rndc.8; &man.named.8; &man.named.conf.5; &man.nsupdate.1;
|
||||
&man.dnssec-signzone.8; &man.dnssec-keygen.8;</para>
|
||||
|
||||
<itemizedlist>
|
||||
|
@ -4582,9 +4629,8 @@ $include Kexample.com.+005+nnnnn.ZSK.key ; ZSK</programlisting>
|
|||
<para>The <filename role="package">www/apache22</filename> port
|
||||
installs an &man.rc.8; script to aid in starting, stopping,
|
||||
and restarting <application>Apache</application>, which can be
|
||||
found in the <filename
|
||||
class="directory">/usr/local/etc/rc.d/</filename>
|
||||
directory.</para>
|
||||
found in <filename
|
||||
class="directory">/usr/local/etc/rc.d/</filename>.</para>
|
||||
|
||||
<para>To launch <application>Apache</application> at system
|
||||
startup, add the following line to
|
||||
|
@ -4606,7 +4652,6 @@ $include Kexample.com.+005+nnnnn.ZSK.key ; ZSK</programlisting>
|
|||
or by the &man.service.8; utility by issuing one of the
|
||||
following commands:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/usr/local/etc/rc.d/apache22 configtest</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service apache22 configtest</userinput></screen>
|
||||
|
||||
<note>
|
||||
|
@ -4619,10 +4664,8 @@ $include Kexample.com.+005+nnnnn.ZSK.key ; ZSK</programlisting>
|
|||
<para>If <application>Apache</application> does not report
|
||||
configuration errors, the
|
||||
<application>Apache</application> <command>httpd</command>
|
||||
can be started with the same &man.rc.8; and &man.service.8;
|
||||
mechanisms:</para>
|
||||
can be started with &man.service.8;:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/usr/local/etc/rc.d/apache22 start</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service apache22 start</userinput></screen>
|
||||
|
||||
<para>The <command>httpd</command> service can be tested by
|
||||
|
@ -5046,7 +5089,7 @@ DocumentRoot /www/someotherdomain.tld
|
|||
manually by executing the following command as
|
||||
<username>root</username>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/ftpd start</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service ftpd start</userinput></screen>
|
||||
|
||||
<para>You can now log on to your FTP server by typing:</para>
|
||||
|
||||
|
@ -5155,12 +5198,15 @@ DocumentRoot /www/someotherdomain.tld
|
|||
|
||||
<para>The Samba Web Administration Tool (SWAT) runs as a
|
||||
daemon from <application>inetd</application>. Therefore,
|
||||
<application>inetd</application> must be enabled as shown in
|
||||
<xref linkend="network-inetd"/>, and
|
||||
the following line in <filename>/etc/inetd.conf</filename>
|
||||
should be uncommented before <application>swat</application>
|
||||
can be used to configure
|
||||
<application>Samba</application>:</para>
|
||||
|
||||
<programlisting>swat stream tcp nowait/400 root /usr/local/sbin/swat swat</programlisting>
|
||||
|
||||
<para>As explained in <xref linkend="network-inetd-reread"/>,
|
||||
the <application>inetd</application> configuration must be
|
||||
reloaded after this configuration file is changed.</para>
|
||||
|
@ -5284,6 +5330,7 @@ DocumentRoot /www/someotherdomain.tld
|
|||
the following command:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>smbpasswd -a username</userinput></screen>
|
||||
|
||||
<note>
|
||||
<para>The recommended backend is now
|
||||
<literal>tdbsam</literal>, and the following command
|
||||
|
@ -5318,6 +5365,7 @@ DocumentRoot /www/someotherdomain.tld
|
|||
<para>Or, for fine grain control:</para>
|
||||
|
||||
<programlisting>nmbd_enable="YES"</programlisting>
|
||||
|
||||
<programlisting>smbd_enable="YES"</programlisting>
|
||||
|
||||
<note>
|
||||
|
@ -5329,13 +5377,13 @@ DocumentRoot /www/someotherdomain.tld
|
|||
<para>It is possible then to start
|
||||
<application>Samba</application> at any time by typing:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/usr/local/etc/rc.d/samba start</userinput>
|
||||
<screen>&prompt.root; <userinput>service samba start</userinput>
|
||||
Starting SAMBA: removing stale tdbs :
|
||||
Starting nmbd.
|
||||
Starting smbd.</screen>
|
||||
|
||||
<para>Please refer to <xref linkend="configtuning-rcd"/> for more
|
||||
information about using rc scripts.</para>
|
||||
<para>Please refer to <xref linkend="configtuning-rcd"/> for
|
||||
more information about using rc scripts.</para>
|
||||
|
||||
<para><application>Samba</application> actually consists of
|
||||
three separate daemons. You should see that both the
|
||||
|
@ -5349,7 +5397,7 @@ Starting smbd.</screen>
|
|||
<para>You can stop <application>Samba</application> at any time
|
||||
by typing :</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/usr/local/etc/rc.d/samba stop</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service samba stop</userinput></screen>
|
||||
|
||||
<para><application>Samba</application> is a complex software
|
||||
suite with functionality that allows broad integration with
|
||||
|
@ -5440,6 +5488,7 @@ Starting smbd.</screen>
|
|||
|
||||
<sect3>
|
||||
<title>Basic Configuration</title>
|
||||
|
||||
<indexterm><primary>ntpdate</primary></indexterm>
|
||||
|
||||
<para>If you only wish to synchronize your clock when the
|
||||
|
@ -5726,7 +5775,7 @@ syslogd_flags="-a logclient.example.com -v -v"</programlisting>
|
|||
<para>At this point, the <command>syslogd</command> daemon
|
||||
should be restarted and verified:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/syslogd restart</userinput>
|
||||
<screen>&prompt.root; <userinput>service syslogd restart</userinput>
|
||||
&prompt.root; <userinput>pgrep syslog</userinput></screen>
|
||||
|
||||
<para>If a <acronym>PID</acronym> is returned, the server has
|
||||
|
@ -5802,7 +5851,7 @@ syslogd_flags="-s -v -v"</programlisting>
|
|||
<para>Once added, <command>syslogd</command> must be restarted
|
||||
for the changes to take effect:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/syslogd restart</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service syslogd restart</userinput></screen>
|
||||
|
||||
<para>To test that log messages are being sent across the
|
||||
network, use &man.logger.1; on the client to send a message to
|
||||
|
@ -5839,7 +5888,7 @@ syslogd_flags="-s -v -v"</programlisting>
|
|||
|
||||
<programlisting>syslogd_flags="-d -a logclien.example.com -v -v"</programlisting>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/syslogd restart</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>service syslogd restart</userinput></screen>
|
||||
|
||||
<para>Debugging data similar to the following will flash on the
|
||||
screen immediately after the restart:</para>
|
||||
|
@ -5864,7 +5913,7 @@ rejected in rule 0 due to name mismatch.</screen>
|
|||
<literal>logclien</literal>. After the proper alterations
|
||||
are made, a restart is issued with expected results:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/syslogd restart</userinput>
|
||||
<screen>&prompt.root; <userinput>service syslogd restart</userinput>
|
||||
logmsg: pri 56, flags 4, from logserv.example.com, msg syslogd: restart
|
||||
syslogd: restarted
|
||||
logmsg: pri 6, flags 4, from logserv.example.com, msg syslogd: kernel boot file is /boot/kernel/kernel
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -11,10 +11,10 @@
|
|||
|
||||
<para>The &os; newcomer will find that the first section of this
|
||||
book guides the user through the &os; installation process and
|
||||
gently introduces the concepts and conventions that underpin &unix;.
|
||||
Working through this section requires little more than the desire
|
||||
to explore, and the ability to take on board new concepts as they
|
||||
are introduced.</para>
|
||||
gently introduces the concepts and conventions that underpin
|
||||
&unix;. Working through this section requires little more than
|
||||
the desire to explore, and the ability to take on board new
|
||||
concepts as they are introduced.</para>
|
||||
|
||||
<para>Once you have traveled this far, the second, far larger,
|
||||
section of the Handbook is a comprehensive reference to all manner
|
||||
|
@ -23,11 +23,11 @@
|
|||
this is noted in the synopsis at the beginning of each
|
||||
chapter.</para>
|
||||
|
||||
<para>For a list of additional sources of information, please see <xref
|
||||
linkend="bibliography"/>.</para>
|
||||
<para>For a list of additional sources of information, please see
|
||||
<xref linkend="bibliography"/>.</para>
|
||||
|
||||
<bridgehead id="preface-changes-from3" renderas="sect1">Changes from the
|
||||
Third Edition</bridgehead>
|
||||
<bridgehead id="preface-changes-from3" renderas="sect1">Changes
|
||||
from the Third Edition</bridgehead>
|
||||
|
||||
<para>The current online version of the Handbook represents the
|
||||
cumulative effort of many hundreds of contributors over the past
|
||||
|
@ -35,125 +35,129 @@
|
|||
the two volume third edition was published in 2004:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><xref linkend="dtrace"/>, &dtrace;, has been added with
|
||||
information about the powerful &dtrace; performance analysis
|
||||
tool.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><xref linkend="dtrace"/>, &dtrace;, has been added with
|
||||
information about the powerful &dtrace; performance analysis
|
||||
tool.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><xref linkend="filesystems"/>, File Systems Support, has
|
||||
been added with information about non-native file systems in
|
||||
&os;, such as ZFS from &sun;.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><xref linkend="filesystems"/>, File Systems Support, has
|
||||
been added with information about non-native file systems in
|
||||
&os;, such as ZFS from &sun;.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><xref linkend="audit"/>, Security Event Auditing, has
|
||||
been added to cover the new auditing capabilities in &os;
|
||||
and explain its use.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><xref linkend="audit"/>, Security Event Auditing, has
|
||||
been added to cover the new auditing capabilities in &os;
|
||||
and explain its use.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><xref linkend="virtualization"/>, Virtualization, has
|
||||
been added with information about installing &os; on
|
||||
virtualization software.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><xref linkend="virtualization"/>, Virtualization, has
|
||||
been added with information about installing &os; on
|
||||
virtualization software.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><xref linkend="bsdinstall"/>, Installing
|
||||
&os; 9.<replaceable>x</replaceable> and Later, has been
|
||||
added to cover installation of &os; using the new
|
||||
installation utility,
|
||||
<application>bsdinstall</application>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><xref linkend="bsdinstall"/>, Installing
|
||||
&os; 9.<replaceable>x</replaceable> and Later, has been
|
||||
added to cover installation of &os; using the new
|
||||
installation utility,
|
||||
<application>bsdinstall</application>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<bridgehead id="preface-changes-from2" renderas="sect1">Changes from the
|
||||
Second Edition (2004)</bridgehead>
|
||||
<bridgehead id="preface-changes-from2" renderas="sect1">Changes
|
||||
from the Second Edition (2004)</bridgehead>
|
||||
|
||||
<para>The third edition was the culmination of over two years of
|
||||
work by the dedicated members of the &os; Documentation
|
||||
Project. The printed edition grew to such a size that it was
|
||||
necessary to publish as two separate volumes. The following are
|
||||
the major changes in this new edition:</para>
|
||||
work by the dedicated members of the &os; Documentation
|
||||
Project. The printed edition grew to such a size that it was
|
||||
necessary to publish as two separate volumes. The following are
|
||||
the major changes in this new edition:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><xref linkend="config-tuning"/>, Configuration and
|
||||
Tuning, has been expanded with new information about the
|
||||
ACPI power and resource management, the <command>cron</command> system utility,
|
||||
and more kernel tuning options.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><xref linkend="config-tuning"/>, Configuration and
|
||||
Tuning, has been expanded with new information about the
|
||||
ACPI power and resource management, the
|
||||
<command>cron</command> system utility, and more kernel
|
||||
tuning options.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><xref linkend="security"/>, Security, has been expanded with
|
||||
new information about virtual private networks (VPNs), file
|
||||
system access control lists (ACLs), and security
|
||||
advisories.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><xref linkend="security"/>, Security, has been expanded
|
||||
with new information about virtual private networks (VPNs),
|
||||
file system access control lists (ACLs), and security
|
||||
advisories.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><xref linkend="mac"/>, Mandatory Access Control (MAC), is
|
||||
a new chapter with this edition. It explains what MAC is
|
||||
and how this mechanism can be used to secure a &os;
|
||||
system.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><xref linkend="mac"/>, Mandatory Access Control (MAC),
|
||||
is a new chapter with this edition. It explains what MAC is
|
||||
and how this mechanism can be used to secure a &os;
|
||||
system.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><xref linkend="disks"/>, Storage, has been expanded with
|
||||
new information about USB storage devices, file system
|
||||
snapshots, file system quotas, file and network backed
|
||||
filesystems, and encrypted disk partitions.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><xref linkend="disks"/>, Storage, has been expanded with
|
||||
new information about USB storage devices, file system
|
||||
snapshots, file system quotas, file and network backed
|
||||
filesystems, and encrypted disk partitions.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><xref linkend="vinum-vinum"/>, Vinum, is a new chapter
|
||||
<listitem>
|
||||
<para><xref linkend="vinum-vinum"/>, Vinum, is a new chapter
|
||||
with this edition. It describes how to use Vinum, a logical
|
||||
volume manager which provides device-independent logical
|
||||
disks, and software RAID-0, RAID-1 and RAID-5.</para>
|
||||
</listitem>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>A troubleshooting section has been added to <xref
|
||||
<listitem>
|
||||
<para>A troubleshooting section has been added to <xref
|
||||
linkend="ppp-and-slip"/>, PPP and SLIP.</para>
|
||||
</listitem>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><xref linkend="mail"/>, Electronic Mail, has been
|
||||
expanded with new information about using alternative
|
||||
transport agents, SMTP authentication, UUCP, <application>fetchmail</application>,
|
||||
<application>procmail</application>, and other advanced topics.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><xref linkend="mail"/>, Electronic Mail, has been
|
||||
expanded with new information about using alternative
|
||||
transport agents, SMTP authentication, UUCP,
|
||||
<application>fetchmail</application>,
|
||||
<application>procmail</application>, and other advanced
|
||||
topics.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><xref linkend="network-servers"/>, Network Servers, is
|
||||
all new with this edition. This chapter includes
|
||||
information about setting up the <application>Apache HTTP Server</application>, <application>ftpd</application>,
|
||||
and setting up a server for µsoft; &windows; clients with
|
||||
<application>Samba</application>. Some sections from <xref
|
||||
linkend="advanced-networking"/>, Advanced Networking, were
|
||||
moved here to improve the presentation.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><xref linkend="network-servers"/>, Network Servers, is
|
||||
all new with this edition. This chapter includes
|
||||
information about setting up the <application>Apache HTTP
|
||||
Server</application>, <application>ftpd</application>,
|
||||
and setting up a server for µsoft; &windows; clients
|
||||
with <application>Samba</application>. Some sections from
|
||||
<xref linkend="advanced-networking"/>, Advanced Networking,
|
||||
were moved here to improve the presentation.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><xref linkend="advanced-networking"/>, Advanced
|
||||
Networking, has been expanded with new information about
|
||||
using &bluetooth; devices with &os;, setting up wireless
|
||||
networks, and Asynchronous Transfer Mode (ATM)
|
||||
networking.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><xref linkend="advanced-networking"/>, Advanced
|
||||
Networking, has been expanded with new information about
|
||||
using &bluetooth; devices with &os;, setting up wireless
|
||||
networks, and Asynchronous Transfer Mode (ATM)
|
||||
networking.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>A glossary has been added to provide a central location
|
||||
for the definitions of technical terms used throughout the
|
||||
book.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>A glossary has been added to provide a central location
|
||||
for the definitions of technical terms used throughout the
|
||||
book.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>A number of aesthetic improvements have been made to the
|
||||
tables and figures throughout the book.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<listitem>
|
||||
<para>A number of aesthetic improvements have been made to the
|
||||
tables and figures throughout the book.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<bridgehead id="preface-changes" renderas="sect1">Changes from the
|
||||
First Edition (2001)</bridgehead>
|
||||
|
@ -170,88 +174,99 @@
|
|||
<para>A complete Index has been added.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>All ASCII figures have been replaced by graphical diagrams.</para>
|
||||
<para>All ASCII figures have been replaced by graphical
|
||||
diagrams.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>A standard synopsis has been added to each chapter to
|
||||
give a quick summary of what information the chapter contains,
|
||||
and what the reader is expected to know.</para>
|
||||
give a quick summary of what information the chapter
|
||||
contains, and what the reader is expected to know.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>The content has been logically reorganized into three
|
||||
parts: <quote>Getting Started</quote>, <quote>System Administration</quote>, and
|
||||
<quote>Appendices</quote>.</para>
|
||||
parts: <quote>Getting Started</quote>, <quote>System
|
||||
Administration</quote>, and
|
||||
<quote>Appendices</quote>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><xref linkend="install"/> (<quote>Installing &os;</quote>) was completely
|
||||
rewritten with many screenshots to make it much easier for new
|
||||
users to grasp the text.</para>
|
||||
<para><xref linkend="install"/> (<quote>Installing
|
||||
&os;</quote>) was completely rewritten with many
|
||||
screenshots to make it much easier for new users to grasp
|
||||
the text.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><xref linkend="basics"/> (<quote>&unix; Basics</quote>) has been expanded to contain
|
||||
additional information about processes, daemons, and
|
||||
signals.</para>
|
||||
<para><xref linkend="basics"/> (<quote>&unix; Basics</quote>)
|
||||
has been expanded to contain additional information about
|
||||
processes, daemons, and signals.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><xref linkend="ports"/> (<quote>Installing Applications</quote>) has been expanded
|
||||
to contain additional information about binary package
|
||||
management.</para>
|
||||
<para><xref linkend="ports"/> (<quote>Installing
|
||||
Applications</quote>) has been expanded to contain
|
||||
additional information about binary package
|
||||
management.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><xref linkend="x11"/> (<quote>The X Window System</quote>) has been completely
|
||||
rewritten with an emphasis on using modern desktop
|
||||
technologies such as <application>KDE</application> and <application>GNOME</application> on &xfree86; 4.X.</para>
|
||||
<para><xref linkend="x11"/> (<quote>The X Window
|
||||
System</quote>) has been completely rewritten with an
|
||||
emphasis on using modern desktop technologies such as
|
||||
<application>KDE</application> and
|
||||
<application>GNOME</application> on &xfree86; 4.X.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><xref linkend="boot"/> (<quote>The &os; Booting Process</quote>) has been
|
||||
expanded.</para>
|
||||
<para><xref linkend="boot"/> (<quote>The &os; Booting
|
||||
Process</quote>) has been expanded.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><xref linkend="disks"/> (<quote>Storage</quote>) has been written from what used
|
||||
to be two separate chapters on <quote>Disks</quote> and <quote>Backups</quote>. We feel
|
||||
that the topics are easier to comprehend when presented as a
|
||||
single chapter. A section on RAID (both hardware and
|
||||
software) has also been added.</para>
|
||||
<para><xref linkend="disks"/> (<quote>Storage</quote>) has
|
||||
been written from what used to be two separate chapters on
|
||||
<quote>Disks</quote> and <quote>Backups</quote>. We feel
|
||||
that the topics are easier to comprehend when presented as
|
||||
a single chapter. A section on RAID (both hardware and
|
||||
software) has also been added.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><xref linkend="serialcomms"/> (<quote>Serial Communications</quote>) has been completely
|
||||
reorganized and updated for &os; 4.X/5.X.</para>
|
||||
<para><xref linkend="serialcomms"/> (<quote>Serial
|
||||
Communications</quote>) has been completely
|
||||
reorganized and updated for &os; 4.X/5.X.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><xref linkend="ppp-and-slip"/> (<quote>PPP and SLIP</quote>) has been substantially
|
||||
updated.</para>
|
||||
<para><xref linkend="ppp-and-slip"/> (<quote>PPP and
|
||||
SLIP</quote>) has been substantially updated.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Many new sections have been added to <xref linkend="advanced-networking"/>
|
||||
(<quote>Advanced Networking</quote>).</para>
|
||||
<para>Many new sections have been added to
|
||||
<xref linkend="advanced-networking"/>
|
||||
(<quote>Advanced Networking</quote>).</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><xref linkend="mail"/> (<quote>Electronic Mail</quote>) has been expanded to
|
||||
include more information about configuring
|
||||
<application>sendmail</application>.</para>
|
||||
<para><xref linkend="mail"/> (<quote>Electronic Mail</quote>)
|
||||
has been expanded to include more information about
|
||||
configuring <application>sendmail</application>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><xref linkend="linuxemu"/> (<quote>&linux; Compatibility</quote>) has been expanded to
|
||||
include information about installing
|
||||
<para><xref linkend="linuxemu"/> (<quote>&linux;
|
||||
Compatibility</quote>) has been expanded to include
|
||||
information about installing
|
||||
<application>&oracle;</application> and
|
||||
<application>&sap.r3;</application>.</para>
|
||||
<application>&sap.r3;</application>.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>The following new topics are covered in this second
|
||||
edition:</para>
|
||||
edition:</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Configuration and Tuning (<xref linkend="config-tuning"/>).</para>
|
||||
<para>Configuration and Tuning (<xref
|
||||
linkend="config-tuning"/>).</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Multimedia (<xref linkend="multimedia"/>)</para>
|
||||
<para>Multimedia (<xref linkend="multimedia"/>)</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<bridgehead id="preface-overview" renderas="sect1">Organization of This
|
||||
Book</bridgehead>
|
||||
<bridgehead id="preface-overview" renderas="sect1">Organization of
|
||||
This Book</bridgehead>
|
||||
|
||||
<para>This book is split into five logically distinct sections.
|
||||
The first section, <emphasis>Getting Started</emphasis>, covers
|
||||
|
@ -276,26 +291,30 @@
|
|||
<!-- Part I - Introduction -->
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="introduction"/>, Introduction</emphasis></term>
|
||||
<term><emphasis><xref linkend="introduction"/>,
|
||||
Introduction</emphasis></term>
|
||||
<listitem>
|
||||
<para>Introduces &os; to a new user. It describes the
|
||||
history of the &os; Project, its goals and development model.</para>
|
||||
history of the &os; Project, its goals and development
|
||||
model.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="install"/>, Installation of
|
||||
&os; 8.<replaceable>x</replaceable> and Earlier</emphasis></term>
|
||||
&os; 8.<replaceable>x</replaceable> and
|
||||
Earlier</emphasis></term>
|
||||
<listitem>
|
||||
<para>Walks a user through the entire installation process of
|
||||
&os; 8.<replaceable>x</replaceable> and earlier using
|
||||
<application>sysinstall</application>. Some advanced installation
|
||||
topics, such as installing through a serial console, are also
|
||||
covered.</para>
|
||||
<application>sysinstall</application>. Some advanced
|
||||
installation topics, such as installing through a serial
|
||||
console, are also covered.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="bsdinstall"/>, Installation of
|
||||
&os; 9.<replaceable>x</replaceable> and Later</emphasis></term>
|
||||
&os; 9.<replaceable>x</replaceable> and
|
||||
Later</emphasis></term>
|
||||
<listitem>
|
||||
<para>Walks a user through the entire installation process of
|
||||
&os; 9.<replaceable>x</replaceable> and later using
|
||||
|
@ -303,71 +322,81 @@
|
|||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="basics"/>, &unix; Basics</emphasis></term>
|
||||
<term><emphasis><xref linkend="basics"/>, &unix;
|
||||
Basics</emphasis></term>
|
||||
<listitem>
|
||||
<para>Covers the basic commands and functionality of the
|
||||
&os; operating system. If you are familiar with &linux; or
|
||||
another flavor of &unix; then you can probably skip this
|
||||
chapter.</para>
|
||||
&os; operating system. If you are familiar with &linux;
|
||||
or another flavor of &unix; then you can probably skip this
|
||||
chapter.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="ports"/>, Installing Applications</emphasis></term>
|
||||
<term><emphasis><xref linkend="ports"/>, Installing
|
||||
Applications</emphasis></term>
|
||||
<listitem>
|
||||
<para>Covers the installation of third-party software with
|
||||
both &os;'s innovative <quote>Ports Collection</quote> and standard
|
||||
binary packages.</para>
|
||||
both &os;'s innovative <quote>Ports Collection</quote> and
|
||||
standard binary packages.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="x11"/>, The X Window System</emphasis></term>
|
||||
<term><emphasis><xref linkend="x11"/>, The X Window
|
||||
System</emphasis></term>
|
||||
<listitem>
|
||||
<para>Describes the X Window System in general and using
|
||||
X11 on &os; in particular. Also describes common
|
||||
desktop environments such as <application>KDE</application> and <application>GNOME</application>.</para>
|
||||
X11 on &os; in particular. Also describes common
|
||||
desktop environments such as <application>KDE</application>
|
||||
and <application>GNOME</application>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<!-- Part II Common Tasks -->
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="desktop"/>, Desktop Applications</emphasis></term>
|
||||
<term><emphasis><xref linkend="desktop"/>, Desktop
|
||||
Applications</emphasis></term>
|
||||
<listitem>
|
||||
<para>Lists some common desktop applications, such as web browsers
|
||||
and productivity suites, and describes how to install them on
|
||||
&os;.</para>
|
||||
<para>Lists some common desktop applications, such as web
|
||||
browsers and productivity suites, and describes how to
|
||||
install them on &os;.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="multimedia"/>, Multimedia</emphasis></term>
|
||||
<term><emphasis><xref linkend="multimedia"/>,
|
||||
Multimedia</emphasis></term>
|
||||
<listitem>
|
||||
<para>Shows how to set up sound and video playback support for your
|
||||
system. Also describes some sample audio and video applications.</para>
|
||||
<para>Shows how to set up sound and video playback support
|
||||
for your system. Also describes some sample audio and video
|
||||
applications.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="kernelconfig"/>, Configuring the &os;
|
||||
Kernel</emphasis></term>
|
||||
<term><emphasis><xref linkend="kernelconfig"/>, Configuring
|
||||
the &os; Kernel</emphasis></term>
|
||||
<listitem>
|
||||
<para>Explains why you might need to configure a new kernel
|
||||
and provides detailed instructions for configuring, building,
|
||||
and installing a custom kernel.</para>
|
||||
and provides detailed instructions for configuring,
|
||||
building, and installing a custom kernel.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="printing"/>, Printing</emphasis></term>
|
||||
<term><emphasis><xref linkend="printing"/>,
|
||||
Printing</emphasis></term>
|
||||
<listitem>
|
||||
<para>Describes managing printers on &os;, including
|
||||
information about banner pages, printer accounting, and
|
||||
initial setup.</para>
|
||||
information about banner pages, printer accounting, and
|
||||
initial setup.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="linuxemu"/>, &linux; Binary Compatibility</emphasis></term>
|
||||
<term><emphasis><xref linkend="linuxemu"/>, &linux; Binary
|
||||
Compatibility</emphasis></term>
|
||||
<listitem>
|
||||
<para>Describes the &linux; compatibility features of &os;.
|
||||
Also provides detailed installation instructions for many
|
||||
popular &linux; applications such as <application>&oracle;</application> and
|
||||
Also provides detailed installation instructions for many
|
||||
popular &linux; applications such as
|
||||
<application>&oracle;</application> and
|
||||
<application>&mathematica;</application>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
@ -375,19 +404,22 @@
|
|||
<!-- Part III - System Administration -->
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="config-tuning"/>, Configuration and Tuning</emphasis></term>
|
||||
<term><emphasis><xref linkend="config-tuning"/>, Configuration
|
||||
and Tuning</emphasis></term>
|
||||
<listitem>
|
||||
<para>Describes the parameters available for system
|
||||
administrators to tune a &os; system for optimum
|
||||
performance. Also describes the various configuration files
|
||||
used in &os; and where to find them.</para>
|
||||
administrators to tune a &os; system for optimum
|
||||
performance. Also describes the various configuration files
|
||||
used in &os; and where to find them.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="boot"/>, Booting Process</emphasis></term>
|
||||
<term><emphasis><xref linkend="boot"/>, Booting
|
||||
Process</emphasis></term>
|
||||
<listitem>
|
||||
<para>Describes the &os; boot process and explains
|
||||
how to control this process with configuration options.</para>
|
||||
how to control this process with configuration
|
||||
options.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
|
@ -400,59 +432,69 @@
|
|||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="security"/>, Security</emphasis></term>
|
||||
<term><emphasis><xref linkend="security"/>,
|
||||
Security</emphasis></term>
|
||||
<listitem>
|
||||
<para>Describes many different tools available to help keep your
|
||||
&os; system secure, including Kerberos, IPsec and OpenSSH.</para>
|
||||
<para>Describes many different tools available to help keep
|
||||
your &os; system secure, including Kerberos, IPsec and
|
||||
OpenSSH.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="jails"/>, Jails</emphasis></term>
|
||||
<listitem>
|
||||
<para>Describes the jails framework, and the improvements of jails
|
||||
over the traditional chroot support of &os;.</para>
|
||||
<para>Describes the jails framework, and the improvements of
|
||||
jails over the traditional chroot support of &os;.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="mac"/>, Mandatory Access Control</emphasis></term>
|
||||
<term><emphasis><xref linkend="mac"/>, Mandatory Access
|
||||
Control</emphasis></term>
|
||||
<listitem>
|
||||
<para>Explains what Mandatory Access Control (MAC) is and how this
|
||||
mechanism can be used to secure a &os; system.</para>
|
||||
<para>Explains what Mandatory Access Control (MAC) is and
|
||||
how this mechanism can be used to secure a &os;
|
||||
system.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="audit"/>, Security Event Auditing</emphasis></term>
|
||||
<term><emphasis><xref linkend="audit"/>, Security Event
|
||||
Auditing</emphasis></term>
|
||||
<listitem>
|
||||
<para>Describes what &os; Event Auditing is, how it can be installed,
|
||||
configured, and how audit trails can be inspected or monitored.</para>
|
||||
<para>Describes what &os; Event Auditing is, how it can be
|
||||
installed, configured, and how audit trails can be inspected
|
||||
or monitored.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="disks"/>, Storage</emphasis></term>
|
||||
<term><emphasis><xref linkend="disks"/>,
|
||||
Storage</emphasis></term>
|
||||
<listitem>
|
||||
<para>Describes how to manage storage media and filesystems
|
||||
with &os;. This includes physical disks, RAID arrays,
|
||||
optical and tape media, memory-backed disks, and network
|
||||
filesystems.</para>
|
||||
with &os;. This includes physical disks, RAID arrays,
|
||||
optical and tape media, memory-backed disks, and network
|
||||
filesystems.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="GEOM-synopsis"/>, GEOM</emphasis></term>
|
||||
<term><emphasis><xref linkend="GEOM-synopsis"/>,
|
||||
GEOM</emphasis></term>
|
||||
<listitem>
|
||||
<para>Describes what the GEOM framework in &os; is and how
|
||||
to configure various supported RAID levels.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="filesystems"/>, File Systems Support</emphasis></term>
|
||||
<term><emphasis><xref linkend="filesystems"/>, File Systems
|
||||
Support</emphasis></term>
|
||||
<listitem>
|
||||
<para>Examines support of non-native file systems in &os;, like the Z
|
||||
File System from &sun;.</para>
|
||||
<para>Examines support of non-native file systems in &os;,
|
||||
like the Z File System from &sun;.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="vinum-vinum"/>, Vinum</emphasis></term>
|
||||
<term><emphasis><xref linkend="vinum-vinum"/>,
|
||||
Vinum</emphasis></term>
|
||||
<listitem>
|
||||
<para>Describes how to use Vinum, a logical volume manager
|
||||
which provides device-independent logical disks, and
|
||||
|
@ -460,66 +502,77 @@
|
|||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="virtualization"/>, Virtualization</emphasis></term>
|
||||
<term><emphasis><xref linkend="virtualization"/>,
|
||||
Virtualization</emphasis></term>
|
||||
<listitem>
|
||||
<para>Describes what virtualization systems offer, and how they
|
||||
can be used with &os;.</para>
|
||||
<para>Describes what virtualization systems offer, and how
|
||||
they can be used with &os;.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="l10n"/>, Localization</emphasis></term>
|
||||
<term><emphasis><xref linkend="l10n"/>,
|
||||
Localization</emphasis></term>
|
||||
<listitem>
|
||||
<para>Describes how to use &os; in languages other than
|
||||
English. Covers both system and application level
|
||||
localization.</para>
|
||||
English. Covers both system and application level
|
||||
localization.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="updating-upgrading"/>, Updating and Upgrading &os;</emphasis></term>
|
||||
<term><emphasis><xref linkend="updating-upgrading"/>, Updating
|
||||
and Upgrading &os;</emphasis></term>
|
||||
<listitem>
|
||||
<para>Explains the differences between &os;-STABLE,
|
||||
&os;-CURRENT, and &os; releases. Describes which users
|
||||
would benefit from tracking a development system and outlines
|
||||
that process. Covers the methods users may take to update their
|
||||
system to the latest security release.</para>
|
||||
&os;-CURRENT, and &os; releases. Describes which users
|
||||
would benefit from tracking a development system and
|
||||
outlines that process. Covers the methods users may take
|
||||
to update their system to the latest security
|
||||
release.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="dtrace"/>, &dtrace;</emphasis></term>
|
||||
<term><emphasis><xref linkend="dtrace"/>,
|
||||
&dtrace;</emphasis></term>
|
||||
<listitem>
|
||||
<para>Describes how to configure and use the &dtrace; tool from &sun;
|
||||
in &os;. Dynamic tracing can help locate performance issues, by
|
||||
performing real time system analysis.</para>
|
||||
<para>Describes how to configure and use the &dtrace; tool
|
||||
from &sun; in &os;. Dynamic tracing can help locate
|
||||
performance issues, by performing real time system
|
||||
analysis.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<!-- Part IV - Network Communications -->
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="serialcomms"/>, Serial Communications</emphasis></term>
|
||||
<term><emphasis><xref linkend="serialcomms"/>, Serial
|
||||
Communications</emphasis></term>
|
||||
<listitem>
|
||||
<para>Explains how to connect terminals and modems to your
|
||||
&os; system for both dial in and dial out connections.</para>
|
||||
&os; system for both dial in and dial out
|
||||
connections.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="ppp-and-slip"/>, PPP and SLIP</emphasis></term>
|
||||
<term><emphasis><xref linkend="ppp-and-slip"/>, PPP and
|
||||
SLIP</emphasis></term>
|
||||
<listitem>
|
||||
<para>Describes how to use PPP, SLIP, or PPP over Ethernet to
|
||||
connect to remote systems with &os;.</para>
|
||||
connect to remote systems with &os;.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="mail"/>, Electronic Mail</emphasis></term>
|
||||
<term><emphasis><xref linkend="mail"/>, Electronic
|
||||
Mail</emphasis></term>
|
||||
<listitem>
|
||||
<para>Explains the different components of an email server and
|
||||
dives into simple configuration topics for the most popular
|
||||
mail server software:
|
||||
<application>sendmail</application>.</para>
|
||||
<para>Explains the different components of an email server
|
||||
and dives into simple configuration topics for the most
|
||||
popular mail server software:
|
||||
<application>sendmail</application>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="network-servers"/>, Network Servers</emphasis></term>
|
||||
<term><emphasis><xref linkend="network-servers"/>, Network
|
||||
Servers</emphasis></term>
|
||||
<listitem>
|
||||
<para>Provides detailed instructions and example configuration
|
||||
files to set up your &os; machine as a network filesystem
|
||||
|
@ -528,79 +581,88 @@
|
|||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="firewalls"/>, Firewalls</emphasis></term>
|
||||
<term><emphasis><xref linkend="firewalls"/>,
|
||||
Firewalls</emphasis></term>
|
||||
<listitem>
|
||||
<para>Explains the philosophy behind software-based firewalls and
|
||||
provides detailed information about the configuration of the
|
||||
different firewalls available for &os;.</para>
|
||||
<para>Explains the philosophy behind software-based firewalls
|
||||
and provides detailed information about the configuration
|
||||
of the different firewalls available for &os;.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="advanced-networking"/>, Advanced Networking</emphasis></term>
|
||||
<term><emphasis><xref linkend="advanced-networking"/>, Advanced
|
||||
Networking</emphasis></term>
|
||||
<listitem>
|
||||
<para>Describes many networking topics, including sharing an
|
||||
Internet connection with other computers on your LAN, advanced
|
||||
routing topics, wireless networking, &bluetooth;, ATM, IPv6, and
|
||||
much more.</para>
|
||||
Internet connection with other computers on your LAN,
|
||||
advanced routing topics, wireless networking, &bluetooth;,
|
||||
ATM, IPv6, and much more.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<!-- Part V - Appendices -->
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="mirrors"/>, Obtaining &os; </emphasis></term>
|
||||
<term><emphasis><xref linkend="mirrors"/>, Obtaining &os;
|
||||
</emphasis></term>
|
||||
<listitem>
|
||||
<para>Lists different sources for obtaining &os; media on CDROM
|
||||
or DVD as well as different sites on the Internet that allow
|
||||
you to download and install &os;.</para>
|
||||
<para>Lists different sources for obtaining &os; media on
|
||||
CDROM or DVD as well as different sites on the Internet
|
||||
that allow you to download and install &os;.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="bibliography"/>, Bibliography </emphasis></term>
|
||||
<term><emphasis><xref linkend="bibliography"/>,
|
||||
Bibliography</emphasis></term>
|
||||
<listitem>
|
||||
<para>This book touches on many different subjects that may
|
||||
leave you hungry for a more detailed explanation. The
|
||||
bibliography lists many excellent books that are referenced in
|
||||
the text.</para>
|
||||
leave you hungry for a more detailed explanation. The
|
||||
bibliography lists many excellent books that are referenced
|
||||
in the text.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="eresources"/>, Resources on the Internet</emphasis></term>
|
||||
<term><emphasis><xref linkend="eresources"/>, Resources on the
|
||||
Internet</emphasis></term>
|
||||
<listitem>
|
||||
<para>Describes the many forums available for &os; users to
|
||||
post questions and engage in technical conversations about
|
||||
&os;.</para>
|
||||
post questions and engage in technical conversations about
|
||||
&os;.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="pgpkeys"/>, PGP Keys</emphasis></term>
|
||||
<term><emphasis><xref linkend="pgpkeys"/>, PGP
|
||||
Keys</emphasis></term>
|
||||
<listitem>
|
||||
<para>Lists the PGP fingerprints of several &os; Developers.</para>
|
||||
<para>Lists the PGP fingerprints of several &os;
|
||||
Developers.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<bridgehead id="preface-conv" renderas="sect1">Conventions used
|
||||
in this book</bridgehead>
|
||||
in this book</bridgehead>
|
||||
|
||||
<para>To provide a consistent and easy to read text, several
|
||||
conventions are followed throughout the book.</para>
|
||||
conventions are followed throughout the book.</para>
|
||||
|
||||
<bridgehead id="preface-conv-typographic" renderas="sect2">Typographic
|
||||
Conventions</bridgehead>
|
||||
<bridgehead id="preface-conv-typographic"
|
||||
renderas="sect2">Typographic
|
||||
Conventions</bridgehead>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><emphasis>Italic</emphasis></term>
|
||||
<listitem>
|
||||
<para>An <emphasis>italic</emphasis> font is used for filenames, URLs,
|
||||
emphasized text, and the first usage of technical terms.</para>
|
||||
<para>An <emphasis>italic</emphasis> font is used for
|
||||
filenames, URLs, emphasized text, and the first usage of
|
||||
technical terms.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><literal>Monospace</literal></term>
|
||||
<listitem>
|
||||
<para>A <literal>monospaced</literal> font is
|
||||
<para>A <literal>monospaced</literal> font is
|
||||
used for error messages, commands, environment variables,
|
||||
names of ports, hostnames, user names, group names, device
|
||||
names, variables, and code fragments.</para>
|
||||
|
@ -610,7 +672,7 @@
|
|||
<term><application>Bold</application></term>
|
||||
<listitem>
|
||||
<para>A <application>bold</application> font is used for
|
||||
applications, commands, and keys.</para>
|
||||
applications, commands, and keys.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
@ -628,16 +690,14 @@
|
|||
<keycombo action="simul">
|
||||
<keycap>Ctrl</keycap>
|
||||
<keycap>Alt</keycap>
|
||||
<keycap>Del</keycap>
|
||||
</keycombo>
|
||||
</para>
|
||||
<keycap>Del</keycap></keycombo></para>
|
||||
|
||||
<para>Meaning the user should type the <keycap>Ctrl</keycap>,
|
||||
<keycap>Alt</keycap>, and <keycap>Del</keycap> keys at the same
|
||||
time.</para>
|
||||
|
||||
<para>Keys that are meant to be typed in sequence will be separated with
|
||||
commas, for example:</para>
|
||||
<para>Keys that are meant to be typed in sequence will be separated
|
||||
with commas, for example:</para>
|
||||
|
||||
<para>
|
||||
<keycombo action="simul">
|
||||
|
@ -646,9 +706,7 @@
|
|||
</keycombo>,
|
||||
<keycombo action="simul">
|
||||
<keycap>Ctrl</keycap>
|
||||
<keycap>S</keycap>
|
||||
</keycombo>
|
||||
</para>
|
||||
<keycap>S</keycap></keycombo></para>
|
||||
|
||||
<para>Would mean that the user is expected to type the
|
||||
<keycap>Ctrl</keycap> and <keycap>X</keycap> keys simultaneously
|
||||
|
@ -660,9 +718,10 @@
|
|||
renderas="sect2">Examples</bridgehead>
|
||||
|
||||
<para>Examples starting with <devicename>E:\></devicename>
|
||||
indicate a &ms-dos; command. Unless otherwise noted, these commands
|
||||
may be executed from a <quote>Command Prompt</quote> window in a modern µsoft.windows;
|
||||
environment.</para>
|
||||
indicate a &ms-dos; command. Unless otherwise noted, these
|
||||
commands may be executed from a <quote>Command Prompt</quote>
|
||||
window in a modern µsoft.windows;
|
||||
environment.</para>
|
||||
|
||||
<screen><prompt>E:\></prompt> <userinput>tools\fdimage floppies\kern.flp A:</userinput></screen>
|
||||
|
||||
|
@ -684,10 +743,10 @@
|
|||
<bridgehead id="preface-acknowledgements"
|
||||
renderas="sect1">Acknowledgments</bridgehead>
|
||||
|
||||
<para>The book you are holding represents the efforts of many hundreds of
|
||||
people around the world. Whether they sent in fixes for typos, or
|
||||
submitted complete chapters, all the contributions have been
|
||||
useful.</para>
|
||||
<para>The book you are holding represents the efforts of many
|
||||
hundreds of people around the world. Whether they sent in fixes
|
||||
for typos, or submitted complete chapters, all the contributions
|
||||
have been useful.</para>
|
||||
|
||||
<para>Several companies have supported the development of this
|
||||
document by paying authors to work on it full-time, paying for
|
||||
|
@ -697,11 +756,11 @@
|
|||
improving this book full time leading up to the publication of the
|
||||
first printed edition in March 2000 (ISBN 1-57176-241-8). Wind
|
||||
River Systems then paid several additional authors to make a
|
||||
number of improvements to the print-output infrastructure and to add
|
||||
additional chapters to the text. This work culminated in the
|
||||
publication of the second printed edition in November 2001 (ISBN
|
||||
1-57176-303-1). In 2003-2004, <ulink
|
||||
url="http://www.freebsdmall.com">&os; Mall, Inc</ulink>, paid
|
||||
number of improvements to the print-output infrastructure and
|
||||
to add additional chapters to the text. This work culminated in
|
||||
the publication of the second printed edition in November 2001
|
||||
(ISBN 1-57176-303-1). In 2003-2004, <ulink
|
||||
url="http://www.freebsdmall.com">&os; Mall, Inc</ulink>, paid
|
||||
several contributors to improve the Handbook in preparation for
|
||||
the third printed edition.</para>
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue