books/handbook/
                                Makefile    1.103 -> 1.107
        advanced-networking/chapter.sgml    1.389 -> 1.398 [1]
                      audit/chapter.sgml     1.25 -> 1.28
                     basics/chapter.sgml    1.147 -> 1.148
               bibliography/chapter.sgml     1.78 -> 1.79
                     config/chapter.sgml    1.226 -> 1.226 [2] [3] [4]
               cutting-edge/chapter.sgml    1.225 -> 1.227
                    desktop/chapter.sgml     1.71 -> 1.73
                      disks/chapter.sgml    1.273 -> 1.274
                 eresources/chapter.sgml    1.181 -> 1.182
                  firewalls/chapter.sgml     1.74 -> 1.76
                       geom/chapter.sgml     1.27 -> 1.30
                    install/chapter.sgml    1.347 -> 1.373 [2]
               introduction/chapter.sgml    1.118 -> 1.119 [5]
                      jails/chapter.sgml      1.6 -> 1.13
               kernelconfig/chapter.sgml    1.171 -> 1.174
                       l10n/chapter.sgml    1.123 -> 1.124
                   linuxemu/chapter.sgml    1.133 -> 1.134
                        mac/chapter.sgml     1.69 -> 1.70
                    mirrors/chapter.sgml    1.432 -> 1.438
                 multimedia/chapter.sgml    1.126 -> 1.127
            network-servers/chapter.sgml     1.95 -> 1.99  [1]
                      ports/chapter.sgml    1.263 -> 1.267
                   security/chapter.sgml    1.312 -> 1.313
                            txtfiles.ent      1.2 -> 1.4
                      users/chapter.sgml     1.57 -> 1.58
             virtualization/chapter.sgml      1.9 -> 1.10
                        x11/chapter.sgml    1.179 -> 1.184

share/
            share/sgml/mailing-lists.ent     1.56 -> 1.57
                    share/sgml/teams.ent     1.17 -> 1.18
               share/sgml/trademarks.ent     1.38 -> 1.41
                  share/sgml/authors.ent

Obtained from:          The FreeBSD Simplified Chinese Project
Merging work done by:   delphij
Language suggestions:   Conte Alex <delhua gmail.com> [1],
                        Mu Chun Duan <duanmc cn.ibm.com> [2],
                        YouRDj (FreeBSDChina community forum) [3],
                        Bonjous_Zheng (FreeBSDChina community forum) [4],
                        Simon Zhang <z simoncheung gmail com> [5],

Approved by:            delphij (mentor)
This commit is contained in:
Fukang Chen 2007-08-09 15:40:40 +00:00
parent 4b9675c0a4
commit 9ff15e34ef
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=30615
32 changed files with 1615 additions and 1383 deletions

View file

