aboutsummaryrefslogtreecommitdiff
path: root/en_US.ISO8859-1/books/handbook
diff options
context:
space:
mode:
authorGabor Kovesdan <gabor@FreeBSD.org>2013-02-05 09:14:34 +0000
committerGabor Kovesdan <gabor@FreeBSD.org>2013-02-05 09:14:34 +0000
commita06603e1e8c43dac65e769d0577e15561dde3acb (patch)
tree56789ede4270141e038c244e602fe2503127b62f /en_US.ISO8859-1/books/handbook
parent5be98520031882d40220ca83d603138abb7ef89a (diff)
parentfbf79ce9835e43f0e5de684052af39c914b817ab (diff)
downloaddoc-a06603e1e8c43dac65e769d0577e15561dde3acb.tar.gz
doc-a06603e1e8c43dac65e769d0577e15561dde3acb.zip
- MFH
Notes
Notes: svn path=/projects/xml-tools/; revision=40889
Diffstat (limited to 'en_US.ISO8859-1/books/handbook')
-rw-r--r--en_US.ISO8859-1/books/handbook/Makefile8
-rw-r--r--en_US.ISO8859-1/books/handbook/advanced-networking/chapter.xml299
-rw-r--r--en_US.ISO8859-1/books/handbook/audit/chapter.xml637
-rw-r--r--en_US.ISO8859-1/books/handbook/basics/chapter.xml3095
-rw-r--r--en_US.ISO8859-1/books/handbook/book.xml3
-rw-r--r--en_US.ISO8859-1/books/handbook/boot/chapter.xml31
-rw-r--r--en_US.ISO8859-1/books/handbook/bsdinstall/chapter.xml96
-rw-r--r--en_US.ISO8859-1/books/handbook/colophon.xml21
-rw-r--r--en_US.ISO8859-1/books/handbook/config/chapter.xml113
-rw-r--r--en_US.ISO8859-1/books/handbook/cutting-edge/chapter.xml2815
-rw-r--r--en_US.ISO8859-1/books/handbook/desktop/chapter.xml540
-rw-r--r--en_US.ISO8859-1/books/handbook/disks/chapter.xml331
-rw-r--r--en_US.ISO8859-1/books/handbook/dtrace/chapter.xml115
-rw-r--r--en_US.ISO8859-1/books/handbook/eresources/chapter.xml1060
-rw-r--r--en_US.ISO8859-1/books/handbook/filesystems/chapter.xml501
-rw-r--r--en_US.ISO8859-1/books/handbook/firewalls/chapter.xml1903
-rw-r--r--en_US.ISO8859-1/books/handbook/geom/chapter.xml760
-rw-r--r--en_US.ISO8859-1/books/handbook/index.xml1
-rw-r--r--en_US.ISO8859-1/books/handbook/install/chapter.xml4
-rw-r--r--en_US.ISO8859-1/books/handbook/introduction/chapter.xml20
-rw-r--r--en_US.ISO8859-1/books/handbook/jails/Makefile15
-rw-r--r--en_US.ISO8859-1/books/handbook/jails/chapter.xml16
-rw-r--r--en_US.ISO8859-1/books/handbook/kernelconfig/chapter.xml928
-rw-r--r--en_US.ISO8859-1/books/handbook/l10n/chapter.xml631
-rw-r--r--en_US.ISO8859-1/books/handbook/linuxemu/chapter.xml906
-rw-r--r--en_US.ISO8859-1/books/handbook/mac/chapter.xml868
-rw-r--r--en_US.ISO8859-1/books/handbook/mail/chapter.xml12
-rw-r--r--en_US.ISO8859-1/books/handbook/mirrors/chapter.xml3397
-rw-r--r--en_US.ISO8859-1/books/handbook/multimedia/chapter.xml1481
-rw-r--r--en_US.ISO8859-1/books/handbook/network-servers/chapter.xml379
-rw-r--r--en_US.ISO8859-1/books/handbook/ports/chapter.xml2221
-rw-r--r--en_US.ISO8859-1/books/handbook/ppp-and-slip/chapter.xml1966
-rw-r--r--en_US.ISO8859-1/books/handbook/preface/preface.xml641
-rw-r--r--en_US.ISO8859-1/books/handbook/printing/chapter.xml4018
-rw-r--r--en_US.ISO8859-1/books/handbook/security/chapter.xml35
-rw-r--r--en_US.ISO8859-1/books/handbook/serialcomms/chapter.xml2123
-rw-r--r--en_US.ISO8859-1/books/handbook/users/chapter.xml649
-rw-r--r--en_US.ISO8859-1/books/handbook/vinum/chapter.xml685
-rw-r--r--en_US.ISO8859-1/books/handbook/virtualization/chapter.xml46
-rw-r--r--en_US.ISO8859-1/books/handbook/x11/chapter.xml1079
40 files changed, 18242 insertions, 16207 deletions
diff --git a/en_US.ISO8859-1/books/handbook/Makefile b/en_US.ISO8859-1/books/handbook/Makefile
index 6f822d303f..5f31dca821 100644
--- a/en_US.ISO8859-1/books/handbook/Makefile
+++ b/en_US.ISO8859-1/books/handbook/Makefile
@@ -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}
diff --git a/en_US.ISO8859-1/books/handbook/advanced-networking/chapter.xml b/en_US.ISO8859-1/books/handbook/advanced-networking/chapter.xml
index 57bf23600b..143646add5 100644
--- a/en_US.ISO8859-1/books/handbook/advanced-networking/chapter.xml
+++ b/en_US.ISO8859-1/books/handbook/advanced-networking/chapter.xml
@@ -45,10 +45,6 @@
</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&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; 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&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; 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
&lt;3-Slot&gt; &lt;5-Slot&gt; &lt;Encryption&gt; &lt;Slot offset&gt;
@@ -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&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; metric 0 mtu 1500
options=8&lt;VLAN_MTU&gt;
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&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; metric 0 mtu 1500
options=19b&lt;RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4&gt;
ether 00:21:70:da:ae:37
@@ -3626,19 +3621,19 @@ bge0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; 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&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; 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&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; metric 0 mtu 1500
options=8&lt;VLAN_MTU&gt;
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: &lt;Printer&gt; 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&lt;POINTOPOINT,SIMPLEX,MULTICAST&gt; 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 &lt;-----&gt; 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&lt;UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST&gt; mtu 1500
- inet 10.0.0.1 --&gt; 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;&nbsp;9.<replaceable>x</replaceable>:</para>
+ following for
+ &os;&nbsp;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>
diff --git a/en_US.ISO8859-1/books/handbook/audit/chapter.xml b/en_US.ISO8859-1/books/handbook/audit/chapter.xml
index f8ed65c041..ae55c41d2a 100644
--- a/en_US.ISO8859-1/books/handbook/audit/chapter.xml
+++ b/en_US.ISO8859-1/books/handbook/audit/chapter.xml
@@ -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 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 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
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>
-
- <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>filesz</option> option specifies the maximum size
- in bytes to allow an audit trail file to grow to before
+ 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>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
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>
-
- <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>
+ 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>
<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>
diff --git a/en_US.ISO8859-1/books/handbook/basics/chapter.xml b/en_US.ISO8859-1/books/handbook/basics/chapter.xml
index 2b45e4a68d..23dde1ae1f 100644
--- a/en_US.ISO8859-1/books/handbook/basics/chapter.xml
+++ b/en_US.ISO8859-1/books/handbook/basics/chapter.xml
@@ -9,7 +9,7 @@
<chapterinfo>
<authorgroup>
<author>
- <firstname>Chris</firstname>
+ <firstname>Chris</firstname>
<surname>Shumway</surname>
<contrib>Rewritten by </contrib>
</author>
@@ -22,226 +22,191 @@
<sect1 id="basics-synopsis">
<title>Synopsis</title>
- <para>The following chapter will cover the basic commands and
- functionality of the FreeBSD operating system. Much of this
- material is relevant for any &unix;-like operating system. Feel
- free to skim over this chapter if you are familiar with the
- material. If you are new to FreeBSD, then you will definitely
- want to read through this chapter carefully.</para>
+ <para>This chapter covers the basic commands and functionality of
+ the &os; operating system. Much of this material is relevant
+ for any &unix;-like operating system. New &os; users are
+ encouraged to read through this chapter carefully.</para>
<para>After reading this chapter, you will know:</para>
<itemizedlist>
<listitem>
- <para>How to use the <quote>virtual consoles</quote> of
- FreeBSD.</para>
+ <para>How to use the <quote>virtual consoles</quote> of
+ &os;.</para>
</listitem>
+
<listitem>
- <para>How &unix; file permissions work along with
- understanding file flags in &os;.</para>
+ <para>How &unix; file permissions and &os; file flags
+ work.</para>
</listitem>
+
<listitem>
<para>The default &os; file system layout.</para>
</listitem>
+
<listitem>
<para>The &os; disk organization.</para>
</listitem>
+
<listitem>
<para>How to mount and unmount file systems.</para>
</listitem>
+
<listitem>
<para>What processes, daemons, and signals are.</para>
</listitem>
+
<listitem>
<para>What a shell is, and how to change your default login
- environment.</para>
+ environment.</para>
</listitem>
+
<listitem>
<para>How to use basic text editors.</para>
</listitem>
+
<listitem>
<para>What devices and device nodes are.</para>
</listitem>
+
<listitem>
<para>What binary format is used under &os;.</para>
</listitem>
+
<listitem>
<para>How to read manual pages for more information.</para>
</listitem>
</itemizedlist>
-
</sect1>
<sect1 id="consoles">
<title>Virtual Consoles and Terminals</title>
+
<indexterm><primary>virtual consoles</primary></indexterm>
<indexterm><primary>terminals</primary></indexterm>
- <para>FreeBSD can be used in various ways. One of them is typing commands
- to a text terminal. A lot of the flexibility and power of a &unix;
- operating system is readily available at your hands when using FreeBSD
- this way. This section describes what <quote>terminals</quote> and
- <quote>consoles</quote> are, and how you can use them in FreeBSD.</para>
+ <para>&os; can be used in various ways. One of them is typing
+ commands to a text terminal. A lot of the flexibility and power
+ of a &unix; operating system is readily available at your hands
+ when using &os; this way. This section describes what
+ <quote>terminals</quote> and <quote>consoles</quote> are, and
+ how you can use them in &os;.</para>
<sect2 id="consoles-intro">
<title>The Console</title>
- <indexterm><primary>console</primary></indexterm>
-
- <para>If you have not configured FreeBSD to automatically start a
- graphical environment during startup, the system will present you with
- a login prompt after it boots, right after the startup scripts finish
- running. You will see something similar to:</para>
- <screen>Additional ABI support:.
-Local package initialization:.
-Additional TCP options:.
+ <indexterm><primary>console</primary></indexterm>
-Fri Sep 20 13:01:06 EEST 2002
+ <para>Unless &os; has been configured to automatically start
+ a graphical environment during startup, the system will boot
+ into a command line login prompt, as seen in this
+ example:</para>
-FreeBSD/i386 (pc3.example.org) (ttyv0)
+ <screen>FreeBSD/amd64 (pc3.example.org) (ttyv0)
login:</screen>
- <para>The messages might be a bit different on your system, but you will
- see something similar. The last two lines are what we are interested
- in right now. The second last line reads:</para>
-
- <programlisting>FreeBSD/i386 (pc3.example.org) (ttyv0)</programlisting>
-
- <para>This line contains some bits of information about the system you
- have just booted. You are looking at a <quote>FreeBSD</quote>
- console, running on an Intel or compatible processor of the x86
- architecture<footnote>
- <para>This is what <literal>i386</literal> means. Note that even if
- you are not running FreeBSD on an Intel 386 CPU, this is going to
- be <literal>i386</literal>. It is not the type of your processor,
- but the processor <quote>architecture</quote> that is shown
- here.</para>
- </footnote>. The name of this machine (every &unix; machine has a
- name) is <hostid>pc3.example.org</hostid>, and you are now looking
- at its system console&mdash;the <devicename>ttyv0</devicename>
- terminal.</para>
-
- <para>Finally, the last line is always:</para>
-
- <programlisting>login:</programlisting>
-
- <para>This is the part where you are supposed to type in your
- <quote>username</quote> to log into FreeBSD. The next section
- describes how you can do this.</para>
+ <para>The first line contains some information about the
+ system. The <literal>amd64</literal> indicates that the
+ system in this example is running a 64-bit version of &os;.
+ The hostname is <hostid>pc3.example.org</hostid>, and
+ <devicename>ttyv0</devicename> indicates that this is the
+ system console.</para>
+
+ <para>The second line is the login prompt. The next section
+ describes how to log into &os; at this prompt.</para>
</sect2>
<sect2 id="consoles-login">
- <title>Logging into FreeBSD</title>
+ <title>Logging into &os;</title>
- <para>FreeBSD is a multiuser, multiprocessing system. This is
- the formal description that is usually given to a system that can be
- used by many different people, who simultaneously run a lot of
- programs on a single machine.</para>
+ <para>&os; is a multiuser, multiprocessing system. This is
+ the formal description that is usually given to a system that
+ can be used by many different people, who simultaneously run a
+ lot of programs on a single machine.</para>
<para>Every multiuser system needs some way to distinguish one
- <quote>user</quote> from the rest. In FreeBSD (and all the
- &unix;-like operating systems), this is accomplished by requiring that
- every user must <quote>log into</quote> the system before being able
- to run programs. Every user has a unique name (the
- <quote>username</quote>) and a personal, secret key (the
- <quote>password</quote>). FreeBSD will ask for these two before
- allowing a user to run any programs.</para>
+ <quote>user</quote> from the rest. In &os; (and all the
+ &unix;-like operating systems), this is accomplished by
+ requiring that every user must <quote>log into</quote> the
+ system before being able to run programs. Every user has a
+ unique name (the <quote>username</quote>) and a personal,
+ secret key (the <quote>password</quote>). &os; will ask
+ for these two before allowing a user to run any
+ programs.</para>
<indexterm><primary>startup scripts</primary></indexterm>
- <para>Right after FreeBSD boots and finishes running its startup
- scripts<footnote>
- <para>Startup scripts are programs that are run automatically by
- FreeBSD when booting. Their main function is to set things up for
- everything else to run, and start any services that you have
- configured to run in the background doing useful things.</para>
- </footnote>, it will present you with a prompt and ask for a valid
- username:</para>
+ <para>When a &os; system boots, startup scripts are
+ automatically executed in order to prepare the system and to
+ start any services which have been configured to start at
+ system boot. Once the system finishes running its startup
+ scripts, it will present a login prompt:</para>
<screen>login:</screen>
- <para>For the sake of this example, let us assume that your username is
- <username>john</username>. Type <literal>john</literal> at this prompt and press
- <keycap>Enter</keycap>. You should then be presented with a prompt to
- enter a <quote>password</quote>:</para>
-
- <screen>login: <userinput>john</userinput>
-Password:</screen>
-
- <para>Type in <username>john</username>'s password now, and press
- <keycap>Enter</keycap>. The password is <emphasis>not
- echoed!</emphasis> You need not worry about this right now. Suffice
- it to say that it is done for security reasons.</para>
-
- <para>If you have typed your password correctly, you should by now be
- logged into FreeBSD and ready to try out all the available
- commands.</para>
-
- <para>You should see the <acronym>MOTD</acronym> or message of
- the day followed by a command prompt (a <literal>#</literal>,
- <literal>$</literal>, or <literal>%</literal> character). This
- indicates you have successfully logged into FreeBSD.</para>
+ <para>Type the username that was configured during <link
+ linkend="bsdinstall-addusers">system installation</link> and
+ press <keycap>Enter</keycap>. Then enter the password
+ associated with the username and press <keycap>Enter</keycap>.
+ The password is <emphasis>not echoed</emphasis> for security
+ reasons.</para>
+
+ <para>Once the correct password is input, the message of
+ the day (<acronym>MOTD</acronym>) will be displayed followed
+ by a command prompt (a <literal>#</literal>,
+ <literal>$</literal>, or <literal>%</literal> character). You
+ are now logged into the &os; console and ready to try the
+ available commands.</para>
</sect2>
<sect2 id="consoles-virtual">
- <title>Multiple Consoles</title>
-
- <para>Running &unix; commands in one console is fine, but FreeBSD can
- run many programs at once. Having one console where commands can be
- typed would be a bit of a waste when an operating system like FreeBSD
- can run dozens of programs at the same time. This is where
- <quote>virtual consoles</quote> can be very helpful.</para>
-
- <para>FreeBSD can be configured to present you with many different
- virtual consoles. You can switch from one of them to any other
- virtual console by pressing a couple of keys on your keyboard. Each
- console has its own different output channel, and FreeBSD takes care
- of properly redirecting keyboard input and monitor output as you
- switch from one virtual console to the next.</para>
-
- <para>Special key combinations have been reserved by FreeBSD for
- switching consoles<footnote>
- <para>A fairly technical and accurate description of all the details
- of the FreeBSD console and keyboard drivers can be found in the
- manual pages of &man.syscons.4;, &man.atkbd.4;, &man.vidcontrol.1;
- and &man.kbdcontrol.1;. We will not expand on the details here,
- but the interested reader can always consult the manual pages for
- a more detailed and thorough explanation of how things
- work.</para>
- </footnote>. You can use
+ <title>Virtual Consoles</title>
+
+ <para>&os; can be configured to provide many virtual consoles
+ for inputting commands. Each virtual console has its own
+ login prompt and output channel, and &os; takes care of
+ properly redirecting keyboard input and monitor output as you
+ switch between virtual consoles.</para>
+
+ <para>Special key combinations have been reserved by &os; for
+ switching consoles.<footnote>
+ <para>Refer to &man.syscons.4;, &man.atkbd.4;,
+ &man.vidcontrol.1; and &man.kbdcontrol.1; for a more
+ technical description of the &os; console and its keyboard
+ drivers.</para></footnote>. Use
<keycombo><keycap>Alt</keycap><keycap>F1</keycap></keycombo>,
- <keycombo><keycap>Alt</keycap><keycap>F2</keycap></keycombo>, through
- <keycombo><keycap>Alt</keycap><keycap>F8</keycap></keycombo> to switch
- to a different virtual console in FreeBSD.</para>
-
- <para>As you are switching from one console to the next, FreeBSD takes
- care of saving and restoring the screen output. The result is an
- <quote>illusion</quote> of having multiple <quote>virtual</quote>
- screens and keyboards that you can use to type commands for
- FreeBSD to run. The programs that you launch on one virtual console
- do not stop running when that console is not visible. They continue
- running when you have switched to a different virtual console.</para>
+ <keycombo><keycap>Alt</keycap><keycap>F2</keycap></keycombo>,
+ through
+ <keycombo><keycap>Alt</keycap><keycap>F8</keycap></keycombo>
+ to switch to a different virtual console in &os;.</para>
+
+ <para>When switching from one console to the next, &os; takes
+ care of saving and restoring the screen output. The result is
+ an <quote>illusion</quote> of having multiple
+ <quote>virtual</quote> screens and keyboards that can be used
+ to type commands for &os; to run. The programs that are
+ launched in one virtual console do not stop running when that
+ console is not visible because the user has switched to a
+ different virtual console.</para>
</sect2>
<sect2 id="consoles-ttys">
<title>The <filename>/etc/ttys</filename> File</title>
- <para>The default configuration of FreeBSD will start up with eight
- virtual consoles. This is not a hardwired setting though, and
- you can easily customize your installation to boot with more
- or fewer virtual consoles. The number and settings of the
- virtual consoles are configured in the
- <filename>/etc/ttys</filename> file.</para>
-
- <para>You can use the <filename>/etc/ttys</filename> file to configure
- the virtual consoles of FreeBSD. Each uncommented line in this file
- (lines that do not start with a <literal>#</literal> character) contains
- settings for a single terminal or virtual console. The default
- version of this file that ships with FreeBSD configures nine virtual
- consoles, and enables eight of them. They are the lines that start with
- <literal>ttyv</literal>:</para>
-
- <programlisting># name getty type status comments
+ <para>By default, &os; is configured to start eight virtual
+ consoles. The configuration can be customized to start
+ more or fewer virtual consoles. To change the number of and
+ the settings of the virtual consoles, edit
+ <filename>/etc/ttys</filename>.</para>
+
+ <para>Each uncommented line in <filename>/etc/ttys</filename>
+ (lines that do not start with a <literal>#</literal>
+ character) contains settings for a single terminal or virtual
+ console. The default version configures nine virtual
+ consoles, and enables eight of them. They are the lines that
+ start with <literal>ttyv</literal>:</para>
+
+ <programlisting># name getty type status comments
#
ttyv0 "/usr/libexec/getty Pc" cons25 on secure
# Virtual terminals
@@ -254,72 +219,70 @@ ttyv6 "/usr/libexec/getty Pc" cons25 on secure
ttyv7 "/usr/libexec/getty Pc" cons25 on secure
ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure</programlisting>
- <para>For a detailed description of every column in this file and all
- the options you can use to set things up for the virtual consoles,
- consult the &man.ttys.5; manual page.</para>
+ <para>For a detailed description of every column in this file
+ and the available options for the virtual consoles, refer to
+ &man.ttys.5;.</para>
</sect2>
<sect2 id="consoles-singleuser">
<title>Single User Mode Console</title>
- <para>A detailed description of what <quote>single user mode</quote> is
- can be found in <xref linkend="boot-singleuser"/>. It is worth noting
- that there is only one console when you are running FreeBSD in single
- user mode. There are no virtual consoles available. The settings of
- the single user mode console can also be found in the
- <filename>/etc/ttys</filename> file. Look for the line that starts
- with <literal>console</literal>:</para>
+ <para>A detailed description of <quote>single user mode</quote>
+ can be found <link linkend="boot-singleuser">here</link>.
+ There is only one console when &os; is in single user mode as
+ no other virtual consoles are available in this mode. The
+ settings for single user mode are found in this section of
+ <filename>/etc/ttys</filename>:</para>
- <programlisting># name getty type status comments
+ <programlisting># name getty type status comments
#
# If console is marked "insecure", then init will ask for the root password
# when going to single-user mode.
-console none unknown off secure</programlisting>
+console none unknown off secure</programlisting>
<note>
- <para>As the comments above the <literal>console</literal> line
- indicate, you can edit this line and change <literal>secure</literal> to
- <literal>insecure</literal>. If you do that, when FreeBSD boots
- into single user mode, it will still ask for the
- <username>root</username> password.</para>
-
- <para><emphasis>Be careful when changing this to
- <literal>insecure</literal></emphasis>. If you ever forget
- the <username>root</username> password, booting into single user
- mode is a bit involved. It is still possible, but it might be a bit
- hard for someone who is not very comfortable with the FreeBSD
- booting process and the programs involved.</para>
+ <para>As the comments above the <literal>console</literal>
+ line indicate, editing <literal>secure</literal> to
+ <literal>insecure</literal> will prompt for the
+ <username>root</username> password when booting into single
+ user mode. The default setting enters single user mode
+ without prompting for a password.</para>
+
+ <para><emphasis>Be careful when changing this setting to
+ <literal>insecure</literal></emphasis>. If you ever
+ forget the <username>root</username> password, booting into
+ single user mode is still possible, but may be difficult for
+ someone who is not comfortable with the &os; booting
+ process.</para>
</note>
</sect2>
<sect2 id="consoles-vidcontrol">
<title>Changing Console Video Modes</title>
- <para>The FreeBSD console default video mode may be adjusted to
- 1024x768, 1280x1024, or any other size supported by your
- graphics chip and monitor. To use a different video mode, you
- first must recompile your kernel and include two additional
- options:</para>
+ <para>The &os; console default video mode may be adjusted to
+ 1024x768, 1280x1024, or any other size supported by the
+ graphics chip and monitor. To use a different video mode
+ load the <literal>VESA</literal> module:</para>
- <programlisting>options VESA
-options SC_PIXEL_MODE</programlisting>
+ <screen>&prompt.root; <userinput>kldload vesa</userinput></screen>
- <para>Once the kernel has been recompiled with these two
- options, you can then determine what video modes are supported
- by your hardware by using the &man.vidcontrol.1; utility. To
- get a list of supported video modes issue the following:</para>
+ <para>To determine which video modes are supported by the
+ hardware, use &man.vidcontrol.1;. To get a list of supported
+ video modes issue the following:</para>
<screen>&prompt.root; <userinput>vidcontrol -i mode</userinput></screen>
- <para>The output of this command is a list of video modes that
- are supported by your hardware. You can then choose to use a
- new video mode by passing it to &man.vidcontrol.1; in a <username>root</username> console:</para>
+ <para>The output of this command lists the video modes that
+ are supported by the hardware. To select a new video mode,
+ specify the mode using &man.vidcontrol.1; as the
+ <username>root</username> user:</para>
<screen>&prompt.root; <userinput>vidcontrol MODE_279</userinput></screen>
<para>If the new video mode is acceptable, it can be permanently
- set on boot by setting it in the <filename>/etc/rc.conf</filename>
- file:</para>
+ set on boot by adding it to
+ <filename>/etc/rc.conf</filename>:</para>
<programlisting>allscreens_flags="MODE_279"</programlisting>
</sect2>
@@ -327,23 +290,24 @@ options SC_PIXEL_MODE</programlisting>
<sect1 id="permissions">
<title>Permissions</title>
+
<indexterm><primary>UNIX</primary></indexterm>
- <para>FreeBSD, being a direct descendant of BSD &unix;, is based on
- several key &unix; concepts. The first and
- most pronounced is that FreeBSD is a multi-user operating system.
- The system can handle several users all working simultaneously on
- completely unrelated tasks. The system is responsible for properly
- sharing and managing requests for hardware devices, peripherals,
- memory, and CPU time fairly to each user.</para>
+ <para>&os;, being a direct descendant of BSD &unix;, is based
+ on several key &unix; concepts. The first and most pronounced
+ is that &os; is a multi-user operating system that can handle
+ several users working simultaneously on completely unrelated
+ tasks. The system is responsible for properly sharing and
+ managing requests for hardware devices, peripherals, memory, and
+ CPU time fairly to each user.</para>
<para>Because the system is capable of supporting multiple users,
- everything the system manages has a set of permissions governing who
- can read, write, and execute the resource. These permissions are
- stored as three octets broken into three pieces, one for the owner of
- the file, one for the group that the file belongs to, and one for
- everyone else. This numerical representation works like
- this:</para>
+ everything the system manages has a set of permissions governing
+ who can read, write, and execute the resource. These
+ permissions are stored as three octets broken into three pieces,
+ one for the owner of the file, one for the group that the file
+ belongs to, and one for everyone else. This numerical
+ representation works like this:</para>
<indexterm><primary>permissions</primary></indexterm>
<indexterm>
@@ -415,67 +379,59 @@ options SC_PIXEL_MODE</programlisting>
</indexterm>
<indexterm><primary>directories</primary></indexterm>
- <para>You can use the <option>-l</option> command line
- argument to &man.ls.1; to view a long directory listing that
- includes a column with information about a file's permissions
- for the owner, group, and everyone else. For example, a
- <command>ls -l</command> in an arbitrary directory may show:</para>
+ <para>Use the <option>-l</option> argument to &man.ls.1; to view a
+ long directory listing that includes a column of information
+ about a file's permissions for the owner, group, and everyone
+ else. For example, a <command>ls -l</command> in an arbitrary
+ directory may show:</para>
<screen>&prompt.user; <userinput>ls -l</userinput>
total 530
-rw-r--r-- 1 root wheel 512 Sep 5 12:31 myfile
-rw-r--r-- 1 root wheel 512 Sep 5 12:31 otherfile
--rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt
-...</screen>
-
- <para>Here is how the first column of <command>ls -l</command> is
- broken up:</para>
-
- <screen>-rw-r--r--</screen>
-
- <para>The first (leftmost) character
- tells if this file is a regular file, a directory, a special
- character device, a socket, or any other special
- pseudo-file device. In this case, the <literal>-</literal>
- indicates a regular file. The next three characters,
- <literal>rw-</literal> in this example, give the permissions for the owner of the
- file. The next three characters, <literal>r--</literal>, give the
- permissions for the group that the file belongs to. The final three
- characters, <literal>r--</literal>, give the permissions for the
- rest of the world. A dash means that the permission is turned off.
- In the case of this file, the permissions are set so the owner can
- read and write to the file, the group can read the file, and the
- rest of the world can only read the file. According to the table
- above, the permissions for this file would be
- <literal>644</literal>, where each digit represents the three parts
- of the file's permission.</para>
-
- <para>This is all well and good, but how does the system control
- permissions on devices? FreeBSD actually treats most hardware
- devices as a file that programs can open, read, and write data to
- just like any other file. These special device files are stored on
- the <filename>/dev</filename> directory.</para>
-
- <para>Directories are also treated as files. They have read, write,
- and execute permissions. The executable bit for a directory has a
- slightly different meaning than that of files. When a directory is
- marked executable, it means it can be traversed into, that is, it is
- possible to <quote>cd</quote> (change directory) into it. This also means that
- within the directory it is possible to access files whose names are
- known (subject, of course, to the permissions on the files
- themselves).</para>
-
- <para>In particular, in order to perform a directory listing,
- read permission must be set on the directory, whilst to delete a file
- that one knows the name of, it is necessary to have write
+-rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt</screen>
+
+ <para>The first (leftmost) character in the first column indicates
+ whether this file is a regular file, a directory, a special
+ character device, a socket, or any other special pseudo-file
+ device. In this example, the <literal>-</literal> indicates a
+ regular file. The next three characters, <literal>rw-</literal>
+ in this example, give the permissions for the owner of the file.
+ The next three characters, <literal>r--</literal>, give the
+ permissions for the group that the file belongs to. The final
+ three characters, <literal>r--</literal>, give the permissions
+ for the rest of the world. A dash means that the permission is
+ turned off. In this example, the permissions are set so the
+ owner can read and write to the file, the group can read the
+ file, and the rest of the world can only read the file.
+ According to the table above, the permissions for this file
+ would be <literal>644</literal>, where each digit represents the
+ three parts of the file's permission.</para>
+
+ <para>How does the system control permissions on devices? &os;
+ treats most hardware devices as a file that programs can open,
+ read, and write data to. These special device files are
+ stored in <filename class="directory">/dev/</filename>.</para>
+
+ <para>Directories are also treated as files. They have read,
+ write, and execute permissions. The executable bit for a
+ directory has a slightly different meaning than that of files.
+ When a directory is marked executable, it means it is possible
+ to change into that directory using
+ <application>cd</application>. This also means that it is
+ possible to access the files within that directory, subject to
+ the permissions on the files themselves.</para>
+
+ <para>In order to perform a directory listing, the read permission
+ must be set on the directory. In order to delete a file that
+ one knows the name of, it is necessary to have write
<emphasis>and</emphasis> execute permissions to the directory
containing the file.</para>
- <para>There are more permission bits, but they are primarily used in
- special circumstances such as setuid binaries and sticky
- directories. If you want more information on file permissions and
- how to set them, be sure to look at the &man.chmod.1; manual
- page.</para>
+ <para>There are more permission bits, but they are primarily used
+ in special circumstances such as setuid binaries and sticky
+ directories. For more information on file permissions and how
+ to set them, refer to &man.chmod.1;.</para>
<sect2>
<sect2info>
@@ -489,12 +445,17 @@ total 530
</sect2info>
<title>Symbolic Permissions</title>
- <indexterm><primary>permissions</primary><secondary>symbolic</secondary></indexterm>
- <para>Symbolic permissions, sometimes referred to as symbolic expressions,
- use characters in place of octal values to assign permissions to files
- or directories. Symbolic expressions use the syntax of (who) (action)
- (permissions), where the following values are available:</para>
+ <indexterm>
+ <primary>permissions</primary>
+ <secondary>symbolic</secondary>
+ </indexterm>
+
+ <para>Symbolic permissions use characters instead of octal
+ values to assign permissions to files or directories.
+ Symbolic permissions use the syntax of (who) (action)
+ (permissions), where the following values are
+ available:</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="3">
@@ -506,101 +467,102 @@ total 530
</row>
</thead>
- <tbody>
- <row>
- <entry>(who)</entry>
- <entry>u</entry>
- <entry>User</entry>
- </row>
+ <tbody>
+ <row>
+ <entry>(who)</entry>
+ <entry>u</entry>
+ <entry>User</entry>
+ </row>
- <row>
- <entry>(who)</entry>
- <entry>g</entry>
- <entry>Group owner</entry>
- </row>
+ <row>
+ <entry>(who)</entry>
+ <entry>g</entry>
+ <entry>Group owner</entry>
+ </row>
- <row>
- <entry>(who)</entry>
- <entry>o</entry>
- <entry>Other</entry>
- </row>
+ <row>
+ <entry>(who)</entry>
+ <entry>o</entry>
+ <entry>Other</entry>
+ </row>
- <row>
- <entry>(who)</entry>
- <entry>a</entry>
- <entry>All (<quote>world</quote>)</entry>
- </row>
+ <row>
+ <entry>(who)</entry>
+ <entry>a</entry>
+ <entry>All (<quote>world</quote>)</entry>
+ </row>
- <row>
- <entry>(action)</entry>
- <entry>+</entry>
- <entry>Adding permissions</entry>
- </row>
+ <row>
+ <entry>(action)</entry>
+ <entry>+</entry>
+ <entry>Adding permissions</entry>
+ </row>
- <row>
- <entry>(action)</entry>
- <entry>-</entry>
- <entry>Removing permissions</entry>
- </row>
+ <row>
+ <entry>(action)</entry>
+ <entry>-</entry>
+ <entry>Removing permissions</entry>
+ </row>
- <row>
- <entry>(action)</entry>
- <entry>=</entry>
- <entry>Explicitly set permissions</entry>
- </row>
+ <row>
+ <entry>(action)</entry>
+ <entry>=</entry>
+ <entry>Explicitly set permissions</entry>
+ </row>
- <row>
- <entry>(permissions)</entry>
- <entry>r</entry>
- <entry>Read</entry>
- </row>
+ <row>
+ <entry>(permissions)</entry>
+ <entry>r</entry>
+ <entry>Read</entry>
+ </row>
- <row>
- <entry>(permissions)</entry>
- <entry>w</entry>
- <entry>Write</entry>
- </row>
+ <row>
+ <entry>(permissions)</entry>
+ <entry>w</entry>
+ <entry>Write</entry>
+ </row>
- <row>
- <entry>(permissions)</entry>
- <entry>x</entry>
- <entry>Execute</entry>
- </row>
+ <row>
+ <entry>(permissions)</entry>
+ <entry>x</entry>
+ <entry>Execute</entry>
+ </row>
- <row>
- <entry>(permissions)</entry>
- <entry>t</entry>
- <entry>Sticky bit</entry>
- </row>
+ <row>
+ <entry>(permissions)</entry>
+ <entry>t</entry>
+ <entry>Sticky bit</entry>
+ </row>
- <row>
- <entry>(permissions)</entry>
- <entry>s</entry>
- <entry>Set UID or GID</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
+ <row>
+ <entry>(permissions)</entry>
+ <entry>s</entry>
+ <entry>Set UID or GID</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
- <para>These values are used with the &man.chmod.1; command
- just like before, but with letters. For an example, you could use
- the following command to block other users from accessing
- <replaceable>FILE</replaceable>:</para>
+ <para>These values are used with &man.chmod.1;, but with
+ letters instead of numbers. For example, the following
+ command would block other users from accessing
+ <replaceable>FILE</replaceable>:</para>
- <screen>&prompt.user; <userinput>chmod go= FILE</userinput></screen>
+ <screen>&prompt.user; <userinput>chmod go= FILE</userinput></screen>
- <para>A comma separated list can be provided when more than one set
- of changes to a file must be made. For example the following command
- will remove the group and <quote>world</quote> write permission
- on <replaceable>FILE</replaceable>, then it adds the execute
- permissions for everyone:</para>
+ <para>A comma separated list can be provided when more than one
+ set of changes to a file must be made. For example, the
+ following command removes the group and
+ <quote>world</quote> write permission on
+ <replaceable>FILE</replaceable>, and adds the execute
+ permissions for everyone:</para>
- <screen>&prompt.user; <userinput>chmod go-w,a+x <replaceable>FILE</replaceable></userinput></screen>
+ <screen>&prompt.user; <userinput>chmod go-w,a+x <replaceable>FILE</replaceable></userinput></screen>
<!--
- <para>Most users will not notice this, but it should be pointed out
- that using the octal method will only set or assign permissions to
- a file; it does not add or delete them.</para>
+ <para>Most users will not notice this, but it should be pointed
+ out that using the octal method will only set or assign
+ permissions to a file; it does not add or delete them.</para>
-->
</sect2>
@@ -617,42 +579,37 @@ total 530
<title>&os; File Flags</title>
- <para>In addition to file permissions discussed previously, &os;
- supports the use of <quote>file flags.</quote> These flags
- add an additional level of security and control over files, but
- not directories.</para>
-
- <para>These file flags add an additional level of control over
- files, helping to ensure that in some cases not even the
- <username>root</username> can remove or alter files.</para>
+ <para>In addition to file permissions, &os; supports the use of
+ <quote>file flags</quote>. These flags add an additional
+ level of security and control over files, but not
+ directories. With file flags, even
+ <username>root</username> can be prevented from removing or
+ altering files.</para>
- <para>File flags are altered by using the &man.chflags.1; utility,
- using a simple interface. For example, to enable the system
- undeletable flag on the file <filename>file1</filename>,
- issue the following command:</para>
+ <para>File flags are modified using &man.chflags.1;. For
+ example, to enable the system undeletable flag on the file
+ <filename>file1</filename>, issue the following
+ command:</para>
<screen>&prompt.root; <userinput>chflags sunlink <filename>file1</filename></userinput></screen>
- <para>And to disable the system undeletable flag,
- issue the previous command with <quote>no</quote> in
- front of the <option>sunlink</option>. Observe:</para>
+ <para>To disable the system undeletable flag, put a
+ <quote>no</quote> in front of the
+ <option>sunlink</option>:</para>
<screen>&prompt.root; <userinput>chflags nosunlink <filename>file1</filename></userinput></screen>
- <para>To view the flags of this file, use the &man.ls.1; command
- with the <option>-lo</option> flags:</para>
+ <para>To view the flags of a file, use <option>-lo</option> with
+ &man.ls.1;:</para>
<screen>&prompt.root; <userinput>ls -lo <filename>file1</filename></userinput></screen>
- <para>The output should look like the following:</para>
-
<programlisting>-rw-r--r-- 1 trhodes trhodes sunlnk 0 Mar 1 05:54 file1</programlisting>
- <para>Several flags may only added or removed to files by the
- <username>root</username> user. In other cases, the file owner
- may set these flags. It is recommended that administrators read
- over the &man.chflags.1; and &man.chflags.2; manual pages for
- more information.</para>
+ <para>Several file flags may only added or removed by the
+ <username>root</username> user. In other cases, the file
+ owner may set its file flags. Refer to &man.chflags.1; and
+ &man.chflags.2; for more information.</para>
</sect2>
<sect2>
@@ -666,61 +623,60 @@ total 530
</authorgroup>
</sect2info>
- <title>The setuid, setgid, and sticky Permissions</title>
+ <title>The <literal>setuid</literal>, <literal>setgid</literal>,
+ and <literal>sticky</literal> Permissions</title>
<para>Other than the permissions already discussed, there are
three other specific settings that all administrators should
know about. They are the <literal>setuid</literal>,
- <literal>setgid</literal> and <literal>sticky</literal>
+ <literal>setgid</literal>, and <literal>sticky</literal>
permissions.</para>
<para>These settings are important for some &unix; operations
as they provide functionality not normally granted to normal
users. To understand them, the difference between the real
- user ID and effective user ID must also be noted.</para>
+ user ID and effective user ID must be noted.</para>
<para>The real user ID is the <acronym>UID</acronym> who owns
or starts the process. The effective <acronym>UID</acronym>
- is the user ID the process runs as. As an example, the
- &man.passwd.1; utility runs with the real user ID as the
- user changing their password; however, to manipulate the
- password database, it runs as the effective ID of the
- <username>root</username> user. This is what allows normal
- users to change their passwords without seeing a
+ is the user ID the process runs as. As an example,
+ &man.passwd.1; runs with the real user ID when a user changes
+ their password. However, in order to update the password
+ database, the command runs as the effective ID of the
+ <username>root</username> user. This allows users to change
+ their passwords without seeing a
<errorname>Permission Denied</errorname> error.</para>
- <note>
- <para>The <literal>nosuid</literal> &man.mount.8; option will
- cause these binaries to silently fail. That is, they will
- fail to execute without ever alerting the user. That option
- is also not completely reliable as a <literal>nosuid</literal>
- wrapper may be able to circumvent it; according to the
- &man.mount.8; manual page.</para>
- </note>
-
<para>The setuid permission may be set by prefixing a permission
set with the number four (4) as shown in the following
example:</para>
<screen>&prompt.root; <userinput>chmod 4755 suidexample.sh</userinput></screen>
- <para>The permissions on the
+ <para>The permissions on
<filename><replaceable>suidexample.sh</replaceable></filename>
- file should now look like the following:</para>
+ now look like the following:</para>
<programlisting>-rwsr-xr-x 1 trhodes trhodes 63 Aug 29 06:36 suidexample.sh</programlisting>
- <para>It should be noticeable from this example that an
- <literal>s</literal> is now part of the permission set
- designated for the file owner, replacing the executable
- bit. This allows utilities which need elevated permissions,
- such as <command>passwd</command>.</para>
+ <para>Note that a <literal>s</literal> is now part of the
+ permission set designated for the file owner, replacing the
+ executable bit. This allows utilities which need elevated
+ permissions, such as <command>passwd</command>.</para>
+
+ <note>
+ <para>The <literal>nosuid</literal> &man.mount.8; option will
+ cause such binaries to silently fail without alerting
+ the user. That option is not completely reliable as a
+ <literal>nosuid</literal> wrapper may be able to circumvent
+ it.</para>
+ </note>
<para>To view this in real time, open two terminals. On
one, start the <command>passwd</command> process as a normal
user. While it waits for a new password, check the process
- table and look at the user information of the
- <command>passwd</command> command.</para>
+ table and look at the user information for
+ <command>passwd</command>:</para>
<para>In terminal A:</para>
@@ -741,17 +697,17 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
<para>The <literal>setgid</literal> permission performs the
same function as the <literal>setuid</literal> permission;
except that it alters the group settings. When an application
- or utility is ran with this setting, it will be granted the
- permissions based on the group that owns the file, not
- the user who started the process.</para>
+ or utility executes with this setting, it will be granted the
+ permissions based on the group that owns the file, not the
+ user who started the process.</para>
<para>To set the <literal>setgid</literal> permission on a
- file, provide the <command>chmod</command> command with a
- leading two (2) as in the following example:</para>
+ file, provide <command>chmod</command> with a leading two
+ (2):</para>
<screen>&prompt.root; <userinput>chmod 2755 sgidexample.sh</userinput></screen>
- <para>The new setting may be viewed as before, notice the
+ <para>In the following listing, notice that the
<literal>s</literal> is now in the field designated for the
group permission settings:</para>
@@ -765,71 +721,70 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
&man.setuid.2; system calls.</para>
</note>
- <para>The first two special permission bits we discussed
- (the <literal>setuid</literal> and <literal>setgid</literal>
- permission bits) may lower system security, by allowing for
- elevated permissions. There is a third special permission bit
- that can strengthen the security of a system: the
- <literal>sticky bit</literal>.</para>
-
- <para>The <literal>sticky bit</literal>, when set on a directory,
- allows file deletion only by the file owner. This
- permission set is useful to prevent file deletion in public
- directories, such as
- <filename class="directory">/tmp</filename>, by users who do
- not own the file. To utilize this permission, prefix the
- permission with a one (1). For example:</para>
+ <para>The <literal>setuid</literal> and
+ <literal>setgid</literal> permission bits may lower system
+ security, by allowing for elevated permissions. The third
+ special permission, the <literal>sticky bit</literal>, can
+ strengthen the security of a system.</para>
+
+ <para>When the <literal>sticky bit</literal> is set on a
+ directory, it allows file deletion only by the file owner.
+ This is useful to prevent file deletion in public directories,
+ such as <filename class="directory">/tmp</filename>, by users
+ who do not own the file. To utilize this permission, prefix
+ the permission set with a one (1):</para>
<screen>&prompt.root; <userinput>chmod 1777 /tmp</userinput></screen>
- <para>Now, it is possible to see the effect by using the
- <command>ls</command> command:</para>
+ <para>The <literal>sticky bit</literal> permission will display
+ as a <literal>t</literal> at the very end of the permission
+ set:</para>
<screen>&prompt.root; <userinput>ls -al / | grep tmp</userinput></screen>
<screen>drwxrwxrwt 10 root wheel 512 Aug 31 01:49 tmp</screen>
- <para>The <literal>sticky bit</literal> permission is
- distinguishable from the <literal>t</literal> at the very
- end of the set.</para>
</sect2>
</sect1>
<sect1 id="dirstructure">
<title>Directory Structure</title>
+
<indexterm><primary>directory hierarchy</primary></indexterm>
- <para>The FreeBSD directory hierarchy is fundamental to obtaining
+ <para>The &os; directory hierarchy is fundamental to obtaining
an overall understanding of the system. The most important
- concept to grasp is that of the root directory,
- <quote>/</quote>. This directory is the first one mounted at
- boot time and it contains the base system necessary to prepare
- the operating system for multi-user operation. The root
- directory also contains mount points for other file systems
- that are mounted during the transition to multi-user
- operation.</para>
-
- <para>A mount point is a directory where additional file systems can
- be grafted onto a parent file system (usually the root file system).
- This is further described in <xref linkend="disk-organization"/>.
- Standard mount points include
- <filename>/usr</filename>, <filename>/var</filename>, <filename>/tmp</filename>,
- <filename>/mnt</filename>, and <filename>/cdrom</filename>. These
- directories are usually referenced to entries in the file
- <filename>/etc/fstab</filename>. <filename>/etc/fstab</filename> is
- a table of various file systems and mount points for reference by the
- system. Most of the file systems in <filename>/etc/fstab</filename>
- are mounted automatically at boot time from the script &man.rc.8;
- unless they contain the <option>noauto</option> option.
- Details can be found in <xref linkend="disks-fstab"/>.</para>
+ directory is root or, <quote>/</quote>. This directory is the
+ first one mounted at boot time and it contains the base system
+ necessary to prepare the operating system for multi-user
+ operation. The root directory also contains mount points for
+ other file systems that are mounted during the transition to
+ multi-user operation.</para>
+
+ <para>A mount point is a directory where additional file systems
+ can be grafted onto a parent file system (usually the root file
+ system). This is further described in <xref
+ linkend="disk-organization"/>. Standard mount points
+ include <filename class="directory">/usr/</filename>,
+ <filename class="directory">/var/</filename>,
+ <filename class="directory">/tmp/</filename>,
+ <filename class="directory">/mnt/</filename>, and
+ <filename class="directory">/cdrom/</filename>. These
+ directories are usually referenced to entries in
+ <filename>/etc/fstab</filename>. This file is a table of
+ various file systems and mount points and is read by the system.
+ Most of the file systems in <filename>/etc/fstab</filename> are
+ mounted automatically at boot time from the script &man.rc.8;
+ unless their entry includes <option>noauto</option>. Details
+ can be found in <xref linkend="disks-fstab"/>.</para>
<para>A complete description of the file system hierarchy is
- available in &man.hier.7;. For now, a brief overview of the
- most common directories will suffice.</para>
+ available in &man.hier.7;. The following table provides a brief
+ overview of the most common directories.</para>
<para>
<informaltable frame="none" pgwide="1">
- <tgroup cols="2">
+ <tgroup cols="2">
<thead>
<row>
<entry>Directory</entry>
@@ -837,326 +792,353 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
</row>
</thead>
<tbody valign="top">
- <row>
+ <row>
<entry><filename class="directory">/</filename></entry>
<entry>Root directory of the file system.</entry>
- </row>
+ </row>
<row>
- <entry><filename class="directory">/bin/</filename></entry>
+ <entry><filename
+ class="directory">/bin/</filename></entry>
<entry>User utilities fundamental to both single-user
- and multi-user environments.</entry>
+ and multi-user environments.</entry>
</row>
<row>
- <entry><filename class="directory">/boot/</filename></entry>
+ <entry><filename
+ class="directory">/boot/</filename></entry>
<entry>Programs and configuration files used during
- operating system bootstrap.</entry>
+ operating system bootstrap.</entry>
</row>
<row>
- <entry><filename class="directory">/boot/defaults/</filename></entry>
- <entry>Default bootstrapping configuration files; see
- &man.loader.conf.5;.</entry>
+ <entry><filename
+ class="directory">/boot/defaults/</filename></entry>
+ <entry>Default boot configuration files. Refer to
+ &man.loader.conf.5; for details.</entry>
</row>
<row>
- <entry><filename class="directory">/dev/</filename></entry>
- <entry>Device nodes; see &man.intro.4;.</entry>
+ <entry><filename
+ class="directory">/dev/</filename></entry>
+ <entry>Device nodes. Refer to &man.intro.4; for
+ details.</entry>
</row>
<row>
- <entry><filename class="directory">/etc/</filename></entry>
+ <entry><filename
+ class="directory">/etc/</filename></entry>
<entry>System configuration files and scripts.</entry>
</row>
<row>
- <entry><filename class="directory">/etc/defaults/</filename></entry>
- <entry>Default system configuration files; see &man.rc.8;.</entry>
+ <entry><filename
+ class="directory">/etc/defaults/</filename></entry>
+ <entry>Default system configuration files. Refer to
+ &man.rc.8; for details.</entry>
</row>
<row>
- <entry><filename class="directory">/etc/mail/</filename></entry>
- <entry>Configuration files for mail transport agents such
- as &man.sendmail.8;.</entry>
+ <entry><filename
+ class="directory">/etc/mail/</filename></entry>
+ <entry>Configuration files for mail transport agents
+ such as &man.sendmail.8;.</entry>
</row>
<row>
- <entry><filename class="directory">/etc/namedb/</filename></entry>
- <entry><command>named</command> configuration files; see
- &man.named.8;.</entry>
+ <entry><filename
+ class="directory">/etc/namedb/</filename></entry>
+ <entry><command>named</command> configuration files.
+ Refer to &man.named.8; for details.</entry>
</row>
<row>
- <entry><filename class="directory">/etc/periodic/</filename></entry>
- <entry>Scripts that are run daily, weekly, and monthly,
- via &man.cron.8;; see &man.periodic.8;.</entry>
+ <entry><filename
+ class="directory">/etc/periodic/</filename></entry>
+ <entry>Scripts that run daily, weekly, and monthly,
+ via &man.cron.8;. Refer to &man.periodic.8; for
+ details.</entry>
</row>
<row>
- <entry><filename class="directory">/etc/ppp/</filename></entry>
- <entry><command>ppp</command> configuration files; see
- &man.ppp.8;.</entry>
+ <entry><filename
+ class="directory">/etc/ppp/</filename></entry>
+ <entry><command>ppp</command> configuration files as
+ described in &man.ppp.8;.</entry>
</row>
<row>
- <entry><filename class="directory">/mnt/</filename></entry>
- <entry>Empty directory commonly used by system administrators as a
- temporary mount point.</entry>
+ <entry><filename
+ class="directory">/mnt/</filename></entry>
+ <entry>Empty directory commonly used by system
+ administrators as a temporary mount point.</entry>
</row>
<row>
- <entry><filename class="directory">/proc/</filename></entry>
- <entry>Process file system; see &man.procfs.5;,
- &man.mount.procfs.8;.</entry>
+ <entry><filename
+ class="directory">/proc/</filename></entry>
+ <entry>Process file system. Refer to &man.procfs.5;,
+ &man.mount.procfs.8; for details.</entry>
</row>
<row>
- <entry><filename class="directory">/rescue/</filename></entry>
- <entry>Statically linked programs for emergency recovery; see
- &man.rescue.8;.</entry>
+ <entry><filename
+ class="directory">/rescue/</filename></entry>
+ <entry>Statically linked programs for emergency
+ recovery as described in &man.rescue.8;.</entry>
</row>
<row>
- <entry><filename class="directory">/root/</filename></entry>
+ <entry><filename
+ class="directory">/root/</filename></entry>
<entry>Home directory for the <username>root</username>
- account.</entry>
+ account.</entry>
</row>
<row>
- <entry><filename class="directory">/sbin/</filename></entry>
- <entry>System programs and administration utilities fundamental to
- both single-user and multi-user environments.</entry>
+ <entry><filename
+ class="directory">/sbin/</filename></entry>
+ <entry>System programs and administration utilities
+ fundamental to both single-user and multi-user
+ environments.</entry>
</row>
-
<row>
- <entry><filename class="directory">/tmp/</filename></entry>
- <entry>Temporary files. The contents of
- <filename class="directory">/tmp</filename> are usually NOT
- preserved across a system reboot. A memory-based file system
- is often mounted at
- <filename class="directory">/tmp</filename>.
- This can be automated using the tmpmfs-related variables of
- &man.rc.conf.5; (or with an entry in
- <filename>/etc/fstab</filename>; see &man.mdmfs.8;).</entry>
+ <entry><filename
+ class="directory">/tmp/</filename></entry>
+ <entry>Temporary files which are usually
+ <emphasis>not</emphasis> preserved across a system
+ reboot. A memory-based file system is often mounted
+ at <filename class="directory">/tmp</filename>. This
+ can be automated using the tmpmfs-related variables of
+ &man.rc.conf.5; or with an entry in
+ <filename>/etc/fstab</filename>; refer to
+ &man.mdmfs.8; for details.</entry>
</row>
-
<row>
- <entry><filename class="directory">/usr/</filename></entry>
- <entry>The majority of user utilities and applications.</entry>
+ <entry><filename
+ class="directory">/usr/</filename></entry>
+ <entry>The majority of user utilities and
+ applications.</entry>
</row>
<row>
- <entry><filename class="directory">/usr/bin/</filename></entry>
- <entry>Common utilities, programming tools, and applications.</entry>
+ <entry><filename
+ class="directory">/usr/bin/</filename></entry>
+ <entry>Common utilities, programming tools, and
+ applications.</entry>
</row>
<row>
- <entry><filename class="directory">/usr/include/</filename></entry>
+ <entry><filename
+ class="directory">/usr/include/</filename></entry>
<entry>Standard C include files.</entry>
</row>
<row>
- <entry><filename class="directory">/usr/lib/</filename></entry>
+ <entry><filename
+ class="directory">/usr/lib/</filename></entry>
<entry>Archive libraries.</entry>
</row>
<row>
- <entry><filename class="directory">/usr/libdata/</filename></entry>
+ <entry><filename
+ class="directory">/usr/libdata/</filename></entry>
<entry>Miscellaneous utility data files.</entry>
</row>
<row>
- <entry><filename class="directory">/usr/libexec/</filename></entry>
- <entry>System daemons &amp; system utilities (executed by other
- programs).</entry>
+ <entry><filename
+ class="directory">/usr/libexec/</filename></entry>
+ <entry>System daemons and system utilities executed
+ by other programs.</entry>
</row>
<row>
<entry><filename
- class="directory">/usr/local/</filename></entry>
-
- <entry>Local executables, libraries, etc. Also used as
- the default destination for the FreeBSD ports
- framework. Within <filename>/usr/local</filename>,
- the general layout sketched out by &man.hier.7; for
- <filename>/usr</filename> should be used. Exceptions
- are the man directory, which is directly under
- <filename>/usr/local</filename> rather than under
- <filename>/usr/local/share</filename>, and the ports
- documentation is in
- <filename>share/doc/<replaceable>port</replaceable></filename>.
- </entry>
+ class="directory">/usr/local/</filename></entry>
+ <entry>Local executables and libraries. Also used as
+ the default destination for the &os; ports
+ framework. Within <filename>/usr/local</filename>,
+ the general layout sketched out by &man.hier.7; for
+ <filename>/usr</filename> should be used. Exceptions
+ are the man directory, which is directly under
+ <filename>/usr/local</filename> rather than under
+ <filename>/usr/local/share</filename>, and the ports
+ documentation is in
+ <filename>share/doc/<replaceable>port</replaceable></filename>.</entry>
</row>
<row>
- <entry><filename class="directory">/usr/obj/</filename></entry>
- <entry>Architecture-specific target tree produced by building
- the <filename>/usr/src</filename> tree.</entry>
+ <entry><filename
+ class="directory">/usr/obj/</filename></entry>
+ <entry>Architecture-specific target tree produced by
+ building the <filename>/usr/src</filename>
+ tree.</entry>
</row>
<row>
- <entry><filename class="directory">/usr/ports/</filename></entry>
- <entry>The FreeBSD Ports Collection (optional).</entry>
+ <entry><filename
+ class="directory">/usr/ports/</filename></entry>
+ <entry>The &os; Ports Collection (optional).</entry>
</row>
<row>
- <entry><filename class="directory">/usr/sbin/</filename></entry>
- <entry>System daemons &amp; system utilities (executed by users).</entry>
+ <entry><filename
+ class="directory">/usr/sbin/</filename></entry>
+ <entry>System daemons and system utilities executed
+ by users.</entry>
</row>
<row>
- <entry><filename class="directory">/usr/share/</filename></entry>
+ <entry><filename
+ class="directory">/usr/share/</filename></entry>
<entry>Architecture-independent files.</entry>
</row>
<row>
- <entry><filename class="directory">/usr/src/</filename></entry>
+ <entry><filename
+ class="directory">/usr/src/</filename></entry>
<entry>BSD and/or local source files.</entry>
</row>
<row>
<entry><filename
- class="directory">/usr/X11R6/</filename></entry>
- <entry>X11R6 distribution executables, libraries, etc
- (optional).</entry>
+ class="directory">/var/</filename></entry>
+ <entry>Multi-purpose log, temporary, transient, and
+ spool files. A memory-based file system is sometimes
+ mounted at <filename
+ class="directory">/var</filename>. This can be
+ automated using the varmfs-related variables in
+ &man.rc.conf.5; or with an entry in
+ <filename>/etc/fstab</filename>; refer to
+ &man.mdmfs.8; for details.</entry>
</row>
<row>
- <entry><filename class="directory">/var/</filename></entry>
- <entry>Multi-purpose log, temporary, transient, and spool files.
- A memory-based file system is sometimes mounted at
- <filename class="directory">/var</filename>.
- This can be automated using the varmfs-related variables of
- &man.rc.conf.5; (or with an entry in
- <filename>/etc/fstab</filename>; see &man.mdmfs.8;).</entry>
- </row>
-
-
- <row>
- <entry><filename class="directory">/var/log/</filename></entry>
+ <entry><filename
+ class="directory">/var/log/</filename></entry>
<entry>Miscellaneous system log files.</entry>
</row>
<row>
- <entry><filename class="directory">/var/mail/</filename></entry>
+ <entry><filename
+ class="directory">/var/mail/</filename></entry>
<entry>User mailbox files.</entry>
</row>
<row>
- <entry><filename class="directory">/var/spool/</filename></entry>
- <entry>Miscellaneous printer and mail system spooling directories.
- </entry>
+ <entry><filename
+ class="directory">/var/spool/</filename></entry>
+ <entry>Miscellaneous printer and mail system spooling
+ directories.</entry>
</row>
<row>
- <entry><filename class="directory">/var/tmp/</filename></entry>
- <entry>Temporary files.
- The files are usually preserved across a system reboot,
- unless <filename class="directory">/var</filename>
- is a memory-based file system.</entry>
+ <entry><filename
+ class="directory">/var/tmp/</filename></entry>
+ <entry>Temporary files which are usually preserved
+ across a system reboot, unless
+ <filename class="directory">/var</filename> is a
+ memory-based file system.</entry>
</row>
<row>
- <entry><filename class="directory">/var/yp/</filename></entry>
+ <entry><filename
+ class="directory">/var/yp/</filename></entry>
<entry>NIS maps.</entry>
</row>
-
</tbody>
</tgroup>
- </informaltable>
- </para>
-
+ </informaltable></para>
</sect1>
<sect1 id="disk-organization">
- <title>Disk Organization</title>
-
- <para>The smallest unit of organization that FreeBSD uses to find files
- is the filename. Filenames are case-sensitive, which means that
- <filename>readme.txt</filename> and <filename>README.TXT</filename>
- are two separate files. FreeBSD does not use the extension
- (<filename>.txt</filename>) of a file to determine whether the file is
- a program, or a document, or some other form of data.</para>
-
- <para>Files are stored in directories. A directory may contain no
- files, or it may contain many hundreds of files. A directory can also
- contain other directories, allowing you to build up a hierarchy of
- directories within one another. This makes it much easier to organize
- your data.</para>
-
- <para>Files and directories are referenced by giving the file or
- directory name, followed by a forward slash, <literal>/</literal>,
- followed by any other directory names that are necessary. If you have
- directory <filename>foo</filename>, which contains directory
- <filename>bar</filename>, which contains the file
- <filename>readme.txt</filename>, then the full name, or
- <firstterm>path</firstterm> to the file is
- <filename>foo/bar/readme.txt</filename>.</para>
-
- <para>Directories and files are stored in a file system. Each file system
- contains exactly one directory at the very top level, called the
- <firstterm>root directory</firstterm> for that file system. This root
- directory can then contain other directories.</para>
-
- <para>So far this is probably similar to any other operating system you
- may have used. There are a few differences; for example, &ms-dos; uses
- <literal>\</literal> to separate file and directory names, while &macos;
- uses <literal>:</literal>.</para>
-
- <para>FreeBSD does not use drive letters, or other drive names in the
- path. You would not write <filename>c:/foo/bar/readme.txt</filename>
- on FreeBSD.</para>
-
- <para>Instead, one file system is designated the <firstterm>root
- file system</firstterm>. The root file system's root directory is
- referred to as <literal>/</literal>. Every other file system is then
- <firstterm>mounted</firstterm> under the root file system. No matter
- how many disks you have on your FreeBSD system, every directory
- appears to be part of the same disk.</para>
-
- <para>Suppose you have three file systems, called <literal>A</literal>,
- <literal>B</literal>, and <literal>C</literal>. Each file system has
- one root directory, which contains two other directories, called
- <literal>A1</literal>, <literal>A2</literal> (and likewise
- <literal>B1</literal>, <literal>B2</literal> and
- <literal>C1</literal>, <literal>C2</literal>).</para>
-
- <para>Call <literal>A</literal> the root file system. If you used the
- <command>ls</command> command to view the contents of this directory
- you would see two subdirectories, <literal>A1</literal> and
- <literal>A2</literal>. The directory tree looks like this:</para>
+ <title>Disk Organization</title>
+
+ <para>The smallest unit of organization that &os; uses to find
+ files is the filename. Filenames are case-sensitive, which
+ means that <filename>readme.txt</filename> and
+ <filename>README.TXT</filename> are two separate files. &os;
+ does not use the extension of a file to determine whether the
+ file is a program, document, or some other form of data.</para>
+
+ <para>Files are stored in directories. A directory may contain no
+ files, or it may contain many hundreds of files. A directory
+ can also contain other directories, allowing you to build up a
+ hierarchy of directories within one another in order to organize
+ data.</para>
+
+ <para>Files and directories are referenced by giving the file or
+ directory name, followed by a forward slash,
+ <literal>/</literal>, followed by any other directory names that
+ are necessary. For example, if the directory
+ <filename>foo</filename> contains a directory
+ <filename>bar</filename> which contains the file
+ <filename>readme.txt</filename>, the full name, or
+ <firstterm>path</firstterm>, to the file is
+ <filename>foo/bar/readme.txt</filename>. Note that this is
+ different from &windows; which uses
+ <literal>\</literal> to separate file and directory
+ names. &os; does not use drive letters, or other drive names in
+ the path. For example, you would not type
+ <filename>c:/foo/bar/readme.txt</filename> on &os;.</para>
+
+ <para>Directories and files are stored in a file system. Each
+ file system contains exactly one directory at the very top
+ level, called the <firstterm>root directory</firstterm> for that
+ file system. This root directory can contain other
+ directories. One file system is designated the
+ <firstterm>root file system</firstterm> or <literal>/</literal>.
+ Every other file system is <firstterm>mounted</firstterm> under
+ the root file system. No matter how many disks you have on your
+ &os; system, every directory appears to be part of the same
+ disk.</para>
+
+ <para>Suppose you have three file systems, called
+ <literal>A</literal>, <literal>B</literal>, and
+ <literal>C</literal>. Each file system has one root directory,
+ which contains two other directories, called
+ <literal>A1</literal>, <literal>A2</literal> (and likewise
+ <literal>B1</literal>, <literal>B2</literal> and
+ <literal>C1</literal>, <literal>C2</literal>).</para>
+
+ <para>Call <literal>A</literal> the root file system. If you used
+ <command>ls</command> to view the contents of this directory you
+ would see two subdirectories, <literal>A1</literal> and
+ <literal>A2</literal>. The directory tree looks like
+ this:</para>
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/example-dir1" format="EPS"/>
- </imageobject>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/example-dir1" format="EPS"/>
+ </imageobject>
- <textobject>
- <literallayout class="monospaced"> /
+ <textobject>
+ <literallayout class="monospaced"> /
|
+--- A1
|
`--- A2</literallayout>
- </textobject>
- </mediaobject>
-
- <para>A file system must be mounted on to a directory in another
- file system. So now suppose that you mount file system
- <literal>B</literal> on to the directory <literal>A1</literal>. The
- root directory of <literal>B</literal> replaces <literal>A1</literal>,
- and the directories in <literal>B</literal> appear accordingly:</para>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/example-dir2" format="EPS"/>
- </imageobject>
-
- <textobject>
- <literallayout class="monospaced"> /
+ </textobject>
+ </mediaobject>
+
+ <para>A file system must be mounted on to a directory in another
+ file system. When mounting file system
+ <literal>B</literal> on to the directory <literal>A1</literal>,
+ the root directory of <literal>B</literal> replaces
+ <literal>A1</literal>, and the directories in
+ <literal>B</literal> appear accordingly:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/example-dir2" format="EPS"/>
+ </imageobject>
+
+ <textobject>
+ <literallayout class="monospaced"> /
|
+--- A1
| |
@@ -1165,26 +1147,28 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
| `--- B2
|
`--- A2</literallayout>
- </textobject>
- </mediaobject>
-
- <para>Any files that are in the <literal>B1</literal> or
- <literal>B2</literal> directories can be reached with the path
- <filename>/A1/B1</filename> or <filename>/A1/B2</filename> as
- necessary. Any files that were in <filename>/A1</filename> have been
- temporarily hidden. They will reappear if <literal>B</literal> is
- <firstterm>unmounted</firstterm> from A.</para>
-
- <para>If <literal>B</literal> had been mounted on <literal>A2</literal>
- then the diagram would look like this:</para>
+ </textobject>
+ </mediaobject>
+
+ <para>Any files that are in the <literal>B1</literal> or
+ <literal>B2</literal> directories can be reached with the path
+ <filename>/A1/B1</filename> or <filename>/A1/B2</filename> as
+ necessary. Any files that were in <filename>/A1</filename> have
+ been temporarily hidden. They will reappear if
+ <literal>B</literal> is <firstterm>unmounted</firstterm> from
+ A.</para>
+
+ <para>If <literal>B</literal> had been mounted on
+ <literal>A2</literal> then the diagram would look like
+ this:</para>
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/example-dir3" format="EPS"/>
- </imageobject>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/example-dir3" format="EPS"/>
+ </imageobject>
- <textobject>
- <literallayout class="monospaced"> /
+ <textobject>
+ <literallayout class="monospaced"> /
|
+--- A1
|
@@ -1193,24 +1177,25 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
+--- B1
|
`--- B2</literallayout>
- </textobject>
- </mediaobject>
+ </textobject>
+ </mediaobject>
- <para>and the paths would be <filename>/A2/B1</filename> and
- <filename>/A2/B2</filename> respectively.</para>
+ <para>and the paths would be <filename>/A2/B1</filename> and
+ <filename>/A2/B2</filename> respectively.</para>
- <para>File systems can be mounted on top of one another. Continuing the
- last example, the <literal>C</literal> file system could be mounted on
- top of the <literal>B1</literal> directory in the <literal>B</literal>
- file system, leading to this arrangement:</para>
+ <para>File systems can be mounted on top of one another.
+ Continuing the last example, the <literal>C</literal> file
+ system could be mounted on top of the <literal>B1</literal>
+ directory in the <literal>B</literal> file system, leading to
+ this arrangement:</para>
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/example-dir4" format="EPS"/>
- </imageobject>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/example-dir4" format="EPS"/>
+ </imageobject>
- <textobject>
- <literallayout class="monospaced"> /
+ <textobject>
+ <literallayout class="monospaced"> /
|
+--- A1
|
@@ -1223,20 +1208,20 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
| `--- C2
|
`--- B2</literallayout>
- </textobject>
- </mediaobject>
+ </textobject>
+ </mediaobject>
- <para>Or <literal>C</literal> could be mounted directly on to the
- <literal>A</literal> file system, under the <literal>A1</literal>
- directory:</para>
+ <para>Or <literal>C</literal> could be mounted directly on to the
+ <literal>A</literal> file system, under the
+ <literal>A1</literal> directory:</para>
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/example-dir5" format="EPS"/>
- </imageobject>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/example-dir5" format="EPS"/>
+ </imageobject>
- <textobject>
- <literallayout class="monospaced"> /
+ <textobject>
+ <literallayout class="monospaced"> /
|
+--- A1
| |
@@ -1249,302 +1234,294 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
+--- B1
|
`--- B2</literallayout>
- </textobject>
- </mediaobject>
+ </textobject>
+ </mediaobject>
- <para>If you are familiar with &ms-dos;, this is similar, although not
- identical, to the <command>join</command> command.</para>
+ <para>This is similar, although not identical, to a &ms-dos;
+ <command>join</command>.</para>
- <para>This is not normally something you need to concern yourself with.
- Typically you create file systems when installing FreeBSD and decide
- where to mount them, and then never change them unless you add a new
- disk.</para>
+ <para>Typically you create file systems when installing &os;
+ and decide where to mount them, and then never change them
+ unless you add a new disk.</para>
- <para>It is entirely possible to have one large root file system, and not
- need to create any others. There are some drawbacks to this approach,
- and one advantage.</para>
+ <para>It is entirely possible to have one large root file system,
+ and not need to create any others. There are some drawbacks to
+ this approach, and one advantage.</para>
- <itemizedlist>
- <title>Benefits of Multiple File Systems</title>
+ <itemizedlist>
+ <title>Benefits of Multiple File Systems</title>
- <listitem>
- <para>Different file systems can have different <firstterm>mount
- options</firstterm>. For example, with careful planning, the
- root file system can be mounted read-only, making it impossible for
- you to inadvertently delete or edit a critical file. Separating
- user-writable file systems, such as <filename>/home</filename>,
- from other file systems also allows them to be mounted
- <firstterm>nosuid</firstterm>; this option prevents the
- <firstterm>suid</firstterm>/<firstterm>guid</firstterm> bits on
- executables stored on the file system from taking effect, possibly
- improving security.</para>
- </listitem>
+ <listitem>
+ <para>Different file systems can have different
+ <firstterm>mount options</firstterm>. For example, the root
+ file system can be mounted read-only, making it impossible
+ for users to inadvertently delete or edit a critical file.
+ Separating user-writable file systems, such as
+ <filename>/home</filename>, from other file systems allows
+ them to be mounted <firstterm>nosuid</firstterm>. This
+ option prevents the
+ <firstterm>suid</firstterm>/<firstterm>guid</firstterm> bits
+ on executables stored on the file system from taking effect,
+ possibly improving security.</para>
+ </listitem>
- <listitem>
- <para>FreeBSD automatically optimizes the layout of files on a
- file system, depending on how the file system is being used. So a
- file system that contains many small files that are written
- frequently will have a different optimization to one that contains
- fewer, larger files. By having one big file system this
- optimization breaks down.</para>
- </listitem>
+ <listitem>
+ <para>&os; automatically optimizes the layout of files on a
+ file system, depending on how the file system is being used.
+ So a file system that contains many small files that are
+ written frequently will have a different optimization to one
+ that contains fewer, larger files. By having one big file
+ system this optimization breaks down.</para>
+ </listitem>
- <listitem>
- <para>FreeBSD's file systems are very robust should you lose power.
- However, a power loss at a critical point could still damage the
- structure of the file system. By splitting your data over multiple
- file systems it is more likely that the system will still come up,
- making it easier for you to restore from backup as necessary.</para>
- </listitem>
- </itemizedlist>
+ <listitem>
+ <para>&os;'s file systems are very robust should you lose
+ power. However, a power loss at a critical point could
+ still damage the structure of the file system. By splitting
+ data over multiple file systems it is more likely that the
+ system will still come up, making it easier to restore from
+ backup as necessary.</para>
+ </listitem>
+ </itemizedlist>
- <itemizedlist>
- <title>Benefit of a Single File System</title>
+ <itemizedlist>
+ <title>Benefit of a Single File System</title>
- <listitem>
- <para>File systems are a fixed size. If you create a file system when
- you install FreeBSD and give it a specific size, you may later
- discover that you need to make the partition bigger. This is not
- easily accomplished without backing up, recreating the file system
- with the new size, and then restoring the backed up data.</para>
-
- <important>
- <para>FreeBSD features the &man.growfs.8;
- command, which makes it possible to increase the size of
- file system on the fly, removing this limitation.</para>
- </important>
- </listitem>
- </itemizedlist>
-
- <para>File systems are contained in partitions. This does not have the
- same meaning as the common usage of the term partition (for example, &ms-dos;
- partition), because of &os;'s &unix; heritage. Each partition is
- identified by a letter from <literal>a</literal> through to
- <literal>h</literal>. Each partition can contain only one file system,
- which means that file systems are often described by either their
- typical mount point in the file system hierarchy, or the letter of the
- partition they are contained in.</para>
-
- <para>FreeBSD also uses disk space for <firstterm>swap
- space</firstterm>. Swap space provides FreeBSD with
- <firstterm>virtual memory</firstterm>. This allows your computer to
- behave as though it has much more memory than it actually does. When
- FreeBSD runs out of memory it moves some of the data that is not
- currently being used to the swap space, and moves it back in (moving
- something else out) when it needs it.</para>
-
- <para>Some partitions have certain conventions associated with
- them.</para>
+ <listitem>
+ <para>File systems are a fixed size. If you create a file
+ system when you install &os; and give it a specific size,
+ you may later discover that you need to make the partition
+ bigger. This is not easily accomplished without backing up,
+ recreating the file system with the new size, and then
+ restoring the backed up data.</para>
+
+ <important>
+ <para>&os; features the &man.growfs.8; command, which
+ makes it possible to increase the size of file system on
+ the fly, removing this limitation.</para>
+ </important>
+ </listitem>
+ </itemizedlist>
- <informaltable frame="none" pgwide="1">
- <tgroup cols="2">
- <colspec colwidth="1*"/>
- <colspec colwidth="5*"/>
+ <para>File systems are contained in partitions. This does not
+ have the same meaning as the common usage of the term partition
+ (for example, &ms-dos; partition), because of &os;'s &unix;
+ heritage. Each partition is identified by a letter from
+ <literal>a</literal> through to <literal>h</literal>. Each
+ partition can contain only one file system, which means that
+ file systems are often described by either their typical mount
+ point in the file system hierarchy, or the letter of the
+ partition they are contained in.</para>
+
+ <para>&os; also uses disk space for <firstterm>swap
+ space</firstterm> to provide
+ <firstterm>virtual memory</firstterm>. This allows your
+ computer to behave as though it has much more memory than it
+ actually does. When &os; runs out of memory, it moves some of
+ the data that is not currently being used to the swap space, and
+ moves it back in (moving something else out) when it needs
+ it.</para>
+
+ <para>Some partitions have certain conventions associated with
+ them.</para>
- <thead>
- <row>
- <entry>Partition</entry>
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <colspec colwidth="1*"/>
+ <colspec colwidth="5*"/>
- <entry>Convention</entry>
- </row>
- </thead>
+ <thead>
+ <row>
+ <entry>Partition</entry>
+ <entry>Convention</entry>
+ </row>
+ </thead>
- <tbody valign="top">
- <row>
- <entry><literal>a</literal></entry>
+ <tbody valign="top">
+ <row>
+ <entry><literal>a</literal></entry>
+ <entry>Normally contains the root file system.</entry>
+ </row>
- <entry>Normally contains the root file system</entry>
- </row>
+ <row>
+ <entry><literal>b</literal></entry>
+ <entry>Normally contains swap space.</entry>
+ </row>
- <row>
- <entry><literal>b</literal></entry>
+ <row>
+ <entry><literal>c</literal></entry>
+ <entry>Normally the same size as the enclosing slice.
+ This allows utilities that need to work on the entire
+ slice, such as a bad block scanner, to work on the
+ <literal>c</literal> partition. You would not normally
+ create a file system on this partition.</entry>
+ </row>
- <entry>Normally contains swap space</entry>
- </row>
+ <row>
+ <entry><literal>d</literal></entry>
+ <entry>Partition <literal>d</literal> used to have a
+ special meaning associated with it, although that is now
+ gone and <literal>d</literal> may work as any normal
+ partition.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
- <row>
- <entry><literal>c</literal></entry>
+ <para>Each partition-that-contains-a-file-system is stored in what
+ &os; calls a <firstterm>slice</firstterm>. Slice is
+ &os;'s term for what the common call partitions, and again,
+ this is because of &os;'s &unix; background. Slices are
+ numbered, starting at 1, through to 4.</para>
+
+ <indexterm><primary>slices</primary></indexterm>
+ <indexterm><primary>partitions</primary></indexterm>
+ <indexterm><primary>dangerously dedicated</primary></indexterm>
+
+ <para>Slice numbers follow the device name, prefixed with an
+ <literal>s</literal>, starting at 1. So
+ <quote>da0<emphasis>s1</emphasis></quote> is the first slice on
+ the first SCSI drive. There can only be four physical slices on
+ a disk, but you can have logical slices inside physical slices
+ of the appropriate type. These extended slices are numbered
+ starting at 5, so <quote>ad0<emphasis>s5</emphasis></quote> is
+ the first extended slice on the first IDE disk. These devices
+ are used by file systems that expect to occupy a slice.</para>
+
+ <para>Slices, <quote>dangerously dedicated</quote> physical
+ drives, and other drives contain
+ <firstterm>partitions</firstterm>, which are represented as
+ letters from <literal>a</literal> to <literal>h</literal>. This
+ letter is appended to the device name, so
+ <quote>da0<emphasis>a</emphasis></quote> is the a partition on
+ the first da drive, which is <quote>dangerously
+ dedicated</quote>. <quote>ad1s3<emphasis>e</emphasis></quote> is
+ the fifth partition in the third slice of the second IDE disk
+ drive.</para>
+
+ <para>Finally, each disk on the system is identified. A disk name
+ starts with a code that indicates the type of disk, and then a
+ number, indicating which disk it is. Unlike slices, disk
+ numbering starts at 0. Common codes that you will see are
+ listed in <xref linkend="basics-dev-codes"/>.</para>
+
+ <para>When referring to a partition, include the disk name,
+ <literal>s</literal>, the slice number, and then the partition
+ letter. Examples are shown in <xref
+ linkend="basics-disk-slice-part"/>.</para>
+
+ <para><xref linkend="basics-concept-disk-model"/> shows a
+ conceptual model of a disk layout.</para>
+
+ <para>When installing &os;, configure the disk slices, create
+ partitions within the slice to be used for &os;, create a file
+ system or swap space in each partition, and decide where each
+ file system will be mounted.</para>
+
+ <table frame="none" pgwide="1" id="basics-dev-codes">
+ <title>Disk Device Codes</title>
- <entry>Normally the same size as the enclosing slice. This
- allows utilities that need to work on the entire slice (for
- example, a bad block scanner) to work on the
- <literal>c</literal> partition. You would not normally create
- a file system on this partition.</entry>
- </row>
+ <tgroup cols="2">
+ <colspec colwidth="1*"/>
+ <colspec colwidth="5*"/>
- <row>
- <entry><literal>d</literal></entry>
+ <thead>
+ <row>
+ <entry>Code</entry>
+ <entry>Meaning</entry>
+ </row>
+ </thead>
- <entry>Partition <literal>d</literal> used to have a special
- meaning associated with it, although that is now gone and
- <literal>d</literal> may work as any normal partition.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
+ <tbody>
+ <row>
+ <entry><devicename>ad</devicename></entry>
+ <entry>ATAPI (IDE) disk</entry>
+ </row>
+
+ <row>
+ <entry><devicename>da</devicename></entry>
+ <entry>SCSI direct access disk</entry>
+ </row>
- <para>Each partition-that-contains-a-file-system is stored in what
- FreeBSD calls a <firstterm>slice</firstterm>. Slice is FreeBSD's term
- for what the common call partitions, and again, this is because of
- FreeBSD's &unix; background. Slices are numbered, starting at 1,
- through to 4.</para>
-
- <indexterm><primary>slices</primary></indexterm>
- <indexterm><primary>partitions</primary></indexterm>
- <indexterm><primary>dangerously dedicated</primary></indexterm>
-
- <para>Slice numbers follow
- the device name, prefixed with an <literal>s</literal>,
- starting at 1. So <quote>da0<emphasis>s1</emphasis></quote>
- is the first slice on the first SCSI drive. There can only be
- four physical slices on a disk, but you can have logical
- slices inside physical slices of the appropriate type. These
- extended slices are numbered starting at 5, so
- <quote>ad0<emphasis>s5</emphasis></quote> is the first
- extended slice on the first IDE disk. These devices are used by file
- systems that expect to occupy a slice.</para>
-
- <para>Slices, <quote>dangerously dedicated</quote> physical
- drives, and other drives contain
- <firstterm>partitions</firstterm>, which are represented as
- letters from <literal>a</literal> to <literal>h</literal>.
- This letter is appended to the device name, so
- <quote>da0<emphasis>a</emphasis></quote> is the a partition on
- the first da drive, which is <quote>dangerously dedicated</quote>.
- <quote>ad1s3<emphasis>e</emphasis></quote> is the fifth partition
- in the third slice of the second IDE disk drive.</para>
-
- <para>Finally, each disk on the system is identified. A disk name
- starts with a code that indicates the type of disk, and then a number,
- indicating which disk it is. Unlike slices, disk numbering starts at
- 0. Common codes that you will see are listed in
- <xref linkend="basics-dev-codes"/>.</para>
-
- <para>When referring to a partition FreeBSD requires that you also name
- the slice and disk that contains the partition, and when referring to
- a slice you must also refer to the disk name.
- Thus, you refer to a partition by listing
- the disk name, <literal>s</literal>, the slice number, and then the
- partition letter. Examples are shown in
- <xref linkend="basics-disk-slice-part"/>.</para>
-
- <para><xref linkend="basics-concept-disk-model"/> shows a conceptual
- model of the disk layout that should help make things clearer.</para>
-
- <para>In order to install FreeBSD you must first configure the disk
- slices, then create partitions within the slice you will use for
- FreeBSD, and then create a file system (or swap space) in each
- partition, and decide where that file system will be mounted.</para>
-
- <table frame="none" pgwide="1" id="basics-dev-codes">
- <title>Disk Device Codes</title>
+ <row>
+ <entry><devicename>acd</devicename></entry>
+ <entry>ATAPI (IDE) CDROM</entry>
+ </row>
+
+ <row>
+ <entry><devicename>cd</devicename></entry>
+ <entry>SCSI CDROM</entry>
+ </row>
+ <row>
+ <entry><devicename>fd</devicename></entry>
+ <entry>Floppy disk</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <example id="basics-disk-slice-part">
+ <title>Sample Disk, Slice, and Partition Names</title>
+
+ <informaltable frame="none" pgwide="1">
<tgroup cols="2">
- <colspec colwidth="1*"/>
- <colspec colwidth="5*"/>
+ <colspec colwidth="1*"/>
+ <colspec colwidth="5*"/>
<thead>
<row>
- <entry>Code</entry>
-
+ <entry>Name</entry>
<entry>Meaning</entry>
</row>
</thead>
<tbody>
<row>
- <entry><devicename>ad</devicename></entry>
-
- <entry>ATAPI (IDE) disk</entry>
- </row>
-
- <row>
- <entry><devicename>da</devicename></entry>
-
- <entry>SCSI direct access disk</entry>
- </row>
-
- <row>
- <entry><devicename>acd</devicename></entry>
-
- <entry>ATAPI (IDE) CDROM</entry>
- </row>
-
- <row>
- <entry><devicename>cd</devicename></entry>
-
- <entry>SCSI CDROM</entry>
+ <entry><literal>ad0s1a</literal></entry>
+ <entry>The first partition (<literal>a</literal>) on the
+ first slice (<literal>s1</literal>) on the first IDE
+ disk (<literal>ad0</literal>).</entry>
</row>
<row>
- <entry><devicename>fd</devicename></entry>
+ <entry><literal>da1s2e</literal></entry>
- <entry>Floppy disk</entry>
+ <entry>The fifth partition (<literal>e</literal>) on the
+ second slice (<literal>s2</literal>) on the second
+ SCSI disk (<literal>da1</literal>).</entry>
</row>
</tbody>
</tgroup>
- </table>
-
- <example id="basics-disk-slice-part">
- <title>Sample Disk, Slice, and Partition Names</title>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="2">
- <colspec colwidth="1*"/>
- <colspec colwidth="5*"/>
-
- <thead>
- <row>
- <entry>Name</entry>
-
- <entry>Meaning</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><literal>ad0s1a</literal></entry>
-
- <entry>The first partition (<literal>a</literal>) on the first
- slice (<literal>s1</literal>) on the first IDE disk
- (<literal>ad0</literal>).</entry>
- </row>
-
- <row>
- <entry><literal>da1s2e</literal></entry>
-
- <entry>The fifth partition (<literal>e</literal>) on the
- second slice (<literal>s2</literal>) on the second SCSI disk
- (<literal>da1</literal>).</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </example>
-
- <example id="basics-concept-disk-model">
- <title>Conceptual Model of a Disk</title>
-
- <para>This diagram shows FreeBSD's view of the first IDE disk attached
- to the system. Assume that the disk is 4&nbsp;GB in size, and contains
- two 2&nbsp;GB slices (&ms-dos; partitions). The first slice contains a &ms-dos;
- disk, <devicename>C:</devicename>, and the second slice contains a
- FreeBSD installation. This example FreeBSD installation has three
- data partitions, and a swap partition.</para>
-
- <para>The three partitions will each hold a file system. Partition
- <literal>a</literal> will be used for the root file system,
- <literal>e</literal> for the <filename>/var</filename> directory
- hierarchy, and <literal>f</literal> for the
- <filename>/usr</filename> directory hierarchy.</para>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/disk-layout" format="EPS"/>
- </imageobject>
-
- <textobject>
- <literallayout class="monospaced">.-----------------. --.
+ </informaltable>
+ </example>
+
+ <example id="basics-concept-disk-model">
+ <title>Conceptual Model of a Disk</title>
+
+ <para>This diagram shows &os;'s view of the first IDE disk
+ attached to the system. Assume that the disk is 4&nbsp;GB in
+ size, and contains two 2&nbsp;GB slices (&ms-dos; partitions).
+ The first slice contains a &ms-dos; disk,
+ <devicename>C:</devicename>, and the second slice contains a
+ &os; installation. This example &os; installation has
+ three data partitions, and a swap partition.</para>
+
+ <para>The three partitions will each hold a file system.
+ Partition <literal>a</literal> will be used for the root file
+ system, <literal>e</literal> for the <filename
+ class="directory">/var/</filename> directory hierarchy, and
+ <literal>f</literal> for the <filename
+ class="directory">/usr/</filename> directory
+ hierarchy.</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/disk-layout" format="EPS"/>
+ </imageobject>
+
+ <textobject>
+ <literallayout class="monospaced">.-----------------. --.
| | |
| DOS / Windows | |
: : &gt; First slice, ad0s1
@@ -1570,41 +1547,44 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
| | | |
| | --' |
`-----------------' --'</literallayout>
- </textobject>
- </mediaobject>
- </example>
+ </textobject>
+ </mediaobject>
+ </example>
</sect1>
-
-
<sect1 id="mount-unmount">
<title>Mounting and Unmounting File Systems</title>
<para>The file system is best visualized as a tree,
- rooted, as it were, at <filename>/</filename>.
- <filename>/dev</filename>, <filename>/usr</filename>, and the
+ rooted, as it were, at <filename class="directory">/</filename>.
+ <filename class="directory">/dev</filename>,
+ <filename class="directory">/usr</filename>, and the
other directories in the root directory are branches, which may
have their own branches, such as
- <filename>/usr/local</filename>, and so on.</para>
+ <filename class="directory">/usr/local</filename>, and so
+ on.</para>
<indexterm><primary>root file system</primary></indexterm>
<para>There are various reasons to house some of these
- directories on separate file systems. <filename>/var</filename>
- contains the directories <filename>log/</filename>,
- <filename>spool/</filename>,
- and various types of temporary files, and
- as such, may get filled up. Filling up the root file system
- is not a good idea, so splitting <filename>/var</filename> from
- <filename>/</filename> is often favorable.</para>
+ directories on separate file systems. <filename
+ class="directory">/var</filename> contains the directories
+ <filename class="directory">log/</filename>,
+ <filename class="directory">spool/</filename>, and various types
+ of temporary files, and as such, may get filled up. Filling up
+ the root file system is not a good idea, so splitting <filename
+ class="directory">/var</filename> from
+ <filename class="directory">/</filename> is often
+ favorable.</para>
<para>Another common reason to contain certain directory trees on
other file systems is if they are to be housed on separate
- physical disks, or are separate virtual disks, such as <link
- linkend="network-nfs">Network File System</link> mounts, or CDROM
- drives.</para>
+ physical disks, or are separate virtual disks, such as
+ <link linkend="network-nfs">Network File System</link> mounts,
+ or CDROM drives.</para>
<sect2 id="disks-fstab">
<title>The <filename>fstab</filename> File</title>
+
<indexterm>
<primary>file systems</primary>
<secondary>mounted with fstab</secondary>
@@ -1612,11 +1592,9 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
<para>During the <link linkend="boot">boot process</link>,
file systems listed in <filename>/etc/fstab</filename> are
- automatically mounted (unless they are listed with the
- <option>noauto</option> option).</para>
-
- <para>The <filename>/etc/fstab</filename> file contains a list
- of lines of the following format:</para>
+ automatically mounted except for the entries containing
+ <option>noauto</option>. This file contains entries in the
+ following format:</para>
<programlisting><replaceable>device</replaceable> <replaceable>/mount-point</replaceable> <replaceable>fstype</replaceable> <replaceable>options</replaceable> <replaceable>dumpfreq</replaceable> <replaceable>passno</replaceable></programlisting>
@@ -1624,7 +1602,7 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
<varlistentry>
<term><literal>device</literal></term>
<listitem>
- <para>A device name (which should exist), as explained in
+ <para>An existing device name as explained in
<xref linkend="disks-naming"/>.</para>
</listitem>
</varlistentry>
@@ -1632,16 +1610,18 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
<varlistentry>
<term><literal>mount-point</literal></term>
- <listitem><para>A directory (which should exist), on which
- to mount the file system.</para>
+ <listitem>
+ <para>An existing directory on which to mount the file
+ system.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>fstype</literal></term>
- <listitem><para>The file system type to pass to
- &man.mount.8;. The default FreeBSD file system is
+ <listitem>
+ <para>The file system type to pass to &man.mount.8;. The
+ default &os; file system is
<literal>ufs</literal>.</para>
</listitem>
</varlistentry>
@@ -1649,65 +1629,66 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
<varlistentry>
<term><literal>options</literal></term>
- <listitem><para>Either <option>rw</option> for read-write
- file systems, or <option>ro</option> for read-only
- file systems, followed by any other options that may be
+ <listitem>
+ <para>Either <option>rw</option> for read-write
+ file systems, or <option>ro</option> for read-only file
+ systems, followed by any other options that may be
needed. A common option is <option>noauto</option> for
- file systems not normally mounted during the boot sequence.
- Other options are listed in the &man.mount.8; manual page.</para>
+ file systems not normally mounted during the boot
+ sequence. Other options are listed in
+ &man.mount.8;.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>dumpfreq</literal></term>
- <listitem><para>This is used by &man.dump.8; to determine which
- file systems require dumping. If the field is missing,
- a value of zero is assumed.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>passno</literal></term>
-
- <listitem>
- <para>This determines the order in which file systems should
- be checked. File systems that should be skipped should have
- their <literal>passno</literal> set to zero. The root
- file system (which needs to be checked before everything
- else) should have its <literal>passno</literal> set to
- one, and other file systems' <literal>passno</literal>
- should be set to values greater than one. If more than one
- file systems have the same <literal>passno</literal> then
- &man.fsck.8; will attempt to check file systems in parallel
- if possible.</para>
- </listitem>
+ <listitem>
+ <para>Used by &man.dump.8; to determine which file systems
+ require dumping. If the field is missing, a value of
+ zero is assumed.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>passno</literal></term>
+
+ <listitem>
+ <para>Determines the order in which file systems should be
+ checked. File systems that should be skipped should
+ have their <literal>passno</literal> set to zero. The
+ root file system needs to be checked before everything
+ else and should have its <literal>passno</literal> set
+ to one. The other file systems should be set to
+ values greater than one. If more than one file system
+ has the same <literal>passno</literal>, &man.fsck.8;
+ will attempt to check file systems in parallel if
+ possible.</para>
+ </listitem>
</varlistentry>
</variablelist>
- <para>Consult the &man.fstab.5; manual page for more information
- on the format of the <filename>/etc/fstab</filename> file and
- the options it contains.</para>
+ <para>Refer to &man.fstab.5; for more information on the format
+ of <filename>/etc/fstab</filename> and its options.</para>
</sect2>
<sect2 id="disks-mount">
<title>The <command>mount</command> Command</title>
+
<indexterm>
<primary>file systems</primary>
<secondary>mounting</secondary>
</indexterm>
- <para>The &man.mount.8; command is what is ultimately used to
- mount file systems.</para>
-
- <para>In its most basic form, you use:</para>
+ <para>File systems are mounted using &man.mount.8;. The most
+ basic syntax is as follows:</para>
<informalexample>
<screen>&prompt.root; <userinput>mount <replaceable>device</replaceable> <replaceable>mountpoint</replaceable></userinput></screen>
</informalexample>
- <para>There are plenty of options, as mentioned in the
- &man.mount.8; manual page, but the most common are:</para>
+ <para>This command provides many options which are described in
+ &man.mount.8;, The most commonly used options include:</para>
<variablelist>
<title>Mount Options</title>
@@ -1717,8 +1698,8 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
<listitem>
<para>Mount all the file systems listed in
- <filename>/etc/fstab</filename>. Except those
- marked as <quote>noauto</quote>, excluded by the
+ <filename>/etc/fstab</filename>, except those marked as
+ <quote>noauto</quote>, excluded by the
<option>-t</option> flag, or those that are already
mounted.</para>
</listitem>
@@ -1728,10 +1709,11 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
<term><option>-d</option></term>
<listitem>
- <para>Do everything except for the actual mount system call.
- This option is useful in conjunction with the
- <option>-v</option> flag to determine what
- &man.mount.8; is actually trying to do.</para>
+
+ <para>Do everything except for the actual mount system
+ call. This option is useful in conjunction with the
+ <option>-v</option> flag to determine what &man.mount.8;
+ is actually trying to do.</para>
</listitem>
</varlistentry>
@@ -1740,20 +1722,18 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
<listitem>
<para>Force the mount of an unclean file system
- (dangerous), or forces the revocation of write access
- when downgrading a file system's mount status from
- read-write to read-only.</para>
+ (dangerous), or the revocation of write access when
+ downgrading a file system's mount status from read-write
+ to read-only.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>-r</option></term>
+ <term><option>-r</option></term>
<listitem>
<para>Mount the file system read-only. This is identical
- to using the <option>ro</option>
- argument to the
- <option>-o</option> option.</para>
+ to using <option>-o ro</option>.</para>
</listitem>
</varlistentry>
@@ -1762,12 +1742,10 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
<replaceable>fstype</replaceable></term>
<listitem>
- <para>Mount the given file system as the given file system
- type, or mount only file systems of the given type, if
- given the <option>-a</option> option.</para>
-
- <para><quote>ufs</quote> is the default file system
- type.</para>
+ <para>Mount the specified file system type or mount only
+ file systems of the given type, if <option>-a</option>
+ is included. <quote>ufs</quote> is the default file
+ system type.</para>
</listitem>
</varlistentry>
@@ -1796,16 +1774,16 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
</varlistentry>
</variablelist>
- <para>The <option>-o</option> option takes a comma-separated list of
- the options, including the following:</para>
+ <para>The following options can be passed to <option>-o</option>
+ as a comma-separated list:</para>
<variablelist>
<varlistentry>
<term>noexec</term>
<listitem>
- <para>Do not allow execution of binaries on this
- file system. This is also a useful security option.</para>
+ <para>Do not allow execution of binaries on this file
+ system. This is also a useful security option.</para>
</listitem>
</varlistentry>
@@ -1814,7 +1792,8 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
<listitem>
<para>Do not interpret setuid or setgid flags on the
- file system. This is also a useful security option.</para>
+ file system. This is also a useful security
+ option.</para>
</listitem>
</varlistentry>
</variablelist>
@@ -1822,63 +1801,60 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
<sect2 id="disks-umount">
<title>The <command>umount</command> Command</title>
+
<indexterm>
<primary>file systems</primary>
<secondary>unmounting</secondary>
</indexterm>
- <para>The &man.umount.8; command takes, as a parameter, one of a
- mountpoint, a device name, or the <option>-a</option> or
- <option>-A</option> option.</para>
+ <para>To unmount a filesystem use &man.umount.8;. This command
+ takes one parameter which can be a mountpoint, device name,
+ <option>-a</option> or <option>-A</option>.</para>
<para>All forms take <option>-f</option> to force unmounting,
- and <option>-v</option> for verbosity. Be warned that
- <option>-f</option> is not generally a good idea. Forcibly
- unmounting file systems might crash the computer or damage data
- on the file system.</para>
-
- <para><option>-a</option> and <option>-A</option> are used to
- unmount all mounted file systems, possibly modified by the
- file system types listed after <option>-t</option>.
- <option>-A</option>, however, does not attempt to unmount the
- root file system.</para>
+ and <option>-v</option> for verbosity. Be warned that
+ <option>-f</option> is not generally a good idea as it might
+ crash the computer or damage data on the file system.</para>
+
+ <para>To unmount all mounted file systems, or just the file
+ system types listed after <option>-t</option>, use
+ <option>-a</option> or <option>-A</option>. Note that
+ <option>-A</option> does not attempt to unmount the root file
+ system.</para>
</sect2>
</sect1>
<sect1 id="basics-processes">
<title>Processes</title>
- <para>FreeBSD is a multi-tasking operating system. This means that it
- seems as though more than one program is running at once. Each program
- running at any one time is called a <firstterm>process</firstterm>.
- Every command you run will start at least one new process, and there are
- a number of system processes that run all the time, keeping the system
- functional.</para>
+ <para>&os; is a multi-tasking operating system. Each program
+ running at any one time is called a
+ <firstterm>process</firstterm>. Every running command starts
+ at least one new process and there are a number of system
+ processes that are run by &os;.</para>
<para>Each process is uniquely identified by a number called a
- <firstterm>process ID</firstterm>, or <firstterm>PID</firstterm>, and,
- like files, each process also has one owner and group. The owner and
- group information is used to determine what files and devices the
- process can open, using the file permissions discussed earlier. Most
- processes also have a parent process. The parent process is the process
- that started them. For example, if you are typing commands to the shell
- then the shell is a process, and any commands you run are also
- processes. Each process you run in this way will have your shell as its
- parent process. The exception to this is a special process called
- &man.init.8;. <command>init</command> is always the first
- process, so its PID is always 1. <command>init</command> is started
- automatically by the kernel when FreeBSD starts.</para>
-
- <para>Two commands are particularly useful to see the processes on the
- system, &man.ps.1; and &man.top.1;. The <command>ps</command> command is used to
- show a static list of the currently running processes, and can show
- their PID, how much memory they are using, the command line they were
- started with, and so on. The <command>top</command> command displays all the
- running processes, and updates the display every few seconds, so that
- you can interactively see what your computer is doing.</para>
-
- <para>By default, <command>ps</command> only shows you the commands that are running
- and are owned by you. For example:</para>
+ <firstterm>process ID</firstterm>
+ (<firstterm>PID</firstterm>). Similar to files, each process
+ has one owner and group, and the owner and group permissions are
+ used to determine which files and devices the process can open.
+ Most processes also have a parent process that started them.
+ For example, the shell is a process, and any command started in
+ the shell is a process which has the shell as its parent
+ process. The exception is a special process called
+ &man.init.8; which is always the first process to start at boot
+ time and which always has a PID of 1.</para>
+
+ <para>To see the processes on the system, use &man.ps.1; and
+ &man.top.1;. To display a static list of the currently running
+ processes, their PIDs, how much memory they are using, and the
+ command they were started with, use <command>ps</command>. To
+ display all the running processes and update the display every
+ few seconds so that you can interactively see what the computer
+ is doing, use <command>top</command>.</para>
+
+ <para>By default, <command>ps</command> only shows the commands
+ that are running and owned by the user. For example:</para>
<screen>&prompt.user; <userinput>ps</userinput>
PID TT STAT TIME COMMAND
@@ -1886,7 +1862,6 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
7078 p0 S 2:40.88 xemacs mdoc.xsl (xemacs-21.1.14)
37393 p0 I 0:03.11 xemacs freebsd.dsl (xemacs-21.1.14)
48630 p0 S 2:50.89 /usr/local/lib/netscape-linux/navigator-linux-4.77.bi
-48730 p0 IW 0:00.00 (dns helper) (navigator-linux-)
72210 p0 R+ 0:00.00 ps
390 p1 Is 0:01.14 tcsh
7059 p2 Is+ 1:36.18 /usr/local/bin/mutt -y
@@ -1899,34 +1874,33 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
284 v0 IW 0:00.00 /bin/sh /home/nik/.xinitrc
285 v0 S 0:38.45 /usr/X11R6/bin/sawfish</screen>
- <para>As you can see in this example, the output from &man.ps.1; is
- organized into a number of columns. <literal>PID</literal> is the
- process ID discussed earlier. PIDs are assigned starting from 1, go up
- to 99999, and wrap around back to the beginning when you run out
- (a PID is not reassigned if it is already in use).
- The <literal>TT</literal> column shows the tty the program is running on, and can
- safely be ignored for the moment. <literal>STAT</literal> shows the
- program's state, and again, can be safely ignored.
- <literal>TIME</literal> is the amount of time the program has been
- running on the CPU&mdash;this is usually not the elapsed time since
- you started the program, as most programs spend a lot of time waiting
- for things to happen before they need to spend time on the CPU.
- Finally, <literal>COMMAND</literal> is the command line that was used to
- run the program.</para>
-
- <para>&man.ps.1; supports a number of different options to change the
- information that is displayed. One of the most useful sets is
- <literal>auxww</literal>. <option>a</option> displays information
- about all the running processes, not just your own. <option>u</option>
- displays the username of the process' owner, as well as memory usage.
- <option>x</option> displays information about daemon processes, and
- <option>ww</option> causes &man.ps.1; to display the full command line
- for each process,
- rather than truncating it once it gets too long to fit on the
- screen.</para>
-
- <para>The output from &man.top.1; is similar. A sample session looks like
- this:</para>
+ <para>The output from &man.ps.1; is organized into a number of
+ columns. The <literal>PID</literal> column displays the process
+ ID. PIDs are assigned starting at 1, go up to 99999, then wrap
+ around back to the beginning. However, a PID is not reassigned
+ if it is already in use. The <literal>TT</literal> column shows
+ the tty the program is running on and <literal>STAT</literal>
+ shows the program's state. <literal>TIME</literal> is the
+ amount of time the program has been running on the CPU. This is
+ usually not the elapsed time since the program was started, as
+ most programs spend a lot of time waiting for things to happen
+ before they need to spend time on the CPU. Finally,
+ <literal>COMMAND</literal> is the command that was used to start
+ the program.</para>
+
+ <para>&man.ps.1; supports a number of different options to change
+ the information that is displayed. One of the most useful sets
+ is <literal>auxww</literal>. <option>a</option> displays
+ information about all the running processes of all users.
+ <option>u</option> displays the username of the process' owner,
+ as well as memory usage. <option>x</option> displays
+ information about daemon processes, and <option>ww</option>
+ causes &man.ps.1; to display the full command line for each
+ process, rather than truncating it once it gets too long to fit
+ on the screen.</para>
+
+ <para>The output from &man.top.1; is similar. A sample session
+ looks like this:</para>
<screen>&prompt.user; <userinput>top</userinput>
last pid: 72257; load averages: 0.13, 0.09, 0.03 up 0+13:38:33 22:39:10
@@ -1945,249 +1919,240 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
7059 nik 2 0 7260K 4644K poll 1:38 0.00% 0.00% mutt
...</screen>
- <para>The output is split into two sections. The header (the first five
- lines) shows the PID of the last process to run, the system load averages
- (which are a measure of how busy the system is), the system uptime (time
- since the last reboot) and the current time. The other figures in the
- header relate to how many processes are running (47 in this case), how
- much memory and swap space has been taken up, and how much time the
- system is spending in different CPU states.</para>
-
- <para>Below that are a series of columns containing similar information
- to the output from &man.ps.1;. As before you can see the PID, the
- username, the amount of CPU time taken, and the command that was run.
- &man.top.1; also defaults to showing you the amount of memory space
- taken by the process. This is split into two columns, one for total
- size, and one for resident size&mdash;total size is how much memory the
- application has needed, and the resident size is how much it is actually
- using at the moment. In this example you can see that <application>&netscape;</application> has
- required almost 30&nbsp;MB of RAM, but is currently only using 9&nbsp;MB.</para>
-
- <para>&man.top.1; automatically updates this display every two seconds;
- this can be changed with the <option>s</option> option.</para>
+ <para>The output is split into two sections. The header (the
+ first five lines) shows the PID of the last process to run, the
+ system load averages (which are a measure of how busy the system
+ is), the system uptime (time since the last reboot) and the
+ current time. The other figures in the header relate to how
+ many processes are running (47 in this case), how much memory
+ and swap space has been used, and how much time the system is
+ spending in different CPU states.</para>
+
+ <para>Below the header is a series of columns containing similar
+ information to the output from &man.ps.1;, such as the PID,
+ username, amount of CPU time, and the command that started the
+ process. By default, &man.top.1; also displays the amount of
+ memory space taken by the process. This is split into two
+ columns: one for total size and one for resident size. Total
+ size is how much memory the application has needed and the
+ resident size is how much it is actually using at the moment.
+ In this example, <application>&netscape;</application> has
+ required almost 30&nbsp;MB of RAM, but is currently only using
+ 9&nbsp;MB.</para>
+
+ <para>&man.top.1; automatically updates the display every two
+ seconds. A different interval can be specified with
+ <option>-s</option>.</para>
</sect1>
<sect1 id="basics-daemons">
<title>Daemons, Signals, and Killing Processes</title>
- <para>When you run an editor it is easy to control the editor, tell it to
- load files, and so on. You can do this because the editor provides
- facilities to do so, and because the editor is attached to a
- <firstterm>terminal</firstterm>. Some programs are not designed to be
- run with continuous user input, and so they disconnect from the terminal
- at the first opportunity. For example, a web server spends all day
- responding to web requests, it normally does not need any input from
- you. Programs that transport email from site to site are another
- example of this class of application.</para>
-
- <para>We call these programs <firstterm>daemons</firstterm>. Daemons were
- characters in Greek mythology: neither good or evil, they were little
- attendant spirits that, by and large, did useful things for mankind,
- much like the web servers and mail servers of today do useful things.
- This is why the BSD mascot has, for a long time, been the
+ <para>When using an editor, it is easy to control the editor and
+ load files because the editor provides facilities to do so, and
+ because the editor is attached to a
+ <firstterm>terminal</firstterm>. Some programs are not designed
+ to be run with continuous user input and disconnect from the
+ terminal at the first opportunity. For example, a web server
+ responds to web requests, rather than user input. Mail servers
+ are another example of this type of application.</para>
+
+ <para>These programs are known as <firstterm>daemons</firstterm>.
+ The term daemon comes from Greek mythology and represents an
+ entity that is neither good or evil, and which invisibly
+ performs useful tasks. This is why the BSD mascot is the
cheerful-looking daemon with sneakers and a pitchfork.</para>
- <para>There is a convention to name programs that normally run as daemons
- with a trailing <quote>d</quote>. <application>BIND</application> is the
- Berkeley Internet Name Domain, but the actual program that executes is called
- <command>named</command>; the <application>Apache</application> web
- server program is called <command>httpd</command>; the line printer
- spooling daemon is <command>lpd</command> and so on. This is a
- convention, not a hard and fast rule; for example, the main mail daemon
- for the <application>Sendmail</application> application is called
- <command>sendmail</command>, and not <command>maild</command>, as you
- might imagine.</para>
-
- <para>Sometimes you will need to communicate with a daemon process.
- One way to do so is to send it (or any other running process),
- what is known as a <firstterm>signal</firstterm>.
- There are a number of different signals that you can
- send&mdash;some of them have a specific meaning, others are interpreted
- by the application, and the application's documentation will tell you
- how that application interprets signals. You can only send a signal to
- a process that you own. If you send a signal to someone else's
- process with &man.kill.1; or &man.kill.2;, permission will be denied.
- The exception to this is the
- <username>root</username> user, who can send signals to everyone's
+ <para>There is a convention to name programs that normally run as
+ daemons with a trailing <quote>d</quote>.
+ <application>BIND</application> is the Berkeley Internet Name
+ Domain, but the actual program that executes is
+ <command>named</command>. The <application>Apache</application>
+ web server program is <command>httpd</command> and the
+ line printer spooling daemon is <command>lpd</command>. This is
+ only a naming convention. For example, the main mail daemon for
+ the <application>Sendmail</application> application is
+ <command>sendmail</command>, and not
+ <command>maild</command>.</para>
+
+ <para>One way to communicate with a daemon, or any running
+ process, is to send a <firstterm>signal</firstterm> using
+ &man.kill.1;. There are a number of different signals; some
+ have a specific meaning while others are described in the
+ application's documentation. A user can only send a signal to a
+ process they own and sending a signal to someone else's process
+ will result in a permission denied error. The exception is the
+ <username>root</username> user, who can send signals to anyone's
processes.</para>
- <para>FreeBSD will also send applications signals in some cases. If an
- application is badly written, and tries to access memory that it is not
- supposed to, FreeBSD sends the process the <firstterm>Segmentation
- Violation</firstterm> signal (<literal>SIGSEGV</literal>). If an
- application has used the &man.alarm.3; system call to be alerted after a
- period of time has elapsed then it will be sent the Alarm signal
- (<literal>SIGALRM</literal>), and so on.</para>
+ <para>&os; can also send a signal to a process. If an application
+ is badly written and tries to access memory that it is not
+ supposed to, &os; will send the process the
+ <firstterm>Segmentation Violation</firstterm> signal
+ (<literal>SIGSEGV</literal>). If an application has used the
+ &man.alarm.3; system call to be alerted after a period of time
+ has elapsed, it will be sent the Alarm signal
+ (<literal>SIGALRM</literal>).</para>
- <para>Two signals can be used to stop a process,
+ <para>Two signals can be used to stop a process:
<literal>SIGTERM</literal> and <literal>SIGKILL</literal>.
- <literal>SIGTERM</literal> is the polite way to kill a process; the
- process can <emphasis>catch</emphasis> the signal, realize that you want
- it to shut down, close any log files it may have open, and generally
- finish whatever it is doing at the time before shutting down. In some
- cases a process may even ignore <literal>SIGTERM</literal> if it is in
- the middle of some task that can not be interrupted.</para>
-
- <para><literal>SIGKILL</literal> can not be ignored by a process. This is
- the <quote>I do not care what you are doing, stop right now</quote>
- signal. If you send <literal>SIGKILL</literal> to a process then
- FreeBSD will stop that process there and then<footnote>
- <para>Not quite true&mdash;there are a few things that can not be
- interrupted. For example, if the process is trying to read from a
- file that is on another computer on the network, and the other
- computer has gone away for some reason (been turned off, or the
- network has a fault), then the process is said to be
- <quote>uninterruptible</quote>. Eventually the process will time
- out, typically after two minutes. As soon as this time out occurs
- the process will be killed.</para>
- </footnote>.</para>
-
- <para>The other signals you might want to use are
- <literal>SIGHUP</literal>, <literal>SIGUSR1</literal>, and
- <literal>SIGUSR2</literal>. These are general purpose signals, and
- different applications will do different things when they are
- sent.</para>
-
- <para>Suppose that you have changed your web server's configuration
- file&mdash;you would like to tell the web server to re-read its
- configuration. You could stop and restart <command>httpd</command>, but
- this would result in a brief outage period on your web server, which may
- be undesirable. Most daemons are written to respond to the
- <literal>SIGHUP</literal> signal by re-reading their configuration
- file. So instead of killing and restarting <command>httpd</command> you
- would send it the <literal>SIGHUP</literal> signal. Because there is no
- standard way to respond to these signals, different daemons will have
- different behavior, so be sure and read the documentation for the
- daemon in question.</para>
-
- <para>Signals are sent using the &man.kill.1; command, as this example
- shows.</para>
+ <literal>SIGTERM</literal> is the polite way to kill a process
+ as the process can read the signal, close any log files it may
+ have open, and attempt to finish what it is doing before
+ shutting down. In some cases, a process may ignore
+ <literal>SIGTERM</literal> if it is in the middle of some task
+ that can not be interrupted.</para>
+
+ <para><literal>SIGKILL</literal> can not be ignored by a process.
+ This is the <quote>I do not care what you are doing, stop right
+ now</quote> signal. Sending a <literal>SIGKILL</literal> to a
+ process will usually stop that process there and then.<footnote>
+ <para>There are a few tasks that can not be interrupted. For
+ example, if the process is trying to read from a file that
+ is on another computer on the network, and the other
+ computer is unavailable, the process is said to be
+ <quote>uninterruptible</quote>. Eventually the process will
+ time out, typically after two minutes. As soon as this time
+ out occurs the process will be killed.</para>
+ </footnote>.</para>
+
+ <para>Other commonly used signals are <literal>SIGHUP</literal>,
+ <literal>SIGUSR1</literal>, and <literal>SIGUSR2</literal>.
+ These are general purpose signals and different applications
+ will respond differently.</para>
+
+ <para>For example, after changing a web server's configuration
+ file, the web server needs to be told to re-read its
+ configuration. Restarting <command>httpd</command> would result
+ in a brief outage period on the web server. Instead, send the
+ daemon the <literal>SIGHUP</literal> signal. Be aware that
+ different daemons will have different behavior, so refer to the
+ documentation for the daemon to determine if
+ <literal>SIGHUP</literal> will achieve the desired
+ results.</para>
<procedure>
<title>Sending a Signal to a Process</title>
- <para>This example shows how to send a signal to &man.inetd.8;. The
- <command>inetd</command> configuration file is
- <filename>/etc/inetd.conf</filename>, and <command>inetd</command> will re-read
- this configuration file when it is sent
- <literal>SIGHUP</literal>.</para>
+ <para>This example shows how to send a signal to &man.inetd.8;.
+ The <command>inetd</command> configuration file is
+ <filename>/etc/inetd.conf</filename>, and
+ <command>inetd</command> will re-read this configuration file
+ when it is sent a <literal>SIGHUP</literal>.</para>
<step>
- <para>Find the process ID of the process you want to send the signal
- to. Do this using &man.ps.1; and &man.grep.1;. The &man.grep.1;
- command is used to search through output, looking for the string you
- specify. This command is run as a normal user, and &man.inetd.8; is
- run as <username>root</username>, so the <option>ax</option> options
- must be given to &man.ps.1;.</para>
-
- <screen>&prompt.user; <userinput>ps -ax | grep inetd</userinput>
- 198 ?? IWs 0:00.00 inetd -wW</screen>
-
- <para>So the &man.inetd.8; PID is 198. In some cases the
- <literal>grep inetd</literal> command might also appear in this
- output. This is because of the way &man.ps.1; has to find the list
- of running processes.</para>
+ <para>Find the PID of the process you want to send the signal
+ to using &man.pgrep.1;. In this example, the PID for
+ &man.inetd.8; is 198:</para>
+
+ <screen>&prompt.user; <userinput>pgrep -l inetd</userinput>
+198 inetd -wW</screen>
+
</step>
<step>
- <para>Use &man.kill.1; to send the signal. Because &man.inetd.8; is
- being run by <username>root</username> you must use &man.su.1; to
- become <username>root</username> first.</para>
+ <para>Use &man.kill.1; to send the signal. Because
+ &man.inetd.8; is owned by <username>root</username>, use
+ &man.su.1; to become <username>root</username> first.</para>
<screen>&prompt.user; <userinput>su</userinput>
<prompt>Password:</prompt>
&prompt.root; <userinput>/bin/kill -s HUP 198</userinput></screen>
- <para>In common with most &unix; commands, &man.kill.1; will not print any
- output if it is successful. If you send a signal to a
- process that you do not own then you will see <errorname>kill:
- <replaceable>PID</replaceable>: Operation not
- permitted</errorname>. If you mistype the PID you will either
- send the signal to the wrong process, which could be bad, or, if
- you are lucky, you will have sent the signal to a PID that is not
- currently in use, and you will see <errorname>kill:
- <replaceable>PID</replaceable>: No such process</errorname>.</para>
+ <para>Like most &unix; commands, &man.kill.1; will not print
+ any output if it is successful. If you send a signal to a
+ process that you do not own, you will instead see
+ <errorname>kill: <replaceable>PID</replaceable>: Operation
+ not permitted</errorname>. Mistyping the PID will either
+ send the signal to the wrong process, which could have
+ negative results, or will send the signal to a PID that is
+ not currently in use, resulting in the error
+ <errorname>kill: <replaceable>PID</replaceable>: No such
+ process</errorname>.</para>
<note>
<title>Why Use <command>/bin/kill</command>?</title>
- <para>Many shells provide the <command>kill</command> command as a
- built in command; that is, the shell will send the signal
- directly, rather than running <filename>/bin/kill</filename>.
- This can be very useful, but different shells have a different
- syntax for specifying the name of the signal to send. Rather than
- try to learn all of them, it can be simpler just to use the
- <command>/bin/kill <replaceable>...</replaceable></command>
- command directly.</para>
+ <para>Many shells provide <command>kill</command> as a built
+ in command, meaning that the shell will send the signal
+ directly, rather than running
+ <filename>/bin/kill</filename>. Be aware that different
+ shells have a different syntax for specifying the name of
+ the signal to send. Rather than try to learn all of them,
+ it can be simpler to use <command>/bin/kill
+ <replaceable>...</replaceable></command>
+ directly.</para>
</note>
</step>
</procedure>
- <para>Sending other signals is very similar, just substitute
- <literal>TERM</literal> or <literal>KILL</literal> in the command line
- as necessary.</para>
+ <para>When sending other signals, substitute
+ <literal>TERM</literal> or <literal>KILL</literal> in the
+ command line as necessary.</para>
<important>
- <para>Killing random process on the system can be a bad idea. In
- particular, &man.init.8;, process ID 1, is very special. Running
- <command>/bin/kill -s KILL 1</command> is a quick way to shutdown your
- system. <emphasis>Always</emphasis> double check the arguments you
- run &man.kill.1; with <emphasis>before</emphasis> you press
+ <para>Killing a random process on the system can be a bad idea.
+ In particular, &man.init.8;, PID 1, is special. Running
+ <command>/bin/kill -s KILL 1</command> is a quick, and
+ unrecommended, way to shutdown the system.
+ <emphasis>Always</emphasis> double check the arguments to
+ &man.kill.1; <emphasis>before</emphasis> pressing
<keycap>Return</keycap>.</para>
</important>
</sect1>
<sect1 id="shells">
<title>Shells</title>
+
<indexterm><primary>shells</primary></indexterm>
<indexterm><primary>command line</primary></indexterm>
- <para>In FreeBSD, a lot of everyday work is done in a command line
- interface called a shell. A shell's main job is to take commands
- from the input channel and execute them. A lot of shells also have
- built in functions to help with everyday tasks such as file management,
- file globbing, command line editing, command macros, and environment
- variables. FreeBSD comes with a set of shells, such as
- <command>sh</command>, the Bourne Shell, and <command>tcsh</command>,
- the improved C-shell. Many other shells are available
- from the FreeBSD Ports Collection, such as
- <command>zsh</command> and <command>bash</command>.</para>
-
- <para>Which shell do you use? It is really a matter of taste. If you
- are a C programmer you might feel more comfortable with a C-like shell
- such as <command>tcsh</command>. If you have come from Linux or are new
- to a &unix; command line interface you might try <command>bash</command>.
- The point is that each
- shell has unique properties that may or may not work with your
- preferred working environment, and that you have a choice of what
- shell to use.</para>
-
- <para>One common feature in a shell is filename completion. Given
- the typing of the first few letters of a command or filename, you
- can usually have the shell automatically complete the rest of the
- command or filename by hitting the <keycap>Tab</keycap> key on the keyboard. Here is
- an example. Suppose you have two files called
- <filename>foobar</filename> and <filename>foo.bar</filename>. You
- want to delete <filename>foo.bar</filename>. So what you would type
- on the keyboard is: <command>rm fo[<keycap>Tab</keycap>].[<keycap>Tab</keycap>]</command>.</para>
-
- <para>The shell would print out <command>rm
- foo[BEEP].bar</command>.</para>
-
- <para>The [BEEP] is the console bell, which is the shell telling me it
- was unable to totally complete the filename because there is more
- than one match. Both <filename>foobar</filename> and
- <filename>foo.bar</filename> start with <literal>fo</literal>, but
- it was able to complete to <literal>foo</literal>. If you type in
- <literal>.</literal>, then hit <keycap>Tab</keycap> again, the shell would be able to
- fill in the rest of the filename for you.</para>
+ <para>&os; provides a command line interface called a shell. A
+ shell receives commands from the input channel and executes
+ them. Many shells provide built in functions to help with
+ everyday tasks such as file management, file globbing, command
+ line editing, command macros, and environment variables. &os;
+ comes with several shells, including <command>sh</command>, the
+ Bourne Shell, and <command>tcsh</command>, the improved C-shell.
+ Other shells are available from the &os; Ports Collection, such
+ as <command>zsh</command> and <command>bash</command>.</para>
+
+ <para>The shell that is used is really a matter of taste. A C
+ programmer might feel more comfortable with a C-like shell such
+ as <command>tcsh</command>. A Linux user might prefer
+ <command>bash</command>. Each shell has unique properties that
+ may or may not work with a user's preferred working environment,
+ which is why there is a choice of which shell to use.</para>
+
+ <para>One common shell feature is filename completion. After a
+ user types the first few letters of a command or filename and
+ presses <keycap>Tab</keycap>, the shell will automatically
+ complete the rest of the command or filename. Consider two
+ files called <filename>foobar</filename> and
+ <filename>foo.bar</filename>. To delete
+ <filename>foo.bar</filename>, type <command>rm
+ fo[<keycap>Tab</keycap>].[<keycap>Tab</keycap>]</command>.</para>
+
+ <para>The shell should print out <command>rm
+ foo[BEEP].bar</command>.</para>
+
+ <para>The [BEEP] is the console bell, which the shell used to
+ indicate it was unable to complete the filename because there
+ is more than one match. Both <filename>foobar</filename> and
+ <filename>foo.bar</filename> start with <literal>fo</literal>.
+ By typing <literal>.</literal>, then pressing
+ <keycap>Tab</keycap> again, the shell would be able to fill in
+ the rest of the filename.</para>
+
<indexterm><primary>environment variables</primary></indexterm>
- <para>Another feature of the shell is the use of environment variables.
- Environment variables are a variable/key pair stored in the shell's
- environment space. This space can be read by any program invoked by
- the shell, and thus contains a lot of program configuration. Here
- is a list of common environment variables and what they mean:</para>
+ <para>Another feature of the shell is the use of environment
+ variables. Environment variables are a variable/key pair stored
+ in the shell's environment. This environment can be read by any
+ program invoked by the shell, and thus contains a lot of program
+ configuration. Here is a list of common environment variables
+ and their meanings:</para>
+
<indexterm><primary>environment variables</primary></indexterm>
<informaltable frame="none" pgwide="1">
@@ -2213,8 +2178,8 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
<row>
<entry><envar>DISPLAY</envar></entry>
- <entry>Network name of the X11 display to connect to, if
- available.</entry>
+ <entry>Network name of the <application>Xorg</application>
+ display to connect to, if available.</entry>
</row>
<row>
@@ -2224,25 +2189,26 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
<row>
<entry><envar>TERM</envar></entry>
- <entry>The name of the user's type of terminal. Used to determine the
- capabilities of the terminal.</entry>
+
+ <entry>The name of the user's type of terminal. Used to
+ determine the capabilities of the terminal.</entry>
</row>
<row>
<entry><envar>TERMCAP</envar></entry>
- <entry>Database entry of the terminal escape codes to perform
- various terminal functions.</entry>
+
+ <entry>Database entry of the terminal escape codes to
+ perform various terminal functions.</entry>
</row>
<row>
<entry><envar>OSTYPE</envar></entry>
- <entry>Type of operating system. e.g., FreeBSD.</entry>
+ <entry>Type of operating system.</entry>
</row>
<row>
<entry><envar>MACHTYPE</envar></entry>
- <entry>The CPU architecture that the system is running
- on.</entry>
+ <entry>The system's CPU architecture.</entry>
</row>
<row>
@@ -2265,95 +2231,89 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
</informaltable>
<indexterm><primary>Bourne shells</primary></indexterm>
- <para>Setting an environment variable differs somewhat from
- shell to shell. For example, in the C-Style shells such as
- <command>tcsh</command> and <command>csh</command>, you would use
- <command>setenv</command> to set environment variables.
- Under Bourne shells such as <command>sh</command> and
- <command>bash</command>, you would use
- <command>export</command> to set your current environment
- variables. For example, to set or modify the
- <envar>EDITOR</envar> environment variable, under <command>csh</command> or
- <command>tcsh</command> a
- command like this would set <envar>EDITOR</envar> to
- <filename>/usr/local/bin/emacs</filename>:</para>
+
+ <para>How to set an environment variable differs between shells.
+ In <command>tcsh</command> and <command>csh</command>, use
+ <command>setenv</command> to set environment variables. In
+ <command>sh</command> and <command>bash</command>, use
+ <command>export</command> to set the current environment
+ variables. This example sets the default <envar>EDITOR</envar>
+ to <filename>/usr/local/bin/emacs</filename> for the
+ <command>tcsh</command> shell:</para>
<screen>&prompt.user; <userinput>setenv EDITOR /usr/local/bin/emacs</userinput></screen>
- <para>Under Bourne shells:</para>
+ <para>The equivalent command for <command>bash</command>
+ would be:</para>
<screen>&prompt.user; <userinput>export EDITOR="/usr/local/bin/emacs"</userinput></screen>
- <para>You can also make most shells expand the environment variable by
- placing a <literal>$</literal> character in front of it on the
- command line. For example, <command>echo $TERM</command> would
- print out whatever <envar>$TERM</envar> is set to, because the shell
- expands <envar>$TERM</envar> and passes it on to <command>echo</command>.</para>
-
- <para>Shells treat a lot of special characters, called meta-characters
- as special representations of data. The most common one is the
- <literal>*</literal> character, which represents any number of
- characters in a filename. These special meta-characters can be used
- to do filename globbing. For example, typing in
- <command>echo *</command> is almost the same as typing in
+ <para>To expand an environment variable in order to see its
+ current setting, type a <literal>$</literal> character in front
+ of its name on the command line. For example,
+ <command>echo $TERM</command> displays the current
+ <envar>$TERM</envar> setting.</para>
+
+ <para>Shells treat special characters, known as meta-characters,
+ as special representations of data. The most common
+ meta-character is <literal>*</literal>, which
+ represents any number of characters in a filename.
+ Meta-characters can be used to perform filename globbing. For
+ example, <command>echo *</command> is equivalent to
<command>ls</command> because the shell takes all the files that
- match <literal>*</literal> and puts them on the command line for
- <command>echo</command> to see.</para>
+ match <literal>*</literal> and <command>echo</command> lists
+ them on the command line.</para>
- <para>To prevent the shell from interpreting these special characters,
- they can be escaped from the shell by putting a backslash
- (<literal>\</literal>) character in front of them. <command>echo
- $TERM</command> prints whatever your terminal is set to.
- <command>echo \$TERM</command> prints <envar>$TERM</envar> as
- is.</para>
+ <para>To prevent the shell from interpreting a special character,
+ escape it from the shell by starting it with a backslash
+ (<literal>\</literal>). For example,
+ <command>echo $TERM</command> prints the terminal setting
+ whereas <command>echo \$TERM</command> literally prints the
+ string <literal>$TERM</literal>.</para>
<sect2 id="changing-shells">
<title>Changing Your Shell</title>
- <para>The easiest way to change your shell is to use the
- <command>chsh</command> command. Running <command>chsh</command> will
- place you into the editor that is in your <envar>EDITOR</envar>
- environment variable; if it is not set, you will be placed in
- <command>vi</command>. Change the <quote>Shell:</quote> line
- accordingly.</para>
+ <para>The easiest way to permanently change the default shell is
+ to use <command>chsh</command>. Running this command will
+ open the editor that is configured in the
+ <envar>EDITOR</envar> environment variable, which by default
+ is set to <command>vi</command>. Change
+ the <quote>Shell:</quote> line to the full path of the
+ new shell.</para>
- <para>You can also give <command>chsh</command> the
- <option>-s</option> option; this will set your shell for you,
- without requiring you to enter an editor.
- For example, if you wanted to
- change your shell to <command>bash</command>, the following should do the
- trick:</para>
+ <para>Alternately, use <command>chsh -s</command> which will set
+ the specified shell without opening an editor. For example,
+ to change the shell to <command>bash</command>:</para>
<screen>&prompt.user; <userinput>chsh -s /usr/local/bin/bash</userinput></screen>
<note>
- <para>The shell that you wish to use <emphasis>must</emphasis> be
- present in the <filename>/etc/shells</filename> file. If you
- have installed a shell from the <link linkend="ports">ports
- collection</link>, then this should have been done for you
- already. If you installed the shell by hand, you must do
- this.</para>
-
- <para>For example, if you installed <command>bash</command> by hand
- and placed it into <filename>/usr/local/bin</filename>, you would
- want to:</para>
-
- <screen>&prompt.root; <userinput>echo &quot;/usr/local/bin/bash&quot; &gt;&gt; /etc/shells</userinput></screen>
-
- <para>Then rerun <command>chsh</command>.</para>
- </note>
- </sect2>
+ <para>The new shell <emphasis>must</emphasis> be present in
+ <filename>/etc/shells</filename>. If the shell was
+ installed from the &os; <link linkend="ports">Ports
+ Collection</link>, it should be automatically added to
+ this file. If it is missing, add it using this
+ command, replacing the path with the path of the
+ shell:</para>
+
+ <screen>&prompt.root; <userinput>echo <replaceable>/usr/local/bin/bash</replaceable> &gt;&gt; /etc/shells</userinput></screen>
+
+ <para>Then rerun <command>chsh</command>.</para>
+ </note>
+ </sect2>
</sect1>
<sect1 id="editors">
<title>Text Editors</title>
+
<indexterm><primary>text editors</primary></indexterm>
<indexterm><primary>editors</primary></indexterm>
- <para>A lot of configuration in FreeBSD is done by editing text files.
- Because of this, it would be a good idea to become familiar
- with a text editor. FreeBSD comes with a few as part of the base
- system, and many more are available in the Ports Collection.</para>
+ <para>Most &os; configuration is done by editing text files.
+ Because of this, it is a good idea to become familiar with a
+ text editor. &os; comes with a few as part of the base system,
+ and many more are available in the Ports Collection.</para>
<indexterm>
<primary><command>ee</command></primary>
@@ -2362,21 +2322,22 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
<primary>editors</primary>
<secondary><command>ee</command></secondary>
</indexterm>
- <para>The easiest and simplest editor to learn is an editor called
- <application>ee</application>, which stands for easy editor. To
- start <application>ee</application>, one would type at the command
- line <command>ee <replaceable>filename</replaceable></command> where
- <replaceable>filename</replaceable> is the name of the file to be edited.
- For example, to edit <filename>/etc/rc.conf</filename>, type in
- <command>ee /etc/rc.conf</command>. Once inside of
- <command>ee</command>, all of the
- commands for manipulating the editor's functions are listed at the
- top of the display. The caret <literal>^</literal> character represents
- the <keycap>Ctrl</keycap> key on the keyboard, so <literal>^e</literal> expands to the key combination
- <keycombo action="simul"><keycap>Ctrl</keycap><keycap>e</keycap></keycombo>. To leave
- <application>ee</application>, hit the <keycap>Esc</keycap> key, then choose leave
- editor. The editor will prompt you to save any changes if the file
- has been modified.</para>
+
+ <para>A simple editor to learn is <application>ee</application>,
+ which stands for easy editor. To start this editor, type
+ <command>ee <replaceable>filename</replaceable></command> where
+ <replaceable>filename</replaceable> is the name of the file to
+ be edited. Once inside the editor, all of the commands for
+ manipulating the editor's functions are listed at the top of the
+ display. The caret <literal>^</literal> represents
+ <keycap>Ctrl</keycap>, so <literal>^e</literal> expands to
+ <keycombo
+ action="simul"><keycap>Ctrl</keycap><keycap>e</keycap></keycombo>.
+ To leave <application>ee</application>, press
+ <keycap>Esc</keycap>, then choose the <quote>leave
+ editor</quote> option from the main menu. The editor will
+ prompt you to save any changes if the file has been
+ modified.</para>
<indexterm>
<primary><command>vi</command></primary>
@@ -2392,21 +2353,23 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
<primary>editors</primary>
<secondary><command>emacs</command></secondary>
</indexterm>
- <para>FreeBSD also comes with more powerful text editors such as
- <application>vi</application> as part of the base system, while other editors, like
- <application>Emacs</application> and <application>vim</application>,
- are part of the FreeBSD Ports Collection (<filename role="package">editors/emacs</filename> and <filename role="package">editors/vim</filename>). These editors offer much
- more functionality and power at the expense of being a little more
- complicated to learn. However if you plan on doing a lot of text
- editing, learning a more powerful editor such as
- <application>vim</application> or <application>Emacs</application>
- will save you much more time in the long run.</para>
+
+ <para>&os; also comes with more powerful text editors such as
+ <application>vi</application> as part of the base system.
+ Other editors, like <filename
+ role="package">editors/emacs</filename> and
+ <filename role="package">editors/vim</filename>, are part of the
+ &os; Ports Collection. These editors offer more functionality
+ at the expense of being a more complicated to learn. Learning a
+ more powerful editor such as <application>vim</application> or
+ <application>Emacs</application> can save more time in the long
+ run.</para>
<para>Many applications which modify files or require typed input
will automatically open a text editor. To alter the default
editor used, set the <envar>EDITOR</envar> environment
- variable. See <link linkend="shells">shells</link>
- section for more details.</para>
+ variable as described in the <link
+ linkend="shells">shells</link> section.</para>
</sect1>
<sect1 id="basics-devices">
@@ -2414,21 +2377,23 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
<para>A device is a term used mostly for hardware-related
activities in a system, including disks, printers, graphics
- cards, and keyboards. When FreeBSD boots, the majority
- of what FreeBSD displays are devices being detected.
- You can look through the boot messages again by viewing
+ cards, and keyboards. When &os; boots, the majority of the boot
+ messages refer to devices being detected. A copy of the boot
+ messages are saved to
<filename>/var/run/dmesg.boot</filename>.</para>
- <para>For example, <devicename>acd0</devicename> is the
- first IDE CDROM drive, while <devicename>kbd0</devicename>
- represents the keyboard.</para>
+ <para>Each device has a device name and number. For example,
+ <devicename>acd0</devicename> is the first IDE CD-ROM drive,
+ while <devicename>kbd0</devicename> represents the
+ keyboard.</para>
- <para>Most of these devices in a &unix; operating system must be
- accessed through special files called device nodes, which are
- located in the <filename>/dev</filename> directory.</para>
+ <para>Most devices in a &os; must be accessed through special
+ files called device nodes, which are located in
+ <filename>/dev</filename>.</para>
<sect2>
<title>Creating Device Nodes</title>
+
<para>When adding a new device to your system, or compiling
in support for additional devices, new device nodes must
be created.</para>
@@ -2436,13 +2401,13 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
<sect3>
<title><literal>DEVFS</literal> (DEVice File System)</title>
- <para> The device file system, or <literal>DEVFS</literal>, provides access to
- kernel's device namespace in the global file system namespace.
- Instead of having to create and modify device nodes,
- <literal>DEVFS</literal> maintains this particular file system for you.</para>
-
- <para>See the &man.devfs.5; manual page for more
- information.</para>
+ <para> The device file system, <literal>DEVFS</literal>,
+ provides access to the kernel's device namespace in the
+ global file system namespace. Instead of having to
+ manually create and modify device nodes,
+ <literal>DEVFS</literal> automatically maintains this
+ particular file system. Refer to &man.devfs.5; for
+ more information.</para>
</sect3>
</sect2>
</sect1>
@@ -2450,142 +2415,136 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
<sect1 id="binary-formats">
<title>Binary Formats</title>
- <para>To understand why &os; uses the &man.elf.5;
- format, you must first know a little about the three currently
- <quote>dominant</quote> executable formats for &unix;:</para>
+ <para>To understand why &os; uses the &man.elf.5; format,the three
+ currently <quote>dominant</quote> executable formats for &unix;
+ must be described:</para>
<itemizedlist>
<listitem>
- <para>&man.a.out.5;</para>
-
- <para>The oldest and <quote>classic</quote> &unix; object
- format. It uses a short and compact header with a magic
- number at the beginning that is often used to characterize
- the format (see &man.a.out.5; for more details). It
- contains three loaded segments: .text, .data, and .bss plus
- a symbol table and a string table.</para>
+ <para>&man.a.out.5;</para>
+
+ <para>The oldest and <quote>classic</quote> &unix; object
+ format. It uses a short and compact header with a
+ &man.magic.5; number at the beginning that is often used to
+ characterize the format. It contains three loaded segments:
+ .text, .data, and .bss, plus a symbol table and a string
+ table.</para>
</listitem>
<listitem>
- <para><acronym>COFF</acronym></para>
+ <para><acronym>COFF</acronym></para>
- <para>The SVR3 object format. The header now comprises a
- section table, so you can have more than just .text, .data,
- and .bss sections.</para>
+ <para>The SVR3 object format. The header comprises a section
+ table which can contain more than just .text, .data, and
+ .bss sections.</para>
</listitem>
<listitem>
- <para>&man.elf.5;</para>
-
- <para>The successor to <acronym>COFF</acronym>, featuring
- multiple sections and 32-bit or 64-bit possible values. One
- major drawback: <acronym>ELF</acronym> was also designed
- with the assumption that there would be only one ABI per
- system architecture. That assumption is actually quite
- incorrect, and not even in the commercial SYSV world (which
- has at least three ABIs: SVR4, Solaris, SCO) does it hold
- true.</para>
-
- <para>FreeBSD tries to work around this problem somewhat by
- providing a utility for <emphasis>branding</emphasis> a
- known <acronym>ELF</acronym> executable with information
- about the ABI it is compliant with. See the manual page for
- &man.brandelf.1; for more information.</para>
+ <para>&man.elf.5;</para>
+
+ <para>The successor to <acronym>COFF</acronym>, featuring
+ multiple sections and 32-bit or 64-bit possible values. One
+ major drawback is that <acronym>ELF</acronym> was designed
+ with the assumption that there would be only one ABI per
+ system architecture. That assumption is actually incorrect,
+ and not even in the commercial SYSV world (which has at
+ least three ABIs: SVR4, Solaris, SCO) does it hold
+ true.</para>
+
+ <para>&os; tries to work around this problem somewhat by
+ providing a utility for <emphasis>branding</emphasis> a
+ known <acronym>ELF</acronym> executable with information
+ about its compliant ABI. Refer to &man.brandelf.1; for more
+ information.</para>
</listitem>
</itemizedlist>
- <para>FreeBSD comes from the <quote>classic</quote> camp and used
+ <para>&os; comes from the <quote>classic</quote> camp and used
the &man.a.out.5; format, a technology tried and proven through
many generations of BSD releases, until the beginning of the 3.X
- branch. Though it was possible to build and run native
- <acronym>ELF</acronym> binaries (and kernels) on a FreeBSD
- system for some time before that, FreeBSD initially resisted the
+ branch. Though it was possible to build and run native
+ <acronym>ELF</acronym> binaries and kernels on a &os;
+ system for some time before that, &os; initially resisted the
<quote>push</quote> to switch to <acronym>ELF</acronym> as the
- default format. Why? Well, when the Linux camp made their
- painful transition to <acronym>ELF</acronym>, it was not so much
- to flee the <filename>a.out</filename> executable format as it
- was their inflexible jump-table based shared library mechanism,
- which made the construction of shared libraries very difficult
- for vendors and developers alike. Since the
- <acronym>ELF</acronym> tools available offered a solution to the
- shared library problem and were generally seen as <quote>the way
- forward</quote> anyway, the migration cost was accepted as
- necessary and the transition made. FreeBSD's shared library
- mechanism is based more closely on Sun's
- &sunos; style shared library mechanism
- and, as such, is very easy to use.</para>
-
- <para>So, why are there so many different formats?</para>
-
- <para>Back in the dim, dark past, there was simple hardware. This
- simple hardware supported a simple, small system. <filename>a.out</filename> was
- completely adequate for the job of representing binaries on this
- simple system (a PDP-11). As people ported &unix; from this simple
- system, they retained the <filename>a.out</filename> format because it was sufficient
- for the early ports of &unix; to architectures like the Motorola
- 68k, VAXen, etc.</para>
-
- <para>Then some bright hardware engineer decided that if he could
- force software to do some sleazy tricks, then he would be able
- to shave a few gates off the design and allow his CPU core to
- run faster. While it was made to work with this new kind of
- hardware (known these days as <acronym>RISC</acronym>), <filename>a.out</filename>
- was ill-suited for this hardware, so many formats were developed
- to get to a better performance from this hardware than the
- limited, simple <filename>a.out</filename> format could
- offer. Things like <acronym>COFF</acronym>,
- <acronym>ECOFF</acronym>, and a few obscure others were invented
- and their limitations explored before things seemed to settle on
- <acronym>ELF</acronym>.</para>
-
- <para>In addition, program sizes were getting huge and disks (and
- physical memory) were still relatively small so the concept of a
- shared library was born. The VM system also became more
- sophisticated. While each one of these advancements was done
- using the <filename>a.out</filename> format, its usefulness was
- stretched more and more with each new feature. In addition,
- people wanted to dynamically load things at run time, or to junk
- parts of their program after the init code had run to save in
- core memory and swap space. Languages became more sophisticated
- and people wanted code called before main automatically. Lots of
- hacks were done to the <filename>a.out</filename> format to
- allow all of these things to happen, and they basically worked
- for a time. In time, <filename>a.out</filename> was not up to
- handling all these problems without an ever increasing overhead
- in code and complexity. While <acronym>ELF</acronym> solved many
- of these problems, it would be painful to switch from the system
- that basically worked. So <acronym>ELF</acronym> had to wait
- until it was more painful to remain with
- <filename>a.out</filename> than it was to migrate to
+ default format. Why? When Linux made its painful transition to
+ <acronym>ELF</acronym>, it was due to their inflexible
+ jump-table based shared library mechanism, which made the
+ construction of shared libraries difficult for vendors and
+ developers. Since <acronym>ELF</acronym> tools offered a
+ solution to the shared library problem and were generally seen
+ as <quote>the way forward</quote>, the migration cost was
+ accepted as necessary and the transition made. &os;'s shared
+ library mechanism is based more closely on the &sunos; style
+ shared library mechanism and is easy to use.</para>
+
+ <para>So, why are there so many different formats? Back in the
+ PDP-11 days when simple hardware supported a simple, small
+ system, <filename>a.out</filename> was adequate for the job of
+ representing binaries. As &unix; was ported, the
+ <filename>a.out</filename> format was retained because it was
+ sufficient for the early ports of &unix; to architectures like
+ the Motorola 68k or VAXen.</para>
+
+ <para>Then some hardware engineer decided that if he could force
+ software to do some sleazy tricks, a few gates could be shaved
+ off the design and the CPU core could run faster.
+ <filename>a.out</filename> was ill-suited for this new kind of
+ hardware, known as <acronym>RISC</acronym>. Many formats were
+ developed to get better performance from this hardware than the
+ limited, simple <filename>a.out</filename> format could offer.
+ <acronym>COFF</acronym>, <acronym>ECOFF</acronym>, and a few
+ others were invented and their limitations explored before
+ settling on <acronym>ELF</acronym>.</para>
+
+ <para>In addition, program sizes were getting huge while disks
+ and physical memory were still relatively small, so the concept
+ of a shared library was born. The virtual memory system became
+ more sophisticated. While each advancement was done using the
+ <filename>a.out</filename> format, its usefulness was stretched
+ with each new feature. In addition, people wanted to
+ dynamically load things at run time, or to junk parts of their
+ program after the init code had run to save in core memory and
+ swap space. Languages became more sophisticated and people
+ wanted code called before the main() function automatically.
+ Lots of hacks were done to the <filename>a.out</filename> format
+ to allow all of these things to happen, and they basically
+ worked for a time. In time, <filename>a.out</filename> was not
+ up to handling all these problems without an ever increasing
+ overhead in code and complexity. While <acronym>ELF</acronym>
+ solved many of these problems, it would be painful to switch
+ from the system that basically worked. So
+ <acronym>ELF</acronym> had to wait until it was more painful to
+ remain with <filename>a.out</filename> than it was to migrate to
<acronym>ELF</acronym>.</para>
- <para>However, as time passed, the build tools that FreeBSD
- derived their build tools from (the assembler and loader
- especially) evolved in two parallel trees. The FreeBSD tree
- added shared libraries and fixed some bugs. The GNU folks that
- originally wrote these programs rewrote them and added simpler
- support for building cross compilers, plugging in different
- formats at will, and so on. Since many people wanted to build cross
- compilers targeting FreeBSD, they were out of luck since the
- older sources that FreeBSD had for <application>as</application> and <application>ld</application> were not up to the
- task. The new GNU tools chain (<application>binutils</application>) does support cross
- compiling, <acronym>ELF</acronym>, shared libraries, C++
- extensions, etc. In addition, many vendors are releasing
- <acronym>ELF</acronym> binaries, and it is a good thing for
- FreeBSD to run them.</para>
-
- <para><acronym>ELF</acronym> is more expressive than <filename>a.out</filename> and
- allows more extensibility in the base system. The
- <acronym>ELF</acronym> tools are better maintained, and offer
- cross compilation support, which is important to many people.
- <acronym>ELF</acronym> may be a little slower than <filename>a.out</filename>, but
- trying to measure it can be difficult. There are also numerous
- details that are different between the two in how they map
- pages, handle init code, etc. None of these are very important,
- but they are differences. In time support for
- <filename>a.out</filename> will be moved out of the <filename>GENERIC</filename>
- kernel, and eventually removed from the kernel once the need to
- run legacy <filename>a.out</filename> programs is past.</para>
+ <para>As time passed, the build tools that &os; derived their
+ build tools from, especially the assembler and loader, evolved
+ in two parallel trees. The &os; tree added shared libraries and
+ fixed some bugs. The GNU folks that originally wrote these
+ programs rewrote them and added simpler support for building
+ cross compilers and plugging in different formats. Those who
+ wanted to build cross compilers targeting &os; were out of luck
+ since the older sources that &os; had for
+ <application>as</application> and <application>ld</application>
+ were not up to the task. The new GNU tools chain
+ (<application>binutils</application>) supports cross
+ compiling, <acronym>ELF</acronym>, shared libraries, and C++
+ extensions. In addition, many vendors release
+ <acronym>ELF</acronym> binaries, and &os; should be able to run
+ them.</para>
+
+ <para><acronym>ELF</acronym> is more expressive than
+ <filename>a.out</filename> and allows more extensibility in the
+ base system. The <acronym>ELF</acronym> tools are better
+ maintained and offer cross compilation support.
+ <acronym>ELF</acronym> may be a little slower than
+ <filename>a.out</filename>, but trying to measure it can be
+ difficult. There are also numerous details that are different
+ between the two such as how they map pages and handle init code.
+ In time, support for <filename>a.out</filename> will be moved
+ out of the <filename>GENERIC</filename> kernel, and eventually
+ removed from the kernel once the need to run legacy
+ <filename>a.out</filename> programs is past.</para>
</sect1>
<sect1 id="basics-more-information">
@@ -2593,23 +2552,25 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
<sect2 id="basics-man">
<title>Manual Pages</title>
+
<indexterm><primary>manual pages</primary></indexterm>
- <para>The most comprehensive documentation on FreeBSD is in the form
- of manual pages. Nearly every program on the system comes with a
- short reference manual explaining the basic operation and various
- arguments. These manuals can be viewed with the <command>man</command> command. Use
- of the <command>man</command> command is simple:</para>
+ <para>The most comprehensive documentation on &os; is in the
+ form of manual pages. Nearly every program on the system
+ comes with a short reference manual explaining the basic
+ operation and available arguments. These manuals can be
+ viewed using <command>man</command>:</para>
<screen>&prompt.user; <userinput>man <replaceable>command</replaceable></userinput></screen>
- <para><literal>command</literal> is the name of the command you
- wish to learn about. For example, to learn more about
- <command>ls</command> command type:</para>
+ <para>where <replaceable>command</replaceable> is the name of
+ the command you wish to learn about. For example, to learn
+ more about <command>ls</command>, type:</para>
<screen>&prompt.user; <userinput>man ls</userinput></screen>
- <para>The online manual is divided up into numbered sections:</para>
+ <para>The online manual is divided into numbered
+ sections:</para>
<orderedlist>
<listitem>
@@ -2652,65 +2613,63 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
<para>In some cases, the same topic may appear in more than one
section of the online manual. For example, there is a
<command>chmod</command> user command and a
- <function>chmod()</function> system call. In this case, you can
- tell the <command>man</command> command which one you want by specifying the
- section:</para>
+ <function>chmod()</function> system call. To tell
+ <command>man</command> which section to display, specify the
+ section number:</para>
<screen>&prompt.user; <userinput>man 1 chmod</userinput></screen>
<para>This will display the manual page for the user command
- <command>chmod</command>. References to a particular section of
- the online manual are traditionally placed in parenthesis in
- written documentation, so &man.chmod.1; refers to the
- <command>chmod</command> user command and &man.chmod.2; refers to
- the system call.</para>
-
- <para>This is fine if you know the name of the command and just
- wish to know how to use it, but what if you cannot recall the
- command name? You can use <command>man</command> to search for keywords in the
- command descriptions by using the <option>-k</option>
- switch:</para>
-
- <screen>&prompt.user; <userinput>man -k mail</userinput></screen>
-
- <para>With this command you will be presented with a list of
- commands that have the keyword <quote>mail</quote> in their
- descriptions. This is actually functionally equivalent to using
- the <command>apropos</command> command.</para>
-
- <para>So, you are looking at all those fancy commands in
- <filename>/usr/bin</filename> but do not have the faintest idea
- what most of them actually do? Type:</para>
-
- <screen>&prompt.user; <userinput>cd /usr/bin</userinput>
+ <command>chmod</command>. References to a particular section
+ of the online manual are traditionally placed in parenthesis
+ in written documentation, so &man.chmod.1; refers to the
+ <command>chmod</command> user command and &man.chmod.2; refers
+ to the system call.</para>
+
+ <para>If you do not know the command name, use <command>man
+ -k</command> to search for keywords in the command
+ descriptions:</para>
+
+ <screen>&prompt.user; <userinput>man -k <replaceable>mail</replaceable></userinput></screen>
+
+ <para>This command displays a list of commands that have the
+ keyword <quote>mail</quote> in their descriptions. This is
+ equivalent to using &man.apropos.1;.</para>
+
+ <para>To determine what the commands in
+ <filename>/usr/bin</filename> do, type:</para>
+
+ <screen>&prompt.user; <userinput>cd /usr/bin</userinput>
&prompt.user; <userinput>man -f *</userinput></screen>
- <para>or</para>
+ <para>or</para>
- <screen>&prompt.user; <userinput>cd /usr/bin</userinput>
+ <screen>&prompt.user; <userinput>cd /usr/bin</userinput>
&prompt.user; <userinput>whatis *</userinput></screen>
- <para>which does the same thing.</para>
</sect2>
<sect2 id="basics-info">
<title>GNU Info Files</title>
- <indexterm><primary>Free Software Foundation</primary></indexterm>
- <para>FreeBSD includes many applications and utilities produced by
- the Free Software Foundation (FSF). In addition to manual pages,
- these programs come with more extensive hypertext documents called
- <literal>info</literal> files which can be viewed with the
- <command>info</command> command or, if you installed
- <application>emacs</application>, the info mode of
- <application>emacs</application>.</para>
+ <indexterm>
+ <primary>Free Software Foundation</primary>
+ </indexterm>
+
+ <para>&os; includes many applications and utilities produced
+ by the Free Software Foundation (FSF). In addition to manual
+ pages, these programs may include hypertext documents called
+ <literal>info</literal> files. These can be viewed using
+ <command>info</command> or, if <filename
+ role="package">editors/emacs</filename> is installed, the
+ info mode of <application>emacs</application>.</para>
- <para>To use the &man.info.1; command, type:</para>
+ <para>To use &man.info.1;, type:</para>
<screen>&prompt.user; <userinput>info</userinput></screen>
- <para>For a brief introduction, type <literal>h</literal>. For a
- quick command reference, type <literal>?</literal>.</para>
+ <para>For a brief introduction, type <literal>h</literal>. For
+ a quick command reference, type <literal>?</literal>.</para>
</sect2>
</sect1>
</chapter>
diff --git a/en_US.ISO8859-1/books/handbook/book.xml b/en_US.ISO8859-1/books/handbook/book.xml
index 7cd70bd50a..e6de16b776 100644
--- a/en_US.ISO8859-1/books/handbook/book.xml
+++ b/en_US.ISO8859-1/books/handbook/book.xml
@@ -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;
diff --git a/en_US.ISO8859-1/books/handbook/boot/chapter.xml b/en_US.ISO8859-1/books/handbook/boot/chapter.xml
index 2e865047b1..aec95d1a8b 100644
--- a/en_US.ISO8859-1/books/handbook/boot/chapter.xml
+++ b/en_US.ISO8859-1/books/handbook/boot/chapter.xml
@@ -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
diff --git a/en_US.ISO8859-1/books/handbook/bsdinstall/chapter.xml b/en_US.ISO8859-1/books/handbook/bsdinstall/chapter.xml
index 0be0d592eb..125358081a 100644
--- a/en_US.ISO8859-1/books/handbook/bsdinstall/chapter.xml
+++ b/en_US.ISO8859-1/books/handbook/bsdinstall/chapter.xml
@@ -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&nbsp;GB partition, and have another 20&nbsp;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;&nbsp;8.<replaceable>X</replaceable> and earlier versions. Details of
- download and installation of &os;&nbsp;8.<replaceable>X</replaceable> and
- earlier is covered in <xref linkend="install"/>.</para>
+ &os;&nbsp;8.<replaceable>X</replaceable> and earlier
+ versions. Details of download and installation of
+ &os;&nbsp;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"
@@ -1401,27 +1410,26 @@ Trying to mount root from cd9660:/dev/iso9660/FREEBSD_INSTALL [ro]...</screen>
</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>[&nbsp;Rescan&nbsp;]</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>[&nbsp;Yes&nbsp;]</guibutton>
or <guibutton>[&nbsp;No&nbsp;]</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>[&nbsp;No&nbsp;]</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>[&nbsp;Reboot&nbsp;]</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>
diff --git a/en_US.ISO8859-1/books/handbook/colophon.xml b/en_US.ISO8859-1/books/handbook/colophon.xml
index b639a4f7dc..bf5aae5e6f 100644
--- a/en_US.ISO8859-1/books/handbook/colophon.xml
+++ b/en_US.ISO8859-1/books/handbook/colophon.xml
@@ -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>
diff --git a/en_US.ISO8859-1/books/handbook/config/chapter.xml b/en_US.ISO8859-1/books/handbook/config/chapter.xml
index ff90d311f0..452fbc3c80 100644
--- a/en_US.ISO8859-1/books/handbook/config/chapter.xml
+++ b/en_US.ISO8859-1/books/handbook/config/chapter.xml
@@ -191,7 +191,7 @@
should be 256&nbsp;megabytes. Systems with less memory may
perform better with more swap. Less than 256&nbsp;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&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; 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&lt;POINTOPOINT,SIMPLEX,MULTICAST&gt; metric 0 mtu 1500
lo0: flags=8049&lt;UP,LOOPBACK,RUNNING,MULTICAST&gt; metric 0 mtu 16384
options=3&lt;RXCSUM,TXCSUM&gt;
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
@@ -1085,12 +1082,6 @@ lo0: flags=8049&lt;UP,LOOPBACK,RUNNING,MULTICAST&gt; metric 0 mtu 16384
</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>
</listitem>
@@ -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
# &dollar;&os;&dollar;
#
# Entries which do not specify the '/pid_file' field will cause the
@@ -1983,10 +1974,10 @@ kern.maxfiles: 2088 -&gt; 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>
diff --git a/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.xml b/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.xml
index f1c6f3a5c9..3a3a73e97a 100644
--- a/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.xml
+++ b/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.xml
@@ -11,7 +11,8 @@
<author>
<firstname>Jim</firstname>
<surname>Mock</surname>
- <contrib>Restructured, reorganized, and parts updated by </contrib>
+ <contrib>Restructured, reorganized, and parts updated
+ by </contrib>
</author>
<!-- Mar 2000 -->
</authorgroup>
@@ -46,17 +47,17 @@
<sect1 id="updating-upgrading-synopsis">
<title>Synopsis</title>
- <para>&os; is under constant development between releases. Some people
- prefer to use the officially released versions, while others prefer
- to keep in sync with the latest developments. However, even official
- releases are often updated with security and other critical fixes.
- Regardless of the version used, &os; provides all necessary tools
- to keep your system updated, and also allows for easy upgrades between
- versions.
- This chapter will help you decide if you want to track the
- development system, or stick with one of the released
- versions. The basic tools for keeping your system up to date are
- also presented.</para>
+ <para>&os; is under constant development between releases. Some
+ people prefer to use the officially released versions, while
+ others prefer to keep in sync with the latest developments.
+ However, even official releases are often updated with security
+ and other critical fixes. Regardless of the version used, &os;
+ provides all necessary tools to keep your system updated, and
+ also allows for easy upgrades between versions. This chapter
+ will help you decide if you want to track the development
+ system, or stick with one of the released versions. The basic
+ tools for keeping your system up to date are also
+ presented.</para>
<para>After reading this chapter, you will know:</para>
@@ -69,8 +70,7 @@
<listitem>
<para>How to keep your system up to date with
<application>freebsd-update</application>,
- <application>CVSup</application>,
- <application>CVS</application>, or
+ <application>Subversion</application>, or
<application>CTM</application>.</para>
</listitem>
@@ -81,8 +81,8 @@
<listitem>
<para>How to keep your documentation up to date with
- <application>CVSup</application> or documentation ports<!--, and
- <application>Docsnap</application>-->.</para>
+ <application>Subversion</application> or documentation
+ ports<!--, and <application>Docsnap</application>-->.</para>
</listitem>
<listitem>
@@ -111,14 +111,10 @@
</itemizedlist>
<note>
- <para>Throughout this chapter, the <command>cvsup</command> command is
- used to obtain and update &os; sources. To use it, you will need to
- install the port or the package for <filename
- role="package">net/cvsup</filename> (if you do not want to install
- the graphical <command>cvsup</command> client, you can just install
- the port <filename>net/cvsup-without-gui</filename>).
- You may wish to substitute this
- with &man.csup.1;, which is part of the base system.</para>
+ <para>Throughout this chapter, the <command>svn</command>
+ command is used to obtain and update &os; sources. To use it,
+ you will need to install the port or the package for <filename
+ role="package">devel/subversion</filename>.</para>
</note>
</sect1>
@@ -147,18 +143,19 @@
<see>updating-upgrading</see>
</indexterm>
- <para>Applying security patches is an important part of maintaining
- computer software, especially the operating system. For the
- longest time on &os; this process was not an easy one. Patches
- had to be applied to the source code, the code rebuilt into
- binaries, and then the binaries had to be re-installed.</para>
+ <para>Applying security patches is an important part of
+ maintaining computer software, especially the operating system.
+ For the longest time on &os; this process was not an easy one.
+ Patches had to be applied to the source code, the code rebuilt
+ into binaries, and then the binaries had to be
+ re-installed.</para>
<para>This is no longer the case as &os; now includes a utility
simply called <command>freebsd-update</command>. This utility
provides two separate functions. First, it allows for binary
- security and errata updates to be applied to the &os; base system
- without the build and install requirements. Second, the utility
- supports minor and major release upgrades.</para>
+ security and errata updates to be applied to the &os; base
+ system without the build and install requirements. Second, the
+ utility supports minor and major release upgrades.</para>
<note>
<para>Binary updates are available for all architectures and
@@ -171,27 +168,28 @@
</note>
<para>If a <command>crontab</command> utilizing the features
- of <command>freebsd-update</command> exists, it must be
+ of &man.freebsd-update.8; exists, it must be
disabled before the following operation is started.</para>
<sect2 id="freebsdupdate-config-file">
<title>The Configuration File</title>
- <para>Some users may wish to tweak the default configuration file
- in <filename>/etc/freebsd-update.conf</filename>,
- allowing better control of the process. The options are
- very well documented, but the following few may require a
- bit more explanation:</para>
+ <para>Some users may wish to tweak the default configuration
+ file in <filename>/etc/freebsd-update.conf</filename>,
+ allowing better control of the process. The options are very
+ well documented, but the following few may require a bit more
+ explanation:</para>
<programlisting># Components of the base system which should be kept updated.
Components src world kernel</programlisting>
- <para>This parameter controls what parts of &os; will be kept
- up to date. The default is to update the source code, the
- entire base system, and the kernel. Components are the
- same as those available during the install, for instance,
- adding <literal>world/games</literal> here would allow game patches to be
- applied. Using <literal>src/bin</literal> would allow the source code in
+ <para>This parameter controls what parts of &os; will be kept up
+ to date. The default is to update the source code, the entire
+ base system, and the kernel. Components are the same as those
+ available during the install, for instance, adding
+ <literal>world/games</literal> here would allow game patches
+ to be applied. Using <literal>src/bin</literal> would allow
+ the source code in
<filename class="directory">src/bin</filename> to be
updated.</para>
@@ -237,7 +235,7 @@ MergeChanges /etc/ /var/named/etc/</programlisting>
are either accepted, open an editor, or
<command>freebsd-update</command> will abort. When in doubt,
backup <filename class="directory">/etc</filename> and just
- accept the merges. See <xref linkend="mergemaster"/> for more
+ accept the merges. See <xref linkend="mergemaster"/> for more
information about the <command>mergemaster</command>
command.</para>
@@ -278,17 +276,18 @@ MergeChanges /etc/ /var/named/etc/</programlisting>
<para>If any kernel patches have been applied the system will
need a reboot. If all went well the system should be patched
and <command>freebsd-update</command> may be run as a nightly
- &man.cron.8; job. An entry in <filename>/etc/crontab</filename>
- would be sufficient to accomplish this task:</para>
+ &man.cron.8; job. An entry in
+ <filename>/etc/crontab</filename> would be sufficient to
+ accomplish this task:</para>
<programlisting>@daily root freebsd-update cron</programlisting>
<para>This entry states that once every day, the
- <command>freebsd-update</command> utility will be run. In this way,
- using the <option>cron</option> argument,
+ <command>freebsd-update</command> utility will be run. In
+ this way, using the <option>cron</option> argument,
<command>freebsd-update</command> will only check if updates
- exist. If patches exist, they will automatically be downloaded
- to the local disk but not applied. The
+ exist. If patches exist, they will automatically be
+ downloaded to the local disk but not applied. The
<username>root</username> user will be sent an email so they
may install them manually.</para>
@@ -298,64 +297,77 @@ MergeChanges /etc/ /var/named/etc/</programlisting>
<screen>&prompt.root; <userinput>freebsd-update rollback</userinput></screen>
- <para>Once complete, the system should be restarted if the kernel
- or any kernel modules were modified. This will allow &os; to
- load the new binaries into memory.</para>
+ <para>Once complete, the system should be restarted if the
+ kernel or any kernel modules were modified. This will allow
+ &os; to load the new binaries into memory.</para>
<para>The <command>freebsd-update</command> utility can
- automatically update the <filename>GENERIC</filename> kernel only.
- If a custom kernel is in use, it will have to be rebuilt and
- reinstalled after <command>freebsd-update</command> finishes
- installing the rest of the updates. However,
- <command>freebsd-update</command> will detect and update the
- <filename>GENERIC</filename> kernel in <filename
- class="directory">/boot/GENERIC</filename> (if it exists), even if
- it is not the current (running) kernel of the system.</para>
+ automatically update the <filename>GENERIC</filename> kernel
+ only. If a custom kernel is in use, it will have to be
+ rebuilt and reinstalled after
+ <command>freebsd-update</command> finishes installing the rest
+ of the updates. However, <command>freebsd-update</command>
+ will detect and update the <filename>GENERIC</filename> kernel
+ in
+ <filename class="directory">/boot/GENERIC</filename> (if it
+ exists), even if it is not the current (running) kernel of the
+ system.</para>
<note>
<para>It is a good idea to always keep a copy of the
- <filename>GENERIC</filename> kernel in <filename
- class="directory">/boot/GENERIC</filename>. It will be helpful
- in diagnosing a variety of problems, and in performing version
- upgrades using <command>freebsd-update</command> as described in
+ <filename>GENERIC</filename> kernel in
+ <filename class="directory">/boot/GENERIC</filename>. It
+ will be helpful in diagnosing a variety of problems, and in
+ performing version upgrades using
+ <command>freebsd-update</command> as described in
<xref linkend="freebsdupdate-upgrade"/>.</para>
</note>
<para>Unless the default configuration in
- <filename>/etc/freebsd-update.conf</filename> has been changed,
- <command>freebsd-update</command> will install the updated kernel
- sources along with the rest of the updates. Rebuilding and
- reinstalling your new custom kernel can then be performed in the usual
- way.</para>
+ <filename>/etc/freebsd-update.conf</filename> has been
+ changed, <command>freebsd-update</command> will install the
+ updated kernel sources along with the rest of the updates.
+ Rebuilding and reinstalling your new custom kernel can then be
+ performed in the usual way.</para>
<note>
- <para>The updates distributed via <command>freebsd-update</command>,
- do not always involve the kernel. It will not be necessary to
- rebuild your custom kernel if the kernel sources have not been
- modified by the execution of
- <command>freebsd-update install</command>. However,
- <command>freebsd-update</command> will always update the
- <filename>/usr/src/sys/conf/newvers.sh</filename> file. The current
- patch level (as indicated by the <literal>-p</literal> number
- reported by <command>uname -r</command>) is
- obtained from this file. Rebuilding your custom kernel, even if
- nothing else changed, will allow &man.uname.1; to accurately report
- the current patch level of the system. This is particularly
- helpful when maintaining multiple systems, as it allows for a quick
+ <para>The updates distributed via
+ <command>freebsd-update</command>, do not always involve the
+ kernel. It will not be necessary to rebuild your custom
+ kernel if the kernel sources have not been modified by the
+ execution of <command>freebsd-update install</command>.
+ However, <command>freebsd-update</command> will always
+ update the <filename>/usr/src/sys/conf/newvers.sh</filename>
+ file. The current patch level (as indicated by the
+ <literal>-p</literal> number reported by
+ <command>uname -r</command>) is obtained from this file.
+ Rebuilding your custom kernel, even if nothing else changed,
+ will allow &man.uname.1; to accurately report the current
+ patch level of the system. This is particularly helpful
+ when maintaining multiple systems, as it allows for a quick
assessment of the updates installed in each one.</para>
</note>
</sect2>
<sect2 id="freebsdupdate-upgrade">
- <title>Major and Minor Upgrades</title>
-
- <para>This process will remove old object files and
- libraries which will break most third party applications.
- It is recommended that all installed ports either be removed
- and re-installed or upgraded later using the
+ <title>Major and Minor Version Upgrades</title>
+
+ <para>Upgrades from one minor version of &os; to another, like
+ from &os;&nbsp;9.0 to &os;&nbsp;9.1, are called
+ <emphasis>minor version</emphasis> upgrades. Generally,
+ installed applications will continue to work without problems
+ after minor version upgrades.</para>
+
+ <para><emphasis>Major version</emphasis> upgrades are when &os;
+ is upgraded from one major version to another, like from
+ &os;&nbsp;8.X to &os;&nbsp;9.X. Major version upgrades will
+ remove old object files and libraries which will break most
+ third party applications. It is recommended that all
+ installed ports either be removed and re-installed or upgraded
+ after a major version upgrade by using the
<filename role="package">ports-mgmt/portupgrade</filename>
- utility. Most users will want to run a test build using
- the following command:</para>
+ utility. A brute-force rebuild of all installed
+ applications can be accomplished with this command:</para>
<screen>&prompt.root; <userinput>portupgrade -af</userinput></screen>
@@ -366,75 +378,145 @@ MergeChanges /etc/ /var/named/etc/</programlisting>
any prompts during this process, removing the need for
manual intervention during the build process.</para>
- <para>If a custom kernel is in use, the upgrade process is slightly
- more involved. A copy of the <filename>GENERIC</filename> kernel is
- needed, and it should be placed in <filename
- class="directory">/boot/GENERIC</filename>. If the
- <filename>GENERIC</filename> kernel is not already present in the
- system, it may be obtained using one of the following methods:</para>
-
- <itemizedlist>
- <listitem>
- <para>If a custom kernel has only been built once, the kernel in
- <filename class="directory">/boot/kernel.old</filename> is
- actually the <filename>GENERIC</filename> one. Simply rename this
- directory to
- <filename class="directory">/boot/GENERIC</filename>.</para>
- </listitem>
-
- <listitem>
- <para>Assuming physical access to the machine is possible, a copy
- of the <filename>GENERIC</filename> kernel can be installed from
- the CD-ROM media. Insert your installation disc and use the
- following commands:</para>
-
- <screen>&prompt.root; <userinput>mount /cdrom</userinput>
+ <sect3 id="freebsd-update-custom-kernel">
+ <title>Dealing with Custom Kernels</title>
+
+ <para>If a custom kernel is in use, the upgrade process is
+ slightly more involved, and the procedure varies depending
+ on the version of &os;.</para>
+
+ <sect4 id="freebsd-update-custom-kernel-8x">
+ <title>Custom Kernels with &os;&nbsp;8.X and Earlier</title>
+
+ <para>A copy of the
+ <filename>GENERIC</filename> kernel is needed, and it
+ should be placed in <filename
+ class="directory">/boot/GENERIC</filename>. If the
+ <filename>GENERIC</filename> kernel is not already present
+ in the system, it may be obtained using one of the
+ following methods:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>If a custom kernel has only been built once, the
+ kernel in <filename
+ class="directory">/boot/kernel.old</filename> is
+ actually the <filename>GENERIC</filename> one. Simply
+ rename this directory to <filename
+ class="directory">/boot/GENERIC</filename>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Assuming physical access to the machine is
+ possible, a copy of the <filename>GENERIC</filename>
+ kernel can be installed from the CD-ROM media. Insert
+ your installation disc and use the following
+ commands:</para>
+
+ <screen>&prompt.root; <userinput>mount /cdrom</userinput>
&prompt.root; <userinput>cd /cdrom/<replaceable>X.Y-RELEASE</replaceable>/kernels</userinput>
&prompt.root; <userinput>./install.sh GENERIC</userinput></screen>
- <para>Replace <filename
- class="directory"><replaceable>X.Y-RELEASE</replaceable></filename>
- with the actual version of the release you are using. The
- <filename>GENERIC</filename> kernel will be installed in <filename
- class="directory">/boot/GENERIC</filename> by default.</para>
- </listitem>
-
- <listitem>
- <para>Failing all the above, the <filename>GENERIC</filename> kernel
- may be rebuilt and installed from the sources:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/src</userinput>
-&prompt.root; <userinput>env DESTDIR=/boot/GENERIC make kernel</userinput>
+ <para>Replace <filename
+ class="directory"><replaceable>X.Y-RELEASE</replaceable></filename>
+ with the actual version of the release you are using.
+ The <filename>GENERIC</filename> kernel will be
+ installed in <filename
+ class="directory">/boot/GENERIC</filename> by
+ default.</para>
+ </listitem>
+
+ <listitem>
+ <para>Failing all the above, the
+ <filename>GENERIC</filename> kernel may be rebuilt and
+ installed from the sources:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/src</userinput>
+&prompt.root; <userinput>env DESTDIR=/boot/GENERIC make kernel __MAKE_CONF=/dev/null SRCCONF=/dev/null</userinput>
&prompt.root; <userinput>mv /boot/GENERIC/boot/kernel/* /boot/GENERIC</userinput>
&prompt.root; <userinput>rm -rf /boot/GENERIC/boot</userinput></screen>
- <para>For this kernel to be picked up as <filename>GENERIC</filename>
- by <command>freebsd-update</command>, the
- <filename>GENERIC</filename> configuration file must not have been
- modified in any way. It is also suggested that it is built
- without any other special options (preferably with an empty
- <filename>/etc/make.conf</filename>).</para>
- </listitem>
- </itemizedlist>
+ <para>For this kernel to be picked up as
+ <filename>GENERIC</filename>
+ by <command>freebsd-update</command>, the
+ <filename>GENERIC</filename> configuration file must
+ not have been modified in any way. It is also
+ suggested that it is built without any other special
+ options.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Rebooting to the <filename>GENERIC</filename> kernel
+ is not required at this stage.</para>
+ </sect4>
- <para>Rebooting to the <filename>GENERIC</filename> kernel is not
- required at this stage.</para>
+ <sect4 id="freebsd-update-custom-kernel-9x">
+ <title>Custom Kernels with &os;&nbsp;9.X and Later</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>If a custom kernel has only been built once, the
+ kernel in
+ <filename
+ class="directory">/boot/kernel.old</filename>
+ is actually the <literal>GENERIC</literal> kernel.
+ Rename this directory to <filename
+ class="directory">/boot/kernel</filename>.</para>
+ </listitem>
+
+ <listitem>
+ <para>If physical access to the machine is available, a
+ copy of the <literal>GENERIC</literal> kernel can be
+ installed from the CD-ROM media. Load the
+ installation disc and use these commands:</para>
+
+ <screen>&prompt.root; <userinput>mount /cdrom</userinput>
+&prompt.root; <userinput>cd /cdrom/usr/freebsd-dist</userinput>
+&prompt.root; <userinput>tar -C/ -xvf kernel.txz boot/kernel/kernel</userinput></screen>
+ </listitem>
+
+ <listitem>
+ <para>If the options above cannot be used, the
+ <literal>GENERIC</literal> kernel may be rebuilt and
+ installed from the sources:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/src</userinput>
+&prompt.root; <userinput>make kernel __MAKE_CONF=/dev/null SRCCONF=/dev/null</userinput></screen>
+
+ <para>For this kernel to be identified as the
+ <literal>GENERIC</literal> kernel by
+ <command>freebsd-update</command>, the
+ <filename>GENERIC</filename> configuration file must
+ not have been modified in any way. It is also
+ suggested that the kernel is built without any other
+ special options.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Rebooting to the <filename>GENERIC</filename> kernel
+ is not required at this stage.</para>
+ </sect4>
+ </sect3>
- <para>Major and minor version updates may be performed by
- providing <command>freebsd-update</command> with a release
- version target, for example, the following command will
- update to &os;&nbsp;8.1:</para>
+ <sect3 id="freebsdupdate-using">
+ <title>Performing the Upgrade</title>
- <screen>&prompt.root; <userinput>freebsd-update -r 8.1-RELEASE upgrade</userinput></screen>
+ <para>Major and minor version upgrades may be performed by
+ providing <command>freebsd-update</command> with a release
+ version target, for example, the following command will
+ update to &os;&nbsp;8.1:</para>
- <para>After the command has been received,
- <command>freebsd-update</command> will evaluate the
- configuration file and current system in an attempt to gather
- the information necessary to update the system. A screen
- listing will display what components have been detected and
- what components have not been detected. For example:</para>
+ <screen>&prompt.root; <userinput>freebsd-update -r 8.1-RELEASE upgrade</userinput></screen>
- <screen>Looking up update.FreeBSD.org mirrors... 1 mirrors found.
+ <para>After the command has been received,
+ <command>freebsd-update</command> will evaluate the
+ configuration file and current system in an attempt to
+ gather the information necessary to update the system. A
+ screen listing will display what components have been
+ detected and what components have not been detected. For
+ example:</para>
+
+ <screen>Looking up update.FreeBSD.org mirrors... 1 mirrors found.
Fetching metadata signature for 8.0-RELEASE from update1.FreeBSD.org... done.
Fetching metadata index... done.
Inspecting system... done.
@@ -451,119 +533,129 @@ world/proflibs
Does this look reasonable (y/n)? y</screen>
- <para>At this point, <command>freebsd-update</command> will
- attempt to download all files required for the upgrade. In
- some cases, the user may be prompted with questions regarding
- what to install or how to proceed.</para>
+ <para>At this point, <command>freebsd-update</command> will
+ attempt to download all files required for the upgrade. In
+ some cases, the user may be prompted with questions
+ regarding what to install or how to proceed.</para>
- <para>When using a custom kernel, the above step will produce a warning
- similar to the following:</para>
+ <para>When using a custom kernel, the above step will produce
+ a warning similar to the following:</para>
- <screen>WARNING: This system is running a "<replaceable>MYKERNEL</replaceable>" kernel, which is not a
+ <screen>WARNING: This system is running a "<replaceable>MYKERNEL</replaceable>" kernel, which is not a
kernel configuration distributed as part of FreeBSD 8.0-RELEASE.
This kernel will not be updated: you MUST update the kernel manually
before running "/usr/sbin/freebsd-update install"</screen>
- <para>This warning may be safely ignored at this point. The updated
- <filename>GENERIC</filename> kernel will be used as an intermediate
- step in the upgrade process.</para>
-
- <para>After all patches have been downloaded to the local
- system, they will then be applied. This process may take
- a while depending on the speed and workload of the machine.
- Configuration files will then be merged&nbsp;&mdash; this part
- of the process requires some user intervention as a file may be
- merged or an editor may appear on screen for a manual merge.
- The results of every successful merge will be shown to the user
- as the process continues. A failed or ignored merge will cause
- the process to abort. Users may wish to make a backup of
- <filename class="directory">/etc</filename> and manually merge
- important files, such as <filename>master.passwd</filename>
- or <filename>group</filename> at a later time.</para>
+ <para>This warning may be safely ignored at this point. The
+ updated <filename>GENERIC</filename> kernel will be used as
+ an intermediate step in the upgrade process.</para>
+
+ <para>After all patches have been downloaded to the local
+ system, they will then be applied. This process may take a
+ while depending on the speed and workload of the machine.
+ Configuration files will then be merged&nbsp;&mdash; this
+ part of the process requires some user intervention as a
+ file may be merged or an editor may appear on screen for a
+ manual merge. The results of every successful merge will be
+ shown to the user as the process continues. A failed or
+ ignored merge will cause the process to abort. Users may
+ wish to make a backup of <filename
+ class="directory">/etc</filename> and manually merge
+ important files, such as
+ <filename>master.passwd</filename> or
+ <filename>group</filename> at a later time.</para>
- <note>
- <para>The system is not being altered yet, all patching and
- merging is happening in another directory. When all
- patches have been applied successfully, all configuration
- files have been merged and it seems the process will go
- smoothly, the changes will need to be committed by the
- user.</para>
- </note>
+ <note>
+ <para>The system is not being altered yet, all patching and
+ merging is happening in another directory. When all
+ patches have been applied successfully, all configuration
+ files have been merged and it seems the process will go
+ smoothly, the changes will need to be committed by the
+ user.</para>
+ </note>
- <para>Once this process is complete, the upgrade may be committed
- to disk using the following command.</para>
+ <para>Once this process is complete, the upgrade may be
+ committed to disk using the following command.</para>
- <screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>
+ <screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>
- <para>The kernel and kernel modules will be patched first. At
- this point the machine must be rebooted. If the system was running
- with a custom kernel, use the &man.nextboot.8; command to set the
- kernel for the next boot to <filename
- class="directory">/boot/GENERIC</filename> (which was
- updated):</para>
+ <para>The kernel and kernel modules will be patched first. At
+ this point the machine must be rebooted. If the system was
+ running with a custom kernel, use the &man.nextboot.8;
+ command to set the kernel for the next boot to
+ <filename class="directory">/boot/GENERIC</filename> (which
+ was updated):</para>
- <screen>&prompt.root; <userinput>nextboot -k GENERIC</userinput></screen>
+ <screen>&prompt.root; <userinput>nextboot -k GENERIC</userinput></screen>
- <warning>
- <para>Before rebooting with the <filename>GENERIC</filename> kernel,
- make sure it contains all drivers required for your system to boot
- properly (and connect to the network, if the machine that is being
- updated is accessed remotely). In particular, if the previously
- running custom kernel contained built-in functionality usually
- provided by kernel modules, make sure to temporarily load these
- modules into the <filename>GENERIC</filename> kernel using the
- <filename>/boot/loader.conf</filename> facility. You may also wish
- to disable non-essential services, disk and network mounts, etc.
- until the upgrade process is complete.</para>
- </warning>
+ <warning>
+ <para>Before rebooting with the <filename>GENERIC</filename>
+ kernel, make sure it contains all drivers required for
+ your system to boot properly (and connect to the network,
+ if the machine that is being updated is accessed
+ remotely). In particular, if the previously running
+ custom kernel contained built-in functionality usually
+ provided by kernel modules, make sure to temporarily load
+ these modules into the <filename>GENERIC</filename> kernel
+ using the <filename>/boot/loader.conf</filename> facility.
+ You may also wish to disable non-essential services, disk
+ and network mounts, etc. until the upgrade process is
+ complete.</para>
+ </warning>
- <para>The machine should now be restarted with the updated kernel:</para>
+ <para>The machine should now be restarted with the updated
+ kernel:</para>
- <screen>&prompt.root; <userinput>shutdown -r now</userinput></screen>
+ <screen>&prompt.root; <userinput>shutdown -r now</userinput></screen>
- <para>Once the system has come back online,
- <command>freebsd-update</command> will need to be started
- again. The state of the process has been saved and thus,
- <command>freebsd-update</command> will not start from the
- beginning, but will remove all old shared libraries and object
- files. To continue to this stage, issue the following
- command:</para>
+ <para>Once the system has come back online,
+ <command>freebsd-update</command> will need to be started
+ again. The state of the process has been saved and thus,
+ <command>freebsd-update</command> will not start from the
+ beginning, but will remove all old shared libraries and
+ object files. To continue to this stage, issue the
+ following command:</para>
- <screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>
+ <screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>
- <note>
- <para>Depending on whether any libraries version numbers got
- bumped, there may only be two install phases instead of
- three.</para>
- </note>
+ <note>
+ <para>Depending on whether any libraries version numbers got
+ bumped, there may only be two install phases instead of
+ three.</para>
+ </note>
+ </sect3>
- <para>All third party software will now need to be rebuilt and
- re-installed. This is required as installed software may
- depend on libraries which have been removed during the upgrade
- process. The
- <filename role="package">ports-mgmt/portupgrade</filename>
- command may be used to automate this process. The following
- commands may be used to begin this process:</para>
+ <sect3 id="freebsdupdate-portsrebuild">
+ <title>Rebuilding Ports After a Major Version Upgrade</title>
+
+ <para>After a major version upgrade, all third party software
+ will now need to be rebuilt and re-installed. This is
+ required as installed software may depend on libraries which
+ have been removed during the upgrade process. The
+ <filename role="package">ports-mgmt/portupgrade</filename>
+ command may be used to automate this process. The following
+ commands may be used to begin this process:</para>
- <screen>&prompt.root; <userinput>portupgrade -f ruby</userinput>
+ <screen>&prompt.root; <userinput>portupgrade -f ruby</userinput>
&prompt.root; <userinput>rm /var/db/pkg/pkgdb.db</userinput>
&prompt.root; <userinput>portupgrade -f ruby18-bdb</userinput>
&prompt.root; <userinput>rm /var/db/pkg/pkgdb.db /usr/ports/INDEX-*.db</userinput>
&prompt.root; <userinput>portupgrade -af</userinput></screen>
- <para>Once this has completed, finish the upgrade process with a
- final call to <command>freebsd-update</command>. Issue the
- following command to tie up all loose ends in the upgrade
- process:</para>
+ <para>Once this has completed, finish the upgrade process with
+ a final call to <command>freebsd-update</command>. Issue
+ the following command to tie up all loose ends in the
+ upgrade process:</para>
- <screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>
+ <screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>
- <para>If the <filename>GENERIC</filename> kernel was temporarily used,
- this is the time to build and install a new custom kernel in the
- usual way.</para>
+ <para>If the <filename>GENERIC</filename> kernel was
+ temporarily used, this is the time to build and install a
+ new custom kernel in the usual way.</para>
- <para>Reboot the machine into the new &os; version. The process
- is complete.</para>
+ <para>Reboot the machine into the new &os; version. The
+ process is complete.</para>
+ </sect3>
</sect2>
<sect2 id="freebsdupdate-system-comparison">
@@ -578,10 +670,11 @@ before running "/usr/sbin/freebsd-update install"</screen>
<screen>&prompt.root; <userinput>freebsd-update IDS &gt;&gt; outfile.ids</userinput></screen>
<warning>
- <para>While the command name is <acronym>IDS</acronym> it should
- in no way be a replacement for an intrusion detection system
- such as <filename role="package">security/snort</filename>.
- As <command>freebsd-update</command> stores data on disk, the
+ <para>While the command name is <acronym>IDS</acronym> it
+ should in no way be a replacement for an intrusion detection
+ system such as
+ <filename role="package">security/snort</filename>. As
+ <command>freebsd-update</command> stores data on disk, the
possibility of tampering is evident. While this possibility
may be reduced by using the
<varname>kern.securelevel</varname> setting and storing the
@@ -593,9 +686,9 @@ before running "/usr/sbin/freebsd-update install"</screen>
</warning>
<para>The system will now be inspected, and a list of files
- along with their &man.sha256.1; hash values, both the known value
- in the release and the current installed value, will be printed. This is why
- the output has been sent to the
+ along with their &man.sha256.1; hash values, both the known
+ value in the release and the current installed value, will be
+ printed. This is why the output has been sent to the
<filename>outfile.ids</filename> file. It scrolls by too
quickly for eye comparisons, and soon it fills up the console
buffer.</para>
@@ -643,7 +736,7 @@ before running "/usr/sbin/freebsd-update install"</screen>
</author>
</authorgroup>
</sect1info>
- <title>Portsnap: A Ports Collection Update Tool</title>
+ <title>Portsnap: a Ports Collection Update Tool</title>
<indexterm><primary>Updating and Upgrading</primary></indexterm>
<indexterm>
@@ -655,9 +748,10 @@ before running "/usr/sbin/freebsd-update install"</screen>
the Ports Collection too: the &man.portsnap.8; utility. Upon
execution, it will connect to a remote site, verify the secure
key, and download a new copy of the Ports Collection. The key
- is used to verify the integrity of all downloaded files, ensuring
- they have not been modified in-flight. To download the latest
- Ports Collection files, issue the following command:</para>
+ is used to verify the integrity of all downloaded files,
+ ensuring they have not been modified in-flight. To download the
+ latest Ports Collection files, issue the following
+ command:</para>
<screen>&prompt.root; <userinput>portsnap fetch</userinput>
Looking up portsnap.FreeBSD.org mirrors... 9 mirrors found.
@@ -671,18 +765,18 @@ Fetching 90 patches.....10....20....30....40....50....60....70....80....90. done
Applying patches... done.
Fetching 133 new ports or files... done.</screen>
- <para>What this example shows is that &man.portsnap.8;
- has found and verified
- several patches to the current ports data. This also indicates
- that the utility was run previously, if it was a first time
- run, the collection would have simply been downloaded.</para>
+ <para>What this example shows is that &man.portsnap.8; has found
+ and verified several patches to the current ports data. This
+ also indicates that the utility was run previously, if it was a
+ first time run, the collection would have simply been
+ downloaded.</para>
- <para>When &man.portsnap.8; successfully completes
- a <command>fetch</command> operation, the Ports Collection and
+ <para>When &man.portsnap.8; successfully completes a
+ <command>fetch</command> operation, the Ports Collection and
subsequent patches exist on the local system that have passed
- verification. The first time <command>portsnap</command> is executed,
- you have to use <literal>extract</literal> to install the
- downloaded files:</para>
+ verification. The first time <command>portsnap</command> is
+ executed, you have to use <literal>extract</literal> to install
+ the downloaded files:</para>
<screen>&prompt.root; <userinput>portsnap extract</userinput>
/usr/ports/.cvsignore
@@ -698,17 +792,17 @@ Fetching 133 new ports or files... done.</screen>
/usr/ports/Mk/bsd.cmake.mk
<replaceable>...</replaceable></screen>
- <para>To update an already installed Ports Collection use the command
- <command>portsnap update</command>:</para>
+ <para>To update an already installed Ports Collection use the
+ command <command>portsnap update</command>:</para>
<screen>&prompt.root; <userinput>portsnap update</userinput></screen>
<para>The process is now complete, and applications may be
installed or upgraded using the updated Ports Collection.</para>
- <para>The <literal>fetch</literal> and <literal>extract</literal> or
- <literal>update</literal> operations may be run consecutively, as
- shown in the following example:</para>
+ <para>The <literal>fetch</literal> and <literal>extract</literal>
+ or <literal>update</literal> operations may be run
+ consecutively, as shown in the following example:</para>
<screen>&prompt.root; <userinput>portsnap fetch update</userinput></screen>
@@ -730,15 +824,16 @@ Fetching 133 new ports or files... done.</screen>
<para>Besides the base system and the Ports Collection,
documentation is an integral part of the &os; operating system.
While an up-to-date version of the &os; Documentation Set is
- always available on the <ulink
- url="http://www.freebsd.org/doc/">&os; web site</ulink>, some
- users might have slow or no permanent network connectivity at all.
- Fortunately, there are several ways to update the documentation
- shipped with each release by maintaining a local copy of the
- latest &os; Documentation Set.</para>
+ always available on the
+ <ulink url="http://www.freebsd.org/doc/">&os; web site</ulink>,
+ some users might have slow or no permanent network connectivity
+ at all. Fortunately, there are several ways to update the
+ documentation shipped with each release by maintaining a local
+ copy of the latest &os; Documentation Set.</para>
<sect2 id="dsvn-doc">
- <title>Using <application>Subversion</application> to Update the Documentation</title>
+ <title>Using <application>Subversion</application> to Update the
+ Documentation</title>
<para>The &os; documentation sources can be obtained with
<application>Subversion</application>. This section
@@ -747,8 +842,8 @@ Fetching 133 new ports or files... done.</screen>
<itemizedlist>
<listitem>
<para>How to install the documentation toolchain, the tools
- that are required to rebuild the &os; documentation from its
- source.</para>
+ that are required to rebuild the &os; documentation from
+ its source.</para>
</listitem>
<listitem>
@@ -759,8 +854,8 @@ Fetching 133 new ports or files... done.</screen>
<listitem>
<para>How to rebuild the &os; documentation from its source,
- and install it
- under <filename class="directory">/usr/share/doc</filename>.</para>
+ and install it under <filename
+ class="directory">/usr/share/doc</filename>.</para>
</listitem>
<listitem>
@@ -774,7 +869,8 @@ Fetching 133 new ports or files... done.</screen>
</sect2>
<sect2 id="installing-documentation-toolchain">
- <title>Installing <application>Subversion</application> and the Documentation Toolchain</title>
+ <title>Installing <application>Subversion</application> and the
+ Documentation Toolchain</title>
<para>Rebuilding the &os; documentation from source requires a
fairly large collection of tools. These tools are not part of
@@ -785,22 +881,22 @@ Fetching 133 new ports or files... done.</screen>
documentation from source.</para>
<para>All the required tools are available as part of the Ports
- Collection. The <filename
- role="package">textproc/docproj</filename> port is a master
- port that has been developed by the &os; Documentation Project,
- to ease the initial installation and future updates of these
- tools.</para>
+ Collection. The
+ <filename role="package">textproc/docproj</filename> port is a
+ master port that has been developed by the &os; Documentation
+ Project, to ease the initial installation and future updates
+ of these tools.</para>
<note>
<para>When no &postscript; or PDF documentation required, one
might consider installing the <filename
role="package">textproc/docproj-nojadetex</filename> port
- instead. This version of the documentation toolchain includes
- everything except the <application>teTeX</application>
- typesetting engine. <application>teTeX</application> is a
- very large collection of tools, so it may be quite sensible to
- omit its installation if PDF output is not really
- necessary.</para>
+ instead. This version of the documentation toolchain
+ includes everything except the
+ <application>teTeX</application> typesetting engine.
+ <application>teTeX</application> is a very large collection
+ of tools, so it may be quite sensible to omit its
+ installation if PDF output is not really necessary.</para>
</note>
<para><application>Subversion</application> is installed with
@@ -811,13 +907,18 @@ Fetching 133 new ports or files... done.</screen>
<sect2 id="updating-documentation-sources">
<title>Updating the Documentation Sources</title>
- <para>The <application>Subversion</application> program can fetch a
- clean copy of the documentation sources by typing:</para>
+ <para>The <application>Subversion</application> program can
+ fetch a clean copy of the documentation sources from the
+ western US mirror using the HTTPS protocol with this
+ command:</para>
+
+ <screen>&prompt.root; <userinput>svn checkout <replaceable>https://svn0.us-west.FreeBSD.org</replaceable>/doc/head /usr/doc</userinput></screen>
- <screen>&prompt.root; <userinput>svn checkout <literal>svn://svn.FreeBSD.org/doc/head</literal> <filename class="directory">/usr/doc</filename></userinput></screen>
+ <para>Please use the closest mirror from the available <link
+ linkend="svn-mirrors">Subversion mirror sites</link>.</para>
- <para>The initial download of the documentation sources may take a
- while. Let it run until it completes.</para>
+ <para>The initial download of the documentation sources may take
+ a while. Let it run until it completes.</para>
<para>Future updates of the documentation sources may be fetched
by running:</para>
@@ -826,8 +927,9 @@ Fetching 133 new ports or files... done.</screen>
<para>After checking out the sources, an alternative way of
updating the documentation is supported by the
- <filename>Makefile</filename> of the <filename
- class="directory">/usr/doc</filename> directory by running:</para>
+ <filename>Makefile</filename> of the
+ <filename class="directory">/usr/doc</filename> directory by
+ running:</para>
<screen>&prompt.root; <userinput>cd /usr/doc</userinput>
&prompt.root; <userinput>make update</userinput></screen>
@@ -841,7 +943,8 @@ Fetching 133 new ports or files... done.</screen>
parts of the documentation, or the build of specific
translations. These options can be set either as system-wide
options in the <filename>/etc/make.conf</filename> file, or as
- command-line options passed to the &man.make.1; utility.</para>
+ command-line options passed to the &man.make.1;
+ utility.</para>
<para>The following options are some of these:</para>
@@ -851,8 +954,8 @@ Fetching 133 new ports or files... done.</screen>
<listitem>
<para>The list of languages and encodings to build and
- install, e.g., <literal>en_US.ISO8859-1</literal> for the
- English documentation only.</para>
+ install, e.g., <literal>en_US.ISO8859-1</literal> for
+ the English documentation only.</para>
</listitem>
</varlistentry>
@@ -879,22 +982,23 @@ Fetching 133 new ports or files... done.</screen>
</varlistentry>
</variablelist>
- <para>For more make variables supported as system-wide options in
- &os;, see &man.make.conf.5;.</para>
+ <para>For more make variables supported as system-wide options
+ in &os;, see &man.make.conf.5;.</para>
- <para>For more make variables supported by the build system of the
- &os; documentation, please refer to
- the <ulink url="&url.doc.langbase;/books/fdp-primer">&os;
- Documentation Project Primer for New Contributors</ulink>.</para>
+ <para>For more make variables supported by the build system of
+ the &os; documentation, please refer to the
+ <ulink url="&url.doc.langbase;/books/fdp-primer">&os;
+ Documentation Project Primer for New
+ Contributors</ulink>.</para>
</sect2>
<sect2 id="updating-installed-documentation">
<title>Installing the &os; Documentation from Source</title>
- <para>When an up-to-date snapshot of the documentation sources has
- been fetched in <filename class="directory">/usr/doc</filename>,
- everything is ready for an update of the installed
- documentation.</para>
+ <para>When an up-to-date snapshot of the documentation sources
+ has been fetched in
+ <filename class="directory">/usr/doc</filename>, everything is
+ ready for an update of the installed documentation.</para>
<para>A full update of all the languages defined in
the <makevar>DOC_LANG</makevar> makefile option may be done by
@@ -904,8 +1008,9 @@ Fetching 133 new ports or files... done.</screen>
&prompt.root; <userinput>make install clean</userinput></screen>
<para>If an update of only a specific language is desired,
- &man.make.1; can be invoked in a language specific subdirectory
- of <filename class="directory">/usr/doc</filename>, i.e.:</para>
+ &man.make.1; can be invoked in a language specific
+ subdirectory of
+ <filename class="directory">/usr/doc</filename>, i.e.:</para>
<screen>&prompt.root; <userinput>cd /usr/doc/en_US.ISO8859-1</userinput>
&prompt.root; <userinput>make update install clean</userinput></screen>
@@ -916,6 +1021,11 @@ Fetching 133 new ports or files... done.</screen>
<screen>&prompt.root; <userinput>cd /usr/doc</userinput>
&prompt.root; <userinput>make FORMATS='html html-split' install clean</userinput></screen>
+
+ <para>For information on editing and submitting corrections to
+ the documentation, please see the <ulink
+ url="&url.books.fdp-primer;">FreeBSD Documentation
+ Project Primer for New Contributors</ulink>.</para>
</sect2>
<sect2 id="doc-ports">
@@ -943,13 +1053,13 @@ Fetching 133 new ports or files... done.</screen>
updates may not be feasible or practical for all &os; systems
though. Building the documentation sources requires a fairly
large collection of tools and utilities, the
- <emphasis>documentation toolchain</emphasis>, a certain level of
- familiarity with <application>Subversion</application> and source
- checkouts from a repository, and a few manual steps to build the
- checked out sources. In this section, we describe an
- alternative way of updating the installed copies of the &os;
- documentation; one that uses the Ports&nbsp;Collection and makes
- it possible to:</para>
+ <emphasis>documentation toolchain</emphasis>, a certain level
+ of familiarity with <application>Subversion</application> and
+ source checkouts from a repository, and a few manual steps to
+ build the checked out sources. In this section, we describe
+ an alternative way of updating the installed copies of the
+ &os; documentation; one that uses the Ports&nbsp;Collection
+ and makes it possible to:</para>
<itemizedlist>
<listitem>
@@ -967,10 +1077,10 @@ Fetching 133 new ports or files... done.</screen>
</itemizedlist>
<para>These two methods of updating the &os; documentation are
- supported by a set of <emphasis>documentation ports</emphasis>,
- updated by the &a.doceng; on a monthly basis. These are listed
- in the &os; Ports&nbsp;Collection, under the virtual category
- named <ulink
+ supported by a set of
+ <emphasis>documentation ports</emphasis>, updated by the
+ &a.doceng; on a monthly basis. These are listed in the &os;
+ Ports&nbsp;Collection, under the virtual category named <ulink
url="http://www.freshports.org/docs/">docs</ulink>.</para>
<sect3 id="doc-ports-install-make">
@@ -981,8 +1091,8 @@ Fetching 133 new ports or files... done.</screen>
process of checking out the documentation source, running
&man.make.1; with the appropriate environment settings and
command-line options, and they make the installation or
- deinstallation of documentation as easy as the installation of
- any other &os; port or package.</para>
+ deinstallation of documentation as easy as the installation
+ of any other &os; port or package.</para>
<note>
<para>As an extra feature, when the documentation ports are
@@ -991,19 +1101,21 @@ Fetching 133 new ports or files... done.</screen>
latter is automatically installed too.</para>
</note>
- <para>Organization of the documentation ports is as follows:</para>
+ <para>Organization of the documentation ports is as
+ follows:</para>
<itemizedlist>
<listitem>
- <para>There is a <quote>master port</quote>, <filename
- role="package">misc/freebsd-doc-en</filename>, where the
- documentation port files can be found. It is the base of
- all documentation ports. By default, it builds the
- English documentation only.</para>
+ <para>There is a <quote>master port</quote>,
+ <filename role="package">misc/freebsd-doc-en</filename>,
+ where the documentation port files can be found. It is
+ the base of all documentation ports. By default, it
+ builds the English documentation only.</para>
</listitem>
<listitem>
- <para>There is an <quote>all in one port</quote>, <filename
+ <para>There is an <quote>all in one port</quote>,
+ <filename
role="package">misc/freebsd-doc-all</filename>, and it
builds and installs all documentation in all available
languages.</para>
@@ -1026,8 +1138,9 @@ Fetching 133 new ports or files... done.</screen>
&prompt.root; <userinput>make install clean</userinput></screen>
<para>This will build and install the English documentation in
- split <acronym>HTML</acronym> format (the same as used on <ulink
- url="http://www.FreeBSD.org"></ulink>) in the <filename
+ split <acronym>HTML</acronym> format (the same as used on
+ <ulink url="http://www.FreeBSD.org"></ulink>) in the
+ <filename
class="directory">/usr/local/share/doc/freebsd</filename>
directory.</para>
@@ -1035,17 +1148,17 @@ Fetching 133 new ports or files... done.</screen>
<title>Common Knobs and Options</title>
<para>There are many options for modifying the default
- behavior of the documentation ports. The following is just
- a short list:</para>
+ behavior of the documentation ports. The following is
+ just a short list:</para>
<variablelist>
<varlistentry>
<term><makevar>WITH_HTML</makevar></term>
<listitem>
- <para>Allows the build of the HTML format: a single HTML
- file per document. The formatted documentation is
- saved to a file called
+ <para>Allows the build of the HTML format: a single
+ HTML file per document. The formatted documentation
+ is saved to a file called
<filename>article.html</filename>, or
<filename>book.html</filename>, as appropriate, plus
images.</para>
@@ -1056,12 +1169,14 @@ Fetching 133 new ports or files... done.</screen>
<term><makevar>WITH_PDF</makevar></term>
<listitem>
- <para>Allows the build of the &adobe; Portable Document
- Format, for use with &adobe; &acrobat.reader;,
+ <para>Allows the build of the &adobe; Portable
+ Document Format, for use with &adobe;
+ &acrobat.reader;,
<application>Ghostscript</application> or other PDF
readers. The formatted documentation is saved to a
file called <filename>article.pdf</filename> or
- <filename>book.pdf</filename>, as appropriate.</para>
+ <filename>book.pdf</filename>, as
+ appropriate.</para>
</listitem>
</varlistentry>
@@ -1076,11 +1191,11 @@ Fetching 133 new ports or files... done.</screen>
<note>
<para>Notice that the default target directory
differs from the directory used by the
- <application>Subversion</application> method. This is
- because we are installing a port, and ports are
- usually installed under the <filename
- class="directory">/usr/local</filename> directory.
- This can be overridden by adding the
+ <application>Subversion</application> method.
+ This is because we are installing a port, and
+ ports are usually installed under the <filename
+ class="directory">/usr/local</filename>
+ directory. This can be overridden by adding the
<makevar>PREFIX</makevar> variable.</para>
</note>
</listitem>
@@ -1099,13 +1214,14 @@ Fetching 133 new ports or files... done.</screen>
<sect3 id="doc-ports-install-package">
<title>Using Documentation Packages</title>
- <para>Building the documentation ports from source, as described
- in the previous section, requires a local installation of the
- documentation toolchain and a bit of disk space for the build
- of the ports. When resources are not available to install the
- documentation toolchain, or because the build from sources
- would take too much disk space, it is still possible to
- install pre-built snapshots of the documentation ports.</para>
+ <para>Building the documentation ports from source, as
+ described in the previous section, requires a local
+ installation of the documentation toolchain and a bit of
+ disk space for the build of the ports. When resources are
+ not available to install the documentation toolchain, or
+ because the build from sources would take too much disk
+ space, it is still possible to install pre-built snapshots
+ of the documentation ports.</para>
<para>The &a.doceng; prepares monthly snapshots of the &os;
documentation packages. These binary packages can be used
@@ -1118,8 +1234,9 @@ Fetching 133 new ports or files... done.</screen>
formats for the given language.</para>
</note>
- <para>For example, the following command will install the latest
- pre-built package of the Hungarian documentation:</para>
+ <para>For example, the following command will install the
+ latest pre-built package of the Hungarian
+ documentation:</para>
<screen>&prompt.root; <userinput>pkg_add -r hu-freebsd-doc</userinput></screen>
@@ -1127,8 +1244,8 @@ Fetching 133 new ports or files... done.</screen>
<para>Packages have the following name format that differs
from the corresponding port's name:
<literal><replaceable>lang</replaceable>-freebsd-doc</literal>.
- Here <replaceable>lang</replaceable> is the short format of
- the language code, i.e., <literal>hu</literal> for
+ Here <replaceable>lang</replaceable> is the short format
+ of the language code, i.e., <literal>hu</literal> for
Hungarian, or <literal>zh_cn</literal> for Simplified
Chinese.</para>
</note>
@@ -1138,101 +1255,28 @@ Fetching 133 new ports or files... done.</screen>
<title>Updating Documentation Ports</title>
<para>To update a previously installed documentation port, any
- tool suitable for updating ports is sufficient. For example,
- the following command updates the installed Hungarian
- documentation via the <filename
- role="package">ports-mgmt/portupgrade</filename> tool by
- using packages only:</para>
+ tool suitable for updating ports is sufficient. For
+ example, the following command updates the installed
+ Hungarian documentation via the
+ <filename role="package">ports-mgmt/portupgrade</filename>
+ tool by using packages only:</para>
<screen>&prompt.root; <userinput>portupgrade -PP hu-freebsd-doc</userinput></screen>
</sect3>
</sect2>
-
-<!-- FIXME: Waiting for a working docsnap server... -->
-<!--
- <sect2 id="docsnap">
- <sect2info>
- <authorgroup>
- <author>
- <firstname>Pav</firstname>
- <surname>Lucistnik</surname>
- <contrib>Based on information provided by </contrib>
- </author>
- </authorgroup>
- </sect2info>
-
- <title>Using Docsnap</title>
-
- <indexterm><primary>Updating and Upgrading</primary></indexterm>
-
- <indexterm>
- <primary>Docsnap</primary>
- <see>Updating and Upgrading</see>
- </indexterm>
-
- <para><application>Docsnap</application> is an &man.rsync.1;
- repository for updating installed &os; Documentation in a
- relatively easy and fast way. A
- <quote><application>Docsnap</application> server</quote> tracks
- the documentation sources, and builds them in HTML format every
- hour. The <filename role="package">textproc/docproj</filename>
- is unneeded with <application>Docsnap</application> as only
- patches to the built documentation exist.</para>
-
- <para>The only requirement for using this technique is
- the <filename role="package">net/rsync</filename> port or
- package. To add it, use the following command:</para>
-
- <screen>&prompt.root; <userinput>pkg_add -r rsync</userinput></screen>
-
- <note>
- <para><application>Docsnap</application> has been originally
- developed for updating documentation installed
- to <filename class="directory">/usr/share/doc</filename>, but
- the following examples could be adapted for other directories
- as well. For user directories, it does not require
- <username>root</username> privileges.</para>
- </note>
-
- <para>To update the documentation set, issue the following
- command:</para>
-
- <screen>&prompt.root; <userinput>rsync -rltvz <replaceable>docsnap.sk.FreeBSD.org</replaceable>::docsnap <replaceable>/usr/share/doc</replaceable></userinput></screen>
-
- <note>
- <para>There is only one <application>Docsnap</application>
- server at the moment;
- the <hostid>docsnap.sk.FreeBSD.org</hostid> shown
- above.</para>
- </note>
-
- <para>Do not use the <option>&dash;&dash;delete</option> flag here as there
- are some items installed
- into <filename class="directory">/usr/share/doc</filename>
- during <command>make installworld</command>, which would
- accidentally be removed. To clean up, use this command
- instead:</para>
-
- <screen>&prompt.root; <userinput>rsync -rltvz &dash;&dash;delete <replaceable>docsnap.sk.FreeBSD.org</replaceable>::docsnap/??_??\.\* <replaceable>/usr/share/doc</replaceable></userinput></screen>
-
- <para>If a subset of documentation needs to be updated, for
- example, the English documentation only, the following command
- should be used:</para>
-
- <screen>&prompt.root; <userinput>rsync -rltvz <replaceable>docsnap.sk.FreeBSD.org</replaceable>::docsnap/en_US.ISO8859-1 <replaceable>/usr/share/doc</replaceable></userinput></screen>
- </sect2>
--->
</sect1>
<sect1 id="current-stable">
<title>Tracking a Development Branch</title>
+
<indexterm><primary>-CURRENT</primary></indexterm>
<indexterm><primary>-STABLE</primary></indexterm>
- <para>There are two development branches to FreeBSD: &os.current; and
- &os.stable;. This section will explain a bit about each and describe
- how to keep your system up-to-date with each respective tree.
- &os.current; will be discussed first, then &os.stable;.</para>
+ <para>There are two development branches to FreeBSD: &os.current;
+ and &os.stable;. This section will explain a bit about each and
+ describe how to keep your system up-to-date with each respective
+ tree. &os.current; will be discussed first, then
+ &os.stable;.</para>
<sect2 id="current">
<title>Staying Current with &os;</title>
@@ -1246,6 +1290,7 @@ Fetching 133 new ports or files... done.</screen>
<sect3>
<title>What Is &os.current;?</title>
+
<indexterm><primary>snapshot</primary></indexterm>
<para>&os.current; is the latest working sources for &os;.
@@ -1268,16 +1313,16 @@ Fetching 133 new ports or files... done.</screen>
<orderedlist>
<listitem>
- <para>Members of the &os; community who are actively working
- on some part of the source tree and for whom keeping
- <quote>current</quote> is an absolute
+ <para>Members of the &os; community who are actively
+ working on some part of the source tree and for whom
+ keeping <quote>current</quote> is an absolute
requirement.</para>
</listitem>
<listitem>
- <para>Members of the &os; community who are active testers,
- willing to spend time solving problems in order to
- ensure that &os.current; remains as sane as possible.
+ <para>Members of the &os; community who are active
+ testers, willing to spend time solving problems in order
+ to ensure that &os.current; remains as sane as possible.
These are also people who wish to make topical
suggestions on changes and the general direction of
&os;, and submit patches to implement them.</para>
@@ -1338,75 +1383,68 @@ Fetching 133 new ports or files... done.</screen>
</indexterm>
<orderedlist>
<listitem>
- <para>Join the &a.current.name; and the &a.svn-src-head.name;
- lists. This is not just a good idea, it is
- <emphasis>essential</emphasis>. If you are not on the
- <emphasis>&a.current.name;</emphasis> list, you will not see
- the comments that people are making about the current state of
- the system and thus will probably end up stumbling over a lot
- of problems that others have already found and solved. Even
- more importantly, you will miss out on important bulletins
- which may be critical to your system's continued health.</para>
-
- <para>The &a.svn-src-head.name; list will allow you to see the
- commit log entry for each change as it is made, along with
- any pertinent information on possible side-effects.</para>
+ <para>Join the &a.current.name; and the
+ &a.svn-src-head.name; lists. This is not just a good
+ idea, it is <emphasis>essential</emphasis>. If you are
+ not on the <emphasis>&a.current.name;</emphasis> list,
+ you will not see the comments that people are making
+ about the current state of the system and thus will
+ probably end up stumbling over a lot of problems that
+ others have already found and solved. Even more
+ importantly, you will miss out on important bulletins
+ which may be critical to your system's continued
+ health.</para>
+
+ <para>The &a.svn-src-head.name; list will allow you to see
+ the commit log entry for each change as it is made,
+ along with any pertinent information on possible
+ side-effects.</para>
<para>To join these lists, or one of the others available
go to &a.mailman.lists.link; and click on the list that
you wish to subscribe to. Instructions on the rest of
- the procedure are available there. If you are interested
- in tracking changes for the whole source tree, we would
- recommend subscribing to the &a.svn-src-all.name; list.</para>
+ the procedure are available there. If you are
+ interested in tracking changes for the whole source
+ tree, we would recommend subscribing to the
+ &a.svn-src-all.name; list.</para>
</listitem>
<listitem>
- <para>Grab the sources from a &os; <link linkend="mirrors">mirror
- site</link>. You can do this in one of two ways:</para>
+ <para>Grab the sources from a &os;
+ <link linkend="mirrors">mirror site</link>. You can do
+ this in one of several ways:</para>
<orderedlist>
<indexterm>
- <primary><command>cvsup</command></primary>
+ <primary>Subversion</primary>
</indexterm>
<indexterm>
<primary><command>cron</command></primary>
</indexterm>
<indexterm>
<primary>-CURRENT</primary>
- <secondary>Syncing with <application>CVSup</application></secondary>
+ <secondary>Syncing with
+ <application>Subversion</application>
+ </secondary>
+ </indexterm>
+ <indexterm>
+ <primary>-CURRENT</primary>
+ <secondary>Syncing with
+ <application>CTM</application>
+ </secondary>
</indexterm>
<listitem>
- <para>Use the <link linkend="cvsup">cvsup</link> program
- with the <filename>supfile</filename> named
- <filename>standard-supfile</filename>
- available from
- <filename>/usr/share/examples/cvsup</filename>.
- This is the most recommended method, since it allows you to
- grab the entire collection once and then only what has
- changed from then on. Many people run
- <command>cvsup</command> from <command>cron</command> and
- keep their sources up-to-date automatically. You have to
- customize the sample <filename>supfile</filename> above,
- and configure <link
- linkend="cvsup">cvsup</link> for your environment.</para>
-
- <note>
- <para>The sample <filename>standard-supfile</filename> is
- intended for tracking a specific security branch of
- &os;, and not &os.current;. You will need to edit this
- file and replace the following line:</para>
-
- <programlisting>*default release=cvs tag=RELENG_<replaceable>X</replaceable>_<replaceable>Y</replaceable></programlisting>
-
- <para>With this one:</para>
-
- <programlisting>*default release=cvs tag=.</programlisting>
-
- <para>For a detailed explanation of usable tags, please
- refer to the Handbook's <link
- linkend="cvs-tags">CVS Tags</link> section.</para>
- </note>
+ <para>Use the <link linkend="svn">svn</link> program
+ to check out the desired development or release
+ branch. This is the recommended method, providing
+ access to &os; development as it occurs. Checkout
+ the -CURRENT code from the <literal>head</literal>
+ branch of one of the
+ <link linkend="svn-mirrors">Subversion mirror
+ sites</link>. Because of the size of the
+ repository, it is recommended that only desired
+ subtrees be checked out.</para>
</listitem>
<listitem>
@@ -1416,48 +1454,50 @@ Fetching 133 new ports or files... done.</screen>
</indexterm>
<para>Use the <application><link
- linkend="ctm">CTM</link></application> facility. If you
- have very bad connectivity (high price connections or
- only email access) <application>CTM</application> is an
- option. However, it is a lot of hassle and can give you
- broken files. This leads to it being rarely used, which
- again increases the chance of it not working for fairly
- long periods of time. We recommend using
- <application><link linkend="cvsup">CVSup</link></application>
- for anybody with a 9600&nbsp;bps modem or faster
- connection.</para>
+ linkend="ctm">CTM</link></application> facility.
+ If you have very bad connectivity (high price
+ connections or only email access)
+ <application>CTM</application> is an option.
+ However, it is a lot of hassle and can give you
+ broken files. This leads to it being rarely used,
+ which again increases the chance of it not working
+ for fairly long periods of time. We recommend using
+ <application><link
+ linkend="svn">Subversion</link></application> for
+ any system with Internet connectivity.</para>
</listitem>
</orderedlist>
</listitem>
<listitem>
<para>If you are grabbing the sources to run, and not just
- look at, then grab <emphasis>all</emphasis> of &os.current;, not
- just selected portions. The reason for this is that various
- parts of the source depend on updates elsewhere, and trying
- to compile just a subset is almost guaranteed to get you
- into trouble.</para>
+ look at, then grab <emphasis>all</emphasis> of
+ &os.current;, not just selected portions. The reason
+ for this is that various parts of the source depend on
+ updates elsewhere, and trying to compile just a subset
+ is almost guaranteed to get you into trouble.</para>
<indexterm>
<primary>-CURRENT</primary>
<secondary>compiling</secondary>
</indexterm>
<para>Before compiling &os.current;, read the
- <filename>Makefile</filename> in <filename>/usr/src</filename>
- carefully. You should at least <link
- linkend="makeworld">install a new kernel and rebuild the
- world</link> the first time through
- as part of the upgrading process. Reading the &a.current;
- and <filename>/usr/src/UPDATING</filename> will keep you
- up-to-date on other bootstrapping procedures that sometimes
- become necessary as we move toward the next release.</para>
+ <filename>Makefile</filename> in
+ <filename>/usr/src</filename> carefully. You should at
+ least <link linkend="makeworld">install a new kernel and
+ rebuild the world</link> the first time through as part
+ of the upgrading process. Reading the &a.current; and
+ <filename>/usr/src/UPDATING</filename> will keep you
+ up-to-date on other bootstrapping procedures that
+ sometimes become necessary as we move toward the next
+ release.</para>
</listitem>
<listitem>
<para>Be active! If you are running &os.current;, we want
to know what you have to say about it, especially if you
- have suggestions for enhancements or bug fixes. Suggestions
- with accompanying code are received most
+ have suggestions for enhancements or bug fixes.
+ Suggestions with accompanying code are received most
enthusiastically!</para>
</listitem>
</orderedlist>
@@ -1469,15 +1509,17 @@ Fetching 133 new ports or files... done.</screen>
<sect3>
<title>What Is &os.stable;?</title>
+
<indexterm><primary>-STABLE</primary></indexterm>
- <para>&os.stable; is our development branch from which major releases
- are made. Changes go into this branch at a different pace, and
- with the general assumption that they have first gone into
- &os.current; for testing. This is <emphasis>still</emphasis>
- a development branch, however, and this means that at any given
- time, the sources for &os.stable; may or may not be suitable for any
- particular purpose. It is simply another engineering development
+ <para>&os.stable; is our development branch from which major
+ releases are made. Changes go into this branch at a
+ different pace, and with the general assumption that they
+ have first gone into &os.current; for testing. This is
+ <emphasis>still</emphasis> a development branch, however,
+ and this means that at any given time, the sources for
+ &os.stable; may or may not be suitable for any particular
+ purpose. It is simply another engineering development
track, not a resource for end-users.</para>
</sect3>
@@ -1486,41 +1528,44 @@ Fetching 133 new ports or files... done.</screen>
<para>If you are interested in tracking or contributing to the
FreeBSD development process, especially as it relates to the
- next <quote>point</quote> release of FreeBSD, then you should
- consider following &os.stable;.</para>
+ next <quote>point</quote> release of FreeBSD, then you
+ should consider following &os.stable;.</para>
<para>While it is true that security fixes also go into the
&os.stable; branch, you do not <emphasis>need</emphasis> to
track &os.stable; to do this. Every security advisory for
FreeBSD explains how to fix the problem for the releases it
affects
- <footnote><para>That is not quite true. We can not continue to
- support old releases of FreeBSD forever, although we do
- support them for many years. For a complete description
- of the current security policy for old releases of
- FreeBSD, please see <ulink
- url="&url.base;/security/">http://www.FreeBSD.org/security/</ulink>.</para>
- </footnote>,
+
+ <footnote>
+ <para>That is not quite true. We can not continue
+ to support old releases of FreeBSD forever, although we
+ do support them for many years. For a complete
+ description of the current security policy for old
+ releases of FreeBSD, please see <ulink
+ url="&url.base;/security/">http://www.FreeBSD.org/security/</ulink>.</para></footnote>,
and tracking an entire development branch just
for security reasons is likely to bring in a lot of unwanted
changes as well.</para>
- <para>Although we endeavor to ensure that the &os.stable; branch
- compiles and runs at all times, this cannot be guaranteed. In
- addition, while code is developed in &os.current; before including
- it in &os.stable;, more people run &os.stable; than &os.current;, so
- it is inevitable that bugs and corner cases will sometimes be found
- in &os.stable; that were not apparent in &os.current;.</para>
-
- <para>For these reasons, we do <emphasis>not</emphasis> recommend that
- you blindly track &os.stable;, and it is particularly important that
- you do not update any production servers to &os.stable; without
- first thoroughly testing the code in your development
- environment.</para>
-
- <para>If you do not have the resources to do this then we recommend
- that you run the most recent release of FreeBSD, and use the binary
- update mechanism to move from release to release.</para>
+ <para>Although we endeavor to ensure that the &os.stable;
+ branch compiles and runs at all times, this cannot be
+ guaranteed. In addition, while code is developed in
+ &os.current; before including it in &os.stable;, more people
+ run &os.stable; than &os.current;, so it is inevitable that
+ bugs and corner cases will sometimes be found in &os.stable;
+ that were not apparent in &os.current;.</para>
+
+ <para>For these reasons, we do <emphasis>not</emphasis>
+ recommend that you blindly track &os.stable;, and it is
+ particularly important that you do not update any production
+ servers to &os.stable; without first thoroughly testing the
+ code in your development environment.</para>
+
+ <para>If you do not have the resources to do this then we
+ recommend that you run the most recent release of FreeBSD,
+ and use the binary update mechanism to move from release to
+ release.</para>
</sect3>
<sect3>
@@ -1532,70 +1577,80 @@ Fetching 133 new ports or files... done.</screen>
</indexterm>
<orderedlist>
<listitem>
- <para>Join the &a.stable.name; list. This will keep you informed
- of build-dependencies that may appear in &os.stable;
- or any other issues requiring special attention. Developers
- will also make announcements in this mailing list when they are
- contemplating some controversial fix or update, giving the
- users a chance to respond if they have any issues to raise
- concerning the proposed change.</para>
-
- <para>Join the relevant <application>SVN</application> list for
- the branch you are tracking. For example, if you are tracking
- the 7-STABLE branch, join the &a.svn-src-stable-7.name; list.
- This will allow you to view the commit log entry for each
- change as it is made, along with any pertinent information on
- possible side-effects.</para>
+ <para>Join the &a.stable.name; list. This will keep you
+ informed of build-dependencies that may appear in
+ &os.stable; or any other issues requiring special
+ attention. Developers will also make announcements in
+ this mailing list when they are contemplating some
+ controversial fix or update, giving the users a chance
+ to respond if they have any issues to raise concerning
+ the proposed change.</para>
+
+ <para>Join the relevant <application>SVN</application>
+ list for the branch you are tracking. For example, if
+ you are tracking the 9-STABLE branch, join the
+ &a.svn-src-stable-9.name; list. This will allow you to
+ view the commit log entry for each change as it is made,
+ along with any pertinent information on possible
+ side-effects.</para>
<para>To join these lists, or one of the others available
go to &a.mailman.lists.link; and click on the list that
you wish to subscribe to. Instructions on the rest of
- the procedure are available there. If you are interested
- in tracking changes for the whole source tree, we would
- recommend subscribing to the &a.svn-src-all.name; list.</para>
+ the procedure are available there. If you are
+ interested in tracking changes for the whole source
+ tree, we would recommend subscribing to the
+ &a.svn-src-all.name; list.</para>
</listitem>
<listitem>
<para>If you are going to install a new system and want it
to run monthly snapshot built from &os.stable;, please
- check the <ulink
- url="&url.base;/snapshots/">Snapshots</ulink> web page for
- more information. Alternatively, it is possible to
- install the most recent &os.stable; release from the
- <link linkend="mirrors">mirror sites</link> and follow
- the instructions below to upgrade your system to the
- most up to date &os.stable; source code.</para>
-
- <para>If you are already running a previous release of &os;
- and wish to upgrade via sources then you can easily do so
- from &os; <link linkend="mirrors">mirror site</link>. This can
- be done in one of two ways:</para>
+ check the
+ <ulink url="&url.base;/snapshots/">Snapshots</ulink> web
+ page for more information. Alternatively, it is
+ possible to install the most recent &os.stable; release
+ from the <link linkend="mirrors">mirror sites</link> and
+ follow the instructions below to upgrade your system to
+ the most up to date &os.stable; source code.</para>
+
+ <para>If you are already running a previous release of
+ &os; and wish to upgrade via sources then you can easily
+ do so from a &os;
+ <link linkend="mirrors">mirror site</link>. This can be
+ done in one of several ways:</para>
<orderedlist>
<indexterm>
- <primary><command>cvsup</command></primary>
+ <primary>Subversion</primary>
</indexterm>
<indexterm>
<primary><command>cron</command></primary>
</indexterm>
<indexterm>
<primary>-STABLE</primary>
- <secondary>syncing with <application>CVSup</application></secondary>
+ <secondary>syncing with
+ <application>Subversion</application></secondary>
</indexterm>
<listitem>
- <para>Use the <link linkend="cvsup">cvsup</link> program
- with the <filename>supfile</filename> named
- <filename>stable-supfile</filename> from the directory
- <filename>/usr/share/examples/cvsup</filename>.
- This is the most recommended method, since it allows you to
- grab the entire collection once and then only what has
- changed from then on. Many people run
- <command>cvsup</command> from <command>cron</command> to
- keep their sources up-to-date automatically. You have to
- customize the sample <filename>supfile</filename> above,
- and configure <link linkend="cvsup">cvsup</link> for your
- environment.</para>
+ <para>Use the <link linkend="svn">svn</link> program
+ to check out the desired development or release
+ branch. This is the recommended method, providing
+ access to &os; development as it occurs. Branch
+ names include <literal>head</literal> for the
+ current development head, and branches identified in
+ <ulink url="&url.base;/releng/">the release
+ engineering page</ulink>, such as
+ <literal>stable/9</literal> or
+ <literal>releng/9.0</literal>. URL
+ prefixes for <application>Subversion</application>
+ checkout of the base system are shown in <link
+ linkend="svn-mirrors">Subversion mirror
+ sites</link>.
+ Because of the size of the repository, it is
+ recommended that only desired subtrees be checked
+ out.</para>
</listitem>
<listitem>
@@ -1605,19 +1660,20 @@ Fetching 133 new ports or files... done.</screen>
</indexterm>
<para>Use the <application><link
- linkend="ctm">CTM</link></application> facility. If
- you do not have a fast and inexpensive connection to
- the Internet, this is the method you should consider
- using.</para>
+ linkend="ctm">CTM</link></application> facility.
+ If you do not have a fast and inexpensive connection
+ to the Internet, this is the method you should
+ consider using.</para>
</listitem>
</orderedlist>
</listitem>
<listitem>
- <para>Essentially, if you need rapid on-demand access to the
- source and communications bandwidth is not a consideration,
- use <command>cvsup</command> or <command>ftp</command>.
- Otherwise, use <application>CTM</application>.</para>
+ <para>Essentially, if you need rapid on-demand access to
+ the source and communications bandwidth is not a
+ consideration, use
+ <application>Subversion</application>. Otherwise, use
+ <application>CTM</application>.</para>
</listitem>
<listitem>
@@ -1627,14 +1683,15 @@ Fetching 133 new ports or files... done.</screen>
</indexterm>
<para>Before compiling &os.stable;, read the
- <filename>Makefile</filename> in <filename>/usr/src</filename>
- carefully. You should at least <link
- linkend="makeworld">install a new kernel and rebuild the
- world</link> the first time through
- as part of the upgrading process. Reading the &a.stable; and
- <filename>/usr/src/UPDATING</filename> will keep you up-to-date
- on other bootstrapping procedures that sometimes become
- necessary as we move toward the next release.</para>
+ <filename>Makefile</filename> in
+ <filename>/usr/src</filename> carefully. You should at
+ least <link linkend="makeworld">install a new kernel and
+ rebuild the world</link> the first time through as part
+ of the upgrading process. Reading the &a.stable; and
+ <filename>/usr/src/UPDATING</filename> will keep you
+ up-to-date on other bootstrapping procedures that
+ sometimes become necessary as we move toward the next
+ release.</para>
</listitem>
</orderedlist>
</sect3>
@@ -1646,74 +1703,67 @@ Fetching 133 new ports or files... done.</screen>
<para>There are various ways of using an Internet (or email)
connection to stay up-to-date with any given area of the &os;
- project sources, or all areas, depending on what interests you. The
- primary services we offer are <link linkend="anoncvs">Anonymous
- CVS</link>, <link linkend="cvsup">CVSup</link>, and <link
- linkend="ctm">CTM</link>.</para>
+ project sources, or all areas, depending on what interests you.
+ The primary services we offer are
+ <link linkend="svn">Subversion</link> and
+ <link linkend="ctm">CTM</link>.</para>
<warning>
- <para>While it is possible to update only parts of your source tree,
- the only supported update procedure is to update the entire tree
- and recompile both userland (i.e., all the programs that run in
- user space, such as those in <filename>/bin</filename> and
- <filename>/sbin</filename>) and kernel sources. Updating only part
- of your source tree, only the kernel, or only userland will often
- result in problems. These problems may range from compile errors
- to kernel panics or data corruption.</para>
+ <para>While it is possible to update only parts of your source
+ tree, the only supported update procedure is to update the
+ entire tree and recompile both userland (i.e., all the
+ programs that run in user space, such as those in
+ <filename>/bin</filename> and <filename>/sbin</filename>) and
+ kernel sources. Updating only part of your source tree, only
+ the kernel, or only userland will often result in problems.
+ These problems may range from compile errors to kernel panics
+ or data corruption.</para>
</warning>
<indexterm>
- <primary>CVS</primary>
- <secondary>anonymous</secondary>
+ <primary>Subversion</primary>
</indexterm>
- <para><application>Anonymous CVS</application> and
- <application>CVSup</application> use the <emphasis>pull</emphasis>
- model of updating sources. In the case of
- <application>CVSup</application> the user (or a
- <command>cron</command> script) invokes
- the <command>cvsup</command> program, and it interacts with a
- <command>cvsupd</command> server somewhere to bring your files
- up-to-date. The updates you receive are up-to-the-minute and you
- get them when, and only when, you want them. You can easily
- restrict your updates to the specific files or directories that are
- of interest to you. Updates are generated on the fly by the server,
- according to what you have and what you want to have.
- <application>Anonymous CVS</application> is quite a bit more
- simplistic than <application>CVSup</application> in that it is just an
- extension to <application>CVS</application> which allows it to pull
- changes directly from a remote CVS repository.
- <application>CVSup</application> can do this far more efficiently,
- but <application>Anonymous CVS</application> is easier to use.</para>
+ <para><application>Subversion</application> uses the
+ <emphasis>pull</emphasis> model of updating sources. The user
+ (or a <command>cron</command> script) invokes the
+ <command>svn</command> program, and it brings files up-to-date.
+ <application>Subversion</application> is the preferred means of
+ updating local source trees. The updates you receive are
+ up-to-the-minute and you get them when, and only when, you want
+ them. You can easily restrict your updates to the specific
+ files or directories that are of interest to you. Updates are
+ generated on the fly by the server, according to what you have
+ and what you want to have.</para>
<indexterm>
<primary><application>CTM</application></primary>
</indexterm>
<para><application>CTM</application>, on the other hand, does not
- interactively compare the sources you have with those on the master
- archive or otherwise pull them across. Instead, a script which
- identifies changes in files since its previous run is executed
- several times a day on the master CTM machine, any detected changes
- being compressed, stamped with a sequence-number and encoded for
- transmission over email (in printable ASCII only). Once received,
- these <quote>CTM deltas</quote> can then be handed to the
- &man.ctm.rmail.1; utility which will automatically decode, verify
- and apply the changes to the user's copy of the sources. This
- process is far more efficient than <application>CVSup</application>,
- and places less strain on our server resources since it is a
- <emphasis>push</emphasis> rather than a <emphasis>pull</emphasis>
- model.</para>
+ interactively compare the sources you have with those on the
+ master archive or otherwise pull them across. Instead, a script
+ which identifies changes in files since its previous run is
+ executed several times a day on the master CTM machine, any
+ detected changes being compressed, stamped with a
+ sequence-number and encoded for transmission over email (in
+ printable ASCII only). Once received, these
+ <quote>CTM deltas</quote> can then be handed to the
+ &man.ctm.rmail.1; utility which will automatically decode,
+ verify and apply the changes to the user's copy of the sources.
+ This process is far more efficient than
+ <application>Subversion</application>, and places less strain on
+ our server resources since it is a <emphasis>push</emphasis>
+ rather than a <emphasis>pull</emphasis> model.</para>
<para>There are other trade-offs, of course. If you inadvertently
- wipe out portions of your archive, <application>CVSup</application>
- will detect and rebuild the damaged portions for you.
- <application>CTM</application> will not do this, and if you wipe some
- portion of your source tree out (and do not have it backed up) then
- you will have to start from scratch (from the most recent CVS
+ wipe out portions of your archive,
+ <application>Subversion</application> will detect and rebuild
+ the damaged portions for you. <application>CTM</application>
+ will not do this, and if you wipe some portion of your source
+ tree out (and do not have it backed up) then you will have to
+ start from scratch (from the most recent CTM
<quote>base delta</quote>) and rebuild it all with
- <application>CTM</application> or, with
- <application>Anonymous CVS</application>, simply delete the bad bits
- and resync.</para>
+ <application>CTM</application>.</para>
</sect1>
<sect1 id="makeworld">
@@ -1723,8 +1773,9 @@ Fetching 133 new ports or files... done.</screen>
<primary>Rebuilding <quote>world</quote></primary>
</indexterm>
<para>Once you have synchronized your local source tree against a
- particular version of &os; (&os.stable;, &os.current;, and so on)
- you can then use the source tree to rebuild the system.</para>
+ particular version of &os; (&os.stable;, &os.current;, and so
+ on) you can then use the source tree to rebuild the
+ system.</para>
<warning>
<title>Make a Backup</title>
@@ -1732,13 +1783,13 @@ Fetching 133 new ports or files... done.</screen>
<para>It cannot be stressed enough how important it is to make a
backup of your system <emphasis>before</emphasis> you do this.
While rebuilding the world is (as long as you follow these
- instructions) an easy task to do, there will inevitably be times
- when you make mistakes, or when mistakes made by others in the
- source tree render your system unbootable.</para>
+ instructions) an easy task to do, there will inevitably be
+ times when you make mistakes, or when mistakes made by others
+ in the source tree render your system unbootable.</para>
- <para>Make sure you have taken a backup. And have a fixit floppy or
- bootable CD at hand. You will probably never have to use it, but it
- is better to be safe than sorry!</para>
+ <para>Make sure you have taken a backup. And have a fixit
+ floppy or bootable CD at hand. You will probably never have
+ to use it, but it is better to be safe than sorry!</para>
</warning>
<warning>
@@ -1750,24 +1801,24 @@ Fetching 133 new ports or files... done.</screen>
contribute to &os; are human, and mistakes occasionally
happen.</para>
- <para>Sometimes these mistakes can be quite harmless, just causing
- your system to print a new diagnostic warning. Or the change may
- be catastrophic, and render your system unbootable or destroy your
- file systems (or worse).</para>
+ <para>Sometimes these mistakes can be quite harmless, just
+ causing your system to print a new diagnostic warning. Or the
+ change may be catastrophic, and render your system unbootable
+ or destroy your file systems (or worse).</para>
<para>If problems like these occur, a <quote>heads up</quote> is
- posted to the appropriate mailing list, explaining the nature of
- the problem and which systems it affects. And an <quote>all
- clear</quote> announcement is posted when the problem has been
- solved.</para>
+ posted to the appropriate mailing list, explaining the nature
+ of the problem and which systems it affects. And an
+ <quote>all clear</quote> announcement is posted when the
+ problem has been solved.</para>
<para>If you try to track &os.stable; or &os.current; and do
- not read the &a.stable; or the &a.current; respectively, then you
- are asking for trouble.</para>
+ not read the &a.stable; or the &a.current; respectively, then
+ you are asking for trouble.</para>
</warning>
<warning>
- <title>Do not use <command>make world</command></title>
+ <title>Do Not Use <command>make world</command></title>
<para>A lot of older documentation recommends using
<command>make world</command> for this. Doing that skips
@@ -1782,44 +1833,47 @@ Fetching 133 new ports or files... done.</screen>
<para>To update your system, you should check
<filename>/usr/src/UPDATING</filename> for any pre-buildworld
- steps necessary for your version of the sources and then use the
- procedure outlined here.</para>
-
- <para>These upgrade steps assume that you are currently using an old
- &os; version, consisting of an old compiler, old kernel, old world and
- old configuration files. By <quote>world</quote> here we mean the
- core system binaries, libraries and programming files. The compiler
- is part of <quote>world</quote>, but has a few special concerns.</para>
-
- <para>We also assume that you have already obtained the sources to a
- newer system. If the sources available on the particular system are
- old too, see <xref linkend="synching"/> for detailed help about
- synchronizing them to a newer version.</para>
-
- <para>Updating the system from sources is a bit more subtle than it
- might initially seem to be, and the &os; developers have found it
- necessary over the years to change the recommended approach fairly
- dramatically as new kinds of unavoidable dependencies come to light.
- The rest of this section describes the rationale behind the currently
- recommended upgrade sequence.</para>
-
- <para>Any successful update sequence must deal with the following
- issues:</para>
+ steps necessary for your version of the sources and then use
+ the procedure outlined here.</para>
+
+ <para>These upgrade steps assume that you are currently using an
+ old &os; version, consisting of an old compiler, old kernel,
+ old world and old configuration files. By
+ <quote>world</quote> here we mean the core system binaries,
+ libraries and programming files. The compiler is part of
+ <quote>world</quote>, but has a few special concerns.</para>
+
+ <para>We also assume that you have already obtained the sources
+ to a newer system. If the sources available on the particular
+ system are old too, see <xref linkend="synching"/> for
+ detailed help about synchronizing them to a newer
+ version.</para>
+
+ <para>Updating the system from sources is a bit more subtle than
+ it might initially seem to be, and the &os; developers have
+ found it necessary over the years to change the recommended
+ approach fairly dramatically as new kinds of unavoidable
+ dependencies come to light. The rest of this section
+ describes the rationale behind the currently recommended
+ upgrade sequence.</para>
+
+ <para>Any successful update sequence must deal with the
+ following issues:</para>
<itemizedlist>
<listitem>
<para>The old compiler might not be able to compile the new
kernel. (Old compilers sometimes have bugs.) So, the new
- kernel should be built with the new compiler. In particular,
- the new compiler must be built before the new kernel is built.
- This does not necessarily mean that the new compiler must
- be <emphasis>installed</emphasis> before building the new
- kernel.</para>
+ kernel should be built with the new compiler. In
+ particular, the new compiler must be built before the new
+ kernel is built. This does not necessarily mean that the
+ new compiler must be <emphasis>installed</emphasis> before
+ building the new kernel.</para>
</listitem>
<listitem>
- <para>The new world might rely on new kernel features. So, the
- new kernel must be installed before the new world is
+ <para>The new world might rely on new kernel features. So,
+ the new kernel must be installed before the new world is
installed.</para>
</listitem>
</itemizedlist>
@@ -1828,137 +1882,148 @@ Fetching 133 new ports or files... done.</screen>
core <maketarget>buildworld</maketarget>,
<maketarget>buildkernel</maketarget>,
<maketarget>installkernel</maketarget>,
- <maketarget>installworld</maketarget> sequence that we describe in
- the following paragraphs. This is not an exhaustive list of all the
- reasons why you should prefer the currently recommended upgrade
- process. Some of the less obvious ones are listed below:</para>
+ <maketarget>installworld</maketarget> sequence that we
+ describe in the following paragraphs. This is not an
+ exhaustive list of all the reasons why you should prefer the
+ currently recommended upgrade process. Some of the less
+ obvious ones are listed below:</para>
<itemizedlist>
<listitem>
- <para>The old world might not run correctly on the new kernel, so
- you must install the new world immediately upon installing the
- new kernel.</para>
+ <para>The old world might not run correctly on the new
+ kernel, so you must install the new world immediately upon
+ installing the new kernel.</para>
</listitem>
<listitem>
- <para>Some configuration changes must be done before the new world
- is installed, but others might break the old world. Hence, two
- different configuration upgrade steps are generally
- needed.</para>
+ <para>Some configuration changes must be done before the new
+ world is installed, but others might break the old world.
+ Hence, two different configuration upgrade steps are
+ generally needed.</para>
</listitem>
<listitem>
- <para>For the most part, the update process only replaces or adds
- files; existing old files are not deleted. In a few cases, this
- can cause problems. As a result, the update procedure will
- sometimes specify certain files that should be manually deleted
- at certain steps. This may or may not be automated in the
- future.</para>
+ <para>For the most part, the update process only replaces or
+ adds files; existing old files are not deleted. In a few
+ cases, this can cause problems. As a result, the update
+ procedure will sometimes specify certain files that should
+ be manually deleted at certain steps. This may or may not
+ be automated in the future.</para>
</listitem>
</itemizedlist>
- <para>These concerns have led to the following recommended sequence.
- Note that the detailed sequence for particular updates may require
- additional steps, but this core process should remain unchanged for
- some time:</para>
+ <para>These concerns have led to the following recommended
+ sequence. Note that the detailed sequence for particular
+ updates may require additional steps, but this core process
+ should remain unchanged for some time:</para>
<orderedlist>
<listitem>
- <para><command>make <maketarget>buildworld</maketarget></command></para>
+ <para><command>make
+ <maketarget>buildworld</maketarget></command></para>
<para>This first compiles the new compiler and a few related
- tools, then uses the new compiler to compile the rest of the new
- world. The result ends up
- in <filename class="directory">/usr/obj</filename>.</para>
+ tools, then uses the new compiler to compile the rest of
+ the new world. The result ends up in
+ <filename class="directory">/usr/obj</filename>.</para>
</listitem>
<listitem>
- <para><command>make <maketarget>buildkernel</maketarget></command></para>
+ <para><command>make
+ <maketarget>buildkernel</maketarget></command></para>
<para>Unlike the older approach, using &man.config.8; and
- &man.make.1;, this uses the <emphasis>new</emphasis> compiler
- residing in <filename class="directory">/usr/obj</filename>.
- This protects you against compiler-kernel mismatches.</para>
+ &man.make.1;, this uses the <emphasis>new</emphasis>
+ compiler residing in
+ <filename class="directory">/usr/obj</filename>. This
+ protects you against compiler-kernel mismatches.</para>
</listitem>
<listitem>
- <para><command>make <maketarget>installkernel</maketarget></command></para>
+ <para><command>make
+ <maketarget>installkernel</maketarget></command></para>
<para>Place the new kernel and kernel modules onto the disk,
- making it possible to boot with the newly updated kernel.</para>
+ making it possible to boot with the newly updated
+ kernel.</para>
</listitem>
<listitem>
<para>Reboot into single user mode.</para>
- <para>Single user mode minimizes problems from updating software
- that's already running. It also minimizes any problems from
- running the old world on a new kernel.</para>
+ <para>Single user mode minimizes problems from updating
+ software that is already running. It also minimizes any
+ problems from running the old world on a new
+ kernel.</para>
</listitem>
<listitem>
- <para><command>mergemaster <option>-p</option></command></para>
+ <para><command>mergemaster
+ <option>-p</option></command></para>
<para>This does some initial configuration file updates in
- preparation for the new world. For instance it may add new user
- groups to the system, or new user names to the password database.
- This is often necessary when new groups or special system-user
- accounts have been added since the last update, so that
- the <maketarget>installworld</maketarget> step will be able to
+ preparation for the new world. For instance it may add
+ new user groups to the system, or new user names to the
+ password database. This is often necessary when new
+ groups or special system-user accounts have been added
+ since the last update, so that the
+ <maketarget>installworld</maketarget> step will be able to
use the newly installed system user or system group names
without problems.</para>
</listitem>
<listitem>
- <para><command>make <maketarget>installworld</maketarget></command></para>
+ <para><command>make
+ <maketarget>installworld</maketarget></command></para>
<para>Copies the world
- from <filename class="directory">/usr/obj</filename>. You now
- have a new kernel and new world on disk.</para>
+ from <filename class="directory">/usr/obj</filename>. You
+ now have a new kernel and new world on disk.</para>
</listitem>
<listitem>
<para><command>mergemaster</command></para>
- <para>Now you can update the remaining configuration files, since
- you have a new world on disk.</para>
+ <para>Now you can update the remaining configuration files,
+ since you have a new world on disk.</para>
</listitem>
<listitem>
<para>Reboot.</para>
- <para>A full machine reboot is needed now to load the new kernel
- and new world with new configuration files.</para>
+ <para>A full machine reboot is needed now to load the new
+ kernel and new world with new configuration files.</para>
</listitem>
</orderedlist>
- <para>Note that if you're upgrading from one release of the same &os;
- branch to a more recent release of the same branch, i.e., from 7.0 to
- 7.1, then this procedure may not be absolutely necessary, since
- you're unlikely to run into serious mismatches between compiler,
- kernel, userland and configuration files. The older approach
- of <command>make <maketarget>world</maketarget></command> followed
- by building and installing a new kernel might work well enough for
- minor updates.</para>
+ <para>Note that if you are upgrading from one release of the
+ same &os; branch to a more recent release of the same branch,
+ i.e., from 7.0 to 7.1, then this procedure may not be
+ absolutely necessary, since you are unlikely to run into
+ serious mismatches between compiler, kernel, userland and
+ configuration files. The older approach of
+ <command>make <maketarget>world</maketarget></command>
+ followed by building and installing a new kernel might work
+ well enough for minor updates.</para>
- <para>But, when upgrading across major releases, people who don't
- follow this procedure should expect some problems.</para>
+ <para>But, when upgrading across major releases, people who do
+ not follow this procedure should expect some problems.</para>
<para>It is also worth noting that many upgrades
(i.e.,&nbsp;4.<replaceable>X</replaceable> to 5.0) may require
- specific additional steps (renaming or deleting specific files prior
- to installworld, for instance). Read
- the <filename>/usr/src/UPDATING</filename> file carefully,
+ specific additional steps (renaming or deleting specific files
+ prior to installworld, for instance). Read the
+ <filename>/usr/src/UPDATING</filename> file carefully,
especially at the end, where the currently recommended upgrade
sequence is explicitly spelled out.</para>
- <para>This procedure has evolved over time as the developers have
- found it impossible to completely prevent certain kinds of mismatch
- problems. Hopefully, the current procedure will remain stable for a
- long time.</para>
+ <para>This procedure has evolved over time as the developers
+ have found it impossible to completely prevent certain kinds
+ of mismatch problems. Hopefully, the current procedure will
+ remain stable for a long time.</para>
- <para>To summarize, the currently recommended way of upgrading &os;
- from sources is:</para>
+ <para>To summarize, the currently recommended way of upgrading
+ &os; from sources is:</para>
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make buildworld</userinput>
@@ -1994,8 +2059,9 @@ Fetching 133 new ports or files... done.</screen>
<para>The sequence described above is only a short resume to
help you getting started. You should however read the
- following sections to clearly understand each step, especially
- if you want to use a custom kernel configuration.</para>
+ following sections to clearly understand each step,
+ especially if you want to use a custom kernel
+ configuration.</para>
</warning>
</sect2>
@@ -2004,108 +2070,125 @@ Fetching 133 new ports or files... done.</screen>
<para>Before you do anything else, read
<filename>/usr/src/UPDATING</filename> (or the equivalent file
- wherever you have a copy of the source code). This file should
- contain important information about problems you might encounter, or
- specify the order in which you might have to run certain commands.
- If <filename>UPDATING</filename> contradicts something you read here,
+ wherever you have a copy of the source code). This file
+ should contain important information about problems you might
+ encounter, or specify the order in which you might have to run
+ certain commands. If <filename>UPDATING</filename>
+ contradicts something you read here,
<filename>UPDATING</filename> takes precedence.</para>
<important>
- <para>Reading <filename>UPDATING</filename> is not an acceptable
- substitute for subscribing to the correct mailing list, as
- described previously. The two requirements are complementary, not
- exclusive.</para>
+ <para>Reading <filename>UPDATING</filename> is not an
+ acceptable substitute for subscribing to the correct mailing
+ list, as described previously. The two requirements are
+ complementary, not exclusive.</para>
</important>
</sect2>
<sect2 id="make-conf">
<title>Check <filename>/etc/make.conf</filename></title>
+
<indexterm>
<primary><filename>make.conf</filename></primary>
</indexterm>
- <para>Examine the files
- <filename>/usr/share/examples/etc/make.conf</filename> and
- <filename>/etc/make.conf</filename>. The first contains some
- default defines &ndash; most of which are commented out. To
- make use of them when you rebuild your system from source, add
- them to <filename>/etc/make.conf</filename>. Keep in mind that
- anything you add to <filename>/etc/make.conf</filename> is also
- used every time you run <command>make</command>, so it is a good
- idea to set them to something sensible for your system.</para>
-
- <para>A typical user will probably want to copy the
- <makevar>CFLAGS</makevar> and
- <makevar>NO_PROFILE</makevar> lines found in
- <filename>/usr/share/examples/etc/make.conf</filename>
- to <filename>/etc/make.conf</filename> and uncomment them.</para>
-
- <para>Examine the other definitions (<makevar>COPTFLAGS</makevar>,
- <makevar>NOPORTDOCS</makevar> and so
- on) and decide if they are relevant to you.</para>
+ <para>&man.make.1; options are shown in &man.make.conf.5; and
+ <filename>/usr/share/examples/etc/make.conf</filename>. These
+ settings can be added to <filename>/etc/make.conf</filename>
+ to control the way &man.make.1; runs and how it builds
+ programs. Changes to some settings can have far-reaching and
+ potentially surprising effects. Read the comments in both
+ locations and keep in mind that the defaults have been chosen
+ for a combination of performance and safety.</para>
+
+ <para>Options set in <filename>/etc/make.conf</filename> take
+ effect every time &man.make.1; is used, including compiling
+ applications from the Ports Collection or user-written C
+ programs, or building the &os; operating system itself.</para>
+ </sect2>
+
+ <sect2 id="src-conf">
+ <title>Check <filename>/etc/src.conf</filename></title>
+
+ <indexterm>
+ <primary><filename>src.conf</filename></primary>
+ </indexterm>
+
+ <para><filename>/etc/src.conf</filename> controls the building
+ of the operating system from source code. Unlike
+ <filename>/etc/make.conf</filename>, the contents of
+ <filename>/etc/src.conf</filename> only take effect when the
+ &os; operating system itself is being built. Descriptions of
+ the many options available for this file are shown in
+ &man.src.conf.5;. Be cautious about disabling seemingly
+ unneeded kernel modules and build options. Sometimes there
+ are unexpected or subtle interactions.</para>
</sect2>
<sect2 id="updating-etc">
<title>Update the Files in <filename>/etc</filename></title>
- <para>The <filename>/etc</filename> directory contains a large part
- of your system's configuration information, as well as scripts
- that are run at system startup. Some of these scripts change from
- version to version of FreeBSD.</para>
+ <para>The <filename>/etc</filename> directory contains a large
+ part of your system's configuration information, as well as
+ scripts that are run at system startup. Some of these scripts
+ change from version to version of FreeBSD.</para>
- <para>Some of the configuration files are also used in the day to
- day running of the system. In particular,
+ <para>Some of the configuration files are also used in the day
+ to day running of the system. In particular,
<filename>/etc/group</filename>.</para>
<para>There have been occasions when the installation part of
- <command>make installworld</command> has expected certain usernames
- or groups to exist. When performing an upgrade it is likely that
- these users or groups did not exist. This caused problems when
- upgrading. In some cases <command>make buildworld</command> will
- check to see if these users or groups exist.</para>
-
- <para>An example of this is when the <username>smmsp</username> user
- was added. Users had the installation process fail for them when
- &man.mtree.8; was trying to create
+ <command>make installworld</command> has expected certain
+ usernames or groups to exist. When performing an upgrade it
+ is likely that these users or groups did not exist. This
+ caused problems when upgrading. In some cases
+ <command>make buildworld</command> will check to see if these
+ users or groups exist.</para>
+
+ <para>An example of this is when the <username>smmsp</username>
+ user was added. Users had the installation process fail for
+ them when &man.mtree.8; was trying to create
<filename>/var/spool/clientmqueue</filename>.</para>
<para>The solution is to run &man.mergemaster.8; in
- pre-buildworld mode by providing the <option>-p</option> option.
- This will compare only those files that are essential for the success
- of <maketarget>buildworld</maketarget> or
+ pre-buildworld mode by providing the <option>-p</option>
+ option. This will compare only those files that are essential
+ for the success of <maketarget>buildworld</maketarget> or
<maketarget>installworld</maketarget>.</para>
<tip>
- <para>If you are feeling particularly paranoid, you can check your
- system to see which files are owned by the group you are
- renaming or deleting:</para>
+ <para>If you are feeling particularly paranoid, you can check
+ your system to see which files are owned by the group you
+ are renaming or deleting:</para>
<screen>&prompt.root; <userinput>find / -group <replaceable>GID</replaceable> -print</userinput></screen>
<para>will show all files owned by group
- <replaceable>GID</replaceable> (which can be either a group name
- or a numeric group ID).</para>
+ <replaceable>GID</replaceable> (which can be either a group
+ name or a numeric group ID).</para>
</tip>
</sect2>
<sect2 id="makeworld-singleuser">
<title>Drop to Single User Mode</title>
+
<indexterm><primary>single-user mode</primary></indexterm>
- <para>You may want to compile the system in single user mode. Apart
- from the obvious benefit of making things go slightly faster,
- reinstalling the system will touch a lot of important system
- files, all the standard system binaries, libraries, include files
- and so on. Changing these on a running system (particularly if
- you have active users on the system at the time) is asking for
- trouble.</para>
+ <para>You may want to compile the system in single user mode.
+ Apart from the obvious benefit of making things go slightly
+ faster, reinstalling the system will touch a lot of important
+ system files, all the standard system binaries, libraries,
+ include files and so on. Changing these on a running system
+ (particularly if you have active users on the system at the
+ time) is asking for trouble.</para>
<indexterm><primary>multi-user mode</primary></indexterm>
- <para>Another method is to compile the system in multi-user mode, and
- then drop into single user mode for the installation. If you would
- like to do it this way, simply hold off on the following steps until
- the build has completed. You can postpone dropping to single user
- mode until you have to <maketarget>installkernel</maketarget> or
+ <para>Another method is to compile the system in multi-user
+ mode, and then drop into single user mode for the
+ installation. If you would like to do it this way, simply
+ hold off on the following steps until the build has completed.
+ You can postpone dropping to single user mode until you have
+ to <maketarget>installkernel</maketarget> or
<maketarget>installworld</maketarget>.</para>
<para>As the superuser, you can execute:</para>
@@ -2116,17 +2199,19 @@ Fetching 133 new ports or files... done.</screen>
mode.</para>
<para>Alternatively, reboot the system, and at the boot prompt,
- select the <quote>single user</quote> option. The system will then
- boot single user. At the shell prompt you should then run:</para>
+ select the <quote>single user</quote> option. The system will
+ then boot single user. At the shell prompt you should then
+ run:</para>
<screen>&prompt.root; <userinput>fsck -p</userinput>
&prompt.root; <userinput>mount -u /</userinput>
&prompt.root; <userinput>mount -a -t ufs</userinput>
&prompt.root; <userinput>swapon -a</userinput></screen>
- <para>This checks the file systems, remounts <filename>/</filename>
- read/write, mounts all the other UFS file systems referenced in
- <filename>/etc/fstab</filename> and then turns swapping on.</para>
+ <para>This checks the file systems, remounts
+ <filename>/</filename> read/write, mounts all the other UFS
+ file systems referenced in <filename>/etc/fstab</filename> and
+ then turns swapping on.</para>
<note>
<para>If your CMOS clock is set to local time and not to GMT
@@ -2147,16 +2232,16 @@ Fetching 133 new ports or files... done.</screen>
<para>As parts of the system are rebuilt they are placed in
directories which (by default) go under
- <filename>/usr/obj</filename>. The directories shadow those under
- <filename>/usr/src</filename>.</para>
+ <filename>/usr/obj</filename>. The directories shadow those
+ under <filename>/usr/src</filename>.</para>
- <para>You can speed up the <command>make buildworld</command> process,
- and possibly save yourself some dependency headaches by removing this
- directory as well.</para>
+ <para>You can speed up the <command>make buildworld</command>
+ process, and possibly save yourself some dependency headaches
+ by removing this directory as well.</para>
- <para>Some files below <filename>/usr/obj</filename> may have the
- immutable flag set (see &man.chflags.1; for more information)
- which must be removed first.</para>
+ <para>Some files below <filename>/usr/obj</filename> may have
+ the immutable flag set (see &man.chflags.1; for more
+ information) which must be removed first.</para>
<screen>&prompt.root; <userinput>cd /usr/obj</userinput>
&prompt.root; <userinput>chflags -R noschg *</userinput>
@@ -2169,17 +2254,19 @@ Fetching 133 new ports or files... done.</screen>
<sect3>
<title>Saving the Output</title>
- <para>It is a good idea to save the output you get from running
- &man.make.1; to another file. If something goes wrong you will
- have a copy of the error message. While this might not help you
- in diagnosing what has gone wrong, it can help others if you post
- your problem to one of the &os; mailing lists.</para>
+ <para>It is a good idea to save the output you get from
+ running &man.make.1; to another file. If something goes
+ wrong you will have a copy of the error message. While this
+ might not help you in diagnosing what has gone wrong, it can
+ help others if you post your problem to one of the &os;
+ mailing lists.</para>
<para>The easiest way to do this is to use the &man.script.1;
- command, with a parameter that specifies the name of the file to
- save all output to. You would do this immediately before
- rebuilding the world, and then type <userinput>exit</userinput>
- when the process has finished.</para>
+ command, with a parameter that specifies the name of the
+ file to save all output to. You would do this immediately
+ before rebuilding the world, and then type
+ <userinput>exit</userinput> when the process has
+ finished.</para>
<screen>&prompt.root; <userinput>script /var/tmp/mw.out</userinput>
Script started, output file is /var/tmp/mw.out
@@ -2188,11 +2275,12 @@ Script started, output file is /var/tmp/mw.out
&prompt.root; <userinput>exit</userinput>
Script done, &hellip;</screen>
- <para>If you do this, <emphasis>do not</emphasis> save the output
- in <filename>/tmp</filename>. This directory may be cleared
- next time you reboot. A better place to store it is in
- <filename>/var/tmp</filename> (as in the previous example) or
- in <username>root</username>'s home directory.</para>
+ <para>If you do this, <emphasis>do not</emphasis> save the
+ output in <filename>/tmp</filename>. This directory may be
+ cleared next time you reboot. A better place to store it is
+ in <filename>/var/tmp</filename> (as in the previous
+ example) or in <username>root</username>'s home
+ directory.</para>
</sect3>
<sect3 id="make-buildworld">
@@ -2203,55 +2291,58 @@ Script done, &hellip;</screen>
<screen>&prompt.root; <userinput>cd /usr/src</userinput></screen>
- <para>(unless, of course, your source code is elsewhere, in which
- case change to that directory instead).</para>
+ <para>(unless, of course, your source code is elsewhere, in
+ which case change to that directory instead).</para>
+
<indexterm><primary><command>make</command></primary></indexterm>
- <para>To rebuild the world you use the &man.make.1; command. This
- command reads instructions from the <filename>Makefile</filename>,
- which describes how the programs that comprise &os; should be
- rebuilt, the order in which they should be built, and so on.</para>
+ <para>To rebuild the world you use the &man.make.1; command.
+ This command reads instructions from the
+ <filename>Makefile</filename>, which describes how the
+ programs that comprise &os; should be rebuilt, the order in
+ which they should be built, and so on.</para>
- <para>The general format of the command line you will type is as
- follows:</para>
+ <para>The general format of the command line you will type is
+ as follows:</para>
<screen>&prompt.root; <userinput>make -<replaceable>x</replaceable> -D<replaceable>VARIABLE</replaceable> <replaceable>target</replaceable></userinput></screen>
- <para>In this example, <option>-<replaceable>x</replaceable></option>
- is an option that you would pass to &man.make.1;. See the
- &man.make.1; manual page for an example of the options you can
+ <para>In this example,
+ <option>-<replaceable>x</replaceable></option> is an option
+ that you would pass to &man.make.1;. See the &man.make.1;
+ manual page for an example of the options you can
pass.</para>
<para><option>-D<replaceable>VARIABLE</replaceable></option>
passes a variable to the <filename>Makefile</filename>. The
- behavior of the <filename>Makefile</filename> is controlled by
- these variables. These are the same variables as are set in
- <filename>/etc/make.conf</filename>, and this provides another
- way of setting them.</para>
+ behavior of the <filename>Makefile</filename> is controlled
+ by these variables. These are the same variables as are set
+ in <filename>/etc/make.conf</filename>, and this provides
+ another way of setting them.</para>
<screen>&prompt.root; <userinput>make -DNO_PROFILE <replaceable>target</replaceable></userinput></screen>
- <para>is another way of specifying that profiled libraries should
- not be built, and corresponds with the</para>
+ <para>is another way of specifying that profiled libraries
+ should not be built, and corresponds with the</para>
<programlisting>NO_PROFILE= true # Avoid compiling profiled libraries</programlisting>
<para>line in <filename>/etc/make.conf</filename>.</para>
- <para><replaceable>target</replaceable> tells &man.make.1; what
- you want to do. Each <filename>Makefile</filename> defines a
- number of different <quote>targets</quote>, and your choice of
- target determines what happens.</para>
+ <para><replaceable>target</replaceable> tells &man.make.1;
+ what you want to do. Each <filename>Makefile</filename>
+ defines a number of different <quote>targets</quote>, and
+ your choice of target determines what happens.</para>
<para>Some targets are listed in the
- <filename>Makefile</filename>, but are not meant for you to run.
- Instead, they are used by the build process to break out the
- steps necessary to rebuild the system into a number of
- sub-steps.</para>
+ <filename>Makefile</filename>, but are not meant for you to
+ run. Instead, they are used by the build process to break
+ out the steps necessary to rebuild the system into a number
+ of sub-steps.</para>
- <para>Most of the time you will not need to pass any parameters to
- &man.make.1;, and so your command like will look like
- this:</para>
+ <para>Most of the time you will not need to pass any
+ parameters to &man.make.1;, and so your command like will
+ look like this:</para>
<screen>&prompt.root; <userinput>make <replaceable>target</replaceable></userinput></screen>
@@ -2260,96 +2351,105 @@ Script done, &hellip;</screen>
<makevar>buildworld</makevar>.</para>
<para>As the names imply, <maketarget>buildworld</maketarget>
- builds a complete new tree under <filename>/usr/obj</filename>,
- and <maketarget>installworld</maketarget>, another target,
+ builds a complete new tree under
+ <filename>/usr/obj</filename>, and
+ <maketarget>installworld</maketarget>, another target,
installs this tree on the current machine.</para>
- <para>Having separate options is very useful for two reasons. First,
- it allows you to do the build safe in the knowledge that no
- components of your running system will be affected. The build is
- <quote>self hosted</quote>. Because of this, you can safely
- run <maketarget>buildworld</maketarget> on a machine running
- in multi-user mode with no fear of ill-effects. It is still
- recommended that you run the <maketarget>installworld</maketarget>
- part in single user mode, though.</para>
+ <para>Having separate options is very useful for two reasons.
+ First, it allows you to do the build safe in the knowledge
+ that no components of your running system will be affected.
+ The build is <quote>self hosted</quote>. Because of this,
+ you can safely run <maketarget>buildworld</maketarget> on a
+ machine running in multi-user mode with no fear of
+ ill-effects. It is still recommended that you run the
+ <maketarget>installworld</maketarget> part in single user
+ mode, though.</para>
<para>Secondly, it allows you to use NFS mounts to upgrade
- multiple machines on your network. If you have three machines,
- <hostid>A</hostid>, <hostid>B</hostid> and <hostid>C</hostid> that
- you want to upgrade, run <command>make buildworld</command> and
+ multiple machines on your network. If you have three
+ machines, <hostid>A</hostid>, <hostid>B</hostid> and
+ <hostid>C</hostid> that you want to upgrade, run
+ <command>make buildworld</command> and
<command>make installworld</command> on <hostid>A</hostid>.
- <hostid>B</hostid> and <hostid>C</hostid> should then NFS mount
- <filename>/usr/src</filename> and <filename>/usr/obj</filename>
- from <hostid>A</hostid>, and you can then run
- <command>make installworld</command> to install the results of
- the build on <hostid>B</hostid> and <hostid>C</hostid>.</para>
+ <hostid>B</hostid> and <hostid>C</hostid> should then NFS
+ mount <filename>/usr/src</filename> and
+ <filename>/usr/obj</filename> from <hostid>A</hostid>, and
+ you can then run <command>make installworld</command> to
+ install the results of the build on <hostid>B</hostid> and
+ <hostid>C</hostid>.</para>
- <para>Although the <maketarget>world</maketarget> target still exists,
- you are strongly encouraged not to use it.</para>
+ <para>Although the <maketarget>world</maketarget> target still
+ exists, you are strongly encouraged not to use it.</para>
<para>Run</para>
<screen>&prompt.root; <userinput>make buildworld</userinput></screen>
- <para>It is possible to specify a <option>-j</option> option to
- <command>make</command> which will cause it to spawn several
- simultaneous processes. This is most useful on multi-CPU machines.
- However, since much of the compiling process is IO bound rather
- than CPU bound it is also useful on single CPU machines.</para>
+ <para>It is possible to specify a <option>-j</option> option
+ to <command>make</command> which will cause it to spawn
+ several simultaneous processes. This is most useful on
+ multi-CPU machines. However, since much of the compiling
+ process is IO bound rather than CPU bound it is also useful
+ on single CPU machines.</para>
<para>On a typical single-CPU machine you would run:</para>
<screen>&prompt.root; <userinput>make -j4 buildworld</userinput></screen>
- <para>&man.make.1; will then have up to 4 processes running at any one
- time. Empirical evidence posted to the mailing lists shows this
- generally gives the best performance benefit.</para>
+ <para>&man.make.1; will then have up to 4 processes running at
+ any one time. Empirical evidence posted to the mailing
+ lists shows this generally gives the best performance
+ benefit.</para>
<para>If you have a multi-CPU machine and you are using an SMP
- configured kernel try values between 6 and 10 and see how they speed
- things up.</para>
+ configured kernel try values between 6 and 10 and see how
+ they speed things up.</para>
</sect3>
<sect3>
<title>Timings</title>
+
<indexterm>
<primary>rebuilding <quote>world</quote></primary>
<secondary>timings</secondary>
</indexterm>
<para>Many factors influence the build time, but fairly recent
- machines may only take a one or two hours to build
- the &os.stable; tree, with no tricks or shortcuts used during the
- process. A &os.current; tree will take somewhat longer.</para>
+ machines may only take a one or two hours to build the
+ &os.stable; tree, with no tricks or shortcuts used during
+ the process. A &os.current; tree will take somewhat
+ longer.</para>
</sect3>
</sect2>
<sect2 id="new-kernel">
<title>Compile and Install a New Kernel</title>
+
<indexterm>
<primary>kernel</primary>
<secondary>compiling</secondary>
</indexterm>
- <para>To take full advantage of your new system you should recompile the
- kernel. This is practically a necessity, as certain memory structures
- may have changed, and programs like &man.ps.1; and &man.top.1; will
- fail to work until the kernel and source code versions are the
- same.</para>
-
- <para>The simplest, safest way to do this is to build and install a
- kernel based on <filename>GENERIC</filename>. While
- <filename>GENERIC</filename> may not have all the necessary devices
- for your system, it should contain everything necessary to boot your
- system back to single user mode. This is a good test that the new
- system works properly. After booting from
- <filename>GENERIC</filename> and verifying that your system works you
- can then build a new kernel based on your normal kernel configuration
- file.</para>
-
- <para>On &os; it is important to <link
- linkend="make-buildworld">build world</link> before building a
- new kernel.</para>
+ <para>To take full advantage of your new system you should
+ recompile the kernel. This is practically a necessity, as
+ certain memory structures may have changed, and programs like
+ &man.ps.1; and &man.top.1; will fail to work until the kernel
+ and source code versions are the same.</para>
+
+ <para>The simplest, safest way to do this is to build and
+ install a kernel based on <filename>GENERIC</filename>. While
+ <filename>GENERIC</filename> may not have all the necessary
+ devices for your system, it should contain everything
+ necessary to boot your system back to single user mode. This
+ is a good test that the new system works properly. After
+ booting from <filename>GENERIC</filename> and verifying that
+ your system works you can then build a new kernel based on
+ your normal kernel configuration file.</para>
+
+ <para>On &os; it is important to
+ <link linkend="make-buildworld">build world</link> before
+ building a new kernel.</para>
<note>
<para>If you want to build a custom kernel, and already have a
@@ -2362,33 +2462,33 @@ Script done, &hellip;</screen>
&prompt.root; <userinput>make installkernel KERNCONF=<replaceable>MYKERNEL</replaceable></userinput></screen>
</note>
- <para>Note that if you have raised <literal>kern.securelevel</literal>
- above 1 <emphasis>and</emphasis> you have set either the
- <literal>noschg</literal> or similar flags to your kernel binary, you
- might find it necessary to drop into single user mode to use
- <maketarget>installkernel</maketarget>. Otherwise you should be able
- to run both these commands from multi user mode without
- problems. See &man.init.8; for details about
- <literal>kern.securelevel</literal> and &man.chflags.1; for details
- about the various file flags.</para>
+ <para>Note that if you have raised
+ <literal>kern.securelevel</literal> above 1
+ <emphasis>and</emphasis> you have set either the
+ <literal>noschg</literal> or similar flags to your kernel
+ binary, you might find it necessary to drop into single user
+ mode to use <maketarget>installkernel</maketarget>. Otherwise
+ you should be able to run both these commands from multi user
+ mode without problems. See &man.init.8; for details about
+ <literal>kern.securelevel</literal> and &man.chflags.1; for
+ details about the various file flags.</para>
</sect2>
<sect2 id="new-kernel-singleuser">
<title>Reboot into Single User Mode</title>
+
<indexterm><primary>single-user mode</primary></indexterm>
- <para>You should reboot into single user mode to test the new kernel
- works. Do this by following the instructions in
+ <para>You should reboot into single user mode to test the new
+ kernel works. Do this by following the instructions in
<xref linkend="makeworld-singleuser"/>.</para>
</sect2>
<sect2 id="make-installworld">
<title>Install the New System Binaries</title>
- <para>
- You should now use
- <maketarget>installworld</maketarget> to install the new system
- binaries.</para>
+ <para>You should now use <maketarget>installworld</maketarget>
+ to install the new system binaries.</para>
<para>Run</para>
@@ -2397,10 +2497,11 @@ Script done, &hellip;</screen>
<note>
<para>If you specified variables on the
- <command>make buildworld</command> command line, you must specify
- the same variables in the <command>make installworld</command>
- command line. This does not necessarily hold true for other
- options; for example, <option>-j</option> must never be used with
+ <command>make buildworld</command> command line, you must
+ specify the same variables in the
+ <command>make installworld</command> command line. This
+ does not necessarily hold true for other options; for
+ example, <option>-j</option> must never be used with
<maketarget>installworld</maketarget>.</para>
<para>For example, if you ran:</para>
@@ -2411,25 +2512,26 @@ Script done, &hellip;</screen>
<screen>&prompt.root; <userinput>make -DNO_PROFILE installworld</userinput></screen>
- <para>otherwise it would try to install profiled libraries that
- had not been built during the <command>make buildworld</command>
- phase.</para>
+ <para>otherwise it would try to install profiled libraries
+ that had not been built during the
+ <command>make buildworld</command> phase.</para>
</note>
</sect2>
<sect2 id="post-installworld-updates">
- <title>Update Files Not Updated by <command>make installworld</command></title>
+ <title>Update Files Not Updated by
+ <command>make installworld</command></title>
<para>Remaking the world will not update certain directories (in
- particular, <filename>/etc</filename>, <filename>/var</filename> and
- <filename>/usr</filename>) with new or changed configuration
- files.</para>
+ particular, <filename>/etc</filename>,
+ <filename>/var</filename> and <filename>/usr</filename>) with
+ new or changed configuration files.</para>
<para>The simplest way to update these files is to use
&man.mergemaster.8;, though it is possible to do it manually
if you would prefer to do that. Regardless of which way you
- choose, be sure to make a backup of <filename>/etc</filename> in
- case anything goes wrong.</para>
+ choose, be sure to make a backup of <filename>/etc</filename>
+ in case anything goes wrong.</para>
<sect3 id="mergemaster">
<sect3info>
@@ -2442,171 +2544,190 @@ Script done, &hellip;</screen>
</authorgroup>
</sect3info>
<title><command>mergemaster</command></title>
- <indexterm><primary><command>mergemaster</command></primary></indexterm>
-
- <para>The &man.mergemaster.8; utility is a Bourne script that will
- aid you in determining the differences between your configuration
- files in <filename>/etc</filename>, and the configuration files in
- the source tree <filename>/usr/src/etc</filename>. This is
- the recommended solution for keeping the system configuration files
- up to date with those located in the source tree.</para>
-
- <para>To begin simply type <command>mergemaster</command> at your
- prompt, and watch it start going. <command>mergemaster</command>
- will then build a temporary root environment, from
- <filename>/</filename> down, and populate it with various system
- configuration files. Those files are then compared to the ones
- currently installed in your system. At this point, files that
- differ will be shown in &man.diff.1; format, with the
- <option>+</option> sign representing added or modified lines, and
- <option>-</option> representing lines that will be either removed
- completely, or replaced with a new line. See the &man.diff.1;
- manual page for more information about the &man.diff.1; syntax and
+
+ <indexterm>
+ <primary>
+ <command>mergemaster</command>
+ </primary>
+ </indexterm>
+
+ <para>The &man.mergemaster.8; utility is a Bourne script that
+ will aid you in determining the differences between your
+ configuration files in <filename>/etc</filename>, and the
+ configuration files in the source tree
+ <filename>/usr/src/etc</filename>. This is the recommended
+ solution for keeping the system configuration files up to
+ date with those located in the source tree.</para>
+
+ <para>To begin simply type <command>mergemaster</command> at
+ your prompt, and watch it start going.
+ <command>mergemaster</command> will then build a temporary
+ root environment, from <filename>/</filename> down, and
+ populate it with various system configuration files. Those
+ files are then compared to the ones currently installed in
+ your system. At this point, files that differ will be shown
+ in &man.diff.1; format, with the <option>+</option> sign
+ representing added or modified lines, and <option>-</option>
+ representing lines that will be either removed completely,
+ or replaced with a new line. See the &man.diff.1; manual
+ page for more information about the &man.diff.1; syntax and
how file differences are shown.</para>
- <para>&man.mergemaster.8; will then show you each file that displays
- variances, and at this point you will have the option of either
- deleting the new file (referred to as the temporary file),
- installing the temporary file in its unmodified state, merging the
- temporary file with the currently installed file, or viewing the
- &man.diff.1; results again.</para>
+ <para>&man.mergemaster.8; will then show you each file that
+ displays variances, and at this point you will have the
+ option of either deleting the new file (referred to as the
+ temporary file), installing the temporary file in its
+ unmodified state, merging the temporary file with the
+ currently installed file, or viewing the &man.diff.1;
+ results again.</para>
<para>Choosing to delete the temporary file will tell
&man.mergemaster.8; that we wish to keep our current file
- unchanged, and to delete the new version. This option is not
- recommended, unless you see no reason to change the current file.
- You can get help at any time by typing <keycap>?</keycap> at the
- &man.mergemaster.8; prompt. If the user chooses to skip a file,
- it will be presented again after all other files have been dealt
- with.</para>
-
- <para>Choosing to install the unmodified temporary file will replace
- the current file with the new one. For most unmodified files,
- this is the best option.</para>
-
- <para>Choosing to merge the file will present you with a text editor,
- and the contents of both files. You can now merge them by
- reviewing both files side by side on the screen, and choosing parts
- from both to create a finished product. When the files are
- compared side by side, the <keycap>l</keycap> key will select the
- left contents and the <keycap>r</keycap> key will select contents
- from your right. The final output will be a file consisting of
- both parts, which can then be installed. This option is
- customarily used for files where settings have been modified by
- the user.</para>
-
- <para>Choosing to view the &man.diff.1; results again will show you
- the file differences just like &man.mergemaster.8; did before
- prompting you for an option.</para>
-
- <para>After &man.mergemaster.8; is done with the system files you
- will be prompted for other options. &man.mergemaster.8; may ask
- if you want to rebuild the password file and will finish up with
- an option to remove left-over temporary files.</para>
+ unchanged, and to delete the new version. This option is
+ not recommended, unless you see no reason to change the
+ current file. You can get help at any time by typing
+ <keycap>?</keycap> at the &man.mergemaster.8; prompt. If
+ the user chooses to skip a file, it will be presented again
+ after all other files have been dealt with.</para>
+
+ <para>Choosing to install the unmodified temporary file will
+ replace the current file with the new one. For most
+ unmodified files, this is the best option.</para>
+
+ <para>Choosing to merge the file will present you with a text
+ editor, and the contents of both files. You can now merge
+ them by reviewing both files side by side on the screen, and
+ choosing parts from both to create a finished product. When
+ the files are compared side by side, the <keycap>l</keycap>
+ key will select the left contents and the <keycap>r</keycap>
+ key will select contents from your right. The final output
+ will be a file consisting of both parts, which can then be
+ installed. This option is customarily used for files where
+ settings have been modified by the user.</para>
+
+ <para>Choosing to view the &man.diff.1; results again will
+ show you the file differences just like &man.mergemaster.8;
+ did before prompting you for an option.</para>
+
+ <para>After &man.mergemaster.8; is done with the system files
+ you will be prompted for other options. &man.mergemaster.8;
+ may ask if you want to rebuild the password file and will
+ finish up with an option to remove left-over temporary
+ files.</para>
</sect3>
<sect3>
<title>Manual Update</title>
- <para>If you wish to do the update manually, however,
- you cannot just copy over the files from
- <filename>/usr/src/etc</filename> to <filename>/etc</filename> and
- have it work. Some of these files must be <quote>installed</quote>
- first. This is because the <filename>/usr/src/etc</filename>
- directory <emphasis>is not</emphasis> a copy of what your
- <filename>/etc</filename> directory should look like. In addition,
- there are files that should be in <filename>/etc</filename> that are
- not in <filename>/usr/src/etc</filename>.</para>
+ <para>If you wish to do the update manually, however, you
+ cannot just copy over the files from
+ <filename>/usr/src/etc</filename> to
+ <filename>/etc</filename> and have it work. Some of these
+ files must be <quote>installed</quote> first. This is
+ because the <filename>/usr/src/etc</filename> directory
+ <emphasis>is not</emphasis> a copy of what your
+ <filename>/etc</filename> directory should look like. In
+ addition, there are files that should be in
+ <filename>/etc</filename> that are not in
+ <filename>/usr/src/etc</filename>.</para>
<para>If you are using &man.mergemaster.8; (as recommended),
- you can skip forward to the <link
- linkend="updating-upgrading-rebooting">next section</link>.</para>
+ you can skip forward to the
+ <link linkend="updating-upgrading-rebooting">next
+ section</link>.</para>
<para>The simplest way to do this by hand is to install the
- files into a new directory, and then work through them looking
- for differences.</para>
+ files into a new directory, and then work through them
+ looking for differences.</para>
<warning>
- <title>Backup Your Existing <filename>/etc</filename></title>
+ <title>Backup Your Existing
+ <filename>/etc</filename></title>
- <para>Although, in theory, nothing is going to touch this directory
- automatically, it is always better to be sure. So copy your
- existing <filename>/etc</filename> directory somewhere safe.
- Something like:</para>
+ <para>Although, in theory, nothing is going to touch this
+ directory automatically, it is always better to be sure.
+ So copy your existing <filename>/etc</filename> directory
+ somewhere safe. Something like:</para>
<screen>&prompt.root; <userinput>cp -Rp /etc /etc.old</userinput></screen>
- <para><option>-R</option> does a recursive copy, <option>-p</option>
- preserves times, ownerships on files and suchlike.</para>
+ <para><option>-R</option> does a recursive copy,
+ <option>-p</option> preserves times, ownerships on files
+ and suchlike.</para>
</warning>
- <para>You need to build a dummy set of directories to install the new
- <filename>/etc</filename> and other files into.
- <filename>/var/tmp/root</filename> is a reasonable choice, and
- there are a number of subdirectories required under this as
- well.</para>
+ <para>You need to build a dummy set of directories to install
+ the new <filename>/etc</filename> and other files into.
+ <filename>/var/tmp/root</filename> is a reasonable choice,
+ and there are a number of subdirectories required under this
+ as well.</para>
<screen>&prompt.root; <userinput>mkdir /var/tmp/root</userinput>
&prompt.root; <userinput>cd /usr/src/etc</userinput>
&prompt.root; <userinput>make DESTDIR=/var/tmp/root distrib-dirs distribution</userinput></screen>
- <para>This will build the necessary directory structure and install
- the files. A lot of the subdirectories that have been created under
- <filename>/var/tmp/root</filename> are empty and should be deleted.
- The simplest way to do this is to:</para>
+ <para>This will build the necessary directory structure and
+ install the files. A lot of the subdirectories that have
+ been created under <filename>/var/tmp/root</filename> are
+ empty and should be deleted. The simplest way to do this is
+ to:</para>
<screen>&prompt.root; <userinput>cd /var/tmp/root</userinput>
&prompt.root; <userinput>find -d . -type d | xargs rmdir 2&gt;/dev/null</userinput></screen>
- <para>This will remove all empty directories. (Standard error is
- redirected to <filename>/dev/null</filename> to prevent the warnings
- about the directories that are not empty.)</para>
-
- <para><filename>/var/tmp/root</filename> now contains all the files
- that should be placed in appropriate locations below
- <filename>/</filename>. You now have to go through each of these
- files, determining how they differ with your existing files.</para>
-
- <para>Note that some of the files that will have been installed in
- <filename>/var/tmp/root</filename> have a leading <quote>.</quote>.
- At the time of writing the only files like this are shell startup
- files in <filename>/var/tmp/root/</filename> and
- <filename>/var/tmp/root/root/</filename>, although there may be
- others (depending on when you are reading this). Make sure you use
- <command>ls -a</command> to catch them.</para>
-
- <para>The simplest way to do this is to use &man.diff.1; to compare
- the two files:</para>
+ <para>This will remove all empty directories. (Standard error
+ is redirected to <filename>/dev/null</filename> to prevent
+ the warnings about the directories that are not
+ empty.)</para>
+
+ <para><filename>/var/tmp/root</filename> now contains all the
+ files that should be placed in appropriate locations below
+ <filename>/</filename>. You now have to go through each of
+ these files, determining how they differ with your existing
+ files.</para>
+
+ <para>Note that some of the files that will have been
+ installed in <filename>/var/tmp/root</filename> have a
+ leading <quote>.</quote>. At the time of writing the only
+ files like this are shell startup files in
+ <filename>/var/tmp/root/</filename> and
+ <filename>/var/tmp/root/root/</filename>, although there may
+ be others (depending on when you are reading this). Make
+ sure you use <command>ls -a</command> to catch them.</para>
+
+ <para>The simplest way to do this is to use &man.diff.1; to
+ compare the two files:</para>
<screen>&prompt.root; <userinput>diff /etc/shells /var/tmp/root/etc/shells</userinput></screen>
<para>This will show you the differences between your
<filename>/etc/shells</filename> file and the new
- <filename>/var/tmp/root/etc/shells</filename> file. Use these to
- decide whether to merge in changes that you have made or whether to
- copy over your old file.</para>
+ <filename>/var/tmp/root/etc/shells</filename> file. Use
+ these to decide whether to merge in changes that you have
+ made or whether to copy over your old file.</para>
<tip>
<title>Name the New Root Directory
- (<filename>/var/tmp/root</filename>) with a Time Stamp, so You Can
- Easily Compare Differences Between Versions</title>
+ (<filename>/var/tmp/root</filename>) with a Time Stamp, so
+ You Can Easily Compare Differences Between
+ Versions</title>
- <para>Frequently rebuilding the world means that you have to update
- <filename>/etc</filename> frequently as well, which can be a bit
- of a chore.</para>
+ <para>Frequently rebuilding the world means that you have to
+ update <filename>/etc</filename> frequently as well, which
+ can be a bit of a chore.</para>
- <para>You can speed this process up by keeping a copy of the last
- set of changed files that you merged into
- <filename>/etc</filename>. The following procedure gives one
- idea of how to do this.</para>
+ <para>You can speed this process up by keeping a copy of the
+ last set of changed files that you merged into
+ <filename>/etc</filename>. The following procedure gives
+ one idea of how to do this.</para>
<procedure>
<step>
<para>Make the world as normal. When you want to update
- <filename>/etc</filename> and the other directories, give the
- target directory a name based on the current date. If you
- were doing this on the 14th of February 1998 you could do the
- following:</para>
+ <filename>/etc</filename> and the other directories,
+ give the target directory a name based on the current
+ date. If you were doing this on the 14th of February
+ 1998 you could do the following:</para>
<screen>&prompt.root; <userinput>mkdir /var/tmp/root-19980214</userinput>
&prompt.root; <userinput>cd /usr/src/etc</userinput>
@@ -2615,53 +2736,56 @@ Script done, &hellip;</screen>
</step>
<step>
- <para>Merge in the changes from this directory as outlined
- above.</para>
+ <para>Merge in the changes from this directory as
+ outlined above.</para>
<para><emphasis>Do not</emphasis> remove the
- <filename>/var/tmp/root-19980214</filename> directory when you
- have finished.</para>
+ <filename>/var/tmp/root-19980214</filename> directory
+ when you have finished.</para>
</step>
<step>
- <para>When you have downloaded the latest version of the source
- and remade it, follow step 1. This will give you a new
- directory, which might be called
- <filename>/var/tmp/root-19980221</filename> (if you wait a
- week between doing updates).</para>
+ <para>When you have downloaded the latest version of the
+ source and remade it, follow step 1. This will give
+ you a new directory, which might be called
+ <filename>/var/tmp/root-19980221</filename> (if you
+ wait a week between doing updates).</para>
</step>
<step>
- <para>You can now see the differences that have been made in the
- intervening week using &man.diff.1; to create a recursive
- diff between the two directories:</para>
+ <para>You can now see the differences that have been
+ made in the intervening week using &man.diff.1; to
+ create a recursive diff between the two
+ directories:</para>
<screen>&prompt.root; <userinput>cd /var/tmp</userinput>
&prompt.root; <userinput>diff -r root-19980214 root-19980221</userinput></screen>
- <para>Typically, this will be a much smaller set of differences
- than those between
+ <para>Typically, this will be a much smaller set of
+ differences than those between
<filename>/var/tmp/root-19980221/etc</filename> and
- <filename>/etc</filename>. Because the set of differences is
- smaller, it is easier to migrate those changes across into
- your <filename>/etc</filename> directory.</para>
+ <filename>/etc</filename>. Because the set of
+ differences is smaller, it is easier to migrate those
+ changes across into your <filename>/etc</filename>
+ directory.</para>
</step>
<step>
<para>You can now remove the older of the two
- <filename>/var/tmp/root-*</filename> directories:</para>
+ <filename>/var/tmp/root-*</filename>
+ directories:</para>
<screen>&prompt.root; <userinput>rm -rf /var/tmp/root-19980214</userinput></screen>
</step>
<step>
- <para>Repeat this process every time you need to merge in
- changes to <filename>/etc</filename>.</para>
+ <para>Repeat this process every time you need to merge
+ in changes to <filename>/etc</filename>.</para>
</step>
</procedure>
- <para>You can use &man.date.1; to automate the generation of the
- directory names:</para>
+ <para>You can use &man.date.1; to automate the generation of
+ the directory names:</para>
<screen>&prompt.root; <userinput>mkdir /var/tmp/root-`date "+%Y%m%d"`</userinput></screen>
</tip>
@@ -2671,9 +2795,9 @@ Script done, &hellip;</screen>
<sect2 id="updating-upgrading-rebooting">
<title>Rebooting</title>
- <para>You are now done. After you have verified that everything appears
- to be in the right place you can reboot the system. A simple
- &man.shutdown.8; should do it:</para>
+ <para>You are now done. After you have verified that everything
+ appears to be in the right place you can reboot the system. A
+ simple &man.shutdown.8; should do it:</para>
<screen>&prompt.root; <userinput>shutdown -r now</userinput></screen>
</sect2>
@@ -2681,16 +2805,17 @@ Script done, &hellip;</screen>
<sect2>
<title>Finished</title>
- <para>You should now have successfully upgraded your &os; system.
- Congratulations.</para>
+ <para>You should now have successfully upgraded your &os;
+ system. Congratulations.</para>
- <para>If things went slightly wrong, it is easy to rebuild a particular
- piece of the system. For example, if you accidentally deleted
- <filename>/etc/magic</filename> as part of the upgrade or merge of
- <filename>/etc</filename>, the &man.file.1; command will stop working.
- In this case, the fix would be to run:</para>
+ <para>If things went slightly wrong, it is easy to rebuild a
+ particular piece of the system. For example, if you
+ accidentally deleted <filename>/etc/magic</filename> as part
+ of the upgrade or merge of <filename>/etc</filename>, the
+ &man.file.1; command will stop working. In this case, the fix
+ would be to run:</para>
- <screen>&prompt.root; <userinput>cd /usr/src/usr.bin/file</userinput>
+ <screen>&prompt.root; <userinput>cd /usr/src/usr.bin/file</userinput>
&prompt.root; <userinput>make all install</userinput></screen>
</sect2>
@@ -2700,14 +2825,15 @@ Script done, &hellip;</screen>
<qandaset>
<qandaentry>
<question>
- <para>Do I need to re-make the world for every change?</para>
+ <para>Do I need to re-make the world for every
+ change?</para>
</question>
<answer>
- <para>There is no easy answer to this one, as it depends on the
- nature of the change. For example, if you just ran
- <application>CVSup</application>, and it has shown the
- following files as being updated:</para>
+ <para>There is no easy answer to this one, as it depends
+ on the nature of the change. For example, if you just
+ ran <application>Subversion</application>, and it has
+ shown the following files as being updated:</para>
<screen><filename>src/games/cribbage/instr.c</filename>
<filename>src/games/sail/pl_main.c</filename>
@@ -2715,76 +2841,82 @@ Script done, &hellip;</screen>
<filename>src/release/sysinstall/media.c</filename>
<filename>src/share/mk/bsd.port.mk</filename></screen>
- <para>it probably is not worth rebuilding the entire world.
- You could just go to the appropriate sub-directories and
- <command>make all install</command>, and that's about it. But
- if something major changed, for example
- <filename>src/lib/libc/stdlib</filename> then you should either
- re-make the world, or at least those parts of it that are
- statically linked (as well as anything else you might have added
- that is statically linked).</para>
-
- <para>At the end of the day, it is your call. You might be happy
- re-making the world every fortnight say, and let changes
- accumulate over that fortnight. Or you might want to re-make
- just those things that have changed, and be confident you can
- spot all the dependencies.</para>
-
- <para>And, of course, this all depends on how often you want to
- upgrade, and whether you are tracking &os.stable; or
- &os.current;.</para>
+ <para>it probably is not worth rebuilding the entire
+ world. You could just go to the appropriate
+ sub-directories and <command>make all install</command>,
+ and that is about it. But if something major changed,
+ for example <filename>src/lib/libc/stdlib</filename>
+ then you should either re-make the world, or at least
+ those parts of it that are statically linked (as well as
+ anything else you might have added that is statically
+ linked).</para>
+
+ <para>At the end of the day, it is your call. You might
+ be happy re-making the world every fortnight say, and
+ let changes accumulate over that fortnight. Or you
+ might want to re-make just those things that have
+ changed, and be confident you can spot all the
+ dependencies.</para>
+
+ <para>And, of course, this all depends on how often you
+ want to upgrade, and whether you are tracking
+ &os.stable; or &os.current;.</para>
</answer>
</qandaentry>
<qandaentry>
<question>
- <indexterm><primary>signal 11</primary></indexterm>
-
- <para>My compile failed with lots of signal 11 (or other signal
- number) errors. What has happened?</para>
+ <para>My compile failed with lots of signal 11 (or other
+ signal number) errors. What has happened?</para>
</question>
<answer>
- <para>This is normally indicative of hardware problems.
- (Re)making the world is an effective way to stress test your
- hardware, and will frequently throw up memory problems. These
- normally manifest themselves as the compiler mysteriously dying
- on receipt of strange signals.</para>
-
- <para>A sure indicator of this is if you can restart the make and
- it dies at a different point in the process.</para>
+ <indexterm><primary>signal 11</primary></indexterm>
- <para>In this instance there is little you can do except start
- swapping around the components in your machine to determine
- which one is failing.</para>
+ <para>This is normally indicative of hardware problems.
+ (Re)making the world is an effective way to stress test
+ your hardware, and will frequently throw up memory
+ problems. These normally manifest themselves as the
+ compiler mysteriously dying on receipt of strange
+ signals.</para>
+
+ <para>A sure indicator of this is if you can restart the
+ make and it dies at a different point in the
+ process.</para>
+
+ <para>In this instance there is little you can do except
+ start swapping around the components in your machine to
+ determine which one is failing.</para>
</answer>
</qandaentry>
<qandaentry>
<question>
- <para>Can I remove <filename>/usr/obj</filename> when I have
- finished?</para>
+ <para>Can I remove <filename>/usr/obj</filename> when I
+ have finished?</para>
</question>
<answer>
<para>The short answer is yes.</para>
- <para><filename>/usr/obj</filename> contains all the object files
- that were produced during the compilation phase. Normally, one
- of the first steps in the <command>make buildworld</command>
- process is to remove this directory and start afresh. In this
- case, keeping <filename>/usr/obj</filename> around after you
- have finished makes little sense, and will free up a large
+ <para><filename>/usr/obj</filename> contains all the
+ object files that were produced during the compilation
+ phase. Normally, one of the first steps in the
+ <command>make buildworld</command> process is to remove
+ this directory and start afresh. In this case, keeping
+ <filename>/usr/obj</filename> around after you have
+ finished makes little sense, and will free up a large
chunk of disk space (currently about 2&nbsp;GB).</para>
<para>However, if you know what you are doing you can have
- <command>make buildworld</command> skip this step. This will
- make subsequent builds run much faster, since most of sources
- will not need to be recompiled. The flip side of this is that
- subtle dependency problems can creep in, causing your build to
- fail in odd ways. This frequently generates noise on the &os;
- mailing lists, when one person complains that their build has
- failed, not realizing that it is because they have tried to cut
+ <command>make buildworld</command> skip this step. This
+ will make subsequent builds run much faster, since most
+ of the sources will not need to be recompiled. The flip
+ side of this is that subtle dependency problems can
+ creep in, causing your build to fail in odd ways. This
+ frequently generates noise on the &os; mailing lists,
+ when one person complains that their build has failed,
+ not realizing that it is because they have tried to cut
corners.</para>
</answer>
</qandaentry>
@@ -2795,22 +2927,24 @@ Script done, &hellip;</screen>
</question>
<answer>
- <para>This depends on how far through the process you got before
- you found a problem.</para>
+ <para>This depends on how far through the process you got
+ before you found a problem.</para>
- <para><emphasis>In general</emphasis> (and this is not a hard and
- fast rule) the <command>make buildworld</command> process
- builds new copies of essential tools (such as &man.gcc.1;, and
+ <para><emphasis>In general</emphasis> (and this is not a
+ hard and fast rule) the
+ <command>make buildworld</command> process builds new
+ copies of essential tools (such as &man.gcc.1;, and
&man.make.1;) and the system libraries. These tools and
- libraries are then installed. The new tools and libraries are
- then used to rebuild themselves, and are installed again. The
- entire system (now including regular user programs, such as
- &man.ls.1; or &man.grep.1;) is then rebuilt with the new
- system files.</para>
+ libraries are then installed. The new tools and
+ libraries are then used to rebuild themselves, and are
+ installed again. The entire system (now including
+ regular user programs, such as &man.ls.1; or
+ &man.grep.1;) is then rebuilt with the new system
+ files.</para>
- <para>If you are at the last stage, and you know it (because you
- have looked through the output that you were storing) then you
- can (fairly safely) do:</para>
+ <para>If you are at the last stage, and you know it
+ (because you have looked through the output that you
+ were storing) then you can (fairly safely) do:</para>
<screen><emphasis>&hellip; fix the problem &hellip;</emphasis>
&prompt.root; <userinput>cd /usr/src</userinput>
@@ -2825,12 +2959,12 @@ Script done, &hellip;</screen>
Building everything..
--------------------------------------------------------------</screen>
- <para>in the <command>make buildworld</command> output then it is
- probably fairly safe to do so.</para>
+ <para>in the <command>make buildworld</command> output
+ then it is probably fairly safe to do so.</para>
- <para>If you do not see that message, or you are not sure, then it
- is always better to be safe than sorry, and restart the build
- from scratch.</para>
+ <para>If you do not see that message, or you are not sure,
+ then it is always better to be safe than sorry, and
+ restart the build from scratch.</para>
</answer>
</qandaentry>
@@ -2847,88 +2981,85 @@ Building everything..
<listitem>
<para>Put the <filename>/usr/src</filename> and
- <filename>/usr/obj</filename> directories on separate
- file systems held on separate disks. If possible, put these
- disks on separate disk controllers.</para>
+ <filename>/usr/obj</filename> directories on
+ separate file systems held on separate disks. If
+ possible, put these disks on separate disk
+ controllers.</para>
</listitem>
<listitem>
- <para>Better still, put these file systems across multiple
- disks using the &man.ccd.4; (concatenated disk
- driver) device.</para>
+ <para>Better still, put these file systems across
+ multiple disks using the &man.ccd.4; (concatenated
+ disk driver) device.</para>
</listitem>
<listitem>
- <para>Turn off profiling (set <quote>NO_PROFILE=true</quote>
- in <filename>/etc/make.conf</filename>). You almost
+ <para>Turn off profiling (set
+ <quote>NO_PROFILE=true</quote> in
+ <filename>/etc/make.conf</filename>). You almost
certainly do not need it.</para>
</listitem>
<listitem>
- <para>Also in <filename>/etc/make.conf</filename>, set
- <makevar>CFLAGS</makevar> to something like <option>-O
- -pipe</option>. The optimization <option>-O2</option>
- is much slower, and the optimization difference between
- <option>-O</option> and <option>-O2</option> is normally
- negligible. <option>-pipe</option> lets the compiler use
- pipes rather than temporary files for communication, which
- saves disk access (at the expense of memory).</para>
- </listitem>
-
- <listitem>
<para>Pass the
- <option>-j<replaceable>n</replaceable></option> option to
- &man.make.1; to run multiple processes in parallel. This
- usually helps regardless of whether you have a single or
- a multi processor machine.</para>
+ <option>-j<replaceable>n</replaceable></option>
+ option to &man.make.1; to run multiple processes in
+ parallel. This usually helps regardless of whether
+ you have a single or a multi processor
+ machine.</para>
</listitem>
<listitem>
- <para>The file system holding <filename>/usr/src</filename>
- can be mounted (or remounted) with the
- <option>noatime</option> option. This prevents the
- file system from recording the file access time.
- You probably do not need this information anyway.</para>
+ <para>The file system holding
+ <filename>/usr/src</filename> can be mounted (or
+ remounted) with the <option>noatime</option> option.
+ This prevents the file system from recording the
+ file access time. You probably do not need this
+ information anyway.</para>
<screen>&prompt.root; <userinput>mount -u -o noatime /usr/src</userinput></screen>
<warning>
- <para>The example assumes <filename>/usr/src</filename> is
- on its own file system. If it is not (if it is a part of
- <filename>/usr</filename> for example) then you will
- need to use that file system mount point, and not
- <filename>/usr/src</filename>.</para>
+ <para>The example assumes
+ <filename>/usr/src</filename> is on its own file
+ system. If it is not (if it is a part of
+ <filename>/usr</filename> for example) then you
+ will need to use that file system mount point, and
+ not <filename>/usr/src</filename>.</para>
</warning>
</listitem>
<listitem>
- <para>The file system holding <filename>/usr/obj</filename>
- can be mounted (or remounted) with the
- <option>async</option> option. This causes disk writes to
- happen asynchronously. In other words, the write completes
- immediately, and the data is written to the disk a few
- seconds later. This allows writes to be clustered
- together, and can be a dramatic performance boost.</para>
+ <para>The file system holding
+ <filename>/usr/obj</filename> can be mounted (or
+ remounted) with the <option>async</option> option.
+ This causes disk writes to happen asynchronously.
+ In other words, the write completes immediately, and
+ the data is written to the disk a few seconds later.
+ This allows writes to be clustered together, and can
+ be a dramatic performance boost.</para>
<warning>
- <para>Keep in mind that this option makes your file system
- more fragile. With this option there is an increased
- chance that, should power fail, the file system will be in
- an unrecoverable state when the machine restarts.</para>
-
- <para>If <filename>/usr/obj</filename> is the only thing on
- this file system then it is not a problem. If you have
- other, valuable data on the same file system then ensure
- your backups are fresh before you enable this
- option.</para>
+ <para>Keep in mind that this option makes your file
+ system more fragile. With this option there is an
+ increased chance that, should power fail, the file
+ system will be in an unrecoverable state when the
+ machine restarts.</para>
+
+ <para>If <filename>/usr/obj</filename> is the only
+ thing on this file system then it is not a
+ problem. If you have other, valuable data on the
+ same file system then ensure your backups are
+ fresh before you enable this option.</para>
</warning>
<screen>&prompt.root; <userinput>mount -u -o async /usr/obj</userinput></screen>
<warning>
- <para>As above, if <filename>/usr/obj</filename> is not on
- its own file system, replace it in the example with the
- name of the appropriate mount point.</para>
+ <para>As above, if <filename>/usr/obj</filename> is
+ not on its own file system, replace it in the
+ example with the name of the appropriate mount
+ point.</para>
</warning>
</listitem>
</itemizedlist>
@@ -2977,71 +3108,79 @@ Building everything..
</author>
</authorgroup>
</sect1info>
- <title>Deleting obsolete files, directories and libraries</title>
+ <title>Deleting Obsolete Files, Directories and Libraries</title>
+
<indexterm>
- <primary>Deleting obsolete files, directories and libraries</primary>
+ <primary>Deleting obsolete files, directories and
+ libraries</primary>
</indexterm>
- <para>As a part of the &os; development lifecycle, it happens from time
- to time that files and their contents become obsolete. This may be
- because their functionality is implemented elsewhere, the version number
- of the library has changed or it was removed from the system entirely.
- This includes old files, libraries and directories, which should
- be removed when updating the system. The benefit for the user is that
- the system is not cluttered with old files which take up unnecessary
- space on the storage (and backup) medium. Additionally, if the old
- library had a security or stability issue, you should update to the
- newer library to keep your system safe and prevent crashes caused by
- the old library implementation. The files, directories, and libraries
- that are considered obsolete are listed in
- <filename>/usr/src/ObsoleteFiles.inc</filename>. The following
- instructions will help you removing these obsolete files during the
- system upgrade process.</para>
-
- <para>We assume you are following the steps outlined in <xref
- linkend="canonical-build"/>. After the <command>make
- <maketarget>installworld</maketarget></command> and the subsequent
- <command>mergemaster</command> commands have finished successfully, you
- should check for obsolete files and libraries as follows:</para>
+ <para>As a part of the &os; development lifecycle, it happens from
+ time to time that files and their contents become obsolete.
+ This may be because their functionality is implemented
+ elsewhere, the version number of the library has changed or it
+ was removed from the system entirely. This includes old files,
+ libraries and directories, which should be removed when updating
+ the system. The benefit for the user is that the system is not
+ cluttered with old files which take up unnecessary space on the
+ storage (and backup) medium. Additionally, if the old library
+ had a security or stability issue, you should update to the
+ newer library to keep your system safe and prevent crashes
+ caused by the old library implementation. The files,
+ directories, and libraries that are considered obsolete are
+ listed in <filename>/usr/src/ObsoleteFiles.inc</filename>. The
+ following instructions will help you removing these obsolete
+ files during the system upgrade process.</para>
+
+ <para>We assume you are following the steps outlined in
+ <xref linkend="canonical-build"/>. After the
+ <command>make <maketarget>installworld</maketarget></command>
+ and the subsequent <command>mergemaster</command> commands have
+ finished successfully, you should check for obsolete files and
+ libraries as follows:</para>
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make check-old</userinput></screen>
- <para>If any obsolete files are found, they can be deleted using the
- following commands:</para>
+ <para>If any obsolete files are found, they can be deleted using
+ the following commands:</para>
<screen>&prompt.root; <userinput>make delete-old</userinput></screen>
<tip>
<para>See <filename>/usr/src/Makefile</filename>
- for more targets of interest.</para>
+ for more targets of interest.</para>
</tip>
- <para>A prompt is displayed before deleting each obsolete file. You can
- skip the prompt and let the system remove these files automatically by
- using the <makevar>BATCH_DELETE_OLD_FILES</makevar> make-variable as
+ <para>A prompt is displayed before deleting each obsolete file.
+ You can skip the prompt and let the system remove these files
+ automatically by using the
+ <makevar>BATCH_DELETE_OLD_FILES</makevar> make-variable as
follows:</para>
<screen>&prompt.root; <userinput>make -DBATCH_DELETE_OLD_FILES delete-old</userinput></screen>
- <para>You can also achieve the same goal by piping these commands through
- <command>yes</command> like this:</para>
+ <para>You can also achieve the same goal by piping these commands
+ through <command>yes</command> like this:</para>
<screen>&prompt.root; <userinput>yes|make delete-old</userinput></screen>
<warning>
<title>Warning</title>
- <para>Deleting obsolete files will break applications that still
- depend on those obsolete files. This is especially true for old
- libraries. In most cases, you need to recompile the programs, ports,
- or libraries that used the old library before <command>make
- <maketarget>delete-old-libs</maketarget></command> is executed.</para>
+
+ <para>Deleting obsolete files will break applications that
+ still depend on those obsolete files. This is especially true
+ for old libraries. In most cases, you need to recompile the
+ programs, ports, or libraries that used the old library before
+ <command>make
+ <maketarget>delete-old-libs</maketarget></command> is
+ executed.</para>
</warning>
- <para>Utilities for checking shared library dependencies are available from
- the Ports Collection in <filename
- role="package">sysutils/libchk</filename> or <filename
- role="package">sysutils/bsdadminscripts</filename>.</para>
+ <para>Utilities for checking shared library dependencies are
+ available from the Ports Collection in
+ <filename role="package">sysutils/libchk</filename> or <filename
+ role="package">sysutils/bsdadminscripts</filename>.</para>
<para>Obsolete shared libraries can conflict with newer libraries,
causing messages like these:</para>
@@ -3057,12 +3196,13 @@ Building everything..
&prompt.root; <userinput>pkg_info -W /usr/local/lib/libXext.so</userinput>
/usr/local/lib/libXext.so was installed by package libXext-1.1.1,1</screen>
- <para>Then deinstall, rebuild and reinstall the port. The <filename
- role="package">ports-mgmt/portmaster</filename> and <filename
- role="package">ports-mgmt/portupgrade</filename> utilities can be used to
- automate this process. After you've made sure that all ports are rebuilt
- and do not use the old libraries anymore, you can delete them using the
- following command:</para>
+ <para>Then deinstall, rebuild and reinstall the port. The
+ <filename role="package">ports-mgmt/portmaster</filename> and
+ <filename role="package">ports-mgmt/portupgrade</filename>
+ utilities can be used to automate this process. After you have
+ made sure that all ports are rebuilt and do not use the old
+ libraries any more, you can delete them using the following
+ command:</para>
<screen>&prompt.root; <userinput>make delete-old-libs</userinput></screen>
</sect1>
@@ -3079,6 +3219,7 @@ Building everything..
</sect1info>
<title>Tracking for Multiple Machines</title>
+
<indexterm>
<primary>NFS</primary>
<secondary>installing multiple machines</secondary>
@@ -3102,32 +3243,32 @@ Building everything..
binaries. From that set, choose a machine to be the
<emphasis>build machine</emphasis>. It is going to be the
machine that the world and kernel are built on. Ideally, it
- should be a fast machine that has sufficient spare CPU to
- run <command>make buildworld</command> and
+ should be a fast machine that has sufficient spare CPU to run
+ <command>make buildworld</command> and
<command>make buildkernel</command>. You will also want to
- choose a machine to be the <emphasis>test
- machine</emphasis>, which will test software updates before they
- are put into production. This <emphasis>must</emphasis> be a
- machine that you can afford to have down for an extended
- period of time. It can be the build machine, but need not be.</para>
+ choose a machine to be the <emphasis>test machine</emphasis>,
+ which will test software updates before they are put into
+ production. This <emphasis>must</emphasis> be a machine that
+ you can afford to have down for an extended period of time.
+ It can be the build machine, but need not be.</para>
<para>All the machines in this build set need to mount
<filename>/usr/obj</filename> and
<filename>/usr/src</filename> from the same machine, and at
- the same point. Ideally, those are on two different drives
- on the build machine, but they can be NFS mounted on that machine
+ the same point. Ideally, those are on two different drives on
+ the build machine, but they can be NFS mounted on that machine
as well. If you have multiple build sets,
- <filename>/usr/src</filename> should be on one build machine, and
- NFS mounted on the rest.</para>
+ <filename>/usr/src</filename> should be on one build machine,
+ and NFS mounted on the rest.</para>
<para>Finally make sure that
<filename>/etc/make.conf</filename> and
- <filename>/etc/src.conf</filename> on all the machines in
- the build set agrees with the build machine. That means that
- the build machine must build all the parts of the base
- system that any machine in the build set is going to
- install. Also, each build machine should have its kernel
- name set with <makevar>KERNCONF</makevar> in
+ <filename>/etc/src.conf</filename> on all the machines in the
+ build set agrees with the build machine. That means that the
+ build machine must build all the parts of the base system that
+ any machine in the build set is going to install. Also, each
+ build machine should have its kernel name set with
+ <makevar>KERNCONF</makevar> in
<filename>/etc/make.conf</filename>, and the build machine
should list them all in <makevar>KERNCONF</makevar>, listing
its own kernel first. The build machine must have the kernel
@@ -3140,19 +3281,19 @@ Building everything..
<title>The Base System</title>
<para>Now that all that is done, you are ready to build
- everything. Build the kernel and world as described in <xref
- linkend="make-buildworld"/> on the build machine,
- but do not install anything. After the build has finished, go
- to the test machine, and install the kernel you just
- built. If this machine mounts <filename>/usr/src</filename>
- and <filename>/usr/obj</filename> via NFS, when you reboot
- to single user you will need to enable the network and mount
+ everything. Build the kernel and world as described in
+ <xref linkend="make-buildworld"/> on the build machine, but do
+ not install anything. After the build has finished, go to the
+ test machine, and install the kernel you just built. If this
+ machine mounts <filename>/usr/src</filename> and
+ <filename>/usr/obj</filename> via NFS, when you reboot to
+ single user you will need to enable the network and mount
them. The easiest way to do this is to boot to multi-user,
then run <command>shutdown now</command> to go to single user
- mode. Once there, you can install the new kernel and world and run
- <command>mergemaster</command> just as you normally would. When
- done, reboot to return to normal multi-user operations for this
- machine.</para>
+ mode. Once there, you can install the new kernel and world
+ and run <command>mergemaster</command> just as you normally
+ would. When done, reboot to return to normal multi-user
+ operations for this machine.</para>
<para>After you are certain that everything on the test
machine is working properly, use the same procedure to
@@ -3165,16 +3306,16 @@ Building everything..
<para>The same ideas can be used for the ports tree. The first
critical step is mounting <filename>/usr/ports</filename> from
- the same machine to all the machines in the build set. You can
- then set up <filename>/etc/make.conf</filename> properly to share
- distfiles. You should set <makevar>DISTDIR</makevar> to a
- common shared directory that is writable by whichever user
- <username>root</username> is mapped to by your NFS mounts. Each
- machine should set <makevar>WRKDIRPREFIX</makevar> to a
- local build directory. Finally, if you are going to be
- building and distributing packages, you should set
- <makevar>PACKAGES</makevar> to a directory similar to
- <makevar>DISTDIR</makevar>.</para>
+ the same machine to all the machines in the build set. You
+ can then set up <filename>/etc/make.conf</filename> properly
+ to share distfiles. You should set <makevar>DISTDIR</makevar>
+ to a common shared directory that is writable by whichever
+ user <username>root</username> is mapped to by your NFS
+ mounts. Each machine should set
+ <makevar>WRKDIRPREFIX</makevar> to a local build directory.
+ Finally, if you are going to be building and distributing
+ packages, you should set <makevar>PACKAGES</makevar> to a
+ directory similar to <makevar>DISTDIR</makevar>.</para>
</sect2>
</sect1>
</chapter>
diff --git a/en_US.ISO8859-1/books/handbook/desktop/chapter.xml b/en_US.ISO8859-1/books/handbook/desktop/chapter.xml
index b20e512869..8beba18e48 100644
--- a/en_US.ISO8859-1/books/handbook/desktop/chapter.xml
+++ b/en_US.ISO8859-1/books/handbook/desktop/chapter.xml
@@ -22,8 +22,8 @@
<para>FreeBSD can run a wide variety of desktop applications, such
as browsers and word processors. Most of these are available as
- packages or can be automatically built from the Ports Collection.
- Many new users expect to find these kinds of
+ packages or can be automatically built from the Ports
+ Collection. Many new users expect to find these kinds of
applications on their desktop. This chapter will show you how
to install some popular desktop applications effortlessly,
either from their packages or from the Ports Collection.</para>
@@ -61,12 +61,13 @@
<application>KOffice</application>,
<application>AbiWord</application>,
<application>The GIMP</application>,
- <application>OpenOffice.org</application>,
+ <application>Apache OpenOffice</application>,
<application>LibreOffice</application>)</para>
</listitem>
<listitem>
- <para>Document Viewers (such as <application>&acrobat.reader;</application>,
+ <para>Document Viewers (such as
+ <application>&acrobat.reader;</application>,
<application>gv</application>,
<application>Xpdf</application>,
<application>GQview</application>)</para>
@@ -169,12 +170,13 @@
<entry>medium</entry>
<entry><application>Gtk+</application></entry>
</row>
- </tbody>
+ </tbody>
</tgroup>
</informaltable>
<sect2>
<title>Firefox</title>
+
<indexterm>
<primary><application>Firefox</application></primary>
</indexterm>
@@ -184,7 +186,8 @@
features a very standards-compliant HTML display engine,
tabbed browsing, popup blocking, extensions, improved
security, and more. <application>Firefox</application> is
- based on the <application>Mozilla</application> codebase.</para>
+ based on the <application>Mozilla</application>
+ codebase.</para>
<para>Install the package by typing:</para>
@@ -212,8 +215,9 @@
<title>Firefox and &java; Plugin</title>
<note>
- <para>In this section and in the next two sections, we assume you have
- already installed <application>Firefox</application>.</para>
+ <para>In this section and in the next two sections, we assume
+ you have already installed
+ <application>Firefox</application>.</para>
</note>
<para>Install <application>OpenJDK 6</application>
@@ -222,8 +226,9 @@
<screen>&prompt.root; <userinput>cd /usr/ports/java/openjdk6</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
- <para>Then install the <filename
- role="package">java/icedtea-web</filename> port:</para>
+ <para>Then install the
+ <filename role="package">java/icedtea-web</filename>
+ port:</para>
<screen>&prompt.root; <userinput>cd /usr/ports/java/icedtea-web</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
@@ -234,8 +239,8 @@
<para>Start your browser, enter <literal>about:plugins</literal>
in the location bar and press <keycap>Enter</keycap>. A page
listing the installed plugins will be displayed; the
- <application>&java;</application> plugin should be listed there
- now.</para>
+ <application>&java;</application> plugin should be listed
+ there now.</para>
<para>If the browser is unable to find the plugin, each user
will have to run the following command and relaunch the
@@ -247,15 +252,16 @@
<sect2 id="moz-flash-plugin">
- <title>Firefox and &adobe; &flash; Plugin</title>
+ <title>Firefox and &adobe; &flash; Plugin</title>
+
<indexterm>
<primary>Flash</primary>
</indexterm>
- <para>The &adobe; &flash; plugin is not available for &os;. However,
- a software layer (wrapper) for running the Linux version of the plugin
- exists. This wrapper also supports &adobe; &acrobat; plugin,
- &realplayer; plugin and more.</para>
+ <para>The &adobe; &flash; plugin is not available for &os;.
+ However, a software layer (wrapper) for running the Linux
+ version of the plugin exists. This wrapper also supports
+ &adobe; &acrobat; plugin, &realplayer; plugin and more.</para>
<para>According to the version of &os; you run various steps are
required:</para>
@@ -264,14 +270,14 @@
<step>
<title>Under &os;&nbsp;7.X</title>
- <para>Install the <filename
- role="package">www/nspluginwrapper</filename> port. This
- port requires <filename
- role="package">emulators/linux_base-fc4</filename> which
+ <para>Install the
+ <filename role="package">www/nspluginwrapper</filename>
+ port. This port requires <filename
+ role="package">emulators/linux_base-fc4</filename> which
is a large port.</para>
- <para>The next step is to install the <filename
- role="package">www/linux-flashplugin9</filename>
+ <para>The next step is to install the
+ <filename role="package">www/linux-flashplugin9</filename>
port. This will install &flash; 9.X, this version is
known to run correctly under &os;&nbsp;7.X.</para>
</step>
@@ -279,14 +285,15 @@
<step>
<title>Under &os;&nbsp;8.X or Newer</title>
- <para>Install the <filename
- role="package">www/nspluginwrapper</filename> port. This
- port requires <filename
- role="package">emulators/linux_base-f10</filename> which
+ <para>Install the
+ <filename role="package">www/nspluginwrapper</filename>
+ port. This port requires <filename
+ role="package">emulators/linux_base-f10</filename> which
is a large port.</para>
<para>The next step is to install &flash; 11.X from the
- <filename role="package">www/linux-f10-flashplugin11</filename>
+ <filename
+ role="package">www/linux-f10-flashplugin11</filename>
port.</para>
<para>This version will require the following link to be
@@ -296,11 +303,11 @@
/usr/local/lib/browser_plugins/</userinput></screen>
<para>The <filename
- class="directory">/usr/local/lib/browser_plugins</filename>
+ class="directory">/usr/local/lib/browser_plugins</filename>
directory will have to be created manually if it does not
exist on the system.</para>
- </step>
- </procedure>
+ </step>
+ </procedure>
<para>Once the right &flash; port, according to the &os; version
you run,
@@ -319,27 +326,30 @@
<sect2 id="moz-swfdec-flash-plugin">
<title>Firefox and Swfdec &flash; Plugin</title>
- <para>Swfdec is the library for decoding and rendering &flash; animations.
- And Swfdec-Mozilla is a plugin for <application>Firefox</application>
- browsers that uses the Swfdec library for playing SWF files.
- It is still in heavy development.</para>
+ <para>Swfdec is the library for decoding and rendering &flash;
+ animations. And Swfdec-Mozilla is a plugin for
+ <application>Firefox</application> browsers that uses the
+ Swfdec library for playing SWF files. It is still in heavy
+ development.</para>
<para>If you cannot or do not want to compile it, just install
the package from the network:</para>
<screen>&prompt.root; <userinput>pkg_add -r swfdec-plugin</userinput></screen>
- <para>If the package is not available, you can compile and install it
- from the Ports Collection:</para>
+ <para>If the package is not available, you can compile and
+ install it from the Ports Collection:</para>
<screen>&prompt.root; <userinput>cd /usr/ports/www/swfdec-plugin</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
- <para>Then, restart your browser for this plugin taking effect.</para>
+ <para>Then, restart your browser for this plugin taking
+ effect.</para>
</sect2>
<sect2>
<title>Opera</title>
+
<indexterm>
<primary><application>Opera</application></primary>
</indexterm>
@@ -348,13 +358,13 @@
full-featured and standards-compliant browser. It also
comes with a built-in mail and news reader, an IRC client,
an RSS/Atom feeds reader and much more. Despite this,
- <application>Opera</application> is relatively lightweight
- and very fast. It comes in two flavors: a <quote>native</quote>
+ <application>Opera</application> is relatively lightweight and
+ very fast. It comes in two flavors: a <quote>native</quote>
FreeBSD version and a version that runs under Linux
emulation.</para>
- <para>To browse the Web with the FreeBSD version of <application>Opera</application>,
- install the package:</para>
+ <para>To browse the Web with the FreeBSD version of
+ <application>Opera</application>, install the package:</para>
<screen>&prompt.root; <userinput>pkg_add -r opera</userinput></screen>
@@ -373,9 +383,9 @@
<para>The &adobe; &flash; plugin is not available for &os;.
However, a &linux; version of the plugin exists. To install
this version, the <filename
- role="package">www/linux-f10-flashplugin11</filename> port has
- to be installed, then install the port <filename
- role="package">www/opera-linuxplugins</filename>:</para>
+ role="package">www/linux-f10-flashplugin11</filename> port
+ has to be installed, then install the port <filename
+ role="package">www/opera-linuxplugins</filename>:</para>
<screen>&prompt.root; <userinput>cd /usr/ports/www/linux-f10-flashplugin11</userinput>
&prompt.root; <userinput>make install clean</userinput>
@@ -389,11 +399,12 @@
<para>To add the <application>&java;</application> plugin,
follow the <link linkend="moz-java-plugin">instructions for
- Firefox</link>.</para>
+ Firefox</link>.</para>
</sect2>
<sect2>
<title>Konqueror</title>
+
<indexterm>
<primary><application>Konqueror</application></primary>
</indexterm>
@@ -402,12 +413,13 @@
<application>KDE</application> but it can also be used outside
of <application>KDE</application> by installing
<filename role="package">x11/kdebase3</filename>.
- <application>Konqueror</application> is much more than a browser,
- it is also a file manager and a multimedia viewer.</para>
+ <application>Konqueror</application> is much more than a
+ browser, it is also a file manager and a multimedia
+ viewer.</para>
<para>There is also a set of plugins available for
- <application>Konqueror</application>,
- available in <filename role="package">misc/konq-plugins</filename>.</para>
+ <application>Konqueror</application>, available in
+ <filename role="package">misc/konq-plugins</filename>.</para>
<para><application>Konqueror</application> supports WebKit as
well as its own KHTML. WebKit is used by many modern browsers
@@ -421,25 +433,27 @@
<quote>Settings</quote>, <quote>Configure Konqueror</quote>,
then <quote>Change KHTML to WebKit</quote>.</para>
- <para><application>Konqueror</application> also supports <application>&flash;</application>; a <quote>How To</quote> guide
- for getting <application>&flash;</application> support on
- <application>Konqueror</application>
- is available at <ulink url="http://freebsd.kde.org/howtos/konqueror-flash.php"></ulink>.</para>
+ <para><application>Konqueror</application> also supports
+ <application>&flash;</application>; a <quote>How To</quote>
+ guide for getting <application>&flash;</application> support
+ on <application>Konqueror</application> is available at <ulink
+ url="http://freebsd.kde.org/howtos/konqueror-flash.php"></ulink>.</para>
</sect2>
<sect2>
<title>Chromium</title>
+
<indexterm>
<primary><application>Chromium</application></primary>
</indexterm>
<para><application>Chromium</application> is an open-source
browser project that aims to build a safer, faster, and more
- stable web browsing experience. <application>Chromium</application>
- features tabbed browsing, popup blocking, extensions, and much
- more. <application>Chromium</application> is the open-source
- project upon which the Google Chrome web browser is
- based.</para>
+ stable web browsing experience.
+ <application>Chromium</application> features tabbed browsing,
+ popup blocking, extensions, and much more.
+ <application>Chromium</application> is the open-source project
+ upon which the Google Chrome web browser is based.</para>
<para><application>Chromium</application> can be installed as a
package by typing:</para>
@@ -467,26 +481,27 @@
is already installed.</para>
</note>
- <para>Install <application>OpenJDK&nbsp;6</application> through the
- Ports Collection by typing:</para>
+ <para>Install <application>OpenJDK&nbsp;6</application> through
+ the Ports Collection by typing:</para>
<screen>&prompt.root; <userinput>cd /usr/ports/java/openjdk6
&prompt.root; make install clean</userinput></screen>
- <para>Next, install <filename
- role="package">java/icedtea-web</filename> from the Ports
- Collection:</para>
+ <para>Next, install
+ <filename role="package">java/icedtea-web</filename> from the
+ Ports Collection:</para>
<screen>&prompt.root; <userinput>cd /usr/ports/java/icedtea-web
&prompt.root; make install clean</userinput></screen>
<para>Start <application>Chromium</application>, and enter
<literal>about:plugins</literal> in the address bar.
- IcedTea-Web should be listed as one of the installed plugins.</para>
+ IcedTea-Web should be listed as one of the installed
+ plugins.</para>
- <para>If <application>Chromium</application> does not display the
- IcedTea-Web plugin, run the following commands, and restart the web
- browser:</para>
+ <para>If <application>Chromium</application> does not display
+ the IcedTea-Web plugin, run the following commands, and
+ restart the web browser:</para>
<screen>&prompt.root; <userinput>mkdir -p /usr/local/share/chromium/plugins
&prompt.root; ln -s /usr/local/lib/IcedTeaPlugin.so \
@@ -498,16 +513,17 @@
<note>
<para>This section assumes <application>Chromium</application>
- is already installed.</para>
+ is already installed.</para>
</note>
<para>Configuring <application>Chromium</application> and
- &adobe;&nbsp;&flash; is similar to the <link
- linkend="moz-flash-plugin">instructions for Firefox</link>. For
- more detailed instructions on installing &adobe;&nbsp;&flash; on
- &os;, please refer to that section. No additional configuration
- should be necessary, since <application>Chromium</application> is
- able to use some plugins from other browsers.</para>
+ &adobe;&nbsp;&flash; is similar to the
+ <link linkend="moz-flash-plugin">instructions for
+ Firefox</link>. For more detailed instructions on
+ installing &adobe;&nbsp;&flash; on &os;, please refer to that
+ section. No additional configuration should be necessary,
+ since <application>Chromium</application> is able to use some
+ plugins from other browsers.</para>
</sect2>
</sect1>
@@ -518,8 +534,9 @@
good office suite or a friendly word processor. While some
<link linkend="x11-wm">desktop environments</link> like
<application>KDE</application> already provide an office suite,
- there is no default productivity package. FreeBSD can provide all that is
- needed, regardless of your desktop environment.</para>
+ there is no default productivity package. FreeBSD can provide
+ all that is needed, regardless of your desktop
+ environment.</para>
<para>This section covers these applications:</para>
@@ -546,7 +563,8 @@
<entry><application>AbiWord</application></entry>
<entry>light</entry>
<entry>light</entry>
- <entry><application>Gtk+</application> or <application>GNOME</application></entry>
+ <entry><application>Gtk+</application> or
+ <application>GNOME</application></entry>
</row>
<row>
@@ -557,18 +575,22 @@
</row>
<row>
- <entry><application>OpenOffice.org</application></entry>
+ <entry><application>Apache
+ OpenOffice</application></entry>
<entry>heavy</entry>
<entry>huge</entry>
- <entry><application>&jdk;</application>, <application>Mozilla</application></entry>
+ <entry><application>&jdk;</application>,
+ <application>Mozilla</application></entry>
</row>
<row>
<entry><application>LibreOffice</application></entry>
<entry>somewhat heavy</entry>
<entry>huge</entry>
- <entry><application>Gtk+</application>, or <application>KDE</application>/
- <application>GNOME</application>, or <application>&jdk;</application></entry>
+ <entry><application>Gtk+</application>, or
+ <application>KDE</application>/
+ <application>GNOME</application>, or
+ <application>&jdk;</application></entry>
</row>
</tbody>
</tgroup>
@@ -576,6 +598,7 @@
<sect2>
<title>KOffice</title>
+
<indexterm>
<primary><application>KOffice</application></primary>
</indexterm>
@@ -604,8 +627,8 @@
<screen>&prompt.root; <userinput>pkg_add -r koffice-kde4</userinput></screen>
- <para>If the package is not available, you can use the Ports Collection.
- For instance, to install
+ <para>If the package is not available, you can use the Ports
+ Collection. For instance, to install
<application>KOffice</application> for
<application>KDE4</application>, do:</para>
@@ -615,15 +638,17 @@
<sect2>
<title>AbiWord</title>
+
<indexterm>
<primary><application>AbiWord</application></primary>
</indexterm>
<para><application>AbiWord</application> is a free word
- processing program similar in look and feel to <application>&microsoft; Word</application>.
- It is suitable for typing papers, letters, reports, memos, and
- so forth. It is very fast, contains many features, and is
- very user-friendly.</para>
+ processing program similar in look and feel to
+ <application>&microsoft; Word</application>. It is suitable
+ for typing papers, letters, reports, memos, and so forth. It
+ is very fast, contains many features, and is very
+ user-friendly.</para>
<para><application>AbiWord</application> can import or export
many file formats, including some proprietary ones like
@@ -644,6 +669,7 @@
<sect2>
<title>The GIMP</title>
+
<indexterm>
<primary><application>The GIMP</application></primary>
</indexterm>
@@ -663,8 +689,8 @@
<screen>&prompt.root; <userinput>pkg_add -r gimp</userinput></screen>
<para>If your FTP site does not have this package, you can use
- the Ports Collection. The
- <ulink url="http://www.FreeBSD.org/ports/graphics.html">graphics</ulink>
+ the Ports Collection. The <ulink
+ url="http://www.FreeBSD.org/ports/graphics.html">graphics</ulink>
directory of the Ports Collection also contains
<application>The Gimp Manual</application>. Here is how to
get them installed:</para>
@@ -675,61 +701,75 @@
&prompt.root; <userinput>make install clean</userinput></screen>
<note>
- <para>The
- <ulink url="http://www.FreeBSD.org/ports/graphics.html">graphics</ulink>
+ <para>The <ulink
+ url="http://www.FreeBSD.org/ports/graphics.html">graphics</ulink>
directory of the Ports Collection holds the development
version of <application>The GIMP</application> in
- <filename role="package">graphics/gimp-devel</filename>.
- An HTML version of
- <application>The Gimp Manual</application> is available from
- <filename role="package">graphics/gimp-manual-html</filename>.</para>
+ <filename role="package">graphics/gimp-devel</filename>. An
+ HTML version of <application>The Gimp Manual</application>
+ is available from <filename
+ role="package">graphics/gimp-manual-html</filename>.</para>
</note>
</sect2>
<sect2>
- <title>OpenOffice.org</title>
+ <title>Apache OpenOffice</title>
+
<indexterm>
- <primary><application>OpenOffice.org</application></primary>
+ <primary>
+ <application>Apache OpenOffice</application>
+ </primary>
</indexterm>
<indexterm>
<primary>office suite</primary>
- <secondary><application>OpenOffice.org</application></secondary>
+ <secondary>
+ <application>Apache OpenOffice</application>
+ </secondary>
</indexterm>
- <para><application>OpenOffice.org</application> includes all of the
- mandatory applications in a complete office productivity
- suite: a word processor, a spreadsheet, a presentation manager,
- and a drawing program. Its user interface is very similar
- to other office suites, and it can import and export in various
- popular file formats. It is available in a number of
- different languages &mdash; internationalization has been
- extended to interfaces, spell checkers, and
- dictionaries.</para>
+ <para>On 1 June 2011, Oracle Corporation donated the
+ <application>OpenOffice.org</application> code base to the
+ Apache Software Foundation.
+ <application>OpenOffice.org</application> is now known as
+ <application>Apache OpenOffice</application> and developed
+ under the wing of the Apache Software Foundation's
+ Incubator.</para>
+
+ <para><application>Apache OpenOffice</application> includes all
+ of the mandatory applications in a complete office
+ productivity suite: a word processor, a spreadsheet, a
+ presentation manager, and a drawing program. Its user
+ interface is very similar to other office suites, and it can
+ import and export in various popular file formats. It is
+ available in a number of different languages &mdash;
+ internationalization has been extended to interfaces, spell
+ checkers, and dictionaries.</para>
<para>The word processor of
- <application>OpenOffice.org</application> uses a native XML
+ <application>Apache OpenOffice</application> uses a native XML
file format for increased portability and flexibility. The
spreadsheet program features a macro language and it can be
interfaced with external databases.
- <application>OpenOffice.org</application> is already stable
+ <application>Apache OpenOffice</application> is already stable
and runs natively on &windows;, &solaris;, Linux, FreeBSD,
and &macos;&nbsp;X. More
- information about <application>OpenOffice.org</application>
- can be found on the
- <ulink url="http://www.openoffice.org/">OpenOffice.org web site</ulink>.
- For FreeBSD specific information, and to directly
- download packages, use the <ulink
- url="http://porting.openoffice.org/freebsd/">FreeBSD OpenOffice.org
- Porting Team</ulink>'s web site.</para>
-
- <para>To install <application>OpenOffice.org</application>,
+ information about <application>Apache OpenOffice</application>
+ can be found on the <ulink
+ url="http://incubator.apache.org/openofficeorg/">Apache
+ OpenOffice web site</ulink>. For FreeBSD specific
+ information, and to directly download packages, use the <ulink
+ url="http://porting.openoffice.org/freebsd/">FreeBSD Apache
+ OpenOffice Porting Team</ulink>'s web site.</para>
+
+ <para>To install <application>Apache OpenOffice</application>,
do:</para>
- <screen>&prompt.root; <userinput>pkg_add -r openoffice.org</userinput></screen>
+ <screen>&prompt.root; <userinput>pkg_add -r apache-openoffice</userinput></screen>
<note>
- <para>When running a -RELEASE version of &os;, this should work.
- Otherwise, you should look on the &os; <application>OpenOffice.org</application> Porting Team's
+ <para>When running a -RELEASE version of &os;, this should
+ work. Otherwise, you should look on the &os;
+ <application>Apache OpenOffice</application> Porting Team's
web site to download and install the appropriate package
using &man.pkg.add.1;. Both the current release and
development version are available for download at this
@@ -738,9 +778,14 @@
<para>Once the package is installed, you just have to type the
following command to run
- <application>OpenOffice.org</application>:</para>
+ <application>Apache OpenOffice</application>:</para>
+
+ <screen>&prompt.user; <userinput>openoffice-<replaceable>X.Y.Z</replaceable></userinput></screen>
- <screen>&prompt.user; <userinput>openoffice.org</userinput></screen>
+ <para>where <replaceable>X.Y.Z</replaceable> is the version
+ number of the installed
+ <application>Apache OpenOffice</application>, e.g.,
+ <replaceable>3.4.0</replaceable>.</para>
<note>
<para>During the first launch, you will be asked some
@@ -748,12 +793,13 @@
will be created in your home directory.</para>
</note>
- <para>If the <application>OpenOffice.org</application> packages
- are not available, you still have the option to compile the
- port. However, you must bear in mind that it requires a lot of
- disk space and a fairly long time to compile.</para>
+ <para>If the <application>Apache OpenOffice</application>
+ packages are not available, you still have the option to
+ compile the port. However, you must bear in mind that it
+ requires a lot of disk space and a fairly long time to
+ compile.</para>
- <screen>&prompt.root; <userinput>cd /usr/ports/editors/openoffice.org-3</userinput>
+ <screen>&prompt.root; <userinput>cd /usr/ports/editors/openoffice-3</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
<note>
@@ -771,14 +817,20 @@
</note>
<para>Once this is done,
- <application>OpenOffice.org</application> can be launched with
- the command:</para>
+ <application>Apache OpenOffice</application> can be launched
+ with the command:</para>
+
+ <screen>&prompt.user; <userinput>openoffice-<replaceable>X.Y.Z</replaceable></userinput></screen>
- <screen>&prompt.user; <userinput>openoffice.org</userinput></screen>
+ <para>where <replaceable>X.Y.Z</replaceable> is the version
+ number of the installed
+ <application>Apache OpenOffice</application>, e.g.,
+ <replaceable>3.4.0</replaceable>.</para>
</sect2>
<sect2>
<title>LibreOffice</title>
+
<indexterm>
<primary><application>LibreOffice</application></primary>
</indexterm>
@@ -790,51 +842,56 @@
<para><application>LibreOffice</application> is a free software
office suite developed by <ulink
url="http://www.documentfoundation.org/">The Document
- Foundation</ulink> that is compatible with other
- major office suites and available on a variety of platforms.
- It is a rebranded fork of
- <application>OpenOffice.org</application> which includes all of the
- mandatory applications in a complete office productivity
- suite: a word processor, a spreadsheet, a presentation manager,
- a drawing program, a database management program, and a tool for
- creating and editing mathematical formula. It is available in a
- number of different languages &mdash; internationalization has been
- extended to interfaces, spell checkers, and dictionaries.</para>
-
- <para>The word processor of <application>LibreOffice</application>
- uses a native XML file format for increased portability and
- flexibility. The spreadsheet program features a macro language
- and it can be interfaced with external databases.
- <application>LibreOffice</application> is already stable
- and runs natively on &windows;, Linux, FreeBSD, and
- &macos;&nbsp;X. More information about <application>LibreOffice
- </application> can be found on the
- <ulink url="http://www.libreoffice.org/">LibreOffice web site</ulink>.</para>
-
- <para>To install <application>LibreOffice</application> as package,
- do:</para>
+ Foundation</ulink> that is compatible with other major
+ office suites and available on a variety of platforms. It is
+ a rebranded fork of <application>OpenOffice.org</application>
+ which includes all of the mandatory applications in a complete
+ office productivity suite: a word processor, a spreadsheet, a
+ presentation manager, a drawing program, a database management
+ program, and a tool for creating and editing mathematical
+ formula. It is available in a number of different languages
+ &mdash; internationalization has been extended to interfaces,
+ spell checkers, and dictionaries.</para>
+
+ <para>The word processor of
+ <application>LibreOffice</application> uses a native XML file
+ format for increased portability and flexibility. The
+ spreadsheet program features a macro language and it can be
+ interfaced with external databases.
+ <application>LibreOffice</application> is already stable and
+ runs natively on &windows;, Linux, FreeBSD, and
+ &macos;&nbsp;X. More information about
+ <application>LibreOffice </application> can be found on the
+ <ulink url="http://www.libreoffice.org/">LibreOffice web
+ site</ulink>.</para>
+
+ <para>To install <application>LibreOffice</application> as
+ package, do:</para>
<screen>&prompt.root; <userinput>pkg_add -r libreoffice</userinput></screen>
<note>
- <para>When running a -RELEASE version of &os;, this should work.</para>
+ <para>When running a -RELEASE version of &os;, this should
+ work.</para>
</note>
- <para>Once the package is installed, you need to type the following
- command to run <application>LibreOffice</application>:</para>
+ <para>Once the package is installed, you need to type the
+ following command to run
+ <application>LibreOffice</application>:</para>
<screen>&prompt.user; <userinput>libreoffice</userinput></screen>
<note>
<para>During the first launch, you will be asked some
- questions and a <filename class="directory">.libreoffice</filename>
- folder will be created in your home directory.</para>
+ questions and a
+ <filename class="directory">.libreoffice</filename> folder
+ will be created in your home directory.</para>
</note>
<para>If the <application>LibreOffice</application> packages
are not available, you still have the option to compile the
- port. However, you must bear in mind that it requires a lot of
- disk space and a fairly long time to compile.</para>
+ port. However, you must bear in mind that it requires a lot
+ of disk space and a fairly long time to compile.</para>
<screen>&prompt.root; <userinput>cd /usr/ports/editors/libreoffice</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
@@ -848,9 +905,8 @@
<para>You have to replace
<replaceable>your_language</replaceable> with the correct
language ISO-code. A list of supported language codes are
- available in the <maketarget>pre-fetch</maketarget> target of
- the port <filename>Makefile</filename>.
- </para>
+ available in the <maketarget>pre-fetch</maketarget> target
+ of the port <filename>Makefile</filename>.</para>
</note>
<para>Once this is done,
@@ -865,10 +921,9 @@
<title>Document Viewers</title>
<para>Some new document formats have gained popularity since
- the advent of &unix;;
- the standard viewers they require may not be available in the
- base system. We will see how to install such viewers in this
- section.</para>
+ the advent of &unix;; the standard viewers they require may not
+ be available in the base system. We will see how to install
+ such viewers in this section.</para>
<para>This section covers these applications:</para>
@@ -909,7 +964,8 @@
<entry><application>GQview</application></entry>
<entry>light</entry>
<entry>light</entry>
- <entry><application>Gtk+</application> or <application>GNOME</application></entry>
+ <entry><application>Gtk+</application> or
+ <application>GNOME</application></entry>
</row>
</tbody>
</tgroup>
@@ -917,6 +973,7 @@
<sect2>
<title>&acrobat.reader;</title>
+
<indexterm>
<primary><application>Acrobat Reader</application></primary>
</indexterm>
@@ -932,18 +989,19 @@
for Linux. As FreeBSD can run Linux binaries, it is also
available for FreeBSD.</para>
- <para>To install <application>&acrobat.reader; 8</application> from
- the Ports collection, do:</para>
+ <para>To install <application>&acrobat.reader; 8</application>
+ from the Ports collection, do:</para>
<screen>&prompt.root; <userinput>cd /usr/ports/print/acroread8</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
- <para>A package is not available due to licencing restrictions.</para>
-
+ <para>A package is not available due to licencing
+ restrictions.</para>
</sect2>
<sect2>
<title>gv</title>
+
<indexterm>
<primary><application>gv</application></primary>
</indexterm>
@@ -959,8 +1017,9 @@
<para><application>gv</application> is a &postscript; and PDF
viewer. It is originally based on
<application>ghostview</application> but it has a nicer look
- thanks to the <application>Xaw3d</application> library. It is fast and its interface is
- clean. <application>gv</application> has many features, such as
+ thanks to the <application>Xaw3d</application> library. It is
+ fast and its interface is clean.
+ <application>gv</application> has many features, such as
orientation, paper size, scale, and anti-aliasing. Almost any
operation can be done with either the keyboard or the
mouse.</para>
@@ -970,7 +1029,8 @@
<screen>&prompt.root; <userinput>pkg_add -r gv</userinput></screen>
- <para>If you cannot get the package, you can use the Ports Collection:</para>
+ <para>If you cannot get the package, you can use the Ports
+ Collection:</para>
<screen>&prompt.root; <userinput>cd /usr/ports/print/gv</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
@@ -978,6 +1038,7 @@
<sect2>
<title>Xpdf</title>
+
<indexterm>
<primary><application>Xpdf</application></primary>
</indexterm>
@@ -988,9 +1049,10 @@
<para>If you want a small FreeBSD PDF viewer,
<application>Xpdf</application> is a light-weight and
- efficient viewer. It requires very few resources and is
- very stable. It uses the standard X fonts and does not
- require <application>&motif;</application> or any other X toolkit.</para>
+ efficient viewer. It requires very few resources and is very
+ stable. It uses the standard X fonts and does not require
+ <application>&motif;</application> or any other X
+ toolkit.</para>
<para>To install the <application>Xpdf</application> package,
issue this command:</para>
@@ -1010,6 +1072,7 @@
<sect2>
<title>GQview</title>
+
<indexterm>
<primary><application>GQview</application></primary>
</indexterm>
@@ -1041,9 +1104,10 @@
<para>If, for any reason, you would like to manage your personal
finances on your FreeBSD Desktop, there are some powerful and
easy-to-use applications ready to be installed. Some of them
- are compatible with widespread file formats, such as the formats used by
- <application><trademark class="registered">Quicken</trademark></application>
- and <application>Excel</application> to store documents.</para>
+ are compatible with widespread file formats, such as the formats
+ used by <application><trademark
+ class="registered">Quicken</trademark></application> and
+ <application>Excel</application> to store documents.</para>
<para>This section covers these programs:</para>
@@ -1092,6 +1156,7 @@
<sect2>
<title>GnuCash</title>
+
<indexterm>
<primary><application>GnuCash</application></primary>
</indexterm>
@@ -1117,7 +1182,8 @@
<screen>&prompt.root; <userinput>pkg_add -r gnucash</userinput></screen>
- <para>If the package is not available, you can use the Ports Collection:</para>
+ <para>If the package is not available, you can use the Ports
+ Collection:</para>
<screen>&prompt.root; <userinput>cd /usr/ports/finance/gnucash</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
@@ -1125,6 +1191,7 @@
<sect2>
<title>Gnumeric</title>
+
<indexterm>
<primary><application>Gnumeric</application></primary>
</indexterm>
@@ -1133,13 +1200,15 @@
<secondary><application>Gnumeric</application></secondary>
</indexterm>
- <para><application>Gnumeric</application> is a spreadsheet program, part
- of the <application>GNOME</application> desktop environment.
- It features convenient automatic <quote>guessing</quote> of user
- input according to the cell format with an autofill system for
- many sequences. It can import files in a number of popular
- formats like those of <application>Excel</application>,
- <application>Lotus 1-2-3</application>, or <application>Quattro Pro</application>.
+ <para><application>Gnumeric</application> is a spreadsheet
+ program, part of the <application>GNOME</application> desktop
+ environment. It features convenient automatic
+ <quote>guessing</quote> of user input according to the cell
+ format with an autofill system for many sequences. It can
+ import files in a number of popular formats like those of
+ <application>Excel</application>,
+ <application>Lotus 1-2-3</application>, or
+ <application>Quattro Pro</application>.
<application>Gnumeric</application> supports graphs through
the <filename role="package">math/guppi</filename> graphing
program. It has a large number of built-in functions and
@@ -1151,8 +1220,8 @@
<screen>&prompt.root; <userinput>pkg_add -r gnumeric</userinput></screen>
- <para>If the package is not available, you can use the Ports Collection
- by doing:</para>
+ <para>If the package is not available, you can use the Ports
+ Collection by doing:</para>
<screen>&prompt.root; <userinput>cd /usr/ports/math/gnumeric</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
@@ -1160,6 +1229,7 @@
<sect2>
<title>Abacus</title>
+
<indexterm>
<primary><application>Abacus</application></primary>
</indexterm>
@@ -1169,9 +1239,10 @@
</indexterm>
<para><application>Abacus</application> is a small and easy to
- use spreadsheet program. It includes many built-in functions useful
- in several domains such as statistics, finances, and
- mathematics. It can import and export the <application>Excel</application> file format.
+ use spreadsheet program. It includes many built-in functions
+ useful in several domains such as statistics, finances, and
+ mathematics. It can import and export the
+ <application>Excel</application> file format.
<application>Abacus</application> can produce &postscript;
output.</para>
@@ -1180,8 +1251,8 @@
<screen>&prompt.root; <userinput>pkg_add -r abacus</userinput></screen>
- <para>If the package is not available, you can use the Ports Collection
- by doing:</para>
+ <para>If the package is not available, you can use the Ports
+ Collection by doing:</para>
<screen>&prompt.root; <userinput>cd /usr/ports/deskutils/abacus</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
@@ -1198,14 +1269,16 @@
</indexterm>
<para><application>KMyMoney</application> is a personal finance
- manager built for <application>KDE</application>. <application>KMyMoney</application> intends to provide and
+ manager built for <application>KDE</application>.
+ <application>KMyMoney</application> intends to provide and
incorporate all the important features found in commercial
personal finance manager applications. It also highlights
ease-of-use and proper double-entry accounting among its
- features. <application>KMyMoney</application> imports from standard Quicken Interchange
- Format (QIF) files, tracks investments, handles multiple
- currencies, and provides a wealth of reports. OFX import
- capabilities are also available through a separate plugin.</para>
+ features. <application>KMyMoney</application> imports from
+ standard Quicken Interchange Format (QIF) files, tracks
+ investments, handles multiple currencies, and provides a
+ wealth of reports. OFX import capabilities are also available
+ through a separate plugin.</para>
<para>To install <application>KMyMoney</application> as a
package, do:</para>
@@ -1225,10 +1298,12 @@
<para>While FreeBSD is popular among ISPs for its performance and
stability, it is quite ready for day-to-day use as a desktop.
- With several thousand applications available as
- <ulink url="http://www.FreeBSD.org/applications.html">packages</ulink> or
- <ulink url="http://www.FreeBSD.org/ports/index.html">ports</ulink>,
- you can build a perfect desktop that suits all your needs.</para>
+ With several thousand applications available as <ulink
+ url="http://www.FreeBSD.org/applications.html">packages</ulink>
+ or <ulink
+ url="http://www.FreeBSD.org/ports/index.html">ports</ulink>,
+ you can build a perfect desktop that suits all your
+ needs.</para>
<para>Here is a quick review of all the desktop applications
covered in this chapter:</para>
@@ -1247,99 +1322,114 @@
<row>
<entry><application>Opera</application></entry>
<entry><literal>opera</literal></entry>
- <entry><filename role="package">www/opera</filename></entry>
+ <entry><filename
+ role="package">www/opera</filename></entry>
</row>
<row>
<entry><application>Firefox</application></entry>
<entry><literal>firefox</literal></entry>
- <entry><filename role="package">www/firefox</filename></entry>
+ <entry><filename
+ role="package">www/firefox</filename></entry>
</row>
<row>
<entry><application>Chromium</application></entry>
<entry><literal>chromium</literal></entry>
- <entry><filename role="package">www/chromium</filename></entry>
+ <entry><filename
+ role="package">www/chromium</filename></entry>
</row>
<row>
<entry><application>KOffice</application></entry>
<entry><literal>koffice-kde4</literal></entry>
- <entry><filename role="package">editors/koffice-kde4</filename></entry>
+ <entry><filename
+ role="package">editors/koffice-kde4</filename></entry>
</row>
<row>
<entry><application>AbiWord</application></entry>
<entry><literal>abiword</literal></entry>
- <entry><filename role="package">editors/abiword</filename></entry>
+ <entry><filename
+ role="package">editors/abiword</filename></entry>
</row>
<row>
<entry><application>The GIMP</application></entry>
<entry><literal>gimp</literal></entry>
- <entry><filename role="package">graphics/gimp</filename></entry>
+ <entry><filename
+ role="package">graphics/gimp</filename></entry>
</row>
<row>
- <entry><application>OpenOffice.org</application></entry>
+ <entry><application>Apache OpenOffice</application></entry>
<entry><literal>openoffice</literal></entry>
- <entry><filename role="package">editors/openoffice.org-3</filename></entry>
+ <entry><filename
+ role="package">editors/openoffice-3</filename></entry>
</row>
<row>
<entry><application>LibreOffice</application></entry>
<entry><literal>libreoffice</literal></entry>
- <entry><filename role="package">editors/libreoffice</filename></entry>
+ <entry><filename
+ role="package">editors/libreoffice</filename></entry>
</row>
<row>
<entry><application>&acrobat.reader;</application></entry>
<entry><literal>acroread</literal></entry>
- <entry><filename role="package">print/acroread8</filename></entry>
+ <entry><filename
+ role="package">print/acroread8</filename></entry>
</row>
<row>
<entry><application>gv</application></entry>
<entry><literal>gv</literal></entry>
- <entry><filename role="package">print/gv</filename></entry>
+ <entry><filename
+ role="package">print/gv</filename></entry>
</row>
<row>
<entry><application>Xpdf</application></entry>
<entry><literal>xpdf</literal></entry>
- <entry><filename role="package">graphics/xpdf</filename></entry>
+ <entry><filename
+ role="package">graphics/xpdf</filename></entry>
</row>
<row>
<entry><application>GQview</application></entry>
<entry><literal>gqview</literal></entry>
- <entry><filename role="package">graphics/gqview</filename></entry>
+ <entry><filename
+ role="package">graphics/gqview</filename></entry>
</row>
<row>
<entry><application>GnuCash</application></entry>
<entry><literal>gnucash</literal></entry>
- <entry><filename role="package">finance/gnucash</filename></entry>
+ <entry><filename
+ role="package">finance/gnucash</filename></entry>
</row>
<row>
<entry><application>Gnumeric</application></entry>
<entry><literal>gnumeric</literal></entry>
- <entry><filename role="package">math/gnumeric</filename></entry>
+ <entry><filename
+ role="package">math/gnumeric</filename></entry>
</row>
<row>
<entry><application>Abacus</application></entry>
<entry><literal>abacus</literal></entry>
- <entry><filename role="package">deskutils/abacus</filename></entry>
+ <entry><filename
+ role="package">deskutils/abacus</filename></entry>
</row>
<row>
<entry><application>KMyMoney</application></entry>
<entry><literal>kmymoney2</literal></entry>
- <entry><filename role="package">finance/kmymoney2</filename></entry>
+ <entry><filename
+ role="package">finance/kmymoney2</filename></entry>
</row>
-
</tbody>
</tgroup>
</informaltable>
diff --git a/en_US.ISO8859-1/books/handbook/disks/chapter.xml b/en_US.ISO8859-1/books/handbook/disks/chapter.xml
index 55c4031eea..b9c2ffdcbf 100644
--- a/en_US.ISO8859-1/books/handbook/disks/chapter.xml
+++ b/en_US.ISO8859-1/books/handbook/disks/chapter.xml
@@ -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>
-
- <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&nbsp;kB/s,
- peaking at ~500&nbsp;kB/s. Data capacity starts at
- 1.3&nbsp;GB and ends at 2.0&nbsp;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&nbsp;GB.</para>
-
- <para>The DDS-3 standard now supports tape capacities up to
- 12&nbsp;GB (or 24&nbsp;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="tapes-sa0">
+ <title>Serial Access with &man.sa.4;</title>
- <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&nbsp;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&nbsp;kB/s to
- ~500&nbsp;kB/s. Data sizes start at 300&nbsp;MB and go up to
- 7&nbsp;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+&nbsp;GB.</para>
-
- <para>The Exabyte <quote>Mammoth</quote> model supports
- 12&nbsp;GB on one tape (24&nbsp;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>
+ <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 id="backups-tapebackups-qic">
- <title>QIC</title>
+ <sect2>
+ <title id="tapes-mt">Controlling the Tape Drive with
+ &man.mt.1;</title>
<indexterm>
<primary>tape media</primary>
- <secondary>QIC-150</secondary>
+ <secondary>mt</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&nbsp;x 4&nbsp;x 0.7 inches (152&nbsp;x
- 102&nbsp;x 17 mm).</para>
-
- <para>Data throughput ranges from ~150&nbsp;kB/s to
- ~500&nbsp;kB/s. Data capacity ranges from 40&nbsp;MB to
- 15&nbsp;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>
+ <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>
- <sect2 id="backups-tapebackups-dlt">
- <title>DLT</title>
- <indexterm>
- <primary>tape media</primary>
- <secondary>DLT</secondary>
- </indexterm>
+ <para>For example, the first three files on a tape can be
+ preserved by skipping past them before writing a new
+ file:</para>
- <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&nbsp;MB/s, three
- times the throughput of 4mm, 8mm, or QIC tape drives. Data
- capacities range from 10&nbsp;GB to 20&nbsp;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&nbsp;GB to
- 9&nbsp;TB of storage.</para>
-
- <para>With compression, DLT Type IV format supports up to
- 70&nbsp;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>
+ <screen>&prompt.root; <userinput>mt -f /dev/nsa0 fsf 3</userinput></screen>
</sect2>
<sect2>
- <title id="backups-tapebackups-ait">AIT</title>
- <indexterm>
- <primary>tape media</primary>
- <secondary>AIT</secondary>
- </indexterm>
-
- <para>AIT is a new format from Sony, and can hold up to
- 50&nbsp;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>Libraries like this cost in the region of $20,000, pricing
- them a little out of the hobbyist market.</para>
- </sect2>
+ <title id="tapes-tar">Using &man.tar.1; to Read and
+ Write Tape Backups</title>
- <sect2>
- <title>Using a New Tape for the First Time</title>
+ <para>An example of writing a single file to tape using
+ &man.tar.1;:</para>
- <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>
+ <screen>&prompt.root; <userinput>tar cvf /dev/sa0 <replaceable>file</replaceable></userinput></screen>
- <screen>sa0(ncr1:4:0): NOT READY asc:4,1
-sa0(ncr1:4:0): Logical unit is in process of becoming ready</screen>
+ <para>Recovering files from a &man.tar.1; archive on tape into
+ the current directory:</para>
- <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>
+ <screen>&prompt.root; <userinput>tar xvf /dev/sa0</userinput></screen>
+ </sect2>
- <itemizedlist>
- <listitem>
- <para><command>mt fsf 1</command> causes the tape drive to
- write an Identifier Block to the tape.</para>
- </listitem>
+ <sect2>
+ <title id="tapes-dumprestore">Using &man.dump.8; and
+ &man.restore.8; to Create and Restore Backups</title>
- <listitem>
- <para>Use the front panel button to eject the tape.</para>
+ <para>A simple backup of <filename
+ class="directory">/usr</filename> with &man.dump.8;:</para>
- <para>Re-insert the tape and <command>dump</command> data to
- the tape.</para>
+ <screen>&prompt.root; <userinput>dump -0aL -b64 -f /dev/nsa0 /usr</userinput></screen>
- <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>
+ <para>Interactively restoring files from a &man.dump.8; file on
+ tape into the current directory:</para>
- <para>rewind the tape using:
- <command>mt rewind</command>.</para>
+ <screen>&prompt.root; <userinput>restore -i -f /dev/nsa0</userinput></screen>
+ </sect2>
- <para>Subsequent tape operations are successful.</para>
- </listitem>
- </itemizedlist>
+ <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
diff --git a/en_US.ISO8859-1/books/handbook/dtrace/chapter.xml b/en_US.ISO8859-1/books/handbook/dtrace/chapter.xml
index 1e7bad38b2..e527aab5b8 100644
--- a/en_US.ISO8859-1/books/handbook/dtrace/chapter.xml
+++ b/en_US.ISO8859-1/books/handbook/dtrace/chapter.xml
@@ -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; 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;, 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>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>
diff --git a/en_US.ISO8859-1/books/handbook/eresources/chapter.xml b/en_US.ISO8859-1/books/handbook/eresources/chapter.xml
index b7091fe6ae..860935c5fc 100644
--- a/en_US.ISO8859-1/books/handbook/eresources/chapter.xml
+++ b/en_US.ISO8859-1/books/handbook/eresources/chapter.xml
@@ -8,18 +8,19 @@
<appendix id="eresources">
<title>Resources on the Internet</title>
- <para>The rapid pace of FreeBSD progress makes print media impractical as a
- means of following the latest developments. Electronic resources are the
- best, if not often the only, way to stay informed of the latest advances.
- Since FreeBSD is a volunteer effort, the user community itself also
- generally serves as a <quote>technical support department</quote> of sorts,
- with electronic mail, web forums, and USENET news being the most
+ <para>The rapid pace of FreeBSD progress makes print media
+ impractical as a means of following the latest developments.
+ Electronic resources are the best, if not often the only, way
+ to stay informed of the latest advances. Since FreeBSD is a
+ volunteer effort, the user community itself also generally serves
+ as a <quote>technical support department</quote> of sorts, with
+ electronic mail, web forums, and USENET news being the most
effective way of reaching that community.</para>
- <para>The most important points of contact with the FreeBSD user community
- are outlined below. If you are aware of other resources not mentioned
- here, please send them to the &a.doc; so that they may also be
- included.</para>
+ <para>The most important points of contact with the FreeBSD user
+ community are outlined below. If you are aware of other resources
+ not mentioned here, please send them to the &a.doc; so that they
+ may also be included.</para>
<sect1 id="eresources-mail">
<title>Mailing Lists</title>
@@ -31,45 +32,50 @@
most appropriate mailing list will invariably assure a faster
and more accurate response.</para>
- <para>The charters for the various lists are given at the bottom of this
- document. <emphasis>Please read the charter before joining or sending
- mail to any list</emphasis>. Most of our list subscribers now receive
- many hundreds of FreeBSD related messages every day, and by setting down
- charters and rules for proper use we are striving to keep the
- signal-to-noise ratio of the lists high. To do less would see the
- mailing lists ultimately fail as an effective communications medium for
- the project.</para>
+ <para>The charters for the various lists are given at the bottom
+ of this document. <emphasis>Please read the charter before
+ joining or sending mail to any list</emphasis>. Most of our
+ list subscribers now receive many hundreds of FreeBSD related
+ messages every day, and by setting down charters and rules for
+ proper use we are striving to keep the signal-to-noise ratio
+ of the lists high. To do less would see the mailing lists
+ ultimately fail as an effective communications medium for the
+ project.</para>
<note>
<para><emphasis>If you wish to test your ability to send to
- &os; lists, send a test message to &a.test.name;.</emphasis>
+ &os; lists, send a test message to &a.test.name;.</emphasis>
Please do not send test messages to any other list.</para>
</note>
- <para>When in doubt about what list to post a question to, see <ulink
- url="&url.articles.freebsd-questions;">How to get best results from
- the FreeBSD-questions mailing list</ulink>.</para>
-
- <para>Before posting to any list, please learn about how to best use
- the mailing lists, such as how to help avoid frequently-repeated
- discussions, by reading the <ulink url="&url.articles.mailing-list-faq;">
- Mailing List Frequently Asked Questions</ulink> (FAQ) document.</para>
-
- <para>Archives are kept for all of the mailing lists and can be searched
- using the <ulink url="&url.base;/search/index.html">FreeBSD World
- Wide Web server</ulink>. The keyword searchable archive offers an
- excellent way of finding answers to frequently asked questions and
- should be consulted before posting a question. Note that this
- also means that messages sent to FreeBSD mailing lists are
- archived in perpetuity. When protecting privacy is a
- concern, consider using a disposable secondary email address and
- posting only public information.</para>
+ <para>When in doubt about what list to post a question to, see
+ <ulink url="&url.articles.freebsd-questions;">How to get best
+ results from the FreeBSD-questions mailing
+ list</ulink>.</para>
+
+ <para>Before posting to any list, please learn about how to
+ best use the mailing lists, such as how to help avoid
+ frequently-repeated discussions, by reading the <ulink
+ url="&url.articles.mailing-list-faq;"> Mailing List Frequently
+ Asked Questions</ulink> (FAQ) document.</para>
+
+ <para>Archives are kept for all of the mailing lists and can be
+ searched using the <ulink
+ url="&url.base;/search/index.html">FreeBSD World Wide Web
+ server</ulink>. The keyword searchable archive offers an
+ excellent way of finding answers to frequently asked questions
+ and should be consulted before posting a question. Note that
+ this also means that messages sent to FreeBSD mailing lists
+ are archived in perpetuity. When protecting privacy is a
+ concern, consider using a disposable secondary email address
+ and posting only public information.</para>
<sect2 id="eresources-summary">
<title>List Summary</title>
- <para><emphasis>General lists:</emphasis> The following are general
- lists which anyone is free (and encouraged) to join:</para>
+ <para><emphasis>General lists:</emphasis> The following are
+ general lists which anyone is free (and encouraged) to
+ join:</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
@@ -98,11 +104,12 @@
<row>
<entry>&a.bugbusters.name;</entry>
- <entry>Discussions pertaining to the maintenance of the FreeBSD
- problem report database and related tools</entry>
+ <entry>Discussions pertaining to the maintenance of
+ the FreeBSD problem report database and related
+ tools</entry>
</row>
- <row>
+ <row>
<entry>&a.bugs.name;</entry>
<entry>Bug reports</entry>
</row>
@@ -154,17 +161,18 @@
<row>
<entry>&a.test.name;</entry>
- <entry>Where to send your test messages instead of one of
- the actual lists</entry>
+ <entry>Where to send your test messages instead of
+ one of the actual lists</entry>
</row>
</tbody>
</tgroup>
</informaltable>
- <para><emphasis>Technical lists:</emphasis> The following lists are for
- technical discussion. You should read the charter for each list
- carefully before joining or sending mail to one as there are firm
- guidelines for their use and content.</para>
+ <para><emphasis>Technical lists:</emphasis> The following
+ lists are for technical discussion. You should read the
+ charter for each list carefully before joining or sending
+ mail to one as there are firm guidelines for their use and
+ content.</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
@@ -188,7 +196,8 @@
<row>
<entry>&a.aic7xxx.name;</entry>
- <entry>Developing drivers for the &adaptec; AIC 7xxx</entry>
+ <entry>Developing drivers for the &adaptec;
+ AIC 7xxx</entry>
</row>
<row>
@@ -198,7 +207,9 @@
<row>
<entry>&a.apache.name;</entry>
- <entry>Discussion about <application>Apache</application> related ports</entry>
+ <entry>Discussion about
+ <application>Apache</application> related
+ ports</entry>
</row>
<row>
@@ -212,11 +223,6 @@
</row>
<row>
- <entry>&a.binup.name;</entry>
- <entry>Design and development of the binary update system</entry>
- </row>
-
- <row>
<entry>&a.bluetooth.name;</entry>
<entry>Using &bluetooth; technology in FreeBSD</entry>
</row>
@@ -255,7 +261,7 @@
<row>
<entry>&a.eclipse.name;</entry>
<entry>FreeBSD users of Eclipse IDE, tools, rich client
- applications and ports.</entry>
+ applications and ports.</entry>
</row>
<row>
@@ -288,17 +294,20 @@
<row>
<entry>&a.gecko.name;</entry>
- <entry><application>Gecko Rendering Engine</application> issues</entry>
+ <entry><application>Gecko Rendering
+ Engine</application> issues</entry>
</row>
<row>
<entry>&a.geom.name;</entry>
- <entry>GEOM-specific discussions and implementations</entry>
+ <entry>GEOM-specific discussions and
+ implementations</entry>
</row>
<row>
<entry>&a.gnome.name;</entry>
- <entry>Porting <application>GNOME</application> and <application>GNOME</application> applications</entry>
+ <entry>Porting <application>GNOME</application> and
+ <application>GNOME</application> applications</entry>
</row>
<row>
@@ -319,18 +328,25 @@
<row>
<entry>&a.ia32.name;</entry>
- <entry>FreeBSD on the IA-32 (&intel; x86) platform</entry>
+ <entry>FreeBSD on the IA-32 (&intel; x86)
+ platform</entry>
</row>
<row>
<entry>&a.ia64.name;</entry>
- <entry>Porting FreeBSD to &intel;'s upcoming IA64 systems</entry>
+ <entry>Porting FreeBSD to &intel;'s upcoming IA64
+ systems</entry>
+ </row>
+
+ <row>
+ <entry>&a.infiniband.name;</entry>
+ <entry>Infiniband on FreeBSD</entry>
</row>
<row>
<entry>&a.ipfw.name;</entry>
- <entry>Technical discussion concerning the redesign of the IP
- firewall code</entry>
+ <entry>Technical discussion concerning the redesign
+ of the IP firewall code</entry>
</row>
<row>
@@ -340,7 +356,8 @@
<row>
<entry>&a.jail.name;</entry>
- <entry>Discussion about the &man.jail.8; facility</entry>
+ <entry>Discussion about the &man.jail.8;
+ facility</entry>
</row>
<row>
@@ -351,7 +368,8 @@
<row>
<entry>&a.kde.name;</entry>
- <entry>Porting <application>KDE</application> and <application>KDE</application> applications</entry>
+ <entry>Porting <application>KDE</application> and
+ <application>KDE</application> applications</entry>
</row>
<row>
@@ -376,7 +394,8 @@
<row>
<entry>&a.mozilla.name;</entry>
- <entry>Porting <application>Mozilla</application> to FreeBSD</entry>
+ <entry>Porting <application>Mozilla</application> to
+ FreeBSD</entry>
</row>
<row>
@@ -386,17 +405,20 @@
<row>
<entry>&a.newbus.name;</entry>
- <entry>Technical discussions about bus architecture</entry>
+ <entry>Technical discussions about bus
+ architecture</entry>
</row>
<row>
<entry>&a.net.name;</entry>
- <entry>Networking discussion and TCP/IP source code</entry>
+ <entry>Networking discussion and TCP/IP source
+ code</entry>
</row>
<row>
<entry>&a.numerics.name;</entry>
- <entry>Discussions of high quality implementation of libm functions</entry>
+ <entry>Discussions of high quality implementation of
+ libm functions</entry>
</row>
<row>
@@ -435,7 +457,8 @@
<row>
<entry>&a.ports-announce.name;</entry>
- <entry>Important news and instructions about the Ports Collection</entry>
+ <entry>Important news and instructions about the Ports
+ Collection</entry>
</row>
<row>
@@ -450,7 +473,8 @@
<row>
<entry>&a.proliant.name;</entry>
- <entry>Technical discussion of FreeBSD on HP ProLiant server platforms</entry>
+ <entry>Technical discussion of FreeBSD on HP ProLiant
+ server platforms</entry>
</row>
<row>
@@ -460,12 +484,15 @@
<row>
<entry>&a.rc.name;</entry>
- <entry>Discussion related to the <filename>rc.d</filename> system and its development</entry>
+ <entry>Discussion related to the
+ <filename>rc.d</filename> system and its
+ development</entry>
</row>
<row>
<entry>&a.realtime.name;</entry>
- <entry>Development of realtime extensions to FreeBSD</entry>
+ <entry>Development of realtime extensions to
+ FreeBSD</entry>
</row>
<row>
@@ -490,6 +517,11 @@
</row>
<row>
+ <entry>&a.snapshots.name;</entry>
+ <entry>&os; Development Snapshot Announcements</entry>
+ </row>
+
+ <row>
<entry>&a.sparc.name;</entry>
<entry>Porting FreeBSD to &sparc; based systems</entry>
</row>
@@ -506,13 +538,19 @@
</row>
<row>
+ <entry>&a.tcltk.name;</entry>
+ <entry>FreeBSD-specific Tcl/Tk discussions</entry>
+ </row>
+
+ <row>
<entry>&a.threads.name;</entry>
<entry>Threading in FreeBSD</entry>
</row>
<row>
<entry>&a.tilera.name;</entry>
- <entry>Porting FreeBSD to the Tilera family of CPUs</entry>
+ <entry>Porting FreeBSD to the Tilera family of
+ CPUs</entry>
</row>
<row>
@@ -522,7 +560,8 @@
<row>
<entry>&a.toolchain.name;</entry>
- <entry>Maintenance of &os;'s integrated toolchain</entry>
+ <entry>Maintenance of &os;'s integrated
+ toolchain</entry>
</row>
<row>
@@ -532,8 +571,8 @@
<row>
<entry>&a.virtualization.name;</entry>
- <entry>Discussion of various virtualization techniques supported
- by &os;</entry>
+ <entry>Discussion of various virtualization techniques
+ supported by &os;</entry>
</row>
<row>
@@ -548,12 +587,14 @@
<row>
<entry>&a.xen.name;</entry>
- <entry>Discussion of the &os; port to &xen; &mdash; implementation and usage</entry>
+ <entry>Discussion of the &os; port to &xen; &mdash;
+ implementation and usage</entry>
</row>
<row>
<entry>&a.xfce.name;</entry>
- <entry><application>XFCE</application> for &os; &mdash; porting and maintaining</entry>
+ <entry><application>XFCE</application> for &os; &mdash;
+ porting and maintaining</entry>
</row>
<row>
@@ -565,11 +606,12 @@
</tgroup>
</informaltable>
- <para><emphasis>Limited lists:</emphasis> The following lists are for
- more specialized (and demanding) audiences and are probably not of
- interest to the general public. It is also a good idea to establish a
- presence in the technical lists before joining one of these limited
- lists so that you will understand the communications etiquette involved.</para>
+ <para><emphasis>Limited lists:</emphasis> The following lists
+ are for more specialized (and demanding) audiences and are
+ probably not of interest to the general public. It is also
+ a good idea to establish a presence in the technical lists
+ before joining one of these limited lists so that you will
+ understand the communications etiquette involved.</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
@@ -610,7 +652,9 @@
<row>
<entry>&a.www.name;</entry>
- <entry>Maintainers of <ulink url="&url.base;/index.html">www.FreeBSD.org</ulink></entry>
+ <entry>Maintainers of
+ <ulink
+ url="&url.base;/index.html">www.FreeBSD.org</ulink></entry>
</row>
</tbody>
</tgroup>
@@ -622,10 +666,10 @@
section.</para>
<para><emphasis>SVN lists:</emphasis> The following lists
- are for people interested in seeing the log messages for changes to
- various areas of the source tree. They are
- <emphasis>Read-Only</emphasis> lists and should not have mail sent to
- them.</para>
+ are for people interested in seeing the log messages for
+ changes to various areas of the source tree. They are
+ <emphasis>Read-Only</emphasis> lists and should not have
+ mail sent to them.</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="3">
@@ -641,10 +685,10 @@
<row>
<entry>&a.svn-doc-all.name;</entry>
<entry><filename>/usr/doc</filename></entry>
- <entry>All changes to the doc Subversion repository (except
- for <filename>user</filename>,
- <filename>projects</filename>
- and <filename>translations</filename>)</entry>
+ <entry>All changes to the doc Subversion repository
+ (except for <filename>user</filename>,
+ <filename>projects</filename>
+ and <filename>translations</filename>)</entry>
</row>
<row>
@@ -672,14 +716,15 @@
<row>
<entry>&a.svn-ports-all.name;</entry>
<entry><filename>/usr/ports</filename></entry>
- <entry>All changes to the ports Subversion repository</entry>
+ <entry>All changes to the ports Subversion
+ repository</entry>
</row>
<row>
<entry>&a.svn-ports-head.name;</entry>
<entry><filename>/usr/ports</filename></entry>
- <entry>All changes to the <quote>head</quote> branch of
- the ports Subversion repository</entry>
+ <entry>All changes to the <quote>head</quote> branch
+ of the ports Subversion repository</entry>
</row>
<row>
@@ -693,16 +738,16 @@
<row>
<entry>&a.svn-src-all.name;</entry>
<entry><filename>/usr/src</filename></entry>
- <entry>All changes to the src Subversion repository (except
- for <filename>user</filename>
+ <entry>All changes to the src Subversion repository
+ (except for <filename>user</filename>
and <filename>projects</filename>)</entry>
</row>
<row>
<entry>&a.svn-src-head.name;</entry>
<entry><filename>/usr/src</filename></entry>
- <entry>All changes to the <quote>head</quote> branch of
- the src Subversion repository (the &os;-CURRENT
+ <entry>All changes to the <quote>head</quote> branch
+ of the src Subversion repository (the &os;-CURRENT
branch)</entry>
</row>
@@ -802,85 +847,90 @@
<title>How to Subscribe</title>
<para>To subscribe to a list, click on the list name above or
- go to &a.mailman.lists.link;
- and click on the list that you are interested in. The list
- page should contain all of the necessary subscription
- instructions.</para>
+ go to &a.mailman.lists.link; and click on the list that you
+ are interested in. The list page should contain all of the
+ necessary subscription instructions.</para>
<para>To actually post to a given list, send mail to
- <email><replaceable>listname</replaceable>@FreeBSD.org</email>. It will then
- be redistributed to mailing list members world-wide.</para>
+ <email><replaceable>listname</replaceable>@FreeBSD.org</email>.
+ It will then be redistributed to mailing list members
+ world-wide.</para>
<para>To unsubscribe yourself from a list, click on the URL
- found at the bottom of every email received from the list. It
- is also possible to send an email to
- <email><replaceable>listname</replaceable>-unsubscribe@FreeBSD.org</email> to unsubscribe
- yourself.</para>
-
- <para>Again, we would like to request that you keep discussion in the
- technical mailing lists on a technical track. If you are only
- interested in important announcements then it is suggested that
- you join the &a.announce;, which is intended only for infrequent
- traffic.</para>
+ found at the bottom of every email received from the list.
+ It is also possible to send an email to
+ <email><replaceable>listname</replaceable>-unsubscribe@FreeBSD.org</email>
+ to unsubscribe yourself.</para>
+
+ <para>Again, we would like to request that you keep discussion
+ in the technical mailing lists on a technical track. If you
+ are only interested in important announcements then it is
+ suggested that you join the &a.announce;, which is intended
+ only for infrequent traffic.</para>
</sect2>
<sect2 id="eresources-charters">
<title>List Charters</title>
- <para><emphasis>All</emphasis> FreeBSD mailing lists have certain basic
- rules which must be adhered to by anyone using them. Failure to comply
- with these guidelines will result in two (2) written warnings from the
- FreeBSD Postmaster <email>postmaster@FreeBSD.org</email>, after which,
- on a third offense, the poster will removed from all FreeBSD mailing
- lists and filtered from further posting to them. We regret that such
- rules and measures are necessary at all, but today's Internet is a
- pretty harsh environment, it would seem, and many fail to appreciate
- just how fragile some of its mechanisms are.</para>
+ <para><emphasis>All</emphasis> FreeBSD mailing lists have
+ certain basic rules which must be adhered to by anyone using
+ them. Failure to comply with these guidelines will result
+ in two (2) written warnings from the FreeBSD Postmaster
+ <email>postmaster@FreeBSD.org</email>, after which, on a
+ third offense, the poster will removed from all FreeBSD
+ mailing lists and filtered from further posting to them. We
+ regret that such rules and measures are necessary at all,
+ but today's Internet is a pretty harsh environment, it would
+ seem, and many fail to appreciate just how fragile some of
+ its mechanisms are.</para>
<para>Rules of the road:</para>
<itemizedlist>
<listitem>
- <para>The topic of any posting should adhere to the basic charter of
- the list it is posted to, e.g., if the list is about technical
- issues then your posting should contain technical discussion.
- Ongoing irrelevant chatter or flaming only detracts from the value
- of the mailing list for everyone on it and will not be tolerated.
- For free-form discussion on no particular topic, the &a.chat;
+ <para>The topic of any posting should adhere to the basic
+ charter of the list it is posted to, e.g., if the list
+ is about technical issues then your posting should contain
+ technical discussion. Ongoing irrelevant chatter or
+ flaming only detracts from the value of the mailing list
+ for everyone on it and will not be tolerated. For
+ free-form discussion on no particular topic, the &a.chat;
is freely available and should be used instead.</para>
</listitem>
<listitem>
- <para>No posting should be made to more than 2 mailing lists, and
- only to 2 when a clear and obvious need to post to both lists
- exists. For most lists, there is already a great deal of
- subscriber overlap and except for the most esoteric mixes (say
- <quote>-stable &amp; -scsi</quote>), there really is no reason to post to more
- than one list at a time. If a message is sent to you in such a
- way that multiple mailing lists appear on the
- <literal>Cc</literal> line then the <literal>Cc</literal>
- line should also be trimmed before sending it out again.
- <emphasis>You are still responsible for your
- own cross-postings, no matter who the originator might have
- been.</emphasis></para>
+ <para>No posting should be made to more than 2 mailing
+ lists, and only to 2 when a clear and obvious need to post
+ to both lists exists. For most lists, there is already
+ a great deal of subscriber overlap and except for the most
+ esoteric mixes (say <quote>-stable &amp; -scsi</quote>),
+ there really is no reason to post to more than one list at
+ a time. If a message is sent to you in such a way that
+ multiple mailing lists appear on the <literal>Cc</literal>
+ line then the <literal>Cc</literal> line should also be
+ trimmed before sending it out again. <emphasis>You are
+ still responsible for your own cross-postings, no matter
+ who the originator might have been.</emphasis></para>
</listitem>
<listitem>
- <para>Personal attacks and profanity (in the context of an argument)
- are not allowed, and that includes users and developers alike.
- Gross breaches of netiquette, like excerpting or reposting private
- mail when permission to do so was not and would not be
- forthcoming, are frowned upon but not specifically enforced.
- <emphasis>However</emphasis>, there are also very few cases where
- such content would fit within the charter of a list and it would
- therefore probably rate a warning (or ban) on that basis
- alone.</para>
+ <para>Personal attacks and profanity (in the context of
+ an argument) are not allowed, and that includes users
+ and developers alike. Gross breaches of netiquette,
+ like excerpting or reposting private mail when permission
+ to do so was not and would not be forthcoming, are frowned
+ upon but not specifically enforced.
+ <emphasis>However</emphasis>, there are also very few
+ cases where such content would fit within the charter
+ of a list and it would therefore probably rate a warning
+ (or ban) on that basis alone.</para>
</listitem>
<listitem>
- <para>Advertising of non-FreeBSD related products or services is
- strictly prohibited and will result in an immediate ban if it is
- clear that the offender is advertising by spam.</para>
+ <para>Advertising of non-FreeBSD related products or
+ services is strictly prohibited and will result in an
+ immediate ban if it is clear that the offender is
+ advertising by spam.</para>
</listitem>
</itemizedlist>
@@ -893,7 +943,7 @@
<listitem>
<para><emphasis>ACPI and power management
- development</emphasis></para>
+ development</emphasis></para>
</listitem>
</varlistentry>
@@ -903,8 +953,8 @@
<listitem>
<para><emphasis>Andrew File System</emphasis></para>
- <para>This list is for discussion on porting and using AFS from
- CMU/Transarc</para>
+ <para>This list is for discussion on porting and using
+ AFS from CMU/Transarc</para>
</listitem>
</varlistentry>
@@ -912,13 +962,15 @@
<term>&a.announce.name;</term>
<listitem>
- <para><emphasis>Important events / milestones</emphasis></para>
-
- <para>This is the mailing list for people interested only in
- occasional announcements of significant FreeBSD events. This
- includes announcements about snapshots and other releases. It
- contains announcements of new FreeBSD capabilities. It may
- contain calls for volunteers etc. This is a low volume, strictly
+ <para><emphasis>Important events /
+ milestones</emphasis></para>
+
+ <para>This is the mailing list for people interested
+ only in occasional announcements of significant FreeBSD
+ events. This includes announcements about snapshots
+ and other releases. It contains announcements of new
+ FreeBSD capabilities. It may contain calls for
+ volunteers etc. This is a low volume, strictly
moderated mailing list.</para>
</listitem>
</varlistentry>
@@ -930,7 +982,7 @@
<para><emphasis>Architecture and design
discussions</emphasis></para>
- <para>This list is for discussion of the FreeBSD
+ <para>This list is for discussion of the FreeBSD
architecture. Messages will mostly be kept strictly
technical in nature. Examples of suitable topics
are:</para>
@@ -942,14 +994,14 @@
</listitem>
<listitem>
- <para>What needs to be fixed with VFS to make Heidemann layers
- work.</para>
- </listitem>
+ <para>What needs to be fixed with VFS to make
+ Heidemann layers work.</para>
+ </listitem>
<listitem>
- <para>How do we change the device driver interface to be able
- to use the same drivers cleanly on many buses and
- architectures.</para>
+ <para>How do we change the device driver interface
+ to be able to use the same drivers cleanly on many
+ buses and architectures.</para>
</listitem>
<listitem>
@@ -960,31 +1012,16 @@
</varlistentry>
<varlistentry>
- <term>&a.binup.name;</term>
-
- <listitem>
- <para><emphasis>FreeBSD Binary Update Project</emphasis></para>
-
- <para>This list exists to provide discussion for the binary
- update system, or <application>binup</application>.
- Design issues, implementation details,
- patches, bug reports, status reports, feature requests, commit
- logs, and all other things related to
- <application>binup</application> are fair game.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
<term>&a.bluetooth.name;</term>
<listitem>
<para><emphasis>&bluetooth; in FreeBSD</emphasis></para>
<para>This is the forum where FreeBSD's &bluetooth; users
- congregate. Design issues, implementation details,
- patches, bug reports, status reports, feature requests,
- and all matters related to &bluetooth; are fair
- game.</para>
+ congregate. Design issues, implementation details,
+ patches, bug reports, status reports, feature requests,
+ and all matters related to &bluetooth; are fair
+ game.</para>
</listitem>
</varlistentry>
@@ -992,12 +1029,14 @@
<term>&a.bugbusters.name;</term>
<listitem>
- <para><emphasis>Coordination of the Problem Report handling effort</emphasis></para>
-
- <para>The purpose of this list is to serve as a coordination and
- discussion forum for the Bugmeister, his Bugbusters, and any other
- parties who have a genuine interest in the PR database. This list
- is not for discussions about specific bugs, patches or PRs.</para>
+ <para><emphasis>Coordination of the Problem Report
+ handling effort</emphasis></para>
+
+ <para>The purpose of this list is to serve as a
+ coordination and discussion forum for the Bugmeister,
+ his Bugbusters, and any other parties who have a genuine
+ interest in the PR database. This list is not for
+ discussions about specific bugs, patches or PRs.</para>
</listitem>
</varlistentry>
@@ -1007,10 +1046,9 @@
<listitem>
<para><emphasis>Bug reports</emphasis></para>
- <para>This is the mailing list for reporting bugs in FreeBSD.
- Whenever possible, bugs should be submitted using the
- &man.send-pr.1;
- command or the <ulink
+ <para>This is the mailing list for reporting bugs in
+ FreeBSD. Whenever possible, bugs should be submitted
+ using the &man.send-pr.1; command or the <ulink
url="&url.base;/send-pr.html">WEB
interface</ulink> to it.</para>
</listitem>
@@ -1023,15 +1061,16 @@
<para><emphasis>Non technical items related to the FreeBSD
community</emphasis></para>
- <para>This list contains the overflow from the other lists about
- non-technical, social information. It includes discussion about
- whether Jordan looks like a toon ferret or not, whether or not
- to type in capitals, who is drinking too much coffee, where the
- best beer is brewed, who is brewing beer in their basement, and
- so on. Occasional announcements of important events (such as
- upcoming parties, weddings, births, new jobs, etc) can be made
- to the technical lists, but the follow ups should be directed to
- this -chat list.</para>
+ <para>This list contains the overflow from the other
+ lists about non-technical, social information. It
+ includes discussion about whether Jordan looks like a
+ toon ferret or not, whether or not to type in capitals,
+ who is drinking too much coffee, where the best beer
+ is brewed, who is brewing beer in their basement, and
+ so on. Occasional announcements of important events
+ (such as upcoming parties, weddings, births, new jobs,
+ etc) can be made to the technical lists, but the follow
+ ups should be directed to this -chat list.</para>
</listitem>
</varlistentry>
@@ -1039,11 +1078,12 @@
<term>&a.chromium.name;</term>
<listitem>
- <para><emphasis>FreeBSD-specific Chromium issues</emphasis></para>
+ <para><emphasis>FreeBSD-specific Chromium
+ issues</emphasis></para>
<para>This is a list for the discussion of Chromium
- support for FreeBSD. This is a technical list to discuss
- development and installation of Chromium.</para>
+ support for FreeBSD. This is a technical list to
+ discuss development and installation of Chromium.</para>
</listitem>
</varlistentry>
@@ -1055,8 +1095,8 @@
<para>This is an internal mailing list for use by the core
members. Messages can be sent to it when a serious
- FreeBSD-related matter requires arbitration or high-level
- scrutiny.</para>
+ FreeBSD-related matter requires arbitration or
+ high-level scrutiny.</para>
</listitem>
</varlistentry>
@@ -1067,12 +1107,13 @@
<para><emphasis>Discussions about the use of
&os.current;</emphasis></para>
- <para>This is the mailing list for users of &os.current;. It
- includes warnings about new features coming out in -CURRENT that
- will affect the users, and instructions on steps that must be
- taken to remain -CURRENT. Anyone running <quote>CURRENT</quote>
- must subscribe to this list. This is a technical mailing list
- for which strictly technical content is expected.</para>
+ <para>This is the mailing list for users of &os.current;.
+ It includes warnings about new features coming out in
+ -CURRENT that will affect the users, and instructions
+ on steps that must be taken to remain -CURRENT. Anyone
+ running <quote>CURRENT</quote> must subscribe to this
+ list. This is a technical mailing list for which
+ strictly technical content is expected.</para>
</listitem>
</varlistentry>
@@ -1082,8 +1123,8 @@
<listitem>
<para><emphasis>FreeBSD CVSweb Project</emphasis></para>
- <para>Technical discussions about use, development and maintenance
- of FreeBSD-CVSweb.</para>
+ <para>Technical discussions about use, development and
+ maintenance of FreeBSD-CVSweb.</para>
</listitem>
</varlistentry>
@@ -1091,7 +1132,8 @@
<term>&a.desktop.name;</term>
<listitem>
- <para><emphasis>Using and improving &os; on the desktop</emphasis></para>
+ <para><emphasis>Using and improving &os; on the
+ desktop</emphasis></para>
<para>This is a forum for discussion of &os; on the
desktop. It is primarily a place for desktop porters
@@ -1106,11 +1148,12 @@
<listitem>
<para><emphasis>Documentation project</emphasis></para>
- <para>This mailing list is for the discussion of issues and
- projects related to the creation of documentation for FreeBSD.
- The members of this mailing list are collectively referred to as
- <quote>The FreeBSD Documentation Project</quote>. It is an open
- list; feel free to join and contribute!</para>
+ <para>This mailing list is for the discussion of issues
+ and projects related to the creation of documentation
+ for FreeBSD. The members of this mailing list are
+ collectively referred to as <quote>The FreeBSD
+ Documentation Project</quote>. It is an open list;
+ feel free to join and contribute!</para>
</listitem>
</varlistentry>
@@ -1118,13 +1161,14 @@
<term>&a.drivers.name;</term>
<listitem>
- <para><emphasis>Writing device drivers for &os;</emphasis></para>
-
- <para>This is a forum for technical discussions related to
- device drivers on &os;. It is primarily a place
- for device driver writers to ask questions about
- how to write device drivers using the APIs in the
- &os; kernel.</para>
+ <para><emphasis>Writing device drivers for
+ &os;</emphasis></para>
+
+ <para>This is a forum for technical discussions related
+ to device drivers on &os;. It is primarily a place
+ for device driver writers to ask questions about how
+ to write device drivers using the APIs in the &os;
+ kernel.</para>
</listitem>
</varlistentry>
@@ -1133,7 +1177,7 @@
<listitem>
<para><emphasis>&os; users of Eclipse IDE, tools, rich
- client applications and ports.</emphasis></para>
+ client applications and ports.</emphasis></para>
<para>The intention of this list is to provide mutual
support for everything to do with choosing, installing,
@@ -1149,8 +1193,7 @@
<para>Although this list is focused primarily on the needs
of Eclipse users it will also provide a forum for those
who would like to develop &os; specific applications
- using the Eclipse framework.
- </para>
+ using the Eclipse framework.</para>
</listitem>
</varlistentry>
@@ -1159,18 +1202,19 @@
<listitem>
<para><emphasis>Using FreeBSD in embedded
- applications</emphasis></para>
-
- <para>This list discusses topics related to using FreeBSD in
- embedded systems. This is a technical mailing list for which
- strictly technical content is expected. For the purpose of
- this list we define embedded systems as those computing
- devices which are not desktops and which usually serve a
- single purpose as opposed to being general computing
- environments. Examples include, but are not limited to,
- all kinds of phone handsets, network equipment such as
- routers, switches and PBXs, remote measuring equipment,
- PDAs, Point Of Sale systems, and so on.</para>
+ applications</emphasis></para>
+
+ <para>This list discusses topics related to using FreeBSD
+ in embedded systems. This is a technical mailing list
+ for which strictly technical content is expected. For
+ the purpose of this list we define embedded systems as
+ those computing devices which are not desktops and which
+ usually serve a single purpose as opposed to being
+ general computing environments. Examples include, but
+ are not limited to, all kinds of phone handsets, network
+ equipment such as routers, switches and PBXs, remote
+ measuring equipment, PDAs, Point Of Sale systems, and
+ so on.</para>
</listitem>
</varlistentry>
@@ -1181,9 +1225,9 @@
<para><emphasis>Emulation of other systems such as
Linux/&ms-dos;/&windows;</emphasis></para>
- <para>This is a forum for technical discussions related to
- running programs written for other operating systems on &os;.
- </para>
+ <para>This is a forum for technical discussions related
+ to running programs written for other operating systems
+ on &os;.</para>
</listitem>
</varlistentry>
@@ -1191,13 +1235,15 @@
<term>&a.eol.name;</term>
<listitem>
- <para><emphasis>Peer support of FreeBSD-related software that is
- no longer supported by the FreeBSD project.</emphasis></para>
-
- <para>This list is for those interested in providing or making use
- of peer support of FreeBSD-related software for which the
- FreeBSD project no longer provides official support (e.g., in
- the form of security advisories and patches).</para>
+ <para><emphasis>Peer support of FreeBSD-related software
+ that is no longer supported by the FreeBSD
+ project.</emphasis></para>
+
+ <para>This list is for those interested in providing or
+ making use of peer support of FreeBSD-related software
+ for which the FreeBSD project no longer provides
+ official support (e.g., in the form of security
+ advisories and patches).</para>
</listitem>
</varlistentry>
@@ -1205,7 +1251,8 @@
<term>&a.firewire.name;</term>
<listitem>
- <para><emphasis>&firewire; (iLink, IEEE 1394)</emphasis></para>
+ <para><emphasis>&firewire; (iLink, IEEE
+ 1394)</emphasis></para>
<para>This is a mailing list for discussion of the design
and implementation of a &firewire; (aka IEEE 1394 aka
@@ -1223,9 +1270,9 @@
<listitem>
<para><emphasis>File systems</emphasis></para>
- <para>Discussions concerning FreeBSD file systems. This is a
- technical mailing list for which strictly technical content is
- expected.</para>
+ <para>Discussions concerning FreeBSD file systems.
+ This is a technical mailing list for which strictly
+ technical content is expected.</para>
</listitem>
</varlistentry>
@@ -1235,8 +1282,9 @@
<listitem>
<para><emphasis>Gecko Rendering Engine</emphasis></para>
- <para>This is a forum about <application>Gecko</application>
- applications using &os;.</para>
+ <para>This is a forum about
+ <application>Gecko</application> applications using
+ &os;.</para>
<para>Discussion centers around Gecko Ports applications,
their installation, their development and their support
@@ -1250,9 +1298,9 @@
<listitem>
<para><emphasis>GEOM</emphasis></para>
- <para>Discussions specific to GEOM and related implementations.
- This is a technical mailing list for which strictly technical
- content is expected.</para>
+ <para>Discussions specific to GEOM and related
+ implementations. This is a technical mailing list for
+ which strictly technical content is expected.</para>
</listitem>
</varlistentry>
@@ -1262,9 +1310,21 @@
<listitem>
<para><emphasis>GNOME</emphasis></para>
- <para>Discussions concerning The <application>GNOME</application> Desktop Environment for
- FreeBSD systems. This is a technical mailing list for
- which strictly technical content is expected.</para>
+ <para>Discussions concerning The
+ <application>GNOME</application> Desktop Environment
+ for FreeBSD systems. This is a technical mailing list
+ for which strictly technical content is expected.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.infiniband.name;</term>
+
+ <listitem>
+ <para><emphasis>Infiniband on &os;</emphasis></para>
+
+ <para>Technical mailing list discussing Infiniband, OFED,
+ and OpenSM on &os;.</para>
</listitem>
</varlistentry>
@@ -1274,10 +1334,10 @@
<listitem>
<para><emphasis>IP Firewall</emphasis></para>
- <para>This is the forum for technical discussions concerning the
- redesign of the IP firewall code in FreeBSD. This is a
- technical mailing list for which strictly technical content is
- expected.</para>
+ <para>This is the forum for technical discussions
+ concerning the redesign of the IP firewall code in
+ FreeBSD. This is a technical mailing list for which
+ strictly technical content is expected.</para>
</listitem>
</varlistentry>
@@ -1288,10 +1348,11 @@
<para><emphasis>Porting FreeBSD to IA64</emphasis></para>
<para>This is a technical mailing list for individuals
- actively working on porting FreeBSD to the IA-64 platform
- from &intel;, to bring up problems or discuss alternative
- solutions. Individuals interested in following the
- technical discussion are also welcome.</para>
+ actively working on porting FreeBSD to the IA-64
+ platform from &intel;, to bring up problems or discuss
+ alternative solutions. Individuals interested in
+ following the technical discussion are also
+ welcome.</para>
</listitem>
</varlistentry>
@@ -1313,8 +1374,9 @@
<para><emphasis>&java; Development</emphasis></para>
<para>This is the mailing list for people discussing the
- development of significant &java; applications for FreeBSD and the
- porting and maintenance of &jdk;s.</para>
+ development of significant &java; applications for
+ FreeBSD and the porting and maintenance of
+ &jdk;s.</para>
</listitem>
</varlistentry>
@@ -1324,19 +1386,19 @@
<listitem>
<para><emphasis>Jobs offered and sought</emphasis></para>
- <para>This is a forum for posting employment notices and
- resumes specifically related to &os;, e.g., if you are
- seeking &os;-related employment or have a job involving
- &os; to advertise then this is the right place. This is
- <emphasis>not</emphasis> a mailing list for general
- employment issues since adequate forums for that
- already exist elsewhere.</para>
+ <para>This is a forum for posting employment notices
+ and resumes specifically related to &os;, e.g., if you
+ are seeking &os;-related employment or have a job
+ involving &os; to advertise then this is the right
+ place. This is <emphasis>not</emphasis> a mailing list
+ for general employment issues since adequate forums
+ for that already exist elsewhere.</para>
- <para>Note that this list, like other <hostid role="domainname">FreeBSD.org</hostid> mailing
- lists, is distributed worldwide. Thus, you need to be
- clear about location and the extent to which
- telecommuting or assistance with relocation is
- available.</para>
+ <para>Note that this list, like other <hostid
+ role="domainname">FreeBSD.org</hostid> mailing lists,
+ is distributed worldwide. Thus, you need to be clear
+ about location and the extent to which telecommuting or
+ assistance with relocation is available.</para>
<para>Email should use open formats only &mdash;
preferably plain text, but basic Portable Document
@@ -1353,9 +1415,10 @@
<listitem>
<para><emphasis>KDE</emphasis></para>
- <para>Discussions concerning <application>KDE</application> on
- FreeBSD systems. This is a technical mailing list for
- which strictly technical content is expected.</para>
+ <para>Discussions concerning
+ <application>KDE</application> on FreeBSD systems.
+ This is a technical mailing list for which strictly
+ technical content is expected.</para>
</listitem>
</varlistentry>
@@ -1365,12 +1428,13 @@
<listitem>
<para><emphasis>Technical discussions</emphasis></para>
- <para>This is a forum for technical discussions related to
- FreeBSD. This is the primary technical mailing list. It is for
- individuals actively working on FreeBSD, to bring up problems or
- discuss alternative solutions. Individuals interested in
- following the technical discussion are also welcome. This is a
- technical mailing list for which strictly technical content is
+ <para>This is a forum for technical discussions related
+ to FreeBSD. This is the primary technical mailing list.
+ It is for individuals actively working on FreeBSD, to
+ bring up problems or discuss alternative solutions.
+ Individuals interested in following the technical
+ discussion are also welcome. This is a technical
+ mailing list for which strictly technical content is
expected.</para>
</listitem>
</varlistentry>
@@ -1382,9 +1446,9 @@
<para><emphasis>General discussion of FreeBSD
hardware</emphasis></para>
- <para>General discussion about the types of hardware that FreeBSD
- runs on, various problems and suggestions concerning what to buy
- or avoid.</para>
+ <para>General discussion about the types of hardware
+ that FreeBSD runs on, various problems and suggestions
+ concerning what to buy or avoid.</para>
</listitem>
</varlistentry>
@@ -1394,8 +1458,8 @@
<listitem>
<para><emphasis>Mirror sites</emphasis></para>
- <para>Announcements and discussion for people who run FreeBSD
- mirror sites.</para>
+ <para>Announcements and discussion for people who run
+ FreeBSD mirror sites.</para>
</listitem>
</varlistentry>
@@ -1406,10 +1470,10 @@
<para><emphasis>Issues for Internet Service
Providers</emphasis></para>
- <para>This mailing list is for discussing topics relevant to
- Internet Service Providers (ISPs) using FreeBSD. This is a
- technical mailing list for which strictly technical content is
- expected.</para>
+ <para>This mailing list is for discussing topics relevant
+ to Internet Service Providers (ISPs) using FreeBSD.
+ This is a technical mailing list for which strictly
+ technical content is expected.</para>
</listitem>
</varlistentry>
@@ -1418,15 +1482,15 @@
<listitem>
<para><emphasis>Mono and C# applications on
- FreeBSD</emphasis></para>
+ FreeBSD</emphasis></para>
<para>This is a list for discussions related to the Mono
development framework on &os;. This is a technical
- mailing list. It is for individuals actively working on
- porting Mono or C# applications to &os;, to bring up
- problems or discuss alternative solutions. Individuals
- interested in following the technical discussion are also
- welcome.</para>
+ mailing list. It is for individuals actively working
+ on porting Mono or C# applications to &os;, to bring
+ up problems or discuss alternative solutions.
+ Individuals interested in following the technical
+ discussion are also welcome.</para>
</listitem>
</varlistentry>
@@ -1434,19 +1498,37 @@
<term>&a.office.name;</term>
<listitem>
- <para><emphasis>Office applications on &os;</emphasis></para>
+ <para><emphasis>Office applications on
+ &os;</emphasis></para>
<para>Discussion centers around office applications,
their installation, their development and their support
within &os;.</para>
- </listitem>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.ops-announce.name;</term>
+
+ <listitem>
+ <para><emphasis>Project Infrastructure
+ Announcements</emphasis></para>
+
+ <para>This is the mailing list for people interested in
+ changes and issues related to the FreeBSD.org project
+ infrastructure.</para>
+
+ <para>This list is strictly for announcements: no replies,
+ requests, discussions, or opinions.</para>
+ </listitem>
</varlistentry>
<varlistentry>
<term>&a.performance.name;</term>
<listitem>
- <para><emphasis>Discussions about tuning or speeding up FreeBSD</emphasis></para>
+ <para><emphasis>Discussions about tuning or speedingup
+ FreeBSD</emphasis></para>
<para>This mailing list exists to provide a place for
hackers, administrators, and/or concerned parties to
@@ -1472,27 +1554,49 @@
<term>&a.pf.name;</term>
<listitem>
- <para><emphasis>Discussion and questions about the packet filter
- firewall system</emphasis></para>
+ <para><emphasis>Discussion and questions about the packet
+ filter firewall system</emphasis></para>
- <para>Discussion concerning the packet filter (pf) firewall
- system in terms of FreeBSD. Technical discussion and user
- questions are both welcome. This list is also a place to
- discuss the ALTQ QoS framework.</para>
+ <para>Discussion concerning the packet filter (pf)
+ firewall system in terms of FreeBSD. Technical
+ discussion and user questions are both welcome. This
+ list is also a place to discuss the ALTQ QoS
+ framework.</para>
</listitem>
</varlistentry>
<varlistentry>
+ <term>&a.pkg.name;</term>
+
+ <listitem>
+ <para><emphasis>Binary package management and package
+ tools discussion</emphasis></para>
+
+ <para>Discussion of all aspects of managing &os; systems
+ by using binary packages to install software, including
+ binary package toolkits and formats, their development
+ and support within &os;, package repository management,
+ and 3rd party packages.</para>
+
+ <para>Note that discussion of ports which fail to generate
+ packages correctly should generally be considered as
+ ports problems, and so inappropriate for this
+ list.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
<term>&a.platforms.name;</term>
<listitem>
- <para><emphasis>Porting to Non &intel; platforms</emphasis></para>
+ <para><emphasis>Porting to Non &intel;
+ platforms</emphasis></para>
- <para>Cross-platform FreeBSD issues, general discussion and
- proposals for non &intel; FreeBSD ports. This is a technical
- mailing list for which strictly technical content is
- expected.</para>
+ <para>Cross-platform FreeBSD issues, general discussion
+ and proposals for non &intel; FreeBSD ports. This is
+ a technical mailing list for which strictly technical
+ content is expected.</para>
</listitem>
</varlistentry>
@@ -1504,9 +1608,10 @@
<quote>ports</quote></emphasis></para>
<para>Discussions concerning FreeBSD's <quote>ports
- collection</quote> (<filename>/usr/ports</filename>), ports infrastructure, and
- general ports coordination efforts. This is a technical mailing list
- for which strictly technical content is expected.</para>
+ collection</quote> (<filename>/usr/ports</filename>),
+ ports infrastructure, and general ports coordination
+ efforts. This is a technical mailing list for which
+ strictly technical content is expected.</para>
</listitem>
</varlistentry>
@@ -1515,15 +1620,16 @@
<listitem>
<para><emphasis>Important news and instructions about the
- &os;&nbsp;<quote>Ports Collection</quote></emphasis></para>
+ &os;&nbsp;<quote>Ports
+ Collection</quote></emphasis></para>
- <para>Important news for developers, porters, and users of
- the <quote>Ports Collection</quote> (<filename
+ <para>Important news for developers, porters, and users
+ of the <quote>Ports Collection</quote> (<filename
role="directory">/usr/ports</filename>), including
architecture/infrastructure changes, new capabilities,
critical upgrade instructions, and release engineering
- information. This is a low-volume mailing list, intended
- for announcements.</para>
+ information. This is a low-volume mailing list,
+ intended for announcements.</para>
</listitem>
</varlistentry>
@@ -1534,10 +1640,12 @@
<para><emphasis>Discussion of
<quote>ports</quote> bugs</emphasis></para>
- <para>Discussions concerning problem reports for FreeBSD's <quote>ports
- collection</quote> (<filename>/usr/ports</filename>), proposed
- ports, or modifications to ports. This is a technical mailing list
- for which strictly technical content is expected.</para>
+ <para>Discussions concerning problem reports for FreeBSD's
+ <quote>ports collection</quote>
+ (<filename>/usr/ports</filename>), proposed ports, or
+ modifications to ports. This is a technical mailing
+ list for which strictly technical content is
+ expected.</para>
</listitem>
</varlistentry>
@@ -1549,11 +1657,12 @@
ProLiant server platforms</emphasis></para>
<para>This mailing list is to be used for the technical
- discussion of the usage of FreeBSD on HP ProLiant servers,
- including the discussion of ProLiant-specific drivers,
- management software, configuration tools, and BIOS
- updates. As such, this is the primary place to discuss
- the hpasmd, hpasmcli, and hpacucli modules.</para>
+ discussion of the usage of FreeBSD on HP ProLiant
+ servers, including the discussion of ProLiant-specific
+ drivers, management software, configuration tools, and
+ BIOS updates. As such, this is the primary place to
+ discuss the hpasmd, hpasmcli, and hpacucli
+ modules.</para>
</listitem>
</varlistentry>
@@ -1563,11 +1672,13 @@
<listitem>
<para><emphasis>Python on FreeBSD</emphasis></para>
- <para>This is a list for discussions related to improving Python-support
- on FreeBSD. This is a technical mailing list. It is for individuals
- working on porting Python, its 3rd party modules and <application>Zope</application> stuff to
- FreeBSD. Individuals interested in following the technical discussion
- are also welcome.</para>
+ <para>This is a list for discussions related to improving
+ Python-support on FreeBSD. This is a technical mailing
+ list. It is for individuals working on porting Python,
+ its 3rd party modules and
+ <application>Zope</application> stuff to FreeBSD.
+ Individuals interested in following the technical
+ discussion are also welcome.</para>
</listitem>
</varlistentry>
@@ -1577,10 +1688,10 @@
<listitem>
<para><emphasis>User questions</emphasis></para>
- <para>This is the mailing list for questions about FreeBSD. You
- should not send <quote>how to</quote> questions to the technical
- lists unless you consider the question to be pretty
- technical.</para>
+ <para>This is the mailing list for questions about
+ FreeBSD. You should not send <quote>how to</quote>
+ questions to the technical lists unless you consider
+ the question to be pretty technical.</para>
</listitem>
</varlistentry>
@@ -1589,7 +1700,7 @@
<listitem>
<para><emphasis>FreeBSD-specific Ruby
- discussions</emphasis></para>
+ discussions</emphasis></para>
<para>This is a list for discussions related to the Ruby
support on FreeBSD. This is a technical mailing
@@ -1607,9 +1718,10 @@
<listitem>
<para><emphasis>SCSI subsystem</emphasis></para>
- <para>This is the mailing list for people working on the SCSI
- subsystem for FreeBSD. This is a technical mailing list for
- which strictly technical content is expected.</para>
+ <para>This is the mailing list for people working on
+ the SCSI subsystem for FreeBSD. This is a technical
+ mailing list for which strictly technical content is
+ expected.</para>
</listitem>
</varlistentry>
@@ -1619,12 +1731,12 @@
<listitem>
<para><emphasis>Security issues</emphasis></para>
- <para>FreeBSD computer security issues (DES, Kerberos, known
- security holes and fixes, etc). This is a technical mailing
- list for which strictly technical discussion is expected. Note
- that this is not a question-and-answer list, but that
- contributions (BOTH question AND answer) to the FAQ are
- welcome.</para>
+ <para>FreeBSD computer security issues (DES, Kerberos,
+ known security holes and fixes, etc). This is a
+ technical mailing list for which strictly technical
+ discussion is expected. Note that this is not a
+ question-and-answer list, but that contributions (BOTH
+ question AND answer) to the FAQ are welcome.</para>
</listitem>
</varlistentry>
@@ -1635,7 +1747,7 @@
<para><emphasis>Security Notifications</emphasis></para>
<para>Notifications of FreeBSD security problems and
- fixes. This is not a discussion list. The discussion
+ fixes. This is not a discussion list. The discussion
list is FreeBSD-security.</para>
</listitem>
</varlistentry>
@@ -1645,32 +1757,48 @@
<listitem>
<para><emphasis>Using FreeBSD in embedded
- applications</emphasis></para>
+ applications</emphasis></para>
- <para>This list discusses topics related to unusually small and
- embedded FreeBSD installations. This is a technical mailing
- list for which strictly technical content is expected.</para>
+ <para>This list discusses topics related to unusually
+ small and embedded FreeBSD installations. This is a
+ technical mailing list for which strictly technical
+ content is expected.</para>
<note>
- <para>This list has been obsoleted by &a.embedded.name;.</para>
+ <para>This list has been obsoleted by
+ &a.embedded.name;.</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
+ <term>&a.snapshots.name;</term>
+
+ <listitem>
+ <para><emphasis>&os; Development Snapshot
+ Announcements</emphasis></para>
+
+ <para>This list will notify you about the availability
+ of new &os; development snapshots for the head/ and
+ stable/ branches.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
<term>&a.stable.name;</term>
<listitem>
<para><emphasis>Discussions about the use of
&os.stable;</emphasis></para>
- <para>This is the mailing list for users of &os.stable;. It
- includes warnings about new features coming out in -STABLE that
- will affect the users, and instructions on steps that must be
- taken to remain -STABLE. Anyone running <quote>STABLE</quote>
- should subscribe to this list. This is a technical mailing list
- for which strictly technical content is expected.</para>
+ <para>This is the mailing list for users of &os.stable;.
+ It includes warnings about new features coming out in
+ -STABLE that will affect the users, and instructions
+ on steps that must be taken to remain -STABLE. Anyone
+ running <quote>STABLE</quote> should subscribe to this
+ list. This is a technical mailing list for which
+ strictly technical content is expected.</para>
</listitem>
</varlistentry>
@@ -1678,10 +1806,12 @@
<term>&a.standards.name;</term>
<listitem>
- <para><emphasis>C99 &amp; POSIX Conformance</emphasis></para>
+ <para><emphasis>C99 &amp; POSIX
+ Conformance</emphasis></para>
- <para>This is a forum for technical discussions related to
- FreeBSD Conformance to the C99 and the POSIX standards.</para>
+ <para>This is a forum for technical discussions related
+ to FreeBSD Conformance to the C99 and the POSIX
+ standards.</para>
</listitem>
</varlistentry>
@@ -1690,22 +1820,22 @@
<listitem>
<para><emphasis>Maintenance of FreeBSD's integrated
- toolchain</emphasis></para>
+ toolchain</emphasis></para>
- <para>This is the mailing list for discussions related to
- the maintenance of the toolchain shipped with &os;. This
- could include the state of Clang and GCC, but also pieces
- of software such as assemblers, linkers and
+ <para>This is the mailing list for discussions related
+ to the maintenance of the toolchain shipped with &os;.
+ This could include the state of Clang and GCC, but also
+ pieces of software such as assemblers, linkers and
debuggers.</para>
- </listitem>
- </varlistentry>
+ </listitem>
+ </varlistentry>
<varlistentry>
<term>&a.usb.name;</term>
<listitem>
<para><emphasis>Discussing &os; support for
- USB</emphasis></para>
+ USB</emphasis></para>
<para>This is a mailing list for technical discussions
related to &os; support for USB.</para>
@@ -1716,13 +1846,15 @@
<term>&a.usergroups.name;</term>
<listitem>
- <para><emphasis>User Group Coordination List</emphasis></para>
-
- <para>This is the mailing list for the coordinators from each of
- the local area Users Groups to discuss matters with each other
- and a designated individual from the Core Team. This mail list
- should be limited to meeting synopsis and coordination of
- projects that span User Groups.</para>
+ <para><emphasis>User Group Coordination
+ List</emphasis></para>
+
+ <para>This is the mailing list for the coordinators from
+ each of the local area Users Groups to discuss matters
+ with each other and a designated individual from the
+ Core Team. This mail list should be limited to meeting
+ synopsis and coordination of projects that span User
+ Groups.</para>
</listitem>
</varlistentry>
@@ -1732,8 +1864,9 @@
<listitem>
<para><emphasis>Vendors</emphasis></para>
- <para>Coordination discussions between The FreeBSD Project and
- Vendors of software and hardware for FreeBSD.</para>
+ <para>Coordination discussions between The FreeBSD
+ Project and Vendors of software and hardware for
+ FreeBSD.</para>
</listitem>
</varlistentry>
@@ -1742,14 +1875,14 @@
<listitem>
<para><emphasis>Discussion of various virtualization
- techniques supported by &os;</emphasis></para>
+ techniques supported by &os;</emphasis></para>
<para>A list to discuss the various virtualization
- techniques supported by &os;. On one hand the focus will
- be on the implementation of the basic functionality as
- well as adding new features. On the other hand users
- will have a forum to ask for help in case of problems
- or to discuss their use cases.</para>
+ techniques supported by &os;. On one hand the focus
+ will be on the implementation of the basic functionality
+ as well as adding new features. On the other hand users
+ will have a forum to ask for help in case of problems or
+ to discuss their use cases.</para>
</listitem>
</varlistentry>
@@ -1757,7 +1890,8 @@
<term>&a.wip-status.name;</term>
<listitem>
- <para><emphasis>&os; Work-In-Progress Status</emphasis></para>
+ <para><emphasis>&os; Work-In-Progress
+ Status</emphasis></para>
<para>This mailing list can be used to announce creation
and progress of your &os; related work. Messages
@@ -1773,9 +1907,10 @@
<para>An editorial digest of the messages to this list
might be posted to the &os; website every few month
as part of the Status Reports
- <footnote><para><ulink url="http://www.freebsd.org/news/status/"></ulink></para></footnote>.
- You can find more
- examples and past reports there, too.</para>
+ <footnote><para><ulink
+ url="http://www.freebsd.org/news/status/"></ulink></para></footnote>.
<