@ -3,7 +3,7 @@
#
# Build the FreeBSD Handbook (Simplified Chinese).
#
# Original revision: 1.103
# Original revision: 1.107
# ------------------------------------------------------------------------
#
@ -48,12 +48,13 @@ IMAGES_EN+= geom/striping.pic
IMAGES_EN+= install/adduser1.scr
IMAGES_EN+= install/adduser2.scr
IMAGES_EN+= install/adduser3.scr
IMAGES_EN+= install/boot-loader-menu.scr
IMAGES_EN+= install/boot-mgr.scr
IMAGES_EN+= install/config-country.scr
IMAGES_EN+= install/console-saver1.scr
IMAGES_EN+= install/console-saver2.scr
IMAGES_EN+= install/console-saver3.scr
IMAGES_EN+= install/console-saver4.scr
IMAGES_EN+= install/desktop.scr
IMAGES_EN+= install/disklabel-auto.scr
IMAGES_EN+= install/disklabel-ed1.scr
IMAGES_EN+= install/disklabel-ed2.scr
@ -108,7 +109,6 @@ IMAGES_EN+= install/timezone2.scr
IMAGES_EN+= install/timezone3.scr
IMAGES_EN+= install/userconfig.scr
IMAGES_EN+= install/userconfig2.scr
IMAGES_EN+= install/xf86setup.scr
IMAGES_EN+= mail/mutt1.scr
IMAGES_EN+= mail/mutt2.scr
IMAGES_EN+= mail/mutt3.scr
@ -159,6 +159,11 @@ IMAGES_LIB+= callouts/7.png
IMAGES_LIB+= callouts/8.png
IMAGES_LIB+= callouts/9.png
IMAGES_LIB+= callouts/10.png
IMAGES_LIB+= callouts/11.png
IMAGES_LIB+= callouts/12.png
IMAGES_LIB+= callouts/13.png
IMAGES_LIB+= callouts/14.png
IMAGES_LIB+= callouts/15.png
#
# SRCS lists the individual SGML files that make up the document. Changes

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Chinese Documentation Project
Original revision: 1.389
Original revision: 1.398
$FreeBSD$
-->
@ -48,6 +48,11 @@
<listitem>
<para>如何配置 ATM。</para>
</listitem>
<listitem>
<para>如何利用 CARP &os; 支持的
Common Access Redundancy Protocol (共用地址冗余协议)</para>
</listitem>
</itemizedlist>
<para>在读这章之前, 您应:</para>
@ -2182,25 +2187,11 @@ rfcomm_sppd[94692]: Starting on /dev/ttyp6...</screen>
<sect1 id="network-bridging">
<sect1info>
<authorgroup>
<author>
<firstname>Steve</firstname>
<surname>Peterson</surname>
<contrib>作者:</contrib>
</author>
</authorgroup>
<authorgroup>
<author>
<firstname>张</firstname>
<surname>雪平</surname>
<contrib>中文翻译:</contrib>
<affiliation>
<address><email>zxpmyth@yahoo.com.cn</email></address>
</affiliation>
</author>
<author>
<firstname>袁</firstname>
<surname>苏义</surname>
</author>
<author>
<firstname>Andrew</firstname>
<surname>Thompson</surname>
<contrib>原作 </contrib>
</author>
</authorgroup>
</sect1info>
<title>桥接</title>
@ -2213,13 +2204,13 @@ rfcomm_sppd[94692]: Starting on /dev/ttyp6...</screen>
<indexterm>
<primary>桥接</primary>
</indexterm>
<para>有时需要将一个物理网络分成两个独立的网段,
无需创建新的 IP 子网和连接两个网段的路由器
以这种方式连接两个网络的设备称为<quote>网桥 (bridge)</quote>。
有两个网络接口的 FreeBSD 系统可以作为网桥。</para>
<para>有时 会有需要将一个物理网络分成两个独立的网段,
不是创建新的 IP 子网, 并将其通过路由器相连
以这种方式连接两个网络的设备称为 <quote>网桥 (bridge)</quote>。
有两个网络接口的 FreeBSD 系统可以作为网桥来使用。</para>
<para>网桥通过学习每个网络接口上的 MAC 层地址 (以太网地址) 工作。
只当数据包的源地址和目标地址处于不同网络时网桥才进行转发。</para>
只当数据包的源地址和目标地址处于不同网络时 网桥才进行转发。</para>
<para>在很多方面,网桥就像一个带有很少端口的以太网交换机。</para>
</sect2>
@ -2227,25 +2218,16 @@ rfcomm_sppd[94692]: Starting on /dev/ttyp6...</screen>
<sect2>
<title>适合桥接的情况</title>
<para>目前,有两种常见的情况下使用网桥。</para>
<para>适合使用网桥的, 有许多种不同的情况。</para>
<sect3>
<title>网段上存在高流量</title>
<title>使多个网络相互联通</title>
<para>一种情况是您的物理网段流量过载,
但是您不希望划分子网以路由器连接两个子网。</para>
<para>让我们考虑一个关于报社的例子,
它的编辑部和产品部处于同一子网中。
所有的编辑用户都使用服务器 <hostid>A</hostid>
的文件服务,而产品部使用服务器 <hostid>B</hostid>。
一个以太网将所有的用户连接在一起,
高的流量负载使得网络速度变慢。</para>
<para>如果编辑部的用户能被分隔到一个网段中,
产品部用户被分隔到另一个网段中那么这两个网段可以通过网桥连接起来。
只当数据包目标为网桥<quote>其它</quote>端接口时,
它才会被传到其它的网络上——这样就减少了各个网络的拥塞。</para>
<para>网桥的基本操作是将两个或多个网段连接在一起。
由于各式各样的原因, 人们会希望使用一台真正的计算机,
而不是网络设备来充任网桥的角色, 常见的原因包括线缆的限制、
需要进行防火墙, 或为虚拟机网络接口连接虚拟网络。
网桥也可以将无线网卡以 hostap 模式接入有线网络。</para>
</sect3>
<sect3>
@ -2253,12 +2235,12 @@ rfcomm_sppd[94692]: Starting on /dev/ttyp6...</screen>
<indexterm><primary>防火墙</primary></indexterm>
<indexterm><primary>NAT</primary></indexterm>
<para>第二种常见的情况是需要防火墙的地方没有进行网络地址转换(NAT)。</para>
<para>使用防火墙的常见情形是无需进行路由或网络地址转换的情况 (NAT)。</para>
<para>一个例子是一个小公司,它通过 DSL 或 ISDN 连接到 ISP。
拥有 13 个 ISP 分配的全局 IP 地址和 10 台 PC。
在这种情况下,由于划分子网的问题,
使用基于路由的防火墙存在一定难度。</para>
<para>举例来说, 一家通过 DSL 或 ISDN 连接到 ISP 的小公司,
拥有 13 个 ISP 分配的全局 IP 地址和 10 台 PC。
在这种情况下, 由于划分子网的问题,
采用路由来实现防火墙会比较困难。</para>
<indexterm>
<primary>路由器</primary>
@ -2269,122 +2251,274 @@ rfcomm_sppd[94692]: Starting on /dev/ttyp6...</screen>
<indexterm>
<primary>ISDN</primary>
</indexterm>
<para>一个基于网桥的防火墙可以成接在 DSL/ISDN
路由器的后面而免去了所有的 IP 号问题。</para>
<para>基于网桥的防火墙可以串接在 DSL/ISDN
路由器的后面, 而无需考虑 IP 编制的问题。</para>
</sect3>
<sect3>
<title>网络监视</title>
<para>网桥可以用于连接两个不同的网段, 并用于监视往返的以太网帧。
这可以通过在网桥接口上使用 &man.bpf.4;/&man.tcpdump.1;
或通过将全部以太网帧复制到另一个网络接口 (span 口) 来实现。</para>
</sect3>
<sect3>
<title>2层 VPN</title>
<para>通过 IP 连接的网桥, 可以利用 EtherIP 隧道或基于 &man.tap.4;
的解决方案, 如 OpenVPN 可以将两个以太网连接到一起。</para>
</sect3>
<sect3>
<title>2层 冗余</title>
<para>网络可以通过多条链路连接在一起, 并使用生成树协议 (Spanning Tree Protocol)
来阻止多余的通路。 为使以太网能够正确工作, 两个设备之间应该只有一条激活通路,
而生成树能够检测环路, 并将多余的链路置为阻断状态。 当激活通路断开时,
协议能够计算另外一棵树, 并重新激活阻断的通路,
以恢复到网络各点的连通性。</para>
</sect3>
</sect2>
<sect2>
<title>配置网桥</title>
<title>内核配置</title>
<sect3>
<title>选择网络接口卡</title>
<para>这一节主要介绍 &man.if.bridge.4; 网桥实现。
除此之外, 还有一个基于 netgraph 的网桥实现, 如欲了解进一步细节,
请参见联机手册 &man.ng.bridge.4;。</para>
<para>一个网桥至少需要两块网卡才能运行。
不幸的是,并不是所有的网卡都能被用于桥接。阅读 &man.bridge.4;
了解所支持网卡的细节。</para>
<para>网桥驱动是一个内核模块, 并会随使用 &man.ifconfig.8;
创建网桥接口时自动加载。 您也可以将 <literal>device if_bridge</literal>
加入到内核配置文件中, 以便将其静态联编进内核。</para>
<para>在继续之前要先安装并测试这两块网卡。</para>
</sect3>
<para>包过滤可以通过使用了 &man.pfil.9; 框架的任意一种防火墙软件包来完成。
这些防火墙可以以模块形式加载, 也可以静态联编进内核。</para>
<sect3>
<title>改变内核配置</title>
<indexterm>
<primary>内核选项</primary>
<secondary>BRIDGE</secondary>
</indexterm>
<para>为了激活内核对桥接的支持,增加以下语句:</para>
<programlisting>options BRIDGE</programlisting>
<para>到您的内核配置文件里,然后重建内核。</para>
</sect3>
<sect3>
<title>防火墙支持</title>
<indexterm><primary>防火墙</primary></indexterm>
<para>如果您打算把网桥作为防火墙来使用,
则还需要加入 <literal>IPFIREWALL</literal> 的设置。
请参考 <xref linkend="firewalls">
以了解关于将网桥配置为防火墙的其它信息。</para>
<para>如果需要允许非 IP 数据包 (例如 ARP) 穿过网桥,
有三种方法可供选择。 第一种是在内核配置中加入下列选项,
并重新联编:<para>
<programlisting>option IPFIREWALL_DEFAULT_TO_ACCEPT</programlisting>
<para>第二种方法, 是在
<filename>rc.conf</filename> 文件中将防火墙类型设置为 <quote><literal>open</literal></quote></para>
<programlisting>firewall_type="open"</programlisting>
<para>注意, 这些选项会让防火墙看起来像透明的一样;
默认情况下, 所有包或连接都会被允许。
如果选择这样做的话, 可能会需要对防火墙规则进行大幅调整。</para>
<para>第三种方法是应用下述 &man.ipfw.8;
规则:</para>
<screen>&prompt.root; <userinput>ipfw add allow mac-type arp layer2</userinput></screen>
<para>或将其加入在用的防火墙规则集。 这个规则实际上是允许 &man.arp.8; 包通过,
因此最好把它放在规则集前面, 以便能够尽早地应用此规则, 而避免由此带来的性能影响。</para>
</sect3>
<sect3>
<title>数据传输支持</title>
<para>如果您希望将网桥作为一个数据传输器,
您需要向内核文件中加入 <literal>DUMMYNET</literal>
选项。阅读 &man.dummynet.4; 以做进一步了解。</para>
</sect3>
<para>通过配合
&man.altq.4; 和 &man.dummynet.4; 网桥也可以用于流量控制。</para>
</sect2>
<sect2>
<title>激活网桥</title>
<title>启用网桥</title>
<para>增加下行:</para>
<para>网桥是通过接口复制来创建的。
您可以使用 &man.ifconfig.8; 来创建网桥接口, 如果内核不包括网桥驱动,
则它会自动将其载入。</para>
<programlisting>net.link.ether.bridge.enable=1</programlisting>
<screen>&prompt.root; <userinput>ifconfig bridge create</userinput>
bridge0
&prompt.root; <userinput>ifconfig bridge0</userinput>
bridge0: flags=8802&lt;BROADCAST,SIMPLEX,MULTICAST&gt; metric 0 mtu 1500
ether 96:3d:4b:f1:79:7a
id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
root id 00:00:00:00:00:00 priority 0 ifcost 0 port 0</screen>
<para>到 <filename>/etc/sysctl.conf</filename> 里,
以便在运行时激活网桥,然后加下行:</para>
<para>如此就建立了一个网桥接口, 并为其随机分配了以太网地址。
<literal>maxaddr</literal> 和 <literal>timeout</literal>
参数能够控制网桥在转发表中保存多少个 MAC 地址,
以及表项中主机的过期时间。 其他参数控制生成树的运转方式。</para>
<programlisting>net.link.ether.bridge.config=<replaceable>if1</replaceable>,<replaceable>if2</replaceable></programlisting>
<para>将成员网络接口假如网桥。 为了让网桥能够为所有网桥成员接口转发包,
网桥接口和所有成员接口都需要处于启用状态:</para>
<para>以便在指定的接口上激活网桥
(使用您的两个网络接口的名字替换 <replaceable>if1</replaceable>
和 <replaceable>if2</replaceable> )。如果您希望用 &man.ipfw.8;
来过滤桥接的数据包,您还应该加入:</para>
<screen>&prompt.root; <userinput>ifconfig bridge0 addm fxp0 addm fxp1 up</userinput>
&prompt.root; <userinput>ifconfig fxp0 up</userinput>
&prompt.root; <userinput>ifconfig fxp1 up</userinput></screen>
<programlisting>net.link.ether.bridge.ipfw=1</programlisting>
<para>网桥现在会在
<devicename>fxp0</devicename> 和
<devicename>fxp1</devicename> 之间转发以太网帧。
等效的 <filename>/etc/rc.conf</filename> 配置如下,
如此配置将在系统启动时创建同样的网桥。</para>
<para>这样一行。</para>
<programlisting>cloned_interfaces="bridge0"
ifconfig_bridge0="addm fxp0 addm fxp1 up"
ifconfig_fxp0="up"
ifconfig_fxp1="up"</programlisting>
<para>对于 &os;&nbsp;5.2-RELEASE 和更早的版本, 则应使用下面的配置:</para>
<para>如果网桥主机需要 IP 地址, 则应将其绑在网桥设备本身,
而不是某个成员设备上。 这可以通过静态设置或 DHCP 来完成:</para>
<programlisting>net.link.ether.bridge=1
net.link.ether.bridge_cfg=<replaceable>if1</replaceable>,<replaceable>if2</replaceable>
net.link.ether.bridge_ipfw=1</programlisting>
<screen>&prompt.root; <userinput>ifconfig bridge0 inet 192.168.0.1/24</userinput></screen>
<para>除此之外, 也可以为网桥接口指定 IPv6 地址。</para>
</sect2>
<sect2>
<title>其它信息</title>
<title>防火墙</title>
<indexterm><primary>firewall (防火墙)</primary></indexterm>
<para>如果您希望可以从网络上 &man.ssh.1; 进入网桥,
给一个网卡分配 IP 地址就可以了
原则上给两张卡分配一个地址是很不好的。</para>
<para>当启用包过滤时, 通过网桥的包可以分别在进入的网络接口、
网桥接口和发出的网络接口上进行过滤。 这些阶段均可禁用
当包的流向很重要时, 最好在成员接口而非网桥接口上配置防火墙。</para>
<para>如果网络中有多个网桥,
任何两个工作站之间的路径不能多于一条。
技术上说,它的意思是不支持生成连接树管理。</para>
<para>网桥上可以进行许多配置以决定非 IP 及 ARP 包能否通过,
以及通过 IPFW 实现二层防火墙。 请参见
&man.if.bridge.4; 联机手册以了解进一步的细节。</para>
</sect2>
<para>网桥会增加 &man.ping.8; 的延迟时间,
尤其是不同网段之间的传输。</para>
<sect2>
<title>生成树</title>
<para>网桥驱动实现了快速生成树协议 (RSTP 或 802.1w)
并与较早的生成树协议 (STP) 兼容。 生成树可以用来在网络拓扑中检测并消除环路。 RSTP
提供了比传统 STP 更快的生成树覆盖速度, 这种协议会在相邻的交换机之间交换信息,
以迅速进入转发状态, 而不会产生环路。</para>
<para>下表展示了支持的运行模式:</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="3">
<thead>
<row>
<entry>OS 版本</entry>
<entry>STP 模式</entry>
<entry>默认模式</entry>
</row>
</thead>
<tbody>
<row>
<entry>&os; 5.4&mdash;&os; 6.2</entry>
<entry>STP</entry>
<entry>STP</entry>
</row>
<row>
<entry>&os; 6.3+</entry>
<entry>RSTP 或 STP</entry>
<entry>STP</entry>
</row>
<row>
<entry>&os; 7.0+</entry>
<entry>RSTP 或 STP</entry>
<entry>RSTP</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>使用 <literal>stp</literal> 命令可以在成员接口上启用生成树。 对包含
<devicename>fxp0</devicename> 和
<devicename>fxp1</devicename> 的网桥,
可以用下列命令启用 STP</para>
<screen>&prompt.root; <userinput>ifconfig bridge0 stp fxp0 stp fxp1</userinput>
bridge0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; metric 0 mtu 1500
ether d6:cf:d5:a0:94:6d
id 00:01:02:4b:d4:50 priority 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
root id 00:01:02:4b:d4:50 priority 32768 ifcost 0 port 0
member: fxp0 flags=1c7&lt;LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP&gt;
port 3 priority 128 path cost 200000 proto rstp
role designated state forwarding
member: fxp1 flags=1c7&lt;LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP&gt;
port 4 priority 128 path cost 200000 proto rstp
role designated state forwarding</screen>
<para>网桥的生成树 ID 为
<literal>00:01:02:4b:d4:50</literal> 而优先级为
<literal>32768</literal>。 其中 <literal>root id</literal>
与生成树相同, 表示这是作为生成树根的网桥。</para>
<para>另一个网桥也启用了生成树:</para>
<screen>bridge0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; metric 0 mtu 1500
ether 96:3d:4b:f1:79:7a
id 00:13:d4:9a:06:7a priority 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
root id 00:01:02:4b:d4:50 priority 32768 ifcost 400000 port 4
member: fxp0 flags=1c7&lt;LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP&gt;
port 4 priority 128 path cost 200000 proto rstp
role root state forwarding
member: fxp1 flags=1c7&lt;LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP&gt;
port 5 priority 128 path cost 200000 proto rstp
role designated state forwarding</screen>
<para>这里的 <literal>root id 00:01:02:4b:d4:50 priority 32768
ifcost 400000 port 4</literal> 表示根网桥是前面的
<literal>00:01:02:4b:d4:50</literal>
而从此网桥出发的通路代价为 <literal>400000</literal>,
此通路到根网桥是通过 <literal>port 4</literal> 即
<devicename>fxp0</devicename> 连接的。</para>
</sect2>
<sect2>
<title>网桥的高级用法</title>
<sect3>
<title>重建流量流</title>
<para>网桥支持监视模式, 在 &man.bpf.4; 处理之后会将包丢弃,
而不是继续处理或转发。 这可以用于将两个或多个接口上的输入转化为一个
&man.bpf.4; 流。 在将两个独立的接口上的传输的 RX/TX 信号重整为一个时,
这会非常有用。</para>
<para>如果希望将四个网络接口上的输入转成一个流:</para>
<screen>&prompt.root; <userinput>ifconfig bridge0 addm fxp0 addm fxp1 addm fxp2 addm fxp3 monitor up</userinput>
&prompt.root; <userinput>tcpdump -i bridge0</userinput></screen>
</sect3>
<sect3>
<title>镜像口 (Span port)</title>
<para>网桥收到的每个以太网帧都可以发到镜像口上。
网桥上的镜像口数量没有限制, 如果一个接口已经被配置为镜像口,
则它就不能再作为网桥的成员口来使用。
这种用法主要是为与网桥镜像口相连的监听机配合使用。</para>
<para>如果希望将所有帧发到名为
<devicename>fxp4</devicename> 的接口上:</para>
<screen>&prompt.root; <userinput>ifconfig bridge0 span fxp4</userinput></screen>
</sect3>
<sect3>
<title>专用接口 (Private interface)</title>
<para>专用接口不会转发流量到除专用接口之外的其他端口。
这些流量会无条件地阻断, 因此包括 ARP 在内的以太网帧均不会被转发。
如果需要选择性地阻断流量, 则应使用防火墙。</para>
</sect3>
<sect3>
<title>自学习接口 (Sticky Interfaces)</title>
<para>如果网桥的成员接口标记为自学习, 则动态学习的地址项一旦进入转发快取缓存,
即被认为是静态项。 自学习项不会从快取缓存中过期或替换掉,
即使地址在另一接口上出现也是如此。 这使得不必事先发布转发表,
也能根据学习结果得到静态项的有点, 但在这些网段被网桥看到的客户机,
就不能漫游至另一网段了。</para>
<para>另一种用法是将网桥与 VLAN 功能连用,
这样客户网络会被隔离在一边, 而不会浪费 IP 地址空间。 考虑 <hostid
role="Hostname">CustomerA</hostid> 在
<literal>vlan100</literal> 上, 而 <hostid
role="hostname">CustomerB</hostid> 则在
<literal>vlan101</literal> 上。 网桥地址为
<hostid role="ipaddr">192.168.0.1</hostid> 同时作为
internet 路由器使用。</para>
<screen>&prompt.root; <userinput>ifconfig bridge0 addm vlan100 sticky vlan100 addm vlan101 sticky vlan101</userinput>
&prompt.root; <userinput>ifconfig bridge0 inet 192.168.0.1/24</userinput></screen>
<para>两台客户机均将 <hostid
role="ipaddr">192.168.0.1</hostid> 作为默认网关,
由于网桥快取缓存是自学习的, 因而它们无法伪造
MAC 地址来截取其他客户机的网络流量。</para>
<para>在 VLAN 之间的通讯可以通过专用接口 (或防火墙) 来阻断:</para>
<screen>&prompt.root; <userinput>ifconfig bridge0 private vlan100 private vlan101</userinput></screen>
<para>这样这些客户机就完全相互隔离了。
可以使用整个的 <hostid role="netmask">/24</hostid> 地址空间,
而无需划分子网。</para>
</sect3>
</sect2>
</sect1>
@ -3844,10 +3978,7 @@ round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms</screen>
<listitem>
<para><ulink url="http://www.kame.net">KAME.net</ulink></para>
</listitem>
<listitem>
<para><ulink url="http://www.6bone.net">6bone.net</ulink></para>
</listitem></itemizedlist>
</itemizedlist>
<sect2>
<title>关于 IPv6 地址的背景知识</title>
@ -3994,10 +4125,7 @@ round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms</screen>
<para>目前,有四种方式可以连接到其它 IPv6 主机和网络:</para>
<itemizedlist><listitem>
<para>加入试验性的 6bone(骨干)</para>
</listitem>
<itemizedlist>
<listitem>
<para>从您的上一级提供商那里获得 IPv6 网络。与您的互联网提供商讨论以求指导。</para>
</listitem>
@ -4008,59 +4136,9 @@ round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms</screen>
</listitem>
<listitem>
<para>如果您是括号连接 (dial-up connection),请使用
<filename role="package">net/freenet6</filename> port。</para>
</listitem></itemizedlist>
<para>这里我们就讨论如何连接到 6bone因为它目前看来是最流行的一种方式。</para>
<para>首先看一下 <ulink url="http://www.6bone.net/">6bone</ulink>
网站,并找出离您最近的 6bone 连接。给某位值得信赖的人写信过去,
如果运气好,您就会得到关于如何设置您的连接的指导。通常这包括了设置
GRE (gif) 通道。</para>
<para>这里有一个典型的关于设置 &man.gif.4; 通道的例子。</para>
<screen>&prompt.root; <userinput>ifconfig gif0 create</userinput>
&prompt.root; <userinput>ifconfig gif0</userinput>
gif0: flags=8010&lt;POINTOPOINT,MULTICAST&gt; mtu 1280
&prompt.root; <userinput>ifconfig gif0 tunnel <replaceable>MY_IPv4_ADDR MY_IPv4_REMOTE_TUNNEL_ENDPOINT_ADDR</replaceable></userinput>
&prompt.root; <userinput>ifconfig gif0 inet6 alias <replaceable>MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR MY_IPv6_REMOTE_TUNNEL_ENDPOINT_ADDR</replaceable></userinput></screen>
<para>把大写字母换成您从上一级 6bone 节点收到的信息。</para>
<para>这样就建立了通道。通过 &man.ping6.8;
<hostid role="ip6addr">ff02::1%gif0</hostid>
检查通道是否工作。您应该会收到两个 ping 回应。</para>
<note><para>或许您会对地址 <hostid role="ip6addr">ff02:1%gif0</hostid>
感兴趣,它是一个 multicast 地址。<literal>%gif0</literal> 表明在网络接口
<devicename>gif0</devicename> 上的 multicast 地址已经用上了。因为我们
<command>ping</command> 一个 multicast 地址的时候,
通道的另一端也应该会回应。</para></note>
<para>到现在,设置一个到 6bone 上级连接的路由应该是相当简单了。</para>
<screen>&prompt.root; <userinput>route add -inet6 default -interface gif0</userinput>
&prompt.root; <userinput>ping6 -n <replaceable>MY_UPLINK</replaceable></userinput></screen>
<screen>&prompt.root; <userinput>traceroute6 www.jp.FreeBSD.org</userinput>
(3ffe:505:2008:1:2a0:24ff:fe57:e561) from 3ffe:8060:100::40:2, 30 hops max, 12 byte packets
1 atnet-meta6 14.147 ms 15.499 ms 24.319 ms
2 6bone-gw2-ATNET-NT.ipv6.tilab.com 103.408 ms 95.072 ms *
3 3ffe:1831:0:ffff::4 138.645 ms 134.437 ms 144.257 ms
4 3ffe:1810:0:6:290:27ff:fe79:7677 282.975 ms 278.666 ms 292.811 ms
5 3ffe:1800:0:ff00::4 400.131 ms 396.324 ms 394.769 ms
6 3ffe:1800:0:3:290:27ff:fe14:cdee 394.712 ms 397.19 ms 394.102 ms</screen>
<para>这个输出可能随机器而不同。到现在,您应该可以到达 IPv6
站点<ulink url="http://www.kame.net">www.kame.net</ulink>
并看到那只正跳舞的乌龟 &mdash; 如果您有一个支持 IPv6 的浏览器,如
<filename role="package">www/mozilla</filename>、
<application>Konqueror</application> (<filename
role="package">x11/kdebase3</filename>的一部分) 或
<filename role="package">www/epiphany</filename>。</para>
<para>如果您使用的是拨号连接, 则可以使用 <filename role="package">net/freenet6</filename> port。</para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
@ -4107,8 +4185,7 @@ gif0: flags=8010&lt;POINTOPOINT,MULTICAST&gt; mtu 1280
<sect3>
<title>IPv6 路由器/网关配置</title>
<para>这将帮助您从隧道提供商, 例如
<ulink url="http://www.6bone.net/">6bone</ulink> 那里取得必要的资料,
<para>这将帮助您从隧道提供商那里取得必要的资料,
并将这些资料转化为在重启时能够保持住的设置。 要在启动时恢复您的隧道,
需要在 <filename>/etc/rc.conf</filename> 中增加:</para>
@ -4358,6 +4435,123 @@ route_hostD="192.168.173.4 hatm0 0 102 llc/snap ubr"</programlisting>
</sect2>
</sect1>
<sect1 id="carp">
<sect1info>
<authorgroup>
<author>
<firstname>Tom</firstname>
<surname>Rhodes</surname>
<contrib>原作 </contrib>
</author>
</authorgroup>
</sect1info>
<title>Common Access Redundancy Protocol (CARP 共用地址冗余协议)</title>
<indexterm><primary>CARP</primary></indexterm>
<indexterm><primary>Common Access Redundancy Protocol, 共用地址冗余协议</primary></indexterm>
<para>Common Access Redundancy Protocol 或简称
<acronym>CARP</acronym> 能够使多台主机共享同一
<acronym>IP</acronym> 地址。 在某些配置中, 这样做可以提高可用性,
或实现负载均衡。 下面的例子中, 这些主机也可以同时使用其他的不同的
<acronym>IP</acronym> 地址。</para>
<para>要启用 <acronym>CARP</acronym> 支持, 必须在 &os;
内核配置中增加下列选项, 并重新联编内核:</para>
<programlisting>device carp</programlisting>
<para>这样就可以使用 <acronym>CARP</acronym> 功能了,
一些具体的参数, 可以通过一系列 <command>sysctl</command>
<acronym>OID</acronym> 来调整。 设备可以通过 <command>ifconfig</command> 命令来加载:</para>
<screen>&prompt.root; <userinput>ifconfig carp0 create</userinput></screen>
<para>在真实环境中, 这些接口需要一个称作 <acronym>VHID</acronym> 的标识编号。 这个
<acronym>VHID</acronym> 或 Virtual Host Identification (虚拟主机标识)
用于在网络上区分主机。</para>
<sect2>
<title>使用 CARP 来改善服务的可用性 (CARP)</title>
<para>如前面提到的那样, <acronym>CARP</acronym> 的作用之一是改善服务的可用性。
这个例子中, 将为三台主机提供故障转移服务, 这三台服务器各自有独立的 <acronym>IP</acronym>
地址, 并提供完全一样的 web 内容。 三台机器以 <acronym>DNS</acronym>
轮询的方式提供服务。 用于故障转移的机器有两个
<acronym>CARP</acronym> 接口,
分别配置另外两台服务器的 <acronym>IP</acronym> 地址。
当有服务器发生故障时, 这台机器会自动得到故障机的
<acronym>IP</acronym> 地址。 这样以来,
用户就完全感觉不到发生了故障。 故障转移的服务器提供的内容和服务,
应与其为之提供热备份的服务器一致。</para>
<para>两台机器的配置, 除了主机名和 <acronym>VHID</acronym> 之外应完全一致。
在我们的例子中, 这两台机器的主机名分别是
<hostid>hosta.example.org</hostid> 和
<hostid>hostb.example.org</hostid>。 首先,
需要将 <acronym>CARP</acronym> 配置加入到 <filename>rc.conf</filename>。 对于
<hostid>hosta.example.org</hostid> 而言,
<filename>rc.conf</filename> 文件中应包含下列配置:</para>
<programlisting>hostname="hosta.example.org"
ifconfig_fxp0="inet 192.168.1.3 netmask 255.255.255.0"
cloned_interfaces="carp0"
ifconfig_carp0="vhid 1 pass testpast 192.168.1.50/24"</programlisting>
<para>在 <hostid>hostb.example.org</hostid> 上,
对应的 <filename>rc.conf</filename> 配置则是:</para>
<programlisting>hostname="hostb.example.org"
ifconfig_fxp0="inet 192.168.1.4 netmask 255.255.255.0"
cloned_interfaces="carp0"
ifconfig_carp0="vhid 2 pass testpass 192.168.1.51/24"</programlisting>
<note>
<para>在两台机器上由 <command>ifconfig</command> 的
<option>pass</option> 选项指定的密码必须是一致的,
这一点非常重要。 <devicename>carp</devicename> 设备只会监听和接受来自持有正确密码的机器的公告。
此外, 不同虚拟主机的 <acronym>VHID</acronym> 必须不同。</para>
</note>
<para>第三台机器,
<hostid>provider.example.org</hostid> 需要进行配置,
以便在另外两台机器出现问题时接管。 这台机器需要两个 <devicename>carp</devicename>
设备, 分别处理两个机器。 对应的 <filename>rc.conf</filename>
配置类似下面这样:</para>
<programlisting>hostname="provider.example.org"
ifconfig_fxp0="inet 192.168.1.5 netmask 255.255.255.0"
cloned_interfaces="carp0 carp1"
ifconfig_carp0="vhid 1 advskew 100 pass testpass 192.168.1.50/24"
ifconfig_carp1="vhid 2 advskew 100 pass testpass 192.168.1.51/24"</programlisting>
<para>配置两个 <devicename>carp</devicename> 设备,
能够让 <hostid>provider.example.org</hostid> 在两台机器中的任何一个停止响应时,
立即接管其 <acronym>IP</acronym> 地址。</para>
<note>
<para>默认的 &os; 内核 <emphasis>可能</emphasis> 启用了主机间抢占。
如果是这样的话,
<hostid>provider.example.org</hostid> 可能在正式的内容服务器恢复时不释放
<acronym>IP</acronym> 地址。 此时, 管理员可以
<quote>提醒</quote> 一下接口。 具体做法是在
<hostid>provider.example.org</hostid> 上使用下面的命令:</para>
<screen>&prompt.root; <userinput>ifconfig carp0 down && ifconfig carp0 up</userinput></screen>
<para>这个操作需要在与出现问题的主机对应的那个 <devicename>carp</devicename>
接口上进行。</para>
</note>
<para>现在您已经完成了 <acronym>CARP</acronym> 的配置, 并可以开始测试了。
测试过程中, 可以随时重启或切断两台机器的网络。</para>
<para>如欲了解更多细节, 请参见 &man.carp.4;
联机手册。</para>
</sect2>
</sect1>
</chapter>
<!--
Local Variables:
mode: sgml

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project
Original Revision: 1.25
Original Revision: 1.28
$FreeBSD$
-->
@ -44,8 +44,8 @@ requirements. -->
包括登录、 配置变更, 以及文件和网络访问等的日志记录。
这些日志记录对于在正在运行的系统上实施监控、 入侵检测和事后分析都十分重要。
&os; 实现了 Sun 所发布的
<acronym>BSM</acronym> API 和文件格式, 并且与 Sun 的 Solaris
Apple 的 Mac OS X 审计实现兼容。</para>
<acronym>BSM</acronym> API 和文件格式, 并且与 &sun; 的 &solaris;
&apple; 的 &macos; X 审计实现兼容。</para>
<para>这一章的重点是安装和配置事件审计。 它介绍了事件策略, 并提供了一个审计的配置例子。</para>
@ -134,6 +134,7 @@ requirements. -->
包含了一系列描述安全事件的审计记录。 典型情况下,
审计账目基本上是以事件发生的时间顺序记录的。 只有获得授权的进程,
才能够向审计账目中提交记录。</para>
</listitem>
<listitem>
<para><emphasis>筛选表达式 (selection expression)</emphasis>
@ -189,7 +190,7 @@ requirements. -->
<title>对审计进行配置</title>
<para>所有用于安全审计的配置文件, 都可以在
<filename role="directory">/etc/security</filename> 找到。
<filename class="directory">/etc/security</filename> 找到。
要启动审计服务, 下面这些文件必须存在:</para>
<itemizedlist>
@ -214,7 +215,7 @@ requirements. -->
</listitem>
<listitem>
<para><filename>audit_warn</filename> - 由 auditd 调用的一个可定制的 shell
<para><filename>audit_warn</filename> - 由 <application>auditd</application> 调用的一个可定制的 shell
脚本, 用于在意外情况, 如用于审计日志的空间过少, 或审计日志文件被翻转时,
生成警告信息。</para>
</listitem>
@ -237,102 +238,102 @@ requirements. -->
<itemizedlist>
<listitem>
<para><option>all</option> - <literal>all</literal> - 表示匹配全部事件类。</para>
<para><literal>all</literal> - <emphasis>all (全部)</emphasis> - 表示匹配全部事件类。</para>
</listitem>
<listitem>
<para><option>ad</option> - <literal>administrative</literal>
<para><literal>ad</literal> - <emphasis>administrative (管理)</emphasis>
- 所有在系统上所进行的管理性操作。</para>
</listitem>
<listitem>
<para><option>ap</option> - <literal>application</literal> -
<para><literal>ap</literal> - <emphasis>application (应用)</emphasis> -
应用程序定义的动作。</para>
</listitem>
<listitem>
<para><option>cl</option> - <literal>file_close</literal> -
<para><literal>cl</literal> - <emphasis>file close (文件关闭)</emphasis> -
审计对 <function>close</function> 系统调用的操作。</para>
</listitem>
<listitem>
<para><option>ex</option> - <literal>exec</literal> - 审计程序的执行。
<para><literal>ex</literal> - <emphasis>exec (执行)</emphasis> - 审计程序的执行。
对于命令行参数和环境变量的审计是通过在 &man.audit.control.5;
中 <literal>policy</literal> 的 <literal>argv</literal> 和 <literal>envv</literal>
参数来控制的。</para>
</listitem>
<listitem>
<para><option>fa</option> - <literal>file_attr_acc</literal>
<para><literal>fa</literal> - <emphasis>file attribute access (造访文件属性)</emphasis>
- 审计访问对象属性, 例如
&man.stat.1;、 &man.pathconf.2; 以及类似事件。</para>
</listitem>
<listitem>
<para><option>fc</option> - <literal>file_creation</literal>
<para><literal>fc</literal> - <emphasis>file create (创建文件)</emphasis>
- 审计创建了文件的事件。</para>
</listitem>
<listitem>
<para><option>fd</option> - <literal>file_deletion</literal>
<para><literal>fd</literal> - <emphasis>file delete (删除文件)</emphasis>
- 审计所发生的文件删除事件。</para>
</listitem>
<listitem>
<para><option>fm</option> - <literal>file_attr_mod</literal>
<para><literal>fm</literal> - <emphasis>file attribute modify (修改文件属性)</emphasis>
- 审计文件属性发生变化的事件,
例如 &man.chown.8;、 &man.chflags.1;、 &man.flock.2;
等等。</para>
</listitem>
<listitem>
<para><option>fr</option> - <literal>file_read</literal>
<para><literal>fr</literal> - <emphasis>file read (读文件数据)</emphasis>
- 审计读取数据、 文件以读方式打开等事件。</para>
</listitem>
<listitem>
<para><option>fw</option> - <literal>file_write</literal> -
<para><literal>fw</literal> - <emphasis>file write (写文件数据)</emphasis> -
审计写入数据、 文件以写方式打开等事件。</para>
</listitem>
<listitem>
<para><option>io</option> - <literal>ioctl</literal> -
<para><literal>io</literal> - <emphasis>ioctl</emphasis> -
审计对 &man.ioctl.2; 系统调用的使用。</para>
</listitem>
<listitem>
<para><option>ip</option> - <literal>ipc</literal> - 审计各种形式的进程间通信 (IPC)
<para><literal>ip</literal> - <emphasis>ipc</emphasis> - 审计各种形式的进程间通信 (IPC)
包括 POSIX 管道和 System V <acronym>IPC</acronym> 操作。</para>
</listitem>
<listitem>
<para><option>lo</option> - <literal>login_logout</literal> -
<para><literal>lo</literal> - <emphasis>login_logout</emphasis> -
审计系统中发生的 &man.login.1; 和 &man.logout.1; 事件。</para>
</listitem>
<listitem>
<para><option>na</option> - <literal>non_attrib</literal> -
<para><literal>na</literal> - <emphasis>non attributable (无主)</emphasis> -
审计无法归类的事件。</para>
</listitem>
<listitem>
<para><option>no</option> - <literal>no_class</literal> -
<para><literal>no</literal> - <emphasis>invalid class (无效类)</emphasis> -
表示不匹配任何事件。</para>
</listitem>
<listitem>
<para><option>nt</option> - <literal>network</literal> -
<para><literal>nt</literal> - <emphasis>network (网络)</emphasis> -
与网络操作有关的事件, 例如
&man.connect.2; 和 &man.accept.2;。</para>
</listitem>
<listitem>
<para><option>ot</option> - <literal>other</literal> -
<para><literal>ot</literal> - <emphasis>other (其它)</emphasis> -
审计各类杂项事件。</para>
</listitem>
<listitem>
<para><option>pc</option> - <literal>process</literal> -
<para><literal>pc</literal> - <emphasis>process (进程)</emphasis> -
审计进程操作, 例如 &man.exec.3; 和
&man.exit.3;。</para>
</listitem>
@ -437,11 +438,11 @@ filesz:0</programlisting>
它指明了一系列对该用户不审计的事件。</para>
<para>在下述 <filename>audit_user</filename> 示例文件中,
审计了 root 用户的 登录/注销 事件, 以及成功的命令执行事件,
此外, 还审计了 www 用户的文件创建和成功的命令执行事件。
审计了 <username>root</username> 用户的 登录/注销 事件, 以及成功的命令执行事件,
此外, 还审计了 <username>www</username> 用户的文件创建和成功的命令执行事件。
如果与前面的示范 <filename>audit_control</filename> 文件配合使用,
则 <literal>root</literal> 的 <literal>lo</literal> 项就是多余的, 而对
<literal>www</literal> 用户而言, 其登录/注销事件也会被审计:</para>
则 <username>root</username> 的 <literal>lo</literal> 项就是多余的, 而对
<username>www</username> 用户而言, 其登录/注销事件也会被审计:</para>
<programlisting>root:lo,+ex:no
www:fc,+ex:no</programlisting>
@ -457,9 +458,9 @@ www:fc,+ex:no</programlisting>
<title>查看审计日志</title>
<para>审计记帐是以 BSM 二进制格式保存的, 因此必须使用工具来对其进行修改,
或将其转换为文本。 <command>praudit</command>
或将其转换为文本。 &man.praudit.1;
命令能够将记帐文件转换为简单的文本格式; 而
<command>auditreduce</command> 命令则可以为分析、 存档或打印目的来浓缩审计日志文件。
&man.auditreduce.1 命令则可以为分析、 存档或打印目的来浓缩审计日志文件。
<command>auditreduce</command> 支持一系列筛选参数, 包括事件类型、 事件类、
用户、 事件的日期和时间, 以及文件路径或操作对象。</para>
@ -467,7 +468,7 @@ www:fc,+ex:no</programlisting>
<screen>&prompt.root; <userinput>praudit /var/audit/AUDITFILE</userinput></screen>
<para>此处 <replaceable>AUDITFILE</replaceable> 是要转存的审计日志文件。</para>
<para>此处 <filename><replaceable>AUDITFILE</replaceable></filename> 是要转存的审计日志文件。</para>
<para>审计记帐中包括一系列审计记录, 这些记录由一系列短语 (token) 组成,
而 <command>praudit</command> 能把它们顺序显示为一行。
@ -485,15 +486,16 @@ return,success,0
trailer,133</programlisting>
<para>这个审计记录表示一次成功的 <literal>execve</literal>
调用, 执行了 "finger doug"。 在参数短语中是由 shell 提交给内核的命令行。
path 短语包含了由内核查找得到的可执行文件路径。 属性短语中包含了对可执行文件的描述,
调用, 执行了 <literal>finger doug</literal>。 在参数短语中是由 shell 提交给内核的命令行。
<literal>path</literal> 短语包含了由内核查找得到的可执行文件路径。 <literal>attribute</literal> 短语中包含了对可执行文件的描述,
特别地, 它包括了文件的权限模式, 用以确定应用程序是否是 setuid 的。
主体短语描述了主体进程, 并顺序记录了审计用户 ID、 生效用户 ID 和组 ID、
<literal>subject</literal>(主体) 短语描述了主体进程, 并顺序记录了审计用户 ID、 生效用户 ID 和组 ID、
实际用户 ID 和组 ID、 进程 ID、 会话 ID、 端口 ID 以及登录地址。
注意审计用户 ID 和实际用户 ID 是不同的:
用户 <literal>robert</literal> 在执行这个命令之前已经切换为
<literal>root</literal> 帐户, 但它会以最初进行身份验证的用户身份进行审计。
最后, 返回值短语表示执行成功, 并终结这一记录。</para>
用户 <username>robert</username> 在执行这个命令之前已经切换为
<username>root</username> 帐户, 但它会以最初进行身份验证的用户身份进行审计。
最后, <literal>return</literal> 短语表示执行成功,
而 <literal>trailer</literal> 表示终结这一记录。</para>
</sect2>
@ -505,17 +507,18 @@ trailer,133</programlisting>
<screen>&prompt.root; <userinput>auditreduce -u trhodes /var/audit/AUDITFILE | praudit</userinput></screen>
<para>这将选择保存在 <replaceable>AUDITFILE</replaceable> 中的所有由
<para>这将选择保存在
<filename><replaceable>AUDITFILE</replaceable></filename> 中的所有由
<username>trhodes</username> 产生的审计日志。</para>
</sect2>
<sect2>
<title>委派审计复审权限</title>
<para>在 <literal>audit</literal> 组中的用户,
<para>在 <groupname>audit</groupname> 组中的用户,
拥有读取 <filename>/var/audit</filename> 下的审计记帐的权限;
默认情况下, 这个组是空的, 因此只有 root 用户可以读取审计记帐。
如果希望给某个用户指定审计复审权, 则可以将其加入 <literal>audit</literal>。
默认情况下, 这个组是空的, 因此只有 <username>root</username> 用户可以读取审计记帐。
如果希望给某个用户指定审计复审权, 则可以将其加入 <groupname>audit</groupname>。
由于查看审计日志的内容可以提供关于用户和进程行为的大量深度信息,
在您委派这些权力时, 请务必谨慎行事。</para>
</sect2>
@ -531,8 +534,8 @@ trailer,133</programlisting>
<screen>&prompt.root; <userinput>praudit /dev/auditpipe</userinput></screen>
<para>默认情况下, 审计管道设备节点只有 root 用户才能访问。 如果希望
<literal>audit</literal> 组的成员能够访问它, 应在 <filename>devfs.rules</filename>
<para>默认情况下, 审计管道设备节点只有 <username>root</username> 用户才能访问。 如果希望
<groupname>audit</groupname> 组的成员能够访问它, 应在 <filename>devfs.rules</filename>
中加入下述 <literal>devfs</literal> 规则:</para>
<programlisting>add path 'auditpipe*' mode 0440 group audit</programlisting>
@ -542,9 +545,9 @@ trailer,133</programlisting>
<warning>
<para>很容易配置出审计事件反馈循环, 也就是查看事件的操作本身会产生更多的事件。
例如, 如果所有的网络 I/O 均被审计, 又在 SSH 会话中执行
praudit 就会以很高的速率产生持续的审计事件流,
&man.praudit.1; 就会以很高的速率产生持续的审计事件流,
因为每显示一个事件都会产生新的事件。 建议您在需要在审计管道设备上执行
praudit 时, 选择一个没有进行细粒度
<command>praudit</command> 时, 选择一个没有进行细粒度
I/O 审计的会话来运行。</para>
</warning>
</sect2>
@ -553,7 +556,7 @@ trailer,133</programlisting>
<title>审计记帐文件的轮转</title>
<para>审计计账只由内核写入, 且只能由
<command>auditd</command> 管理。 管理员不应尝试使用 &man.newsyslog.conf.5;
<application>auditd</application> 管理。 管理员不应尝试使用 &man.newsyslog.conf.5;
或其它工具来完成审计日志的轮转工作。 您可以使用 <command>audit</command>
管理工具来关闭审计、 重新配置审计系统, 并完成日志轮转。
下面的命令将让审计服务创建新的审计日志,
@ -563,7 +566,7 @@ trailer,133</programlisting>
<screen>&prompt.root; <userinput>audit -n</userinput></screen>
<warning>
<para>如果 <command>auditd</command> 服务程序没有在运行,
<para>如果 <application>auditd</application> 服务程序没有在运行,
则这个命令将失败并给出错误提示。</para>
</warning>

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project
Original Revision: 1.147
Original Revision: 1.148
$FreeBSD$
-->
@ -512,11 +512,9 @@ total 530
<screen>&prompt.user; <userinput>chmod go= FILE</userinput></screen>
<para>倘若对一个文件作太多的变化设置可用逗号分开,
在下面的例子里,
可以去掉<replaceable>FILE</replaceable>文件的群体和 <quote>全部</quote> 可写权限,
但所有人都可以有执行权限:
</para>
<para>如果需要对文件一次进行多项变动, 则可用逗号分开, 在下面的例子中,
将去掉 <replaceable>FILE</replaceable> 文件的群体和 <quote>全体其他用户</quote> 可写权限,
并为所有人增加可执行权限:</para>
<screen>&prompt.user; <userinput>chmod go-w,a+x <replaceable>FILE</replaceable></userinput></screen>
@ -583,12 +581,13 @@ total 530
<title>目录架构</title>
<indexterm><primary>目录层次</primary></indexterm>
<para>目录层次是理解一个系统的重要基础,
最重要的莫过于它的根目录 <quote>/</quote>
这个目录在启动时就就挂上, 它包含了启动时所需的基本系统。
这个根目录同样包含了想要挂接的每一个文件系统。</para>
<para>理解 FreeBSD 的目录层次结构对于建立对系统整体的理解十分重要的基础。
其中, 最重要的概念是根目录,
<quote>/</quote>。 这个目录是系统引导时挂借的第一个目录,
它包含了用以准备多用户操作所需的操作系统基础组件。
根目录中也包含了用于在启动时转换到多用户模式之前挂接其他文件系统所需的挂接点。</para>
<para>挂接点 (mount point) 是新增的文件系统在接入现有系统时的起点位置。
<para>挂接点 (mount point) 是新增的文件系统在接入现有系统时的起点位置 (通常是根目录)
在 <xref linkend="disk-organization"> 对此进行了详细的阐述。
标准的挂接点包括
<filename>/usr</filename>、 <filename>/var</filename>、 <filename>/tmp</filename>、
@ -1168,8 +1167,8 @@ total 530
它不像slices磁盘的编号是由0开始的。
对应代码请看这里所列出的<xref linkend="basics-dev-codes">。</para>
<para>当提供一个partition名字给FreeBSD时,
同时包含这个分区的 slice 和磁盘的名字;类似地,
<para>当在 FreeBSD 中指定 partition 名字时,
必须同时包含这个分区的 slice 和磁盘的名字; 类似地,
在指定 slice 时, 也应该给出包含该 slice 的磁盘名字。 可这样列出:
磁盘名称,<literal>s</literal>slice 编号和partition标定字母。
例子请看
@ -1646,7 +1645,8 @@ total 530
<para>在这个例子里您可看到,从 &man.ps.1; 输出的每一列是有规律的。
<literal>PID</literal> 就是进程ID这个较早前已讨论过了。
PID号的分配由 1一直上升直到99999
当您运行到超过限制时,这些编号会回转分配。
当您运行到超过限制时,这些编号会回转分配
(仍在使用中的 PID 不会分配给其他进程)。
<literal>TT</literal>这一列显示了程序运行所在的终端, 目前可以安全地忽略。
<literal>STAT</literal> 显示程序的状态,也可以安全地被忽略。
<literal>TIME</literal>是程序在CPU处理时间&mdash;运行的时间量,
@ -1660,7 +1660,7 @@ total 530
<option>a</option>选项显示出所有运行进程的内容, 而不仅仅是您的进程。
<option>u</option>选项显示出进程所归属的用户名字以及内存使用,
<option>x</option> 选项显示出后台进程。 而
<option>ww</option> 选项表示为 &man.ps.1; 把整个命令行全部显示完,
<option>ww</option> 选项表示为 &man.ps.1; 把每个进程的整个命令行全部显示完,
而不是由于命令行过长就把它从屏幕上截去。</para>
<para>下面和从&man.top.1;输出是类似的,一个示例式对话就象这样子:
@ -1805,8 +1805,7 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
<para>得出 &man.inetd.8; PID号是198。 有时
<literal>grep inetd</literal> 命令也出现在输出中,
这是因为在这方面 &man.ps.1; 也是寻找列表中运行进程。
</para>
这是因为在这方面 &man.ps.1; 也是寻找列表中运行进程。</para>
</step>
<step>
@ -1894,7 +1893,7 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
<para>另一个特点就是shell利用环境变量运行。环境变量是贮存在shell环境空间上相对应的键和可变值
这个空间能够补程序从shell里读出而且包含了许多程序的配置。
这个一个常用环境变量列和其含义的列表:</para>
<indexterm><primary>环境变量</primary></indexterm>
<indexterm><primary>environment variables (环境变量)</primary></indexterm>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">

View file

@ -1,7 +1,7 @@
<!--
The FreeBSD Chinese Documentation Project
Original Revision: 1.78
Original Revision: 1.79
$FreeBSD$
-->
@ -209,9 +209,9 @@
</listitem>
<listitem>
<para><ulink url="http://www-wks.acs.ohio-state.edu/">Ohio State
University</ulink> 编写了一份 <ulink
url="http://www-wks.acs.ohio-state.edu/unix_course/unix.html">UNIX
<para><ulink url="http://www.osu.edu/">Ohio State University</ulink>
编写了一份 <ulink
url="http://8help.osu.edu/wks/unix_course/index.html">UNIX
介绍性课程</ulink> ,并提供在线的 HTML 和 PostScript 版本。</para>
</listitem>

View file

@ -203,8 +203,9 @@
<filename>/etc</filename> —— 它包含的是默认值而不是一个例子。
所有特定的改变应该在 <filename>rc.conf</filename> 中。</para>
<para>为了降低管理成本,有很多策略可以应用在成群的应用程序中来从系统指定的配置中分离
site-wide 配置。建议的方法是将 site-wide 配置放在另一个文件中,例如
<para>在集群应用中,为了降低管理成本,
可以应用多种策略把涉及全站范围的设置从特定于系统的设置中分离出来。
建议的方法是将全站范围的设置放在另一个文件中,例如
<filename>/etc/rc.conf.site</filename>
并且把它包含进然后把这个文件包括进只包含系统指定信息的
<filename>/etc/rc.conf</filename>。</para>
@ -224,9 +225,9 @@
blanktime="100"</programlisting></listitem>
</itemizedlist>
<para><filename>rc.conf.site</filename> 文件会被分发给每一个使用
<command>rsync</command> 或相似程序的系统,同时
<filename>rc.conf</filename> 文件仍保持独立。</para>
<para><filename>rc.conf.site</filename> 文件可以使用
<command>rsync</command> 或类似程序分发给各个系统,
同时各系统的 <filename>rc.conf</filename> 文件仍保持独立。</para>
<para>使用 &man.sysinstall.8; 或者 <command>make world</command>
来升级系统不会覆盖 <filename>rc.conf</filename>
@ -1985,7 +1986,7 @@ device_probe_and_attach: cbb0 attach returned 12</screen>
这个参数需要调节的普通原因是在进程中看到 <literal>sfbufa</literal>
状态。sysctl <varname>kern.ipc.nsfbufs</varname>
变量在内核配置变量中是只读的。 这个参数是由 <varname>kern.maxusers</varname>
决定的,然而它可能有必因此而调整。</para>
决定的,然而它可能有必因此而调整。</para>
<important>
<para>

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project
Original Revision: 1.225
Original Revision: 1.227
$FreeBSD$
-->

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Chinese Project
Original Revision: 1.71
Original Revision: 1.73
$FreeBSD$
-->
@ -168,19 +168,19 @@
<para><application>Mozilla</application> 是一个完全移植到 FreeBSD
上的现代化的、 稳定的浏览器。 它拥有非常合乎标准的 HTML 支持,
它也能处理邮件和阅读新闻组。
假如您打算做一个自己的主页的话,它甚至提供一个 HTML 编辑器。
<application>&netscape;</application> 的使用者可能觉得它和
<application>Communicator</application> 非常相似,
两者有些部分实际上是相通的。</para>
假如您打算做一个自己的主页的话,它甚至提供一个 HTML 编辑器。
<application>&netscape;</application> 的使用者可能觉得它和
<application>Communicator</application> 非常相似,
两者有些部分实际上是相通的。</para>
<para>在 CPU 速度低于 233MHz 或者内存少于 64MB
的老式电脑上,<application>Mozilla</application>
会占用相当多资源而难以使用。您也许可以试试
<application>Opera</application> 浏览器,本章稍后将会介绍它。</para>
的老式电脑上,<application>Mozilla</application>
会占用相当多资源而难以使用。您也许可以试试
<application>Opera</application> 浏览器,本章稍后将会介绍它。</para>
<para>也许基于某种原因,您不能或者不想编译
<application>Mozilla</application>FreeBSD GNOME 团队已经为您制作好了
package。只需要通过网络安装它</para>
<application>Mozilla</application>FreeBSD GNOME 团队已经为您制作好了
package。只需要通过网络安装它</para>
<screen>&prompt.root; <userinput>pkg_add -r mozilla</userinput></screen>
@ -334,7 +334,8 @@
<screen>&prompt.root; <userinput>pkg_add -r opera</userinput></screen>
<para>有些 FTP 站点没有所有版本的 package
您也可以通过 Ports Collection 来安装:</para>
但仍然可以通过 Ports 套件来安装
<application>Opera</application></para>
<screen>&prompt.root; <userinput>cd /usr/ports/www/opera</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
@ -361,11 +362,15 @@
<application>Konqueror</application> 不止是一个浏览器,
也是一个文件管理器和多媒体播放器。</para>
<para><application>Konqueror</application> 也带有丰富的插件,
可以在 <filename role="package">misc/konq-plugins</filename> 下面找到。</para>
<para>也有种类丰富的插件能够配合
<application>Konqueror</application> 一起使用,
您可以通过 <filename role="package">misc/konq-plugins</filename> 来安装它们。</para>
<para><application>Konqueror</application> 也支持 <application>&flash;</application>
可以在 <ulink url="http://freebsd.kde.org/howto.php"></ulink> 找到一个 How To。</para>
<para><application>Konqueror</application> 也支持 <application>&flash;</application>
关于如何获得用于
<application>Konqueror</application>
的 <application>&flash;</application> 支持的 <quote>How To</quote> 文档
可以在 <ulink url="http://freebsd.kde.org/howto.php"></ulink> 找到。</para>
</sect2>
</sect1>
@ -373,10 +378,11 @@
<title>办公、图象处理</title>
<para>当需要进行办公或者进行图象处理时,
新用户通常都会找一些好用的办公套件或者字处理软件。目前有一些<link
linkend="x11-wm">桌面环境</link>比如象
<application>KDE</application> 已经提供了办公套件。
FreeBSD 提供所有的要求,桌面环境也不例外。</para>
新用户通常都会找一些好用的办公套件或者字处理软件。 尽管目前有一些
<link linkend="x11-wm">桌面环境</link>
<application>KDE</application> 已经提供了办公套件,
但目前这还没有一定之规。 无论您使用那种桌面环境,
FreeBSD 都能提供您需要的软件。</para>
<para>这节涉及如下程序:</para>
@ -468,7 +474,7 @@
它非常快且包含许多特性,并且非常容易使用。</para>
<para><application>AbiWord</application> 可以导入或输出很多文件格式,
包括一些象 Microsoft<filename>.doc</filename> 格式的文件。</para>
包括一些象 &microsoft; <filename>.doc</filename> 这类专有格式的文件。</para>
<para><application>AbiWord</application> 也有 package
的安装方式。您可以用以下方法安装:</para>
@ -532,20 +538,21 @@
</indexterm>
<para><application>OpenOffice.org</application> 包括一套完整的办公套件:
一个字处理程序、一个电子表格程序、一个演示文档管理程序和一个绘图程序。
它和其它的办公套件的特征非常相似,它可以导入输出不同的流行的文件格式。
它包括一些不同的语言界面、拼写检查和字典。</para>
字处理程序、 电子表格程序、 演示文档管理程序和绘图程序。
它和其它的办公套件的特征非常相似,它可以导入输出不同的流行的文件格式。
它支持许多种语言 &mdash; 国际化已经渗透到了其界面、
拼写检查和字典等各个层面。</para>
<para><application>OpenOffice.org</application> 的字处理程序使用 XML
文件格式使它增加了可移植性和灵活性。电子表格程序支持宏语言和使用外来的数据库界面。
<application>OpenOffice.org</application> 已经可以平稳的运行在
&windows;、&solaris;、Linux、FreeBSD
和 &macos;&nbsp;X 等各种操作系统下。更多的有关
<application>OpenOffice.org</application> 的信息可以在
<ulink url="http://www.openoffice.org/">OpenOffice.org 网页</ulink>找到。
对于特定的 FreeBSD 版本的信息,您可以在直接在 <ulink
url="http://porting.openoffice.org/freebsd/">FreeBSD OpenOffice
移植团队</ulink>的页面下载。</para>
文件格式使它增加了可移植性和灵活性。 电子表格程序支持宏语言和使用外来的数据库界面。
<application>OpenOffice.org</application> 已经可以平稳的运行在
&windows;、&solaris;、Linux、FreeBSD
和 &macos;&nbsp;X 等各种操作系统下。 更多的有关
<application>OpenOffice.org</application> 的信息可以在
<ulink url="http://www.openoffice.org/">OpenOffice.org 网页</ulink> 找到。
对于特定的 FreeBSD 版本的信息,您可以在直接在 <ulink
url="http://porting.openoffice.org/freebsd/">FreeBSD OpenOffice
移植团队</ulink>的页面下载。</para>
<para>安装 <application>OpenOffice.org</application> 方法如下:</para>
@ -599,8 +606,9 @@
<sect1 id="desktop-viewers">
<title>文档查看器</title>
<para>一些新的文档格式近来得到流行。它们所需要的标准查看器可能不一定在系统内。
在本节我们将了解如何安装它们。</para>
<para>&unix; 系统出现以来, 一些新的文档格式开始流行起来;
它们所需要的标准查看器可能不一定在系统内。
本节中, 我们将了解如何安装它们。</para>
<para>这节涵盖如下应用程序:</para>
@ -688,11 +696,11 @@
</indexterm>
<para><application>gv</application> 是 &postscript; 和
PDF 文件格式查看器。它源自 <application>ghostview</application>
因为使用 <application>Xaw3d</application> 函数库让它看起来更美观。
它很快而且界面很干净。<application>gv</application>
有很多特性比如象纸张大小、刻度或者抗锯齿。
大部分操作都可以用键盘或鼠标完成。</para>
PDF 文件格式查看器。它源自 <application>ghostview</application>
因为使用 <application>Xaw3d</application> 函数库让它看起来更美观。
它很快而且界面很干净。<application>gv</application>
有很多特性比如象纸张大小、刻度或者抗锯齿。
大部分操作都可以只用键盘或鼠标完成。</para>
<para>安装 <application>gv</application> package如下</para>
@ -765,9 +773,9 @@
管理您个人的财政,有一些强大并且易于使用的软件可以被您选择安装。
它们中的一些与流行的文件格式兼容象
<application><trademark class="registered">Quicken</trademark></application>
<application>Excel</application> 文件。</para>
<application>Excel</application> 文件。</para>
<para>本节涵盖如下软件</para>
<para>本节涵盖如下程序</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="4">
@ -823,7 +831,7 @@
<application>Quicken</application> QIF 文件格式。
它也支持大部分的国际日期和流行的格式。</para>
<para>安装 <application>GnuCash</application> 到您的系统,如下:</para>
<para>在您的系统中安装 <application>GnuCash</application> 所需的命令如下:</para>
<screen>&prompt.root; <userinput>pkg_add -r gnucash</userinput></screen>
@ -853,7 +861,7 @@
它有大量的嵌入函数和允许所有通常比如象、数字、货币、日期、
时间等等的一些单元格式。</para>
<para>安装 <application>Gnumeric</application> package如下:</para>
<para>以 package 方式安装 <application>Gnumeric</application> 的方法如下:</para>
<screen>&prompt.root; <userinput>pkg_add -r gnumeric</userinput></screen>
@ -879,7 +887,7 @@
<application>Abacus</application> 可以产生 &postscript;
输出。</para>
<para>安装 <application>Abacus</application> package如下:</para>
<para>以 package 的方式安装 <application>Abacus</application> 的方法如下:</para>
<screen>&prompt.root; <userinput>pkg_add -r abacus</userinput></screen>

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project
Original Revision: 1.273
Original Revision: 1.274
$FreeBSD$
-->
@ -3101,10 +3101,6 @@ Password:</screen>
<command>kldload</command> 来加载 &man.gbde.4;</para>
<screen>&prompt.root; <userinput>kldload geom_bde</userinput></screen>
<para>目前, 尚没有可以写到
<filename>/boot/loader.conf</filename>
中, 以便在系统引导时自动加载这个模块的选项。</para>
</step>
</procedure>

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project
Original Revision: 1.181
Original Revision: 1.182
$FreeBSD$
-->
@ -307,6 +307,11 @@
<entry>ISDN开发人员</entry>
</row>
<row>
<entry>&a.jail.name;</entry>
<entry>关于 &man.jail.8; 机制的讨论</entry>
</row>
<row>
<entry>&a.java.name;</entry>
<entry>&java; 开发人员以及移植 &jdk;s 到 FreeBSD 的人们</entry>

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project
Original Revision: 1.74
Original Revision: 1.76
$FreeBSD$
-->
@ -1705,7 +1705,7 @@ block in log first quick on dc0 all
<para>或者:</para>
<programlisting>rdr dc0 0/32 port 80 -&gt; 10.0.10.25 port 80</programlisting>
<programlisting>rdr dc0 0.0.0.0/0 port 80 -&gt; 10.0.10.25 port 80</programlisting>
<para>另外, 也可以让 LAN 地址 <hostid
role="ipaddr">10.0.10.33</hostid> 上运行的 LAN DNS 服务器来处理公网上的
@ -1782,24 +1782,6 @@ pass out quick on rl0 proto tcp from any to any port &gt; 1024 flags S keep stat
# Active mode let data channel in from FTP server
pass in quick on rl0 proto tcp from any to any port = 20 flags S keep state</programlisting>
</sect3>
<sect3>
<title>FTP <acronym>NAT</acronym> 代理的 bug</title>
<para>在 IPFILTER 的 3.4.31 版中,
直到整个 FTP 会话直到将要结束之前, FTP 代理都会像文档中介绍的那样。
但一旦有一方要求关闭会话, 则来自远程 FTP 服务器 21
端口的一个包会被阻止, 并在日志中记下这一情况。 <acronym>NAT</acronym>
FTP/代理显然过早地删除了临时规则, 而不是等待远程 FTP 服务器确认它。
有人就这个问题在 IPF 的邮件列表中发表了问题报告。</para>
<para>解决这个问题的方法是, 要么增加一条过滤规则来摆脱不希望的日志消息,
或者什么都不做, 并忽略日志中的 FTP 连入错误信息。
绝大多数人并不经常使用外部的
FTP 服务。</para>
<programlisting>block in quick on rl0 proto tcp from any to any port = 21</programlisting>
</sect3>
</sect2>
</sect1>

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project
Original Revision: 1.27
Original Revision: 1.30
$FreeBSD$
-->
@ -312,8 +312,7 @@ Done.</screen>
#/dev/da0s2b none swap sw 0 0
/dev/mirror/gm0s1a / ufs rw 1 1</programlisting>
<para>接下来需要建一个 <filename>boot.conf</filename> 文件,
在当前和新盘的根分区上各放一份。 这个文件将
<para>接下来应在当前和新 root 分区中分别建立一个 <filename>boot.config</filename> 文件。 它会
<quote>帮助</quote> 系统的 <acronym>BIOS</acronym>
从正确的驱动器上引导:</para>
@ -404,9 +403,9 @@ OK? <userinput>boot</userinput></screen>
<para>现在我们将在客户机上 <command>mount</command> 该设备,
使用下面的命令:</para>
<screen>&prompt.root; <userinput>ggatec create -o rw 192.168.1.1 /dev/da0s4d</userinput></screen>
<screen>ggate0</screen>
<screen>&prompt.root; <userinput>mount /dev/ggate0 /mnt</userinput></screen>
<screen>&prompt.root; <userinput>ggatec create -o rw 192.168.1.1 /dev/da0s4d</userinput>
ggate0
&prompt.root; <userinput>mount /dev/ggate0 /mnt</userinput></screen>
<para>到此为止, 设备应该已经可以通过挂接点
<filename role="directory">/mnt</filename> 访问了。</para>
@ -420,6 +419,112 @@ OK? <userinput>boot</userinput></screen>
就可以使用 &man.umount.8; 命令来安全地将其卸下了,
这一点和其他磁盘设备类似。</para>
</sect1>
<sect1 id="geom-glabel">
<title>为磁盘设备添加卷标</title>
<indexterm>
<primary>GEOM</primary>
</indexterm>
<indexterm>
<primary>磁盘卷标</primary>
</indexterm>
<para>在系统初始化的过程中, &os; 内核会为检测到的设备创建设备节点。
这种检测方式存在一些问题, 例如,
在通过 <acronym>USB</acronym> 添加设备时应如何处理?
很可能有闪存盘设备最初被识别为
<devicename>da0</devicename> 而在这之后, 则由
<devicename>da0</devicename> 变成了
<devicename>da1</devicename>。 而这则会在挂接
<filename>/etc/fstab</filename> 中的文件系统时造成问题,
这些问题, 还可能在系统引导时导致无法正常启动。</para>
<para>解决这个问题的一个方法是以连接拓扑方式链式地进行
<acronym>SCSI</acronym> 设备命名, 这样,
当在 <acronym>SCSI</acronym> 卡上增加新设备时, 这些设备将使用一个未用的编号。
但如果 <acronym>USB</acronym> 设备取代了主 <acronym>SCSI</acronym> 磁盘的位置呢?
由于 <acronym>USB</acronym> 通常会在 <acronym>SCSI</acronym> 卡之前检测到,
因此很可能出现这种现象。 当然, 可以通过在系统引导之后再插入这些设备来绕过这个问题。
另一种绕过这个问题的方法, 则是只使用
<acronym>ATA</acronym> 驱动器, 并避免在
<filename>/etc/fstab</filename> 中列出
<acronym>SCSI</acronym> 设备。</para>
<para>还有一种更好的解决方法。 通过使用
<command>glabel</command> 工具, 管理员或用户可以为磁盘设备打上标签, 并在
<filename>/etc/fstab</filename> 中使用这些标签。 由于
<command>glabel</command> 会将标签保存在对应 provider 的最后一个扇区,
在系统重启之后, 它仍会持续存在。 因此, 通过将具体的设备替换为使用标签表示,
无论设备节点变成什么, 文件系统都能够顺利地完成挂接。</para>
<note>
<para>这并不是说标签一定是永久性的。
<command>glabel</command> 工具既可以创建永久性标签, 也可以创建临时性标签。
在重启时, 只有永久性标签会保持。 请参见联机手册 &man.glabel.8;
以了解两者之间的差异。</para>
</note>
<sect2>
<title>标签类型和使用示范</title>
<para>有两种类型的标签, 一种是普通标签, 另一种是文件系统标签。
两者的差异体现在是否能够自动检测, 以及是否在重启后保持。 这些标签会放到
<filename class="directory">/dev</filename> 中的特殊目录中,
这些目录的名字取决于文件系统类型。 例如,
<acronym>UFS</acronym>2 文件系统的标签会创建到
<filename class="directory">/dev/ufs2</filename>
目录中。</para>
<para>普通标签在系统下次重启时会消失, 这些标签会创建到
<filename class="directory">/dev/label</filename> 目录中,
很适合测试之用。</para>
<!-- XXXTR: How do you create a file system label without running newfs
or when there is no newfs (e.g.: cd9660)? -->
<para>永久性标签可以使用
<command>tunefs</command> 或 <command>newfs</command>
工具来创建。 要为
<acronym>UFS</acronym>2 文件系统创建标签, 而不破坏其上的数据,
可以使用下面的命令:</para>
<screen>&prompt.root; <userinput>tunefs -L <replaceable>home</replaceable> <replaceable>/dev/da3</replaceable></userinput></screen>
<warning>
<para>如果文件系统满了, 这可能会导致数据损坏; 不过, 如果文件系统快满了,
此时应首先删除一些无用的文件, 而不是增加标签。</para>
</warning>
<para>现在, 您应可以在
<filename class="directory">/dev/ufs2</filename> 目录中看到标签,
并将其加入 <filename>/etc/fstab</filename></para>
<programlisting>/dev/ufs2/home /home ufs rw 2 2</programlisting>
<note>
<para>当运行 <command>tunefs</command> 时, 应首先卸下文件系统。</para>
</note>
<para>现在可以像平时一样挂接文件系统了:</para>
<screen>&prompt.root; <userinput>mount /home</userinput></screen>
<para>下列命令可以清除标签:</para>
<screen>&prompt.root; <userinput>glabel destroy home</userinput></screen>
<para>现在, 只要在系统引导时通过 <filename>/boot/loader.conf</filename> 配置加载了内核模块
<filename>geom_label.ko</filename> 或在联编内核时指定了
<literal>GEOM_LABEL</literal> 选项,
设备节点由于增删设备而顺序发生变化时, 就不会影响文件系统的挂接了。</para>
<para>通过使用 <command>newfs</command> 命令的
<option>-L</option> 参数, 可以在创建文件系统时为其添加默认的标签。
请参见联机手册 &man.newfs.8; 以了解进一步的详情。</para>
</sect2>
</sect1>
<!--
<sect1 id="geom-gjournal">
<title>通过 GEOM 实现 UFS 日志</title>
@ -428,7 +533,7 @@ OK? <userinput>boot</userinput></screen>
<primary>GEOM</primary>
</indexterm>
<indexterm>
<primary>磁盘镜像</primary>
<primary>日志</primary>
</indexterm>
<para>随着 &os;&nbsp;7.0 的发布, 实现了长期为人们所期待的

File diff suppressed because it is too large Load diff

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project
Original Revision: 1.118
Original Revision: 1.119
$FreeBSD$
-->
@ -88,7 +88,8 @@
<indexterm><primary>TCP/IP 网络</primary></indexterm>
<listitem>
<para>符合业界标准的强大 <emphasis>TCP/IP 网络</emphasis> 支持,
例如 SLIPPPPNFSDHCP还有 NIS。
例如 SCTP、 DHCP、 NFS、
NIS、 PPP 以及 SLIP。
这意味着您的 FreeBSD 主机可以很容易地和其他系统互联,
也可以作为企业的服务器,提供重要的功能,
比如 NFS(远程文件访问)以及 email 服务, 或将您的组织接入
@ -786,7 +787,7 @@
CSRG 研究小组的软件为基础,并加入了 NetBSD、OpenBSD、386BSD
以及来自 自由软件基金会 的一些东西。</para>
<para>自从 94 年末我们的 FreeBSD&nbsp;2.0 发行以来,
<para>自从 1994 年末我们的 FreeBSD&nbsp;2.0 发行以来,
FreeBSD 的性能,可定制性,稳定性都有了令人注目的提高。
<!-- XXX is the rest of this paragraph still true ? -->
最大的变化是通过 整合虚拟内存/文件系统 中的高速缓存改进的虚拟内存系统,

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project
Original Revision: 1.6
Original Revision: 1.13
$FreeBSD$
-->
<chapter id="jails">
@ -249,9 +249,9 @@ is not required on &os; 6.0 and later.</para></footnote>
<para>一旦装好了 jail 就可以使用
&man.jail.8; 工具来安装它了。 &man.jail.8; 工具需要四个必填参数,
这些参数在 <xref
linkend="jails-what"> 小节中进行了介绍。 除了这四个参数之外,
linkend="jails-what"> 中进行了介绍。 除了这四个参数之外,
您还可以指定一些其他参数, 例如, 以特定用户身份来在 jail 中运行程序等等。
这里, <command>command</command> 参数取决于您希望建立的 jail
这里, <option><replaceable>command</replaceable></option> 参数取决于您希望建立的 jail
的类型; 对于 <emphasis>虚拟系统</emphasis> 可以选择
<filename>/etc/rc</filename> 因为它会完成真正的 &os; 系统启动所需的操作。 对于
<emphasis>服务</emphasis> jail 执行的命令取决于将在 jail
@ -379,7 +379,7 @@ jail_<replaceable>www</replaceable>_devfs_ruleset="<replaceable>www_ruleset</rep
<para>&os; 的基本系统包含一系列用于查看目前在用的 jail 信息, 以及接入
jail 并执行管理命令所需的基本工具。 &man.jls.8; 和
&man.jexec.8; 都是 &os; 基本系统的一部分, 并可用于执行简单的任务:</para>
&man.jexec.8; 命令都是 &os; 基本系统的一部分, 并可用于执行简单的任务:</para>
<itemizedlist>
<listitem>
@ -408,4 +408,394 @@ jail_<replaceable>www</replaceable>_devfs_ruleset="<replaceable>www_ruleset</rep
管理的小工具。 请参见其网站以了解进一步的详情。</para>
</sect2>
</sect1>
<sect1 id="jails-application">
<title>Jail 的应用</title>
<sect2 id="jails-service-jails">
<sect2info>
<authorgroup>
<author>
<firstname>Daniel</firstname>
<surname>Gerzo</surname>
<contrib>原作 </contrib>
<!-- 15. May 2007 -->
</author>
</authorgroup>
</sect2info>
<title>服务 Jail</title>
<para>这一节主要基于
&a.simon; 的 <ulink
url="http://simon.nitro.dk/service-jails.html"></ulink> 中的思路,
以及由 Ken Tom
<email>locals@gmail.com</email> 更新的文档。 这一节中描述了如何配置
&os; 系统的 &man.jail.8; 功能为其增加一个安全层次。
这部分假定您运行 RELENG_6_0 或更新版本, 并理解本章之前部分的内容。</para>
<sect3 id="jails-service-jails-design">
<title>设计</title>
<para>jail 的一个主要问题是如何对它们进行升级和管理。
由于每个 jail 都是从头联编的, 对于单个 jail 而言升级也许还不是个很严重的问题,
因为升级不会太过麻烦, 而对于多个 jail 而言, 升级不仅会耗费大量时间,
并且十分乏味的过程。</para>
<warning>
<para>这个配置过程需要您对 &os; 有较多的配置和使用经验。
如果这些过程显得太过复杂, 您应考虑使用较简单的系统, 例如 <filename
role="package">sysutils/ezjail</filename>
它提供了更简单的管理 &os; jail 的方法。</para>
</warning>
<para>基本的想法是, 在不同的 jail 中尽可能多地以安全的方式使用共享的资源
&mdash; 使用只读的 &man.mount.nullfs.8; 挂接, 这会让升级简单许多,
从而使为每个服务建立不同的 jail 这种方案变得更加可行。 另外,
它也为增加或删除以及升级 jail 提供了更为便捷的方法。</para>
<note>
<para>在这里服务的常见例子包括:
<acronym>HTTP</acronym> 服务、 <acronym>DNS</acronym>
服务、 <acronym>SMTP</acronym> 服务等等, 诸如此类。</para>
</note>
<para>这节介绍的配置的目的包括:</para>
<itemizedlist>
<listitem>
<para>建立简单并易于理解的 jail 结构。
也就是说 <emphasis>不必</emphasis> 为每个 jail 执行完整的
installworld 操作。</para>
</listitem>
<listitem>
<para>使增删 jail 更容易。</para>
</listitem>
<listitem>
<para>使更新或升级 jail 更容易。</para>
</listitem>
<listitem>
<para>使运行自订的 &os; 分支成为可能。</para>
</listitem>
<listitem>
<para>对安全的更偏执的追求, 尽可能减少被攻陷的可能。</para>
</listitem>
<listitem>
<para>尽可能节省空间和 inode。</para>
</listitem>
</itemizedlist>
<para>如前面提到的那样, 这个设计极大程度上依赖于将一份只读的主模板
(known as <application>nullfs</application>) 挂接到没一个
jail 中, 并为每个 jail 配置一个可读写的设备。 这种设备可以是物理磁盘、
分区, 或以 vnode 为后端的
&man.md.4; 设备。 在这个例子中, 我们将使用可读写的
<application>nullfs</application> 挂接。</para>
<para>下面的表中描述了文件系统格局:</para>
<itemizedlist>
<listitem>
<para>每个 jail 挂接到 <filename
role="directory">/home/j</filename> 目录下的一个目录。</para>
</listitem>
<listitem>
<para><filename role="directory">/home/j/mroot</filename>
是每个 jail 共用的模板, 对于所有的 jail 而言都是只读的。</para>
</listitem>
<listitem>
<para>在 <filename role="directory">/home/j</filename>
目录中, 每个 jail 有一个对应的空目录。</para>
</listitem>
<listitem>
<para>每个 jail 中都有一个 <filename
role="directory">/s</filename> 目录, 这个目录将连接到系统中的可读写部分。</para>
</listitem>
<listitem>
<para>每个 jail 应基于 <filename
role="directory">/home/j/skel</filename> 建立其可读写空间。</para>
</listitem>
<listitem>
<para>每个 jailspace (jail 中的可读写部分) 应创建到 <filename
role="directory">/home/js</filename>。<para>
</listitem>
</itemizedlist>
<note>
<para>这假定所有的 jail 都放置于
<filename role="directory">/home</filename> 分区中。 当然,
您可以根据需要将这个配置改为需要的任何样子,
但在接下来的例子中, 也应相应地加以变动。</para>
</note>
<!-- Insert an image or drawing here to illustrate the example. -->
</sect3>
<sect3 id="jails-service-jails-template">
<title>建立模板</title>
<para>这一节将介绍创建 jail 所需的只读主模板所需的步骤。<para>
<para>一般来说, 您应将系统升级到最新的 &os; -RELEASE 分支, 具体做法请参见本手册的相关
<ulink url="&url.books.handbook;/makeworld.html">章节</ulink>。
当更新不可行时, 则需要完成 buildworld 过程, 另外, 您还需要 <filename
role="package">sysutils/cpdup</filename> 软件包。
我们将使用 &man.portsnap.8; 工具来下载 &os; Ports 套件。 在使用手册的 <ulink
url="&url.books.handbook;/portsnap.html">Portsnap 章节</ulink>
中, 提供了针对初学者的介绍。</para>
<procedure>
<step>
<para>首先, 需要为将要存放只读的 &os; 执行文件的文件系统建立一个目录,
接着进入 &os; 源代码的目录, 并在其中安装 jail
模板:</para>
<screen>&prompt.root; <userinput>mkdir /home/j /home/j/mroot</userinput>
&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make installworld DESTDIR=/home/j/mroot</userinput></screen>
</step>
<step>
<para>接着, 准备一份 &os; Ports 套件, 以及用于执行
<application>mergemaster</application> 的 &os; 源代码:</para>
<screen>&prompt.root; <userinput>cd /home/j/mroot</userinput>
&prompt.root; <userinput>mkdir usr/ports</userinput>
&prompt.root; <userinput>portsnap -p /home/j/mroot/usr/ports fetch extract</userinput>
&prompt.root; <userinput>cpdup /usr/src /home/j/mroot/usr/src</userinput></screen>
</step>
<step>
<para>创建系统中可读写部分的骨架:</para>
<screen>&prompt.root; <userinput>mkdir /home/j/skel /home/j/skel/home /home/j/skel/usr-X11R6 /home/j/skel/distfiles</userinput>
&prompt.root; <userinput>mv etc /home/j/skel</userinput>
&prompt.root; <userinput>mv usr/local /home/j/skel/usr-local</userinput>
&prompt.root; <userinput>mv tmp /home/j/skel</userinput>
&prompt.root; <userinput>mv var /home/j/skel</userinput>
&prompt.root; <userinput>mv root /home/j/skel</userinput></screen>
</step>
<step>
<para>使用 <application>mergemaster</application> 安装缺失的配置文件。
接下来, 删除 <application>mergemaster</application>
创建的多余目录:</para>
<screen>&prompt.root; <userinput>mergemaster -t /home/j/skel/var/tmp/temproot -D /home/j/skel -i</userinput>
&prompt.root; <userinput>cd /home/j/skel</userinput>
&prompt.root; <userinput>rm -R bin boot lib libexec mnt proc rescue sbin sys usr dev</userinput></screen>
</step>
<step>
<para>现在, 将可读写文件系统连接到只读文件系统中。 请确保您在 <filename
role="directory">s/</filename> 目录中建立了适当的符号连接。
如果没有建立目录或建立的位置不正确, 可能会导致安装失败。</para>
<screen>&prompt.root; <userinput>cd /home/j/mroot</userinput>
&prompt.root; <userinput>mkdir s</userinput>
&prompt.root; <userinput>ln -s s/etc etc</userinput>
&prompt.root; <userinput>ln -s s/home home</userinput>
&prompt.root; <userinput>ln -s s/root root</userinput>
&prompt.root; <userinput>ln -s ../s/usr-local usr/local</userinput>
&prompt.root; <userinput>ln -s ../s/usr-X11R6 usr/X11R6</userinput>
&prompt.root; <userinput>ln -s ../../s/distfiles usr/ports/distfiles</userinput>
&prompt.root; <userinput>ln -s s/tmp tmp</userinput>
&prompt.root; <userinput>ln -s s/var var</userinput></screen>
</step>
<step>
<para>最后, 创建一个默认的包含下列配置的
<filename>/home/j/skel/etc/make.conf</filename></para>
<programlisting>WRKDIRPREFIX?= /s/portbuild</programlisting>
<para>配置 <literal>WRKDIRPREFIX</literal> 使得在每个 jail
中分别编译 &os; 成为可能。 请注意 ports 目录是只读系统的一部分。 而自订的
<literal>WRKDIRPREFIX</literal> 则使得联编过程得以在 jail
中的可读写部分完成。</para>
</step>
</procedure>
</sect3>
<sect3 id="jails-service-jails-creating">
<title>建立 Jail</title>
<para>现在我们已经有了完整的 &os; jail 模板, 可以在
<filename>/etc/rc.conf</filename> 中安装并配置它们了。
这个例子中演示了建立 3 个 jail <quote>NS</quote>、
<quote>MAIL</quote> 和 <quote>WWW</quote>。<para>
<procedure>
<step>
<para>在 <filename>/etc/fstab</filename> 文件中加入下列配置,
以便让系统自动挂接 jail 的只读模板和读写空间:</para>
<programlisting>/home/j/mroot /home/j/ns nullfs ro 0 0
/home/j/mroot /home/j/mail nullfs ro 0 0
/home/j/mroot /home/j/www nullfs ro 0 0
/home/js/ns /home/j/ns/s nullfs rw 0 0
/home/js/mail /home/j/mail/s nullfs rw 0 0
/home/js/www /home/j/www/s nullfs rw 0 0</programlisting>
<note>
<para>扫描批次号 (pass number) 为 0 的分区不会在启动时使用 &man.fsck.8;
进行检查, 而转存批次号 (dump number) 为 0 的分区则不会在
&man.dump.8; 时备份。 我们不希望
<application>fsck</application> 检查
<application>nullfs</application> 挂接, 或让
<application>dump</application> 备份 jail 中的只读
nullfs 挂接。 这就是为什么在每个 <filename>fstab</filename>
条目的最后两列是 <quote>0&nbsp;0</quote> 的原因。</para>
</note>
</step>
<step>
<para>在
<filename>/etc/rc.conf</filename> 中配置 jail</para>
<programlisting>jail_enable="YES"
jail_set_hostname_allow="NO"
jail_list="ns mail www"
jail_ns_hostname="ns.example.org"
jail_ns_ip="192.168.3.17"
jail_ns_rootdir="/home/j/ns"
jail_ns_devfs_enable="YES"
jail_mail_hostname="mail.example.org"
jail_mail_ip="192.168.3.18"
jail_mail_rootdir="/home/j/mail"
jail_mail_devfs_enable="YES"
jail_www_hostname="www.example.org"
jail_www_ip="62.123.43.14"
jail_www_rootdir="/home/j/www"
jail_www_devfs_enable="YES"</programlisting>
</step>
<step>
<para>为每个 jail 创建所需的只读文件系统挂接点:</para>
<screen>&prompt.root; <userinput>mkdir /home/j/ns /home/j/mail /home/j/www</userinput></screen>
</step>
<step>
<para>在 jail 中安装可读写的模板。 注意您需要使用 <filename
role="package">sysutils/cpdup</filename>
它能够帮助您确保每个目录都是正确地复制的:</para>
<!-- keramida: Why is cpdup required here? Doesn't cpio(1)
already include adequate functionality for performing this
job *and* have the advantage of being part of the base
system of FreeBSD? -->
<screen>&prompt.root; <userinput>mkdir /home/js</userinput>
&prompt.root; <userinput>cpdup /home/j/skel /home/js/ns</userinput>
&prompt.root; <userinput>cpdup /home/j/skel /home/js/mail</userinput>
&prompt.root; <userinput>cpdup /home/j/skel /home/js/www</userinput></screen>
</step>
<step>
<para>这样, 就完成了 jail 的制作, 可以运行了。 首先为
jail 挂接文件系统, 然后使用
<filename>/etc/rc.d/jail</filename> 脚本来启动它们:</para>
<screen>&prompt.root; <userinput>mount -a</userinput>
&prompt.root; <userinput>/etc/rc.d/jail start</userinput></screen>
</step>
</procedure>
<para>现在 jail 应该就启动起来了。 要检查它们是否运行正常,
可以使用 &man.jls.8; 命令。 它的输出应该类似这样:</para>
<screen>&prompt.root; <userinput>jls</userinput>
JID IP Address Hostname Path
3 192.168.3.17 ns.example.org /home/j/ns
2 192.168.3.18 mail.example.org /home/j/mail
1 62.123.43.14 www.example.org /home/j/www</screen>
<para>这时, 就可以登入 jail 并增加用户和配置服务了。
<literal>JID</literal> 列给出了正在运行的 jail 的标识编号。
您可以使用下面的命令来在 <literal>JID</literal> 编号为 3 的 jail
中执行管理任务:</para>
<screen>&prompt.root; <userinput>jexec 3 tcsh</userinput></screen>
</sect3>
<sect3 id="jails-service-jails-upgrading">
<title>升级</title>
<para>有时, 由于安全问题, 或新增功能有用, 会希望将系统升级到一个新版本的 &os;。
这种安装方式的设计使得升级现有 jail 变得很容易。 另外,
它也能最大限度地减小停机时间, 因为 jail 只在最后时刻才需要关闭。
另外, 它也提供了简单的回退到先前版本的方法。</para>
<procedure>
<step>
<para>第一步是按通常的方法升级主机的系统。 接着,
在 <filename
role="directory">/home/j/mroot2</filename> 中建立一个新的临时模板:</para>
<screen>&prompt.root; <userinput>mkdir /home/j/mroot2</userinput>
&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make installworld DESTDIR=/home/j/mroot2</userinput>
&prompt.root; <userinput>cd /home/j/mroot2</userinput>
&prompt.root; <userinput>cpdup /usr/src usr/src</userinput>
&prompt.root; <userinput>mkdir s</userinput></screen>
<para>在运行 <maketarget>installworld</maketarget> 时会创建一些不需要的目录,
应将它们删除:</para>
<screen>&prompt.root; <userinput>chflags -R 0 var</userinput>
&prompt.root; <userinput>rm -R etc var root usr/local tmp</userinput></screen>
</step>
<step>
<para>重建到主系统中的可读写符号连接:</para>
<screen>&prompt.root; <userinput>ln -s s/etc etc</userinput>
&prompt.root; <userinput>ln -s s/root root</userinput>
&prompt.root; <userinput>ln -s s/home home</userinput>
&prompt.root; <userinput>ln -s ../s/usr-local usr/local</userinput>
&prompt.root; <userinput>ln -s ../s/usr-X11R6 usr/X11R6</userinput>
&prompt.root; <userinput>ln -s s/tmp tmp</userinput>
&prompt.root; <userinput>ln -s s/var var</userinput></screen>
</step>
<step>
<para>现在是时候关闭 jail 了:</para>
<screen>&prompt.root; <userinput>/etc/rc.d/jail stop</userinput></screen>
</step>
<step>
<para>卸下原先的文件系统:</para>
<!-- keramida: Shouldn't we suggest a short script-based
loop here, instead of tediously copying the same commands
multiple times? -->
<screen>&prompt.root; <userinput>umount /home/j/ns/s</userinput>
&prompt.root; <userinput>umount /home/j/ns</userinput>
&prompt.root; <userinput>umount /home/j/mail/s</userinput>
&prompt.root; <userinput>umount /home/j/mail</userinput>
&prompt.root; <userinput>umount /home/j/www/s</userinput>
&prompt.root; <userinput>umount /home/j/www</userinput></screen>
<note>
<para>可读写的文件系统
(<filename role="directory">/s</filename>)
会在只读系统之后挂接, 因此应首先卸载。</para>
</note>
</step>
<step>
<para>将先前的只读文件系统挪走, 换成新的系统。
这样做也同时保留了先前系统的备份, 从而可以在出现问题时从中恢复。
这里我们根据新系统的创建时间来命名。 此外我们把先前的
&os; Ports 套件直接移动到新的文件系统中,
以节省磁盘空间和 inode</para>
<screen>&prompt.root; <userinput>cd /home/j</userinput>
&prompt.root; <userinput>mv mroot mroot.20060601</userinput>
&prompt.root; <userinput>mv mroot2 mroot</userinput>
&prompt.root; <userinput>mv mroot.20060601/usr/ports mroot/usr</userinput></screen>
</step>
<step>
<para>现在新的只读模板就可以用了, 剩下的事情是重新挂接文件系统并启动
jails</para>
<screen>&prompt.root; <userinput>mount -a</userinput>
&prompt.root; <userinput>/etc/rc.d/jail start</userinput></screen>
</step>
</procedure>
<para>最后用 &man.jls.8; 检查 jail 启动是否正常。
不要忘记在 jail 中运行 mergemaster。 配置文件和
rc.d 脚本在升级时应进行更新。</para>
</sect3>
</sect2>
</sect1>
</chapter>

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Chinese Documentation Project
Original Revision: 1.171
Original Revision: 1.174
$FreeBSD$
-->
@ -410,10 +410,7 @@ cpu I686_CPU</programlisting>
<para>一般的 &os; 联编过程, 在所联编的内核指定了 <option>-g</option> 选项时,
由于此选项将传递给 &man.gcc.1; 表示加入调试信息,
因此会将调试符号也包含进来。 如果您使用 <quote>旧式的</quote>
方法来联编内核, 通过使用 &man.config.8; 的 <option>-g</option> 选项,
也可以达到类似的目的。 (参见 <xref linkend="kernelconfig-building">
了解进一步的信息)。</para>
因此会将调试符号也包含进来。</para>
<programlisting>options SCHED_4BSD # 4BSD scheduler</programlisting>
@ -533,6 +530,11 @@ options NFS_ROOT # NFS usable as /, requires NFSCLIENT</progra
最好在所有的&i386;和Alpha systems下打开这个选项因为可能要运行老应用程序。
在5.X才开始支持的平台比如ia64和&sparc64;,就不需要这个选项。</para>
<programlisting>options COMPAT_FREEBSD5 # Compatible with &os;5</programlisting>
<para>对于 &os;&nbsp;6.X 和更高版本而言, 如果希望在其上运行为 &os;&nbsp;5.X
版本联编的、 用到 &os;&nbsp;5.X 系统调用接口的程序, 则需要使用这个选项。</para>
<programlisting>options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI</programlisting>
<para>这将让内核在探测每个 SCSI 设备之前等待 5 秒。
@ -576,13 +578,6 @@ options NFS_ROOT # NFS usable as /, requires NFSCLIENT</progra
<para>这个选项与键盘有关。 它在 <filename>/dev</filename>
中安装一个 CDEV 项。</para>
<programlisting>options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~128k to driver.
options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~215k to driver.</programlisting>
<para>这个选项主要用于帮助调试, 它能够给出更容易阅读的寄存器数值。</para>
<programlisting>options ADAPTIVE_GIANT # Giant mutex is adaptive.</programlisting>
<para>内核全局锁 (Giant) 是一种互斥机制 (休眠互斥体) 的名字,
@ -604,6 +599,12 @@ options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
apic 设备可以被 UP 和 SMP 内核使用, 但 SMP 内核必须使用它。
要支持多处理器, 还需要加上 <literal>options SMP</literal>。</para>
<note>
<para>The apic device exists only on the i386 architecture, this
configuration line should not be used on other
architectures.</para>
</note>
<programlisting>device eisa</programlisting>
<para>如果您的主机板上有EISA总线加入这个设置。使用这个选项可以自动扫描并设置所有连接在EISA总线上的设备。</para>
@ -654,13 +655,17 @@ device atapicd # ATAPI CDROM drives</programlisting>
<programlisting># SCSI Controllers
device ahb # EISA AHA1742 family
device ahc # AHA2940 and onboard AIC7xxx devices
options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~128k to driver.
device ahd # AHA39320/29320 and onboard AIC79xx devices
options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~215k to driver.
device amd # AMD 53C974 (Teckram DC-390(T))
device isp # Qlogic family
#device ispfw # Firmware for QLogic HBAs- normally a module
device mpt # LSI-Logic MPT-Fusion
#device ncr # NCR/Symbios Logic
device sym # NCR/Symbios Logic (newer chipsets)
device sym # NCR/Symbios Logic (newer chipsets + those of `ncr')
device trm # Tekram DC395U/UW/F DC315U adapters
device adv # Advansys SCSI adapters
@ -673,7 +678,9 @@ device ncv # NCR 53C500
device nsp # Workbit Ninja SCSI-3
device stg # TMC 18C30/18C50</programlisting>
<para>SCSI控制器。可以注释掉您系统中没有的设备。如果您只有IDE设备您可以把这些一起删掉。</para>
<para>SCSI控制器。可以注释掉您系统中没有的设备。
如果您只有IDE设备您可以把这些一起删掉。 <literal>*_REG_PRETTY_PRINT</literal>
这样的配置, 则是对应驱动程序的调试选项。</para>
<programlisting># SCSI peripherals
device scbus # SCSI bus (required for SCSI)
@ -736,7 +743,8 @@ device atkbdc # AT keyboard controller</programlisting>
<programlisting>device kbdmux # keyboard multiplexer</programlisting>
<para>针对键盘多路选择器的基本支持。</para>
<para>针对键盘多路选择器的基本支持。 如果您不打算使用多个键盘,
则可以放心地删除这一行。</para>
<programlisting>device vga # VGA video card driver</programlisting>
@ -895,6 +903,7 @@ device sf # Adaptec AIC-6915 (<quote>Starfire</quote>)
device sis # Silicon Integrated Systems SiS 900/SiS 7016
device sk # SysKonnect SK-984x &amp; SK-982x gigabit Ethernet
device ste # Sundance ST201 (D-Link DFE-550TX)
device stge # Sundance/Tamarack TC9021 gigabit Ethernet
device ti # Alteon Networks Tigon I/II gigabit Ethernet
device tl # Texas Instruments ThunderLAN
device tx # SMC EtherPower II (83c170 <quote>EPIC</quote>)
@ -925,8 +934,21 @@ device xe # Xircom pccard Ethernet
以了解关于哪个驱动程序能够驱动您的网卡的细节。</para>
<programlisting># Wireless NIC cards
device wlan # 802.11 support
device an # Aironet 4500/4800 802.11 wireless NICs.
device wlan # 802.11 support</programlisting>
<para>通用 802.11 支持。 这行配置是无线网络所必需的。</para>
<programlisting>device wlan_wep # 802.11 WEP support
device wlan_ccmp # 802.11 CCMP support
device wlan_tkip # 802.11 TKIP support</programlisting>
<para>针对 802.11 设备的加密支持。 如果希望使用加密和 802.11i 安全协议,
就需要这些配置行。</para>
<programlisting>device an # Aironet 4500/4800 802.11 wireless NICs.
device ath # Atheros pci/cardbus NIC's
device ath_hal # Atheros HAL (Hardware Access Layer)
device ath_rate_sample # SampleRate tx rate control for ath
device awi # BayStack 660 and others
device ral # Ralink Technology RT2500 wireless NICs.
device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs.
@ -1010,7 +1032,7 @@ device bpf # Berkeley packet filter</programlisting>
<programlisting># USB support
device uhci # UHCI PCI-&gt;USB interface
device ohci # OHCI PCI-&gt;USB interface
#device ehci # EHCI PCI-&gt;USB interface (USB 2.0)
device ehci # EHCI PCI-&gt;USB interface (USB 2.0)
device usb # USB Bus (required)
#device udbp # USB Double Bulk Pipe devices
device ugen # Generic
@ -1019,6 +1041,7 @@ device ukbd # Keyboard
device ulpt # Printer
device umass # Disks/Mass storage - Requires scbus and da
device ums # Mouse
device ural # Ralink Technology RT2500USB wireless NICs
device urio # Diamond Rio 500 MP3 player
device uscanner # Scanners
# USB Ethernet, requires mii

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Chinese Documentation Project
Original Revision: 1.123
Original Revision: 1.124
$FreeBSD$
-->
@ -808,8 +808,8 @@ Option "XkbOptions" "grp:toggle"</programlisting>
</indexterm>
<para>Slaven Rezic <email>eserte at cs.tu-berlin.de</email>
写了一个在FreeBSD机器下如何使用日尔曼语言的德语指南。
可以在<ulink url="http://www.de.FreeBSD.org/de/umlaute/"></ulink>下找到。</para>
写了一个在FreeBSD机器下如何使用日尔曼语言的德语指南。 这份德语教程可以在
<ulink url="http://user.cs.tu-berlin.de/~eserte/FreeBSD/doc/umlaute/umlaute.html"></ulink> 找到。</para>
</sect2>
<sect2>

View file

@ -1,7 +1,7 @@
<!--
The FreeBSD Documentation Project
Original Revision: 1.133
Original Revision: 1.134
$FreeBSD$
-->
@ -53,10 +53,10 @@
的 Linux 应用程序。 这包括类似 <application>&staroffice;</application>
Linux 版本的 <application>&netscape;</application>
<application>&adobe;&nbsp;&acrobat;</application>
<application><trademark class="registered">RealPlayer</trademark></application>£¬
<application>&realplayer;</application>
<application><trademark>VMware</trademark></application>
<application>&oracle;</application>
<application><trademark class="registered">WordPerfect</trademark></application>£¬
<application>&wordperfect;</application>
<application>Doom</application>
<application>Quake</application> 等等。 此外, 也有人说,
某些情况下, 在 FreeBSD 上面运行的 Linux 程序的性能,

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project
Original Revision: 1.69
Original Revision: 1.70
$FreeBSD$
-->
@ -610,81 +610,6 @@ test: biba/high</screen>
<xref linkend="mac-troubleshoot">¡£</para>
</note>
</sect2>
<sect2>
<title>用系统控制变量控制 MAC</title>
<para>即使在没有加载任何模块的时候,
也仍然有一些可以通过 <command>sysctl</command> 接口来控制的
<acronym>MAC</acronym> 特性。 这些系统控制变量将在下面予以描述,
在所有的例子中, 数字一 (1) 都表示启用, 而数字零 (0)
则表示禁用:</para>
<itemizedlist>
<listitem>
<para><literal>security.mac.enforce_fs</literal>
表示在文件系统上启用 <acronym>MAC</acronym>
策略。</para>
</listitem>
<listitem>
<para><literal>security.mac.enforce_kld</literal>
表示启用动态内核连接器 (参见
&man.kld.4;) 上的 <acronym>MAC</acronym> 内核连接策略。</para>
</listitem>
<listitem>
<para><literal>security.mac.enforce_network</literal>
表示启用 <acronym>MAC</acronym> 网络策略。</para>
</listitem>
<listitem>
<para><literal>security.mac.enforce_pipe</literal>
表示启用 <acronym>MAC</acronym> 管道策略。</para>
</listitem>
<listitem>
<para><literal>security.mac.enforce_process</literal>
表示启用使用进程间通讯机制的进程上的 <acronym>MAC</acronym>
策略。</para>
</listitem>
<listitem>
<para><literal>security.mac.enforce_socket</literal>
表示启用 socket 上的 <acronym>MAC</acronym> 策略
(参见 &man.socket.2; 联机手册)。</para>
</listitem>
<listitem>
<para><literal>security.mac.enforce_system</literal>
表示启用系统活动, 如记账和重新启动的 <acronym>MAC</acronym> 策略。</para>
</listitem>
<listitem>
<para><literal>security.mac.enforce_vm</literal>
表示启用虚拟内存系统上的 <acronym>MAC</acronym> 策略。</para>
</listitem>
</itemizedlist>
<note>
<para>每个策略或 <acronym>MAC</acronym>
选项都支持通过系统控制变量来进行调整。 这些选项通常都位于
<literal>security.mac.&lt;策略名&gt;</literal> 的树状结构之下。
要查看所有的 <acronym>MAC</acronym> 系统控制变量,
可以使用下述命令:</para>
<screen>&prompt.root; <userinput>sysctl -da | grep mac</userinput></screen>
</note>
<para>前面的所有基本
<acronym>MAC</acronym> 策略默认都会启用。
如果编入内核的模块被过分锁死, 则可能无法与局域网或 Internet
进行通讯, 或发生其他严重问题。
这也是为什么不完全鼓励将这些模块编入内核的原因。
尽管这样做并不妨碍通过使用 <command>sysctl</command> 来禁用这些策略,
但以模块方式加载可以让管理员更容易地切换是否使用策略,
而不需要构建和重新安装一套新系统。</para>
</sect2>
</sect1>
<sect1 id="mac-planning">

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Chinese Documentation Project
Original Revision: 1.432
Original Revision: 1.438
$FreeBSD$
-->
@ -347,12 +347,6 @@
<listitem>
<para><emphasis>德国</emphasis>:
:pserver:anoncvs@anoncvs.de.FreeBSD.org:/home/ncvs
(使用 <command>cvs login</command> 并在提示输入口令时输入
<quote>anoncvs</quote>.)</para>
</listitem>
<listitem>
<para><emphasis>德国</emphasis>:
:pserver:anoncvs@anoncvs2.de.FreeBSD.org:/home/ncvs
(rsh, pserver, ssh, ssh/2022)
</para>
</listitem>
@ -365,7 +359,11 @@
<listitem>
<para><emphasis>台湾</emphasis>地区:
:pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
(使用 <command>cvs login</command> 并在提示输入口令时输入任意口令。)</para>
(pserver (使用 <command>cvs login</command> 并在提示输入口令时,
输入任意口令。) ssh (无口令))</para>
<programlisting>SSH2 HostKey: 1024 e8:3b:29:7b:ca:9f:ac:e9:45:cb:c8:17:ae:9b:eb:55 /etc/ssh/ssh_host_dsa_key.pub</programlisting>
</listitem>
<listitem>
<para><emphasis>美国</emphasis>:
@ -419,9 +417,9 @@ SSH2 HostKey: 1024 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65 ssh_host_dsa_
<example>
<title>从 -CURRENT 检出些东西 (&man.ls.1;)</title>
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs</userinput>
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs</userinput>
&prompt.user; <userinput>cvs login</userinput>
<emphasis>在提示符处,输入密码</emphasis> <quote>anoncvs</quote>.
<emphasis>>在提示符处,输入任意密码</emphasis> <quote>password</quote>.
&prompt.user; <userinput>cvs co ls</userinput>
</screen>
</example>
@ -439,9 +437,9 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
<example>
<title>检出 6-STABLE 分支中的 &man.ls.1; 版本:</title>
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs</userinput>
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs</userinput>
&prompt.user; <userinput>cvs login</userinput>
<emphasis>在提示符处,输入密码</emphasis> <quote>anoncvs</quote>。
<emphasis>在提示符处,输入任意密码</emphasis> <quote>password</quote>。
&prompt.user; <userinput>cvs co -rRELENG_6 ls</userinput>
</screen>
</example>
@ -449,9 +447,9 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
<example>
<title>创建 &man.ls.1; 的变化列表(用标准的 diff)</title>
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs</userinput>
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs</userinput>
&prompt.user; <userinput>cvs login</userinput>
<emphasis>在提示符处,输入密码</emphasis> <quote>anoncvs</quote>。
<emphasis>在提示符处,输入任意密码</emphasis> <quote>password</quote>。
&prompt.user; <userinput>cvs rdiff -u -rRELENG_5_3_0_RELEASE -rRELENG_5_4_0_RELEASE ls</userinput>
</screen>
</example>
@ -459,9 +457,9 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
<example>
<title>找出可以使用的其它的模块名:</title>
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs</userinput>
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs</userinput>
&prompt.user; <userinput>cvs login</userinput>
<emphasis>在提示符处,输入密码</emphasis> <quote>anoncvs</quote>.
<emphasis>在提示符处,输入任意密码</emphasis> <quote>password</quote>。
&prompt.user; <userinput>cvs co modules</userinput>
&prompt.user; <userinput>more modules/modules</userinput>
</screen>
@ -1878,6 +1876,15 @@ doc/zh_*</screen>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-x11-drivers
release=cvs</literal></term>
<listitem>
<para>X11 驱动程序。</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-x11-fm
release=cvs</literal></term>
@ -2243,18 +2250,18 @@ doc/zh_*</screen>
<sect2>
<title>更多信息</title>
<para><application>CVSup</application> FAQ 和关于
<application>CVSup</application> 的其它信息,请查看
<ulink url="http://www.polstra.com/projects/freeware/CVSup/">
CVSup 主页</ulink>。</para>
<para><application>CVSup</application> FAQ 以及关于
<application>CVSup</application> 的其他信息, 请查看
<ulink url="http://www.cvsup.org">CVSup 主页</ulink>。</para>
<para>大多数
<application>CVSup</application> 的和 FreeBSD 相关的讨论都在
&a.hackers;。软件的新版本在那发布,
还有 &a.announce;。</para>
<para>问题和 bug 报告应该发给
程序作者 <email>cvsup-bugs@polstra.com</email>。</para>
<para>多数与 FreeBSD 有关的
<application>CVSup</application> 讨论会在
&a.hackers; 进行。 这个软件的新版本会在那里和 &a.announce; 公布。</para>
<para>如果对于
<application>CVSup</application> 有任何问题, 或希望提交 bug 报告, 请参阅
<ulink url="http://www.cvsup.org/faq.html#bugreports">
CVSup FAQ</ulink>。</para>
</sect2>
<sect2 id="cvsup-mirrors">

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Documentation Project
Original Revision: 1.126
Original Revision: 1.127
$FreeBSD$
-->
@ -56,7 +56,7 @@
</listitem>
<listitem>
<para>运用样本程序去测试声卡工作的方法。</para>
<para>测试声卡是否正常工作的方法。</para>
</listitem>
<listitem>
@ -81,7 +81,7 @@
</listitem>
<listitem>
<para>如何从CD和DVD中提取文件。</para>
<para>如何从 CD 和 DVD 中提取文件。</para>
</listitem>
<listitem>
@ -138,9 +138,9 @@
<indexterm><primary>声卡</primary></indexterm>
<para>在开始之前,您应该清楚声卡类型、所用的芯片以及它是 PCI 还是 ISA 卡。
FreeBSD 支持种类繁多的 PCI 和 ISA 卡。检查 <ulink
url="&rel.current.hardware;">Hardware Notes</ulink>
中支持的音频设备列表看看是否支持您的声卡
这份文档也只论及支持您的声卡的驱动程序。</para>
url="&rel.current.hardware;">硬件兼容说明</ulink>
中支持的音频设备列表看看是否支持您的声卡
硬件兼容说明也会说明支持您声卡的是哪个驱动程序。</para>
<indexterm>
<primary>内核</primary>
@ -179,8 +179,8 @@
<sect3>
<title>定制内核使其支持声卡</title>
<para>要做的第一件事情就是添加通用音频驱动 &man.sound.4;
到内核中,您需要添加下面这行到内核配置文件中:</para>
<para>要做的第一件事情就是添加通用音频框架驱动
&man.sound.4; 到内核中, 您需要添加下面这行到内核配置文件中:</para>
<programlisting>device sound</programlisting>
@ -196,11 +196,11 @@
<programlisting>device snd_emu10k1</programlisting>
<para>一定要阅读驱动的联机手册了解如何使用它们。
关于内核配置文件中声卡驱动的写法, 也可以在
<filename>/usr/src/sys/conf/NOTES</filename> 文件。</para>
关于内核配置文件中声卡驱动的具体写法, 也可以在
<filename>/usr/src/sys/conf/NOTES</filename> 文件中找到。</para>
<para>非即插即用的 ISA 卡可能需要您为内核提供一些关于声卡配置的信息
(IRQ、 I/O 端口, 等等)。 这项工作可以通过
(IRQ、 I/O 端口, 等等) 这一点与其他不支持即插即用的 ISA 卡类似。 这项工作可以通过
<filename>/boot/device.hints</filename> 文件来完成。
系统启动时, &man.loader.8; 将读取这个文件,
并将其中的配置传给内核。 例如, 旧式的
@ -223,8 +223,10 @@ hint.sbc.0.flags="0x15"</programlisting>
<para>这样,声卡使用 <literal>0x220</literal>
I/O 端口和 IRQ <literal>5</literal>。</para>
<para><filename>/boot/device.hints</filename>
文件的写法会在声卡驱动的联机手册中描述。</para>
<para>在
<filename>/boot/device.hints</filename> 文件中所使用的语法, 在
&man.sound.4; 联机手册中以及所用的具体声卡驱动的联机手册中,
会进行进一步的讲解。</para>
<para>上面所展示的是默认的配置。 有时候,
您可能需要更改 IRQ 或其他配置, 以适应声卡的实际情况。
@ -259,7 +261,7 @@ kld snd_ich (1p/2r/0v channels duplex default)</screen>
linkend="troubleshooting">一节。</para>
<para>如果一切正常,您现在应该拥有一个多功能声卡了。
如果您的 CD-ROM 或者 DVD-ROM 驱动器适当的与声卡相关联
如果您的 CD-ROM 或者 DVD-ROM 驱动器的音频输出线已经与声卡连在一起
您可以把 CD 放入驱动器并用 &man.cdcontrol.1; 来播放:</para>
<screen>&prompt.user; <userinput>cdcontrol -f /dev/acd0 play 1</userinput></screen>
@ -268,8 +270,10 @@ kld snd_ich (1p/2r/0v channels duplex default)</screen>
role="package">audio/workman</filename> 可以提供一个友好的界面。
您可能想要安装一个应用程序比如
<filename role="package">audio/mpg123</filename> 来听
MP3 音频文件。一个快速的测试声卡正在发送数据到
<filename>/dev/dsp</filename> 的方式,像这样做:</para>
MP3 音频文件。</para>
<para>另一种快速测试声卡的方法, 是将数据发送到
<filename>/dev/dsp</filename> 像这样做:</para>
<screen>&prompt.user; <userinput>cat <replaceable>filename</replaceable> &gt; /dev/dsp</userinput></screen>
@ -297,11 +301,6 @@ kld snd_ich (1p/2r/0v channels duplex default)</screen>
</thead>
<tbody>
<row>
<entry><errorname>unsupported subdevice XX</errorname></entry>
<entry><para>一个或多个设备节点没有正确地建立。重复上面的步骤。</para></entry>
</row>
<row>
<entry><errorname>sb_dspwr(XX) timed out</errorname></entry>
<entry><para>I/O端口没有设置正确。</para></entry>
@ -346,8 +345,8 @@ kld snd_ich (1p/2r/0v channels duplex default)</screen>
<application>esound</application> 或者 <application>artsd</application>
不支持与其它程序共享音频设备时。</para>
<para>FreeBSD可以通过 <emphasis>虚拟声道(Virtual Sound
Channels)</emphasis> 来达到 具体设置用工具 &man.sysctl.8; 来完成
<para>FreeBSD 可以通过 <emphasis>虚拟声道(Virtual Sound
Channels)</emphasis> 来达到这样的效果, 它可以用 &man.sysctl.8; 来启用
虚拟的声道可以能过在内核里混合声音来混合声卡里播放的声道。</para>
<para>使用两条sysctl命令来设置虚拟声道的数目。 如果您是
@ -369,10 +368,10 @@ kld snd_ich (1p/2r/0v channels duplex default)</screen>
<para>如果不使用 &man.devfs.5; 就必须把应用程序指向
<filename>/dev/dsp0</filename>.<replaceable>x</replaceable>
这里<replaceable>x</replaceable> 为0到3 因为在上面的例子里
其中 <replaceable>x</replaceable> 为0到3 因为在上面的例子里
<varname>hw.snd.pcm.0.vchans</varname> 被设为了4。
在使用&man.devfs.5;的系统里,上边那些会自动分配给用户。</para>
在使用 &man.devfs.5; 的系统中, 当应用程序请求 <filename>/dev/dsp0</filename>
时, 系统会自动为其分配一个而无需额外干预。</para>
</sect2>
<sect2>
@ -389,15 +388,15 @@ kld snd_ich (1p/2r/0v channels duplex default)</screen>
<title>如何设置混音器通道值</title>
<para>不同的混音通道的默认音量是硬编码进 &man.pcm.4; 驱动程序的。
同时,也有很多应用或服务程序提供了允许用户直接设置并记住这些值的功能。
同时, 也有很多应用或服务程序提供了允许用户直接设置并记住这些值的功能。
不过这并不是一个很好的解决方案, 您可能希望在驱动一级有一个可以设置的默认值。
这可以通过在 <filename>/boot/device.hints</filename> 定义适当的值来实现。
例如:</para>
<programlisting>hint.pcm.0.vol="100"</programlisting>
<programlisting>hint.pcm.0.vol="50"</programlisting>
<para>这将在 &man.pcm.4; 模块加载时, 将通道音量设置为默认的
100。</para>
50。</para>
</sect2>
</sect1>

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project
Original Revision: 1.95
Original Revision: 1.99
$FreeBSD$
-->
@ -3927,7 +3927,7 @@ DocumentRoot /www/someotherdomain.tld
<title>配置</title>
<para>默认的 <application>Samba</application> 配置文件会以
<filename>/usr/local/etc/smb.conf.default</filename> 的名字安装。
<filename>/usr/local/share/examples/smb.conf.default</filename> 的名字安装。
这个文件必须复制为
<filename>/usr/local/etc/smb.conf</filename> 并进行定制,
才能开始使用 <application>Samba</application>。</para>
@ -3949,7 +3949,7 @@ DocumentRoot /www/someotherdomain.tld
才能够使用 <application>swat</application>
来配置 <application>Samba</application></para>
<programlisting>swat stream tcp nowait/400 root /usr/local/sbin/swat</programlisting>
<programlisting>swat stream tcp nowait/400 root /usr/local/sbin/swat swat</programlisting>
<para>如 <xref linkend="network-inetd-reread"> 中所介绍的那样,
在修改了这个配置文件之后, 必须让 <application>inetd</application>
重新加载配置, 才能使其生效。</para>
@ -4083,6 +4083,11 @@ DocumentRoot /www/someotherdomain.tld
<programlisting>samba_enable="YES"</programlisting>
<para>此外, 也可以进行更细粒度的控制:</para>
<programlisting>nmbd_enable="YES"</programlisting>
<programlisting>smbd_enable="YES"</programlisting>
<note>
<para>这也同时配置了在系统引导时启动 <application>Samba</application>。</para>
</note>
@ -4100,7 +4105,7 @@ Starting smbd.</screen>
<para><application>Samba</application> 事实上包含了三个相互独立的服务程序。
您应该能够看到
<application>nmbd</application> 和 <application>smbd</application>
两个服务程序都是通过 <filename>samba.sh</filename> 脚本启动的。 如果在
两个服务程序都是通过 <filename>samba</filename> 脚本启动的。 如果在
<filename>smb.conf</filename> 中启用了 winbind 名字解析服务,
则应该可以看到 <application>winbindd</application>
服务被启动起来。</para>
@ -4108,7 +4113,7 @@ Starting smbd.</screen>
<para>可以在任何时候通过下面的命令来停止运行
<application>Samba</application></para>
<screen>&prompt.root; <userinput>/usr/local/etc/rc.d/samba.sh stop</userinput></screen>
<screen>&prompt.root; <userinput>/usr/local/etc/rc.d/samba stop</userinput></screen>
<para><application>Samba</application> 是一个复杂的软件包,
它提供了用于与 &microsoft.windows; 网络进行集成的各式各样的功能。
@ -4264,6 +4269,13 @@ driftfile /var/db/ntp.drift</programlisting>
<programlisting>restrict default ignore</programlisting>
<note>
<para>这样做会禁止您的服务器访问在本地配置中列出的服务器。
如果您需要令 NTP 服务器与外界的 NTP
服务器同步时间, 则应允许指定服务器。 请参见联机手册
&man.ntp.conf.5; 以了解进一步的细节。</para>
</note>
<para>如果只希望子网内的机器通过您的服务器同步时钟,
而不允许它们配置为服务器, 或作为同步时钟的节点来时用,
则加入</para>

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Documentation Project
Original Revision: 1.263
Original Revision: 1.267
$FreeBSD$
-->
@ -133,7 +133,7 @@
<listitem>
<para>package 在编译时通常使用比较保守的选项,
这是为了保证它们能够运行在大多数的系统上。 通过从 port 安装,
您可以细微调整编译选项来产生适合于处理器的代码 (针对于 Pentium IV
您可以细微调整编译选项来产生适合于处理器的代码 (针对于 Pentium 4
或 AMD 的 Athlon CPU)。</para>
</listitem>
@ -184,7 +184,7 @@
-F -a</command> 这个命令在安装了某个软件包之后作出检查。</para>
</warning>
<para>这章的其余部分将介绍如何使用packages和ports来安装和管理第三方软件。</para>
<para>这章的其余部分将介绍在 FreeBSD 上如何使用 packages 和 ports 来安装和管理第三方软件。</para>
</sect1>
<sect1 id="ports-finding-applications">
@ -337,7 +337,7 @@ local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz
<screen>&prompt.root; <userinput>pkg_add -r <replaceable>lsof</replaceable></userinput></screen>
<para>上面的例子将下载正确的package 而不需要用户的干预就可以安装。
如果您想指定 FreeBSD package 的镜像站点, 替换主站点, 就必须设置
如果您想指定 FreeBSD package 的镜像站点, 替换主站点, 就必须相应地设置
<envar>PACKAGESITE</envar> 这个环境变量, 覆盖原来的设置。
&man.pkg.add.1; 使用 &man.fetch.3; 下载文件, 可以使用多种环境变量,
包含 <envar>FTP_PASSIVE_MODE</envar>、 <envar>FTP_PROXY</envar>
@ -453,6 +453,17 @@ docbook =
</para>
<screen>&prompt.root; <userinput>pkg_delete <replaceable>xchat-1.7.1</replaceable></userinput></screen>
<para>需要注意的是, &man.pkg.delete.1; 需要提供完整的包名; 如果您只是指定了类似
<replaceable>xchat</replaceable> 而不是
<replaceable>xchat-1.7.1</replaceable> 这样的名字, 则它将拒绝执行操作。
不过, 您可以使用 &man.pkg.version.1; 来了解安装的 package 的版本。
除此之外, 也可以使用通配符:</para>
<screen>&prompt.root; <userinput>pkg_delete <replaceable>xchat\*</replaceable></userinput></screen>
<para>这时, 所有名字以
<literal>xchat</literal> 开头的 package 都会被删掉。</para>
</sect2>
<sect2>
@ -699,7 +710,8 @@ docbook =
<listitem>
<para>一个 <filename>distinfo</filename> 文件。这个文件包括这些信息:
这些文件用来对下载后的文件校验和进行检查, 使用 &man.md5.1;
这些文件用来对下载后的文件校验和进行检查
(使用 &man.md5.1; 和 &man.sha256.1;)
来确保在下载过程中文件没有被破坏。
</para>
</listitem>
@ -1079,8 +1091,7 @@ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch</userinput></screen>
<screen>&prompt.root; <userinput>portmanager <replaceable>graphics/gimp</replaceable> -f</userinput></screen>
<para>要了解更多信息, 请参见
<application>Portmanager</application> 联机手册。</para>
<para>要了解更多信息, 请参见 &man.portmanager.1;。</para>
</sect3>
</sect2>

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project
Original Revision: 1.312
Original Revision: 1.313
$FreeBSD$
-->
@ -802,13 +802,14 @@
<!-- 21 Mar 2000 -->
</sect1info>
<title>DESMD5以及Crypt</title>
<title>DES、 Blowfish、 MD5 以及 Crypt</title>
<indexterm>
<primary>°²È«</primary>
<secondary>ÃÜÂë</secondary>
</indexterm>
<indexterm><primary>crypt</primary></indexterm>
<indexterm><primary>Blowfish</primary></indexterm>
<indexterm><primary>DES</primary></indexterm>
<indexterm><primary>MD5</primary></indexterm>

View file

@ -8,7 +8,8 @@
Entities should be listed in alphabetical order.
Original Revision: 1.2
Original Revision: 1.4
$FreeBSD$
-->
@ -16,11 +17,11 @@
<!ENTITY txt.install.adduser2 SYSTEM "install/adduser2.txt">
<!ENTITY txt.install.adduser3 SYSTEM "install/adduser3.txt">
<!ENTITY txt.install.boot-mgr SYSTEM "install/boot-mgr.txt">
<!ENTITY txt.install.config-country SYSTEM "install/config-country.txt">
<!ENTITY txt.install.console-saver1 SYSTEM "install/console-saver1.txt">
<!ENTITY txt.install.console-saver2 SYSTEM "install/console-saver2.txt">
<!ENTITY txt.install.console-saver3 SYSTEM "install/console-saver3.txt">
<!ENTITY txt.install.console-saver4 SYSTEM "install/console-saver4.txt">
<!ENTITY txt.install.desktop SYSTEM "install/desktop.txt">
<!ENTITY txt.install.disklabel-auto SYSTEM "install/disklabel-auto.txt">
<!ENTITY txt.install.disklabel-ed1 SYSTEM "install/disklabel-ed1.txt">
<!ENTITY txt.install.disklabel-ed2 SYSTEM "install/disklabel-ed2.txt">
@ -69,4 +70,3 @@
<!ENTITY txt.install.timezone3 SYSTEM "install/timezone3.txt">
<!ENTITY txt.install.userconfig SYSTEM "../../../share/images/books/handbook/install/userconfig.txt">
<!ENTITY txt.install.userconfig2 SYSTEM "../../../share/images/books/handbook/install/userconfig2.txt">
<!ENTITY txt.install.xf86setup SYSTEM "install/xf86setup.txt">

View file

@ -1,7 +1,7 @@
<!--
The FreeBSD Chinese Documentation Project
Original Revision: 1.57
Original Revision: 1.58
$FreeBSD$
-->
@ -643,7 +643,8 @@ passwd: done</screen>
<primary>限制用户使用系统资源</primary>
<secondary>cputime</secondary>
</indexterm>
<para>这是一个用户程序所能消耗掉的最大CPU时钟数量. 一些不理想的进程会被内核杀掉.
<para>这是一个用户进程所能消耗的最长 CPU 时间。 违反限制的进程,
将被内核杀掉。</para>
<note>
<para>这是一个有关CPU消耗的<emphasis>时钟</emphasis>
@ -653,7 +654,6 @@ passwd: done</screen>
编译一个可能是合法的工作 &mdash; 可以在某一时刻轻易的用掉
100% 的 CPU。</para>
</note>
</para>
</listitem>
</varlistentry>

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project
Original Revision: 1.9
Original Revision: 1.10
$FreeBSD$
-->

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project
Original Revision: 1.179
Original Revision: 1.184
$FreeBSD$
-->
@ -27,9 +27,9 @@
<title>概述</title>
<para>FreeBSD 使用 X11 来为用户提供功能强大的图形用户界面。
X11 是一种开放源代码的 X Window 系统实现
包括 <application>&xorg;</application> 和
<application>&xfree86;</application>。 &os; 在包括
X11 是一种可以免费使用的 X 视窗系统
其实现包括 <application>&xorg;</application> 和
<application>&xfree86;</application> (以及一些其他这里没有讨论的软件包)。 &os; 在包括
&os;&nbsp;5.2.1-RELEASE
在内的版本之前, 都默认安装
<application>&xfree86;</application> 一种由 &xfree86; Project, Inc.
@ -40,10 +40,12 @@
也有一些用于 &os; 的商业 X 服务器。</para>
<para>这章将介绍 X11 的安装和配置, 并着重强调
<application>&xorg;</application>。 如欲了解关于 <application>&xfree86;</application>
<application>&xorg;</application> 的 &xorg.version; 版。
如欲了解关于 <application>&xfree86;</application>
的详细信息 (在较早的 &os; 版本中,
<application>&xfree86;</application> 是默认的 X11
软件包) 则可以访问存档的旧版 &os; 使用手册, 其网址为 <ulink
软件包) 或较早版本的 <application>&xorg;</application>
则可以访问存档的旧版 &os; 使用手册, 其网址为 <ulink
url="http://docs.FreeBSD.org/doc/"></ulink>。</para>
<para>欲了解 X11 所支持的显示卡等硬件,
@ -460,7 +462,7 @@ EndSection</programlisting>
<para>如果一切准备停当, 就可以把配置文件放到公共的目录中了。
您可以在 &man.Xorg.1; 里面找到具体位置。
这个位置通常是 <filename>/etc/X11/xorg.conf</filename> 或
<filename>/usr/X11R6/etc/X11/xorg.conf</filename>。</para>
<filename>/usr/local/etc/X11/xorg.conf</filename>。</para>
<screen>&prompt.root; <userinput>cp xorg.conf.new /etc/X11/xorg.conf</userinput></screen>
@ -613,11 +615,11 @@ EndSection</programlisting>
X 服务器的配置文件 (<filename>/etc/X11/xorg.conf</filename>)
中增加下面的配置:</para>
<programlisting>FontPath "/usr/X11R6/lib/X11/fonts/URW/"</programlisting>
<programlisting>FontPath "/usr/local/lib/X11/fonts/URW/"</programlisting>
<para>或者,也可以在命令行运行:</para>
<screen>&prompt.user; <userinput>xset fp+ /usr/X11R6/lib/X11/fonts/URW</userinput>
<screen>&prompt.user; <userinput>xset fp+ /usr/local/lib/X11/fonts/URW</userinput>
&prompt.user; <userinput>xset fp rehash</userinput></screen>
<para>这样会起作用,但是当 X 会话结束后就会丢失,
@ -626,7 +628,7 @@ EndSection</programlisting>
<application>XDM</application> 的图形登录管理器登录时添加到
<filename>~/.xsession</filename> 中)。
第三种方法是使用新的
<filename>/usr/X11R6/etc/fonts/local.conf</filename> 文件: 查看
<filename>/usr/local/etc/fonts/local.conf</filename> 文件: 查看
<link linkend="antialias">anti-aliasing</link> 章节。
</para>
</sect2>
@ -649,7 +651,7 @@ EndSection</programlisting>
<programlisting>Load "freetype"</programlisting>
<para>现在,为 &truetype; 字体创建一个目录 (比如,
<filename>/usr/X11R6/lib/X11/fonts/TrueType</filename>)
<filename>/usr/local/lib/X11/fonts/TrueType</filename>)
然后把所有的 &truetype; 字体复制到这个目录。记住您不能直接从
&macintosh; 计算机中提取 &truetype; 字体;
能被 X11 使用的必须是
@ -659,17 +661,17 @@ EndSection</programlisting>
<filename>fonts.dir</filename> 文件,
以便让X字体引擎知道您已经安装了这些新文件。
<command>ttmkfdir</command> 可以在 FreeBSD
Ports Collection
Ports 套件中的
<filename role="package">x11-fonts/ttmkfdir</filename> 中找到。</para>
<screen>&prompt.root; <userinput>cd /usr/X11R6/lib/X11/fonts/TrueType</userinput>
<screen>&prompt.root; <userinput>cd /usr/local/lib/X11/fonts/TrueType</userinput>
&prompt.root; <userinput>ttmkfdir -o fonts.dir</userinput></screen>
<para>现在把 &truetype; 字体目录添加到字体路径中。
这和上面 <link linkend="type1">Type1</link> 字体的步骤是一样的,
那就是,使用</para>
<screen>&prompt.user; <userinput>xset fp+ /usr/X11R6/lib/X11/fonts/TrueType</userinput>
<screen>&prompt.user; <userinput>xset fp+ /usr/local/lib/X11/fonts/TrueType</userinput>
&prompt.user; <userinput>xset fp rehash</userinput></screen>
<para>或者把 <literal>FontPath</literal> 这行加到
@ -708,7 +710,7 @@ EndSection</programlisting>
<application>&xfree86;</application> 4.3.0 之前是非常繁琐的。
从 <application>&xfree86;</application> 4.3.0 开始,
对于所有支持 Xft 的应用程序, 所有放到 X11
<filename>/usr/X11R6/lib/X11/fonts/</filename> 和
<filename>/usr/local/lib/X11/fonts/</filename> 和
<filename>~/.fonts/</filename> 中的字体都自动地被加入反走样支持。
并不是所有的应用程序都支持 Xft 但已经有相当多的程序提供 Xft 支持了。
支持 Xft 的应用程序包括 Qt 2.3 以及更高版本
@ -720,7 +722,7 @@ EndSection</programlisting>
<para>要控制哪些字体是 anti-aliased或者配置 anti-aliased 特性,
创建(或者编辑,如果文件已经存在的话)文件
<filename>/usr/X11R6/etc/fonts/local.conf</filename>。Xft 字体系统的几个
<filename>/usr/local/etc/fonts/local.conf</filename>。Xft 字体系统的几个
高级特性都可以使用这个文件来调节;
这一部分只描述几种最简单的情况。要了解更多的细节,请查看
&man.fonts-conf.5;.</para>
@ -738,11 +740,11 @@ EndSection</programlisting>
</programlisting>
<para>像前面所做的那样,在
<filename>/usr/X11R6/lib/X11/fonts/</filename> 和
<filename>/usr/local/lib/X11/fonts/</filename> 和
<filename>~/.fonts/</filename> 目录下的所有字体已经可以被支持 Xft 的
应用程序使用了。如果您想添加这两个目录以外的其他路径,
简单的添加下面这行到
<filename>/usr/X11R6/etc/fonts/local.conf</filename>文件中:</para>
<filename>/usr/local/etc/fonts/local.conf</filename>文件中:</para>
<programlisting>&lt;dir&gt;/path/to/my/fonts&lt;/dir&gt;</programlisting>
@ -835,11 +837,11 @@ EndSection</programlisting>
更好的字库可以在
<filename role="package">x11-fonts/bitstream-vera</filename>
port 中找到。 这个 port 会创建一个
<filename>/usr/X11R6/etc/fonts/local.conf</filename> 文件,
<filename>/usr/local/etc/fonts/local.conf</filename> 文件,
如果这个文件不存在的话。 反之,
port 将创建 <filename>/usr/X11R6/etc/fonts/local.conf-vera
port 将创建 <filename>/usr/local/etc/fonts/local.conf-vera
</filename> 文件。 将其内容合并到
<filename>/usr/X11R6/etc/fonts/local.conf</filename> 中,
<filename>/usr/local/etc/fonts/local.conf</filename> 中,
则 Bitstream 字体将自动地代替默认的
X11 Serif Sans Serif 以及单倍距字体。</para>
@ -936,7 +938,7 @@ EndSection</programlisting>
<title>使用 XDM</title>
<para><application>XDM</application> 精灵程序在
<filename>/usr/X11R6/bin/xdm</filename> 中。您可以在任何时候
<filename>/usr/local/bin/xdm</filename> 中。您可以在任何时候
用 <username>root</username> 来运行这个程序,
在本地机器上它将启动管理X的画面。如果要
<application>XDM</application> 每次机器一启动就开始运行,
@ -946,7 +948,7 @@ EndSection</programlisting>
<filename>/etc/ttys</filename> 文件中用于运行
<application>XDM</application> 守护程序的一行是这样的:</para>
<screen>ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure</screen>
<screen>ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure</screen>
<para>默认情况下,这个记录是关闭的,要启用它,
您需要把第5部分的 <literal>off</literal> 改为
@ -960,7 +962,7 @@ EndSection</programlisting>
<title>配置 XDM</title>
<para><application>XDM</application> 的配置目录是在
<filename>/usr/X11R6/lib/X11/xdm</filename>中。在这个目录中,
<filename>/usr/local/lib/X11/xdm</filename>中。在这个目录中,
您会看到几个用来改变
<application>XDM</application> 行为和外观的文件。您会找到这些文件:</para>
@ -1042,10 +1044,9 @@ EndSection</programlisting>
<sect3>
<title>Xresources</title>
<para>这是一个默认的用来显示选项和登录屏幕的应用程序文件。这
就是您能够定制登录程序的外观的地方。这个格式与
X11 文档中描述的默认应用
程序文件是一样的。</para>
<para>这是一个默认的用来显示选项和登录屏幕的应用程序文件。
您可以在这个文件中对登录程序的外观进行定制。 其格式与
X11 文档中描述的默认应用程序文件是一样的。</para>
</sect3>
<sect3>
@ -1093,9 +1094,9 @@ EndSection</programlisting>
<sect2>
<title>运行一个网络显示服务器</title>
<para>对于其他客户端来说,为了连接到显示服务器,您将必须编辑访问控制规则,
然后启用连接侦听。默认的这些被设置成比较保守的值。
要让<application>XDM</application>能侦听连接,先要在
<para>对于其他客户端来说, 如果希望它们能连接到显示服务器,您就必须编辑访问控制规则,
并启用连接侦听。 默认情况下, 这些都预设为比较保守的值。
要让 <application>XDM</application> 能侦听连接,先要在
<filename>xdm-config</filename>
文件中注释掉一行:</para>
@ -1105,9 +1106,9 @@ DisplayManager.requestPort: 0</screen>
<para>然后重新启动<application>XDM</application>。
记住默认应用程序文件的注释以<quote>!</quote>
字母开始,不是<quote>#</quote>。
您需要设置严格的访问控制看看在
<filename>Xaccess</filename>文件中的实例记录,可以参考
&man.xdm.1; 的联机手册。</para>
您需要设置严格的访问控制 &mdash; 看看在
<filename>Xaccess</filename> 文件中的实例, 并参考
&man.xdm.1; 的联机手册 以了解进一步的细节。</para>
</sect2>
<sect2>
@ -1170,11 +1171,8 @@ DisplayManager.requestPort: 0</screen>
<sect3 id="x11-wm-gnome-install">
<title>安装 GNOME</title>
<para>安装
<application>GNOME</application>的最简单的方法是
<xref linkend="default-desktop"> 第&nbsp;2 章描述的在FreeBSD安装过程中通过
<quote>Desktop Configuration</quote>菜单来进行。
它们也可以很容易地从一个package或Ports Collection安装</para>
<para>这个软件可以很容易地通过预编译包或
Ports 套件来安装:</para>
<para>要从网络安装<application>GNOME</application>
只要键入:</para>
@ -1296,7 +1294,7 @@ DisplayManager.requestPort: 0</screen>
</listitem>
<listitem>
<para>集中的一致化的桌面驱动配置。</para>
<para>集中化、 统一的对话框驱动的桌面配置</para>
</listitem>
<listitem>
@ -1311,18 +1309,15 @@ DisplayManager.requestPort: 0</screen>
要了解关于 <application>KDE</application>
的更多详情, 可以访问 <ulink url="http://www.kde.org/">KDE
网站</ulink>。 与 FreeBSD 相关的 <application>KDE</application>
信息和资源, 可以在 <ulink url="http://freebsd.kde.org/">FreeBSD-KDE
信息和资源, 可以在 <ulink url="http://freebsd.kde.org/">FreeBSD 上的 KDE
团队</ulink> 的网站找到。</para>
</sect3>
<sect3 id="x11-wm-kde-install">
<title>安装 KDE</title>
<para>与 <application>GNOME</application> 或其他桌面环境一样,安装
<application>KDE</application> 的最容易的方法是通过
<xref linkend="default-desktop"> 第 2 章所描绘的 FreeBSD 安装过程的
<quote>Desktop Configuration</quote> 菜单来安装。
另外它也可以很容易地从packages或Ports Collection安装</para>
<para>与 <application>GNOME</application> 和其他桌面环境类似,
这个软件可以很容易地通过预编译包或 Ports 套件来安装:</para>
<para>要从网络安装 <application>KDE</application> 只需要:</para>
@ -1419,7 +1414,7 @@ DisplayManager.requestPort: 0</screen>
<listitem>
<para>集成的窗口管理器,文件管理器,声音管理器,
<application>GNOME</application>应用模块,和其他一些。</para>
<application>GNOME</application> 应用模块等等。</para>
</listitem>
<listitem>

View file

@ -52,10 +52,14 @@
<!ENTITY a.leeym "李彦明 <email>leeym@FreeBSD.org</email>">
<!ENTITY a.loader "³Â¸£¿µ <email>loader@FreeBSD.org</email>">
<!ENTITY a.luoqi "陈洛祁 <email>luoqi@FreeBSD.org</email>">
<!ENTITY a.lwhsu "许立文 <email>lwhsu@FreeBSD.org</email>">
<!ENTITY a.nemoliu "ÁõÍ® <email>nemoliu@FreeBSD.org</email>">
<!ENTITY a.pat "李云玖 <email>pat@FreeBSD.org</email>">
<!ENTITY a.rafan "范荣恩 <email>rafan@FreeBSD.org</email>">

View file

@ -2,7 +2,7 @@
Names of FreeBSD mailing lists and related software.
The FreeBSD Chinese Documentation Project
Original revision: 1.56
Original revision: 1.57
$FreeBSD$
-->
@ -229,6 +229,10 @@
<!ENTITY a.isp "<ulink url='&a.isp.url;'>FreeBSD Internet 服务提供商的邮件列表</ulink>">
<!ENTITY a.isp.name "<ulink url='&a.isp.url;'>freebsd-isp</ulink>">
<!ENTITY a.jail.url "&a.mailman.listinfo;/freebsd-jail">
<!ENTITY a.jail "<ulink url='&a.jail.url;'>FreeBSD jails 邮件列表</ulink>">
<!ENTITY a.jail.name "<ulink url='&a.jail.url;'>freebsd-jail</ulink>">
<!ENTITY a.java.url "&a.mailman.listinfo;/freebsd-java">
<!ENTITY a.java "<ulink url='&a.java.url;'>FreeBSD Java 语言邮件列表</ulink>">
<!ENTITY a.java.name "<ulink url='&a.java.url;'>freebsd-java</ulink>">

View file

@ -12,12 +12,14 @@
builds for the other languages, and we will poke fun of you
in public.
Original revision: 1.17
Original revision: 1.18
$FreeBSD$
-->
<!ENTITY a.admins "FreeBSD 集群管理员 <email>admins@FreeBSD.org</email>">
<!ENTITY a.bugmeister "问题报告数据库管理员 <email>bugmeister@FreeBSD.org</email>">
<!ENTITY a.core-secretary "核心团队秘书 <email>core-secretary@FreeBSD.org</email>">
<!ENTITY a.cvsadm "CVS 代码库管理员 <email>cvsadm@FreeBSD.org</email>">

View file

@ -8,7 +8,7 @@
Please keep this file sorted.
Original revision: 1.38
Original revision: 1.41
$FreeBSD$
-->
@ -42,7 +42,9 @@
<!ENTITY amd.athlon "<trademark>AMD Athlon</trademark>">
<!ENTITY amd.duron "<trademark>AMD Duron</trademark>">
<!ENTITY amd.k6 "<trademark class='registered'>AMD-K6</trademark>">
<!ENTITY amd.opteron "<trademark>AMD Opteron</trademark>">
<!ENTITY amd.opteron "<trademark>AMD&nbsp;Opteron</trademark>">
<!ENTITY amd.sempron "<trademark>AMD&nbsp;Sempron</trademark>">
<!ENTITY amd.turion "<trademark>AMD&nbsp;Turion</trademark>">
<!ENTITY athlon "<trademark>Athlon</trademark>">
<!ENTITY elan "<trademark>&Eacute;lan</trademark>">
<!ENTITY opteron "<trademark>Opteron</trademark>">
@ -83,6 +85,7 @@
<!ENTITY tm-attrib.corel "<para>Corel 和 WordPerfect 是 Corel Corporation 和/或其子公司
在加拿大、美国和/或其他国家的注册商标。</para>">
<!ENTITY wordperfect "<trademark class='registered'>WordPerfect</trademark>">
<!-- http://www.creative.com/legal.asp -->
<!ENTITY tm-attrib.creative "<para>Sound Blaster 是
@ -246,6 +249,7 @@
<!-- http://www.realnetworks.com/company/logos/policy.html -->
<!ENTITY tm-attrib.realnetworks "<para>RealNetworks, RealPlayer, 和
RealAudio 是 RealNetworks, Inc. 的注册商标。</para>">
<!ENTITY realplayer "<trademark class='registered'>RealPlayer</trademark>">
<!-- Note: RedHat doesn't use (r)/(tm) for their own trademarks -->
<!-- http://www.redhat.com/legal/legal_statement.html -